@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":"reportObservable.js","names":["_errorTools","require","_observable","_tools","_addEventListener2","_enums","_monitor","RawReportType","exports","intervention","deprecation","cspViolation","initReportObservable","configuration","apis","observables","includes","push","createCspViolationReportObservable","reportTypes","filter","api","length","createReportObservable","mergeObservables","apply","Observable","observable","window","ReportingObserver","handleReports","monitor","reports","each","report","notify","buildRawReportErrorFromReport","observer","types","buffered","observe","disconnect","_addEventListener","addEventListener","document","DOM_EVENT","SECURITY_POLICY_VIOLATION","event","buildRawReportErrorFromCspViolation","stop","body","type","buildRawReportError","id","message","originalError","stack","buildStack","sourceFile","lineNumber","columnNumber","partial","assign","startClocks","clocksNow","source","ErrorSource","REPORT","handling","ErrorHandling","UNHANDLED","blockedURI","effectiveDirective","csp","disposition","originalPolicy","concat","safeTruncate","name","toStackTraceString","func","url","line","column"],"sources":["../../src/report/reportObservable.js"],"sourcesContent":["import { toStackTraceString } from '../helper/errorTools'\nimport { mergeObservables, Observable } from '../helper/observable'\nimport {\n includes,\n safeTruncate,\n filter,\n each,\n assign,\n clocksNow\n} from '../helper/tools'\nimport { addEventListener } from '../browser/addEventListener'\nimport { DOM_EVENT } from '../helper/enums'\nimport { monitor } from '../helper/monitor'\nexport var RawReportType = {\n intervention: 'intervention',\n deprecation: 'deprecation',\n cspViolation: 'csp_violation'\n}\nexport function initReportObservable(configuration, apis) {\n var observables = []\n\n if (includes(apis, RawReportType.cspViolation)) {\n observables.push(createCspViolationReportObservable(configuration))\n }\n\n var reportTypes = filter(apis, function (api) {\n return api !== RawReportType.cspViolation\n })\n if (reportTypes.length) {\n observables.push(createReportObservable(reportTypes))\n }\n return mergeObservables.apply(this, observables)\n}\n\nfunction createReportObservable(reportTypes) {\n return new Observable(function (observable) {\n if (!window.ReportingObserver) {\n return\n }\n\n var handleReports = monitor(function (reports) {\n each(reports, function (report) {\n observable.notify(buildRawReportErrorFromReport(report))\n })\n })\n\n var observer = new window.ReportingObserver(handleReports, {\n types: reportTypes,\n buffered: true\n })\n\n observer.observe()\n return function () {\n observer.disconnect()\n }\n })\n}\n\nfunction createCspViolationReportObservable(configuration) {\n return new Observable(function (observable) {\n var _addEventListener = addEventListener(\n document,\n DOM_EVENT.SECURITY_POLICY_VIOLATION,\n function (event) {\n observable.notify(buildRawReportErrorFromCspViolation(event))\n }\n )\n\n return _addEventListener.stop\n })\n}\n\nfunction buildRawReportErrorFromReport(report) {\n var body = report.body\n var type = report.type\n return buildRawReportError({\n type: body.id,\n message: type + ': ' + body.message,\n originalError: report,\n stack: buildStack(\n body.id,\n body.message,\n body.sourceFile,\n body.lineNumber,\n body.columnNumber\n )\n })\n}\nfunction buildRawReportError(partial) {\n return assign(\n {\n startClocks: clocksNow(),\n source: ErrorSource.REPORT,\n handling: ErrorHandling.UNHANDLED\n },\n partial\n )\n}\nfunction buildRawReportErrorFromCspViolation(event) {\n var message =\n \"'\" +\n event.blockedURI +\n \"' blocked by '\" +\n event.effectiveDirective +\n \"' directive\"\n return buildRawReportError({\n type: event.effectiveDirective,\n message: RawReportType.cspViolation + ': ' + message,\n originalError: event,\n csp: {\n disposition: event.disposition\n },\n stack: buildStack(\n event.effectiveDirective,\n event.originalPolicy\n ? `${message} of the policy \"${safeTruncate(\n event.originalPolicy,\n 100,\n '...'\n )}\"`\n : 'no policy',\n event.sourceFile,\n event.lineNumber,\n event.columnNumber\n )\n })\n}\n\nfunction buildStack(name, message, sourceFile, lineNumber, columnNumber) {\n return (\n sourceFile &&\n toStackTraceString({\n name: name,\n message: message,\n stack: [\n {\n func: '?',\n url: sourceFile,\n line: lineNumber,\n column: columnNumber\n }\n ]\n })\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"reportObservable.js","names":["_errorTools","require","_observable","_tools","_addEventListener2","_enums","_monitor","RawReportType","exports","intervention","deprecation","cspViolation","initReportObservable","configuration","apis","observables","includes","push","createCspViolationReportObservable","reportTypes","filter","api","length","createReportObservable","mergeObservables","apply","Observable","observable","window","ReportingObserver","handleReports","monitor","reports","each","report","notify","buildRawReportErrorFromReport","observer","types","buffered","observe","disconnect","_addEventListener","addEventListener","document","DOM_EVENT","SECURITY_POLICY_VIOLATION","event","buildRawReportErrorFromCspViolation","stop","body","type","buildRawReportError","id","message","originalError","stack","buildStack","sourceFile","lineNumber","columnNumber","partial","assign","startClocks","clocksNow","source","ErrorSource","REPORT","handling","ErrorHandling","UNHANDLED","blockedURI","effectiveDirective","csp","disposition","originalPolicy","concat","safeTruncate","name","toStackTraceString","func","url","line","column"],"sources":["../../src/report/reportObservable.js"],"sourcesContent":["import { toStackTraceString } from '../helper/errorTools'\nimport { mergeObservables, Observable } from '../helper/observable'\nimport {\n includes,\n safeTruncate,\n filter,\n each,\n assign,\n clocksNow\n} from '../helper/tools'\nimport { addEventListener } from '../browser/addEventListener'\nimport { DOM_EVENT } from '../helper/enums'\nimport { monitor } from '../helper/monitor'\nimport { ErrorSource } from '../helper/errorTools'\nimport { ErrorHandling } from '../helper/enums'\nexport var RawReportType = {\n intervention: 'intervention',\n deprecation: 'deprecation',\n cspViolation: 'csp_violation'\n}\nexport function initReportObservable(configuration, apis) {\n var observables = []\n\n if (includes(apis, RawReportType.cspViolation)) {\n observables.push(createCspViolationReportObservable(configuration))\n }\n\n var reportTypes = filter(apis, function (api) {\n return api !== RawReportType.cspViolation\n })\n if (reportTypes.length) {\n observables.push(createReportObservable(reportTypes))\n }\n return mergeObservables.apply(this, observables)\n}\n\nfunction createReportObservable(reportTypes) {\n return new Observable(function (observable) {\n if (!window.ReportingObserver) {\n return\n }\n\n var handleReports = monitor(function (reports) {\n each(reports, function (report) {\n observable.notify(buildRawReportErrorFromReport(report))\n })\n })\n\n var observer = new window.ReportingObserver(handleReports, {\n types: reportTypes,\n buffered: true\n })\n\n observer.observe()\n return function () {\n observer.disconnect()\n }\n })\n}\n\nfunction createCspViolationReportObservable(configuration) {\n return new Observable(function (observable) {\n var _addEventListener = addEventListener(\n document,\n DOM_EVENT.SECURITY_POLICY_VIOLATION,\n function (event) {\n observable.notify(buildRawReportErrorFromCspViolation(event))\n }\n )\n\n return _addEventListener.stop\n })\n}\n\nfunction buildRawReportErrorFromReport(report) {\n var body = report.body\n var type = report.type\n return buildRawReportError({\n type: body.id,\n message: type + ': ' + body.message,\n originalError: report,\n stack: buildStack(\n body.id,\n body.message,\n body.sourceFile,\n body.lineNumber,\n body.columnNumber\n )\n })\n}\nfunction buildRawReportError(partial) {\n return assign(\n {\n startClocks: clocksNow(),\n source: ErrorSource.REPORT,\n handling: ErrorHandling.UNHANDLED\n },\n partial\n )\n}\nfunction buildRawReportErrorFromCspViolation(event) {\n var message =\n \"'\" +\n event.blockedURI +\n \"' blocked by '\" +\n event.effectiveDirective +\n \"' directive\"\n return buildRawReportError({\n type: event.effectiveDirective,\n message: RawReportType.cspViolation + ': ' + message,\n originalError: event,\n csp: {\n disposition: event.disposition\n },\n stack: buildStack(\n event.effectiveDirective,\n event.originalPolicy\n ? `${message} of the policy \"${safeTruncate(\n event.originalPolicy,\n 100,\n '...'\n )}\"`\n : 'no policy',\n event.sourceFile,\n event.lineNumber,\n event.columnNumber\n )\n })\n}\n\nfunction buildStack(name, message, sourceFile, lineNumber, columnNumber) {\n return (\n sourceFile &&\n toStackTraceString({\n name: name,\n message: message,\n stack: [\n {\n func: '?',\n url: sourceFile,\n line: lineNumber,\n column: columnNumber\n }\n ]\n })\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -72,6 +72,7 @@ function startSessionManager(configuration, productKey, computeSessionState) {
72
72
  findSession: function findSession(startTime, options) {
73
73
  return sessionContextHistory.find(startTime, options);
74
74
  },
75
+ expandOrRenewSession: sessionStore.expandOrRenewSession,
75
76
  renewObservable: renewObservable,
76
77
  expireObservable: expireObservable,
77
78
  sessionStateUpdateObservable: sessionStore.sessionStateUpdateObservable,
@@ -1 +1 @@
1
- {"version":3,"file":"sessionManagement.js","names":["_observable","require","_valueHistory","_tools","_enums","_addEventListener3","_timer","_sessionConstants","_sessionStore","VISIBILITY_CHECK_DELAY","exports","ONE_MINUTE","SESSION_CONTEXT_TIMEOUT_DELAY","SESSION_TIME_OUT_DELAY","stopCallbacks","startSessionManager","configuration","productKey","computeSessionState","renewObservable","Observable","expireObservable","sessionStore","startSessionStore","sessionStoreStrategyType","push","stop","sessionContextHistory","createValueHistory","expireDelay","subscribe","add","buildSessionContext","relativeNow","notify","closeActive","expandOrRenewSession","clocksOrigin","relative","trackActivity","trackVisibility","expandSession","trackResume","restartSession","session","getSession","id","trackingType","SESSION_NOT_TRACKED","isSessionForced","hasError","forcedSession","findSession","startTime","options","find","sessionStateUpdateObservable","expire","updateSessionState","stopSessionManager","forEach","e","_addEventListeners","addEventListeners","window","DOM_EVENT","CLICK","TOUCH_START","KEY_DOWN","SCROLL","capture","passive","expandSessionWhenVisible","document","visibilityState","_addEventListener","addEventListener","VISIBILITY_CHANGE","visibilityCheckInterval","setInterval","clearInterval","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","require","_valueHistory","_tools","_enums","_addEventListener3","_timer","_sessionConstants","_sessionStore","VISIBILITY_CHECK_DELAY","exports","ONE_MINUTE","SESSION_CONTEXT_TIMEOUT_DELAY","SESSION_TIME_OUT_DELAY","stopCallbacks","startSessionManager","configuration","productKey","computeSessionState","renewObservable","Observable","expireObservable","sessionStore","startSessionStore","sessionStoreStrategyType","push","stop","sessionContextHistory","createValueHistory","expireDelay","subscribe","add","buildSessionContext","relativeNow","notify","closeActive","expandOrRenewSession","clocksOrigin","relative","trackActivity","trackVisibility","expandSession","trackResume","restartSession","session","getSession","id","trackingType","SESSION_NOT_TRACKED","isSessionForced","hasError","forcedSession","findSession","startTime","options","find","sessionStateUpdateObservable","expire","updateSessionState","stopSessionManager","forEach","e","_addEventListeners","addEventListeners","window","DOM_EVENT","CLICK","TOUCH_START","KEY_DOWN","SCROLL","capture","passive","expandSessionWhenVisible","document","visibilityState","_addEventListener","addEventListener","VISIBILITY_CHANGE","visibilityCheckInterval","setInterval","clearInterval","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":[]}
@@ -121,7 +121,7 @@ function startSessionStore(sessionStoreStrategyType, productKey, computeSessionS
121
121
  function startSession() {
122
122
  (0, _sessionStoreOperations.processSessionStoreOperations)({
123
123
  process: function process(sessionState) {
124
- if ((0, _sessionState.isSessionInNotStartedState)(sessionState)) {
124
+ if ((0, _sessionState.isSessionInNotStartedState)(sessionState) || (0, _sessionState.isSessionInExpiredState)(sessionState)) {
125
125
  return (0, _sessionState.getExpiredSessionState)();
126
126
  }
127
127
  },
@@ -1 +1 @@
1
- {"version":3,"file":"sessionStore.js","names":["_timer","require","_observable","_display","_tools","_sessionInCookie","_sessionState","_sessionInLocalStorage","_sessionStoreOperations","_sessionConstants","STORAGE_POLL_DELAY","exports","ONE_SECOND","selectSessionStoreStrategyType","initConfiguration","sessionPersistence","SessionPersistence","COOKIE","selectCookieStrategy","LOCAL_STORAGE","selectLocalStorageStrategy","undefined","sessionStoreStrategyType","allowFallbackToLocalStorage","display","error","concat","String","startSessionStore","productKey","computeSessionState","renewObservable","Observable","expireObservable","sessionStateUpdateObservable","sessionStoreStrategy","type","initCookieStrategy","cookieOptions","initLocalStorageStrategy","expireSession","watchSessionTimeoutId","setInterval","watchSession","sessionCache","startSession","_throttle","throttle","processSessionStoreOperations","process","sessionState","isSessionInNotStartedState","synchronizedSession","synchronizeSession","expandOrRenewSessionState","after","isSessionStarted","hasSessionInCache","renewSessionInCache","throttledExpandOrRenewSession","throttled","cancelExpandOrRenewSession","cancel","expandSession","isSessionInExpiredState","getExpiredSessionState","isSessionInCacheOutdated","expireSessionInCache","notify","previousState","newState","_computeSessionState","trackingType","isTracked","isExpired","id","UUID","created","dateNow","updateSessionState","partialSessionState","assign","expandOrRenewSession","getSession","restartSession","expire","stop","clearInterval"],"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":["_timer","require","_observable","_display","_tools","_sessionInCookie","_sessionState","_sessionInLocalStorage","_sessionStoreOperations","_sessionConstants","STORAGE_POLL_DELAY","exports","ONE_SECOND","selectSessionStoreStrategyType","initConfiguration","sessionPersistence","SessionPersistence","COOKIE","selectCookieStrategy","LOCAL_STORAGE","selectLocalStorageStrategy","undefined","sessionStoreStrategyType","allowFallbackToLocalStorage","display","error","concat","String","startSessionStore","productKey","computeSessionState","renewObservable","Observable","expireObservable","sessionStateUpdateObservable","sessionStoreStrategy","type","initCookieStrategy","cookieOptions","initLocalStorageStrategy","expireSession","watchSessionTimeoutId","setInterval","watchSession","sessionCache","startSession","_throttle","throttle","processSessionStoreOperations","process","sessionState","isSessionInNotStartedState","synchronizedSession","synchronizeSession","expandOrRenewSessionState","after","isSessionStarted","hasSessionInCache","renewSessionInCache","throttledExpandOrRenewSession","throttled","cancelExpandOrRenewSession","cancel","expandSession","isSessionInExpiredState","getExpiredSessionState","isSessionInCacheOutdated","expireSessionInCache","notify","previousState","newState","_computeSessionState","trackingType","isTracked","isExpired","id","UUID","created","dateNow","updateSessionState","partialSessionState","assign","expandOrRenewSession","getSession","restartSession","expire","stop","clearInterval"],"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":[]}
@@ -15,11 +15,11 @@ function willSyntheticsInjectRum() {
15
15
  return Boolean(window._GUANCE_SYNTHETICS_INJECTS_RUM || (0, _cookie.getCookie)(SYNTHETICS_INJECTS_RUM_COOKIE_NAME));
16
16
  }
17
17
  function getSyntheticsTestId() {
18
- var value = window._GUANCE_SYNTHETICS_PUBLIC_ID || (0, _cookie.getCookie)(SYNTHETICS_TEST_ID_COOKIE_NAME);
18
+ var value = typeof window._GUANCE_SYNTHETICS_PUBLIC_ID === 'string' ? window._GUANCE_SYNTHETICS_PUBLIC_ID : (0, _cookie.getCookie)(SYNTHETICS_TEST_ID_COOKIE_NAME);
19
19
  return typeof value === 'string' ? value : undefined;
20
20
  }
21
21
  function getSyntheticsResultId() {
22
- var value = window._GUANCE_SYNTHETICS_RESULT_ID || (0, _cookie.getCookie)(SYNTHETICS_RESULT_ID_COOKIE_NAME);
22
+ var value = typeof window._GUANCE_SYNTHETICS_RESULT_ID === 'string' ? window._GUANCE_SYNTHETICS_RESULT_ID : (0, _cookie.getCookie)(SYNTHETICS_RESULT_ID_COOKIE_NAME);
23
23
  return typeof value === 'string' ? value : undefined;
24
24
  }
25
25
  //# sourceMappingURL=syntheticsWorkerValues.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"syntheticsWorkerValues.js","names":["_cookie","require","SYNTHETICS_TEST_ID_COOKIE_NAME","exports","SYNTHETICS_RESULT_ID_COOKIE_NAME","SYNTHETICS_INJECTS_RUM_COOKIE_NAME","willSyntheticsInjectRum","Boolean","window","_GUANCE_SYNTHETICS_INJECTS_RUM","getCookie","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,IAAAA,OAAA,GAAAC,OAAA;AAEO,IAAIC,8BAA8B,GAAAC,OAAA,CAAAD,8BAAA,GAAG,6BAA6B;AAClE,IAAIE,gCAAgC,GAAAD,OAAA,CAAAC,gCAAA,GAAG,6BAA6B;AACpE,IAAIC,kCAAkC,GAAAF,OAAA,CAAAE,kCAAA,GAAG,+BAA+B;AAExE,SAASC,uBAAuBA,CAAA,EAAG;EACxC,OAAOC,OAAO,CACZC,MAAM,CAACC,8BAA8B,IACnC,IAAAC,iBAAS,EAACL,kCAAkC,CAChD,CAAC;AACH;AAEO,SAASM,mBAAmBA,CAAA,EAAG;EACpC,IAAIC,KAAK,GACPJ,MAAM,CAACK,4BAA4B,IACnC,IAAAH,iBAAS,EAACR,8BAA8B,CAAC;EAC3C,OAAO,OAAOU,KAAK,KAAK,QAAQ,GAAGA,KAAK,GAAGE,SAAS;AACtD;AAEO,SAASC,qBAAqBA,CAAA,EAAG;EACtC,IAAIH,KAAK,GACPJ,MAAM,CAACQ,4BAA4B,IACnC,IAAAN,iBAAS,EAACN,gCAAgC,CAAC;EAC7C,OAAO,OAAOQ,KAAK,KAAK,QAAQ,GAAGA,KAAK,GAAGE,SAAS;AACtD","ignoreList":[]}
1
+ {"version":3,"file":"syntheticsWorkerValues.js","names":["_cookie","require","SYNTHETICS_TEST_ID_COOKIE_NAME","exports","SYNTHETICS_RESULT_ID_COOKIE_NAME","SYNTHETICS_INJECTS_RUM_COOKIE_NAME","willSyntheticsInjectRum","Boolean","window","_GUANCE_SYNTHETICS_INJECTS_RUM","getCookie","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,IAAAA,OAAA,GAAAC,OAAA;AAEO,IAAIC,8BAA8B,GAAAC,OAAA,CAAAD,8BAAA,GAAG,6BAA6B;AAClE,IAAIE,gCAAgC,GAAAD,OAAA,CAAAC,gCAAA,GAAG,6BAA6B;AACpE,IAAIC,kCAAkC,GAAAF,OAAA,CAAAE,kCAAA,GAAG,+BAA+B;AAExE,SAASC,uBAAuBA,CAAA,EAAG;EACxC,OAAOC,OAAO,CACZC,MAAM,CAACC,8BAA8B,IACnC,IAAAC,iBAAS,EAACL,kCAAkC,CAChD,CAAC;AACH;AAEO,SAASM,mBAAmBA,CAAA,EAAG;EACpC,IAAIC,KAAK,GACP,OAAOJ,MAAM,CAACK,4BAA4B,KAAK,QAAQ,GACnDL,MAAM,CAACK,4BAA4B,GACnC,IAAAH,iBAAS,EAACR,8BAA8B,CAAC;EAC/C,OAAO,OAAOU,KAAK,KAAK,QAAQ,GAAGA,KAAK,GAAGE,SAAS;AACtD;AAEO,SAASC,qBAAqBA,CAAA,EAAG;EACtC,IAAIH,KAAK,GACP,OAAOJ,MAAM,CAACQ,4BAA4B,KAAK,QAAQ,GACnDR,MAAM,CAACQ,4BAA4B,GACnC,IAAAN,iBAAS,EAACN,gCAAgC,CAAC;EACjD,OAAO,OAAOQ,KAAK,KAAK,QAAQ,GAAGA,KAAK,GAAGE,SAAS;AACtD","ignoreList":[]}
@@ -7,10 +7,10 @@ export function fetchAndApplyRemoteClocks(initConfiguration, callback) {
7
7
  fetchRemoteClocks(initConfiguration, function (serverTimestamp) {
8
8
  var end = performance.now();
9
9
  var 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
  var estimatedClientTime = performance.timing.navigationStart + start + rtt / 2;
15
15
  var offset = serverTimestamp - estimatedClientTime;
16
16
  return offset;
@@ -1 +1 @@
1
- {"version":3,"file":"asyncClocks.js","names":["addEventListener","display","trim","timeOffset","fetchAndApplyRemoteClocks","initConfiguration","callback","start","performance","now","fetchRemoteClocks","serverTimestamp","end","rtt","applyRemoteClocks","estimatedClientTime","timing","navigationStart","offset","configuration","xhr","XMLHttpRequest","status","remoteConfiguration","JSON","parse","responseText","content","displayRemoteClocksFetchingError","open","buildEndpoint","send","url","datakitOrigin","datakitUrl","site","indexOf","location","origin","endpoint","lastIndexOf","length","applicationId","clientToken","error"],"sources":["../../src/browser/asyncClocks.js"],"sourcesContent":["import { addEventListener } from './addEventListener'\nimport { display } from '../helper/display'\nimport { trim } from '../configuration/transportConfiguration'\nlet timeOffset\nexport function fetchAndApplyRemoteClocks(initConfiguration, callback) {\n const start = performance.now()\n fetchRemoteClocks(initConfiguration, (serverTimestamp) => {\n const end = performance.now()\n const rtt = end - start\n callback(applyRemoteClocks(serverTimestamp, rtt))\n })\n}\nfunction applyRemoteClocks(serverTimestamp, rtt) {\n const estimatedClientTime =\n performance.timing.navigationStart + start + rtt / 2\n\n const offset = serverTimestamp - estimatedClientTime\n return offset\n}\nexport function fetchRemoteClocks(configuration, callback) {\n const xhr = new XMLHttpRequest()\n\n addEventListener(xhr, 'load', function () {\n if (xhr.status === 200) {\n const remoteConfiguration = JSON.parse(xhr.responseText)\n callback(remoteConfiguration.content)\n } else {\n displayRemoteClocksFetchingError()\n }\n })\n\n addEventListener(xhr, 'error', function () {\n callback({})\n displayRemoteClocksFetchingError()\n })\n\n xhr.open('GET', buildEndpoint(configuration))\n xhr.send()\n}\n\nexport function buildEndpoint(configuration) {\n var url =\n configuration.datakitOrigin ||\n configuration.datakitUrl ||\n configuration.site\n if (url.indexOf('/') === 0) {\n url = location.origin + trim(url)\n }\n var endpoint = url\n if (url.lastIndexOf('/') === url.length - 1) {\n endpoint = trim(url) + 'v1/env_variable'\n } else {\n endpoint = trim(url) + '/v1/env_variable'\n }\n endpoint += '?app_id=' + configuration.applicationId\n //testing-openway.dataflux.cn/v1/env_variable?token=a47fb0cdddaa4561a90d941317cdbc0b&app_id=d1b454d0_22eb_11ef_9b66_95ca11aa2c6c&to_headless=true\n if (configuration.site && configuration.clientToken) {\n endpoint =\n endpoint + '&token=' + configuration.clientToken + '&to_headless=true'\n }\n return endpoint\n}\n\nfunction displayRemoteClocksFetchingError() {\n display.error('Error fetching the remote configuration.')\n}\n"],"mappings":"AAAA,SAASA,gBAAgB,QAAQ,oBAAoB;AACrD,SAASC,OAAO,QAAQ,mBAAmB;AAC3C,SAASC,IAAI,QAAQ,yCAAyC;AAC9D,IAAIC,UAAU;AACd,OAAO,SAASC,yBAAyBA,CAACC,iBAAiB,EAAEC,QAAQ,EAAE;EACrE,IAAMC,KAAK,GAAGC,WAAW,CAACC,GAAG,CAAC,CAAC;EAC/BC,iBAAiB,CAACL,iBAAiB,EAAE,UAACM,eAAe,EAAK;IACxD,IAAMC,GAAG,GAAGJ,WAAW,CAACC,GAAG,CAAC,CAAC;IAC7B,IAAMI,GAAG,GAAGD,GAAG,GAAGL,KAAK;IACvBD,QAAQ,CAACQ,iBAAiB,CAACH,eAAe,EAAEE,GAAG,CAAC,CAAC;EACnD,CAAC,CAAC;AACJ;AACA,SAASC,iBAAiBA,CAACH,eAAe,EAAEE,GAAG,EAAE;EAC/C,IAAME,mBAAmB,GACvBP,WAAW,CAACQ,MAAM,CAACC,eAAe,GAAGV,KAAK,GAAGM,GAAG,GAAG,CAAC;EAEtD,IAAMK,MAAM,GAAGP,eAAe,GAAGI,mBAAmB;EACpD,OAAOG,MAAM;AACf;AACA,OAAO,SAASR,iBAAiBA,CAACS,aAAa,EAAEb,QAAQ,EAAE;EACzD,IAAMc,GAAG,GAAG,IAAIC,cAAc,CAAC,CAAC;EAEhCrB,gBAAgB,CAACoB,GAAG,EAAE,MAAM,EAAE,YAAY;IACxC,IAAIA,GAAG,CAACE,MAAM,KAAK,GAAG,EAAE;MACtB,IAAMC,mBAAmB,GAAGC,IAAI,CAACC,KAAK,CAACL,GAAG,CAACM,YAAY,CAAC;MACxDpB,QAAQ,CAACiB,mBAAmB,CAACI,OAAO,CAAC;IACvC,CAAC,MAAM;MACLC,gCAAgC,CAAC,CAAC;IACpC;EACF,CAAC,CAAC;EAEF5B,gBAAgB,CAACoB,GAAG,EAAE,OAAO,EAAE,YAAY;IACzCd,QAAQ,CAAC,CAAC,CAAC,CAAC;IACZsB,gCAAgC,CAAC,CAAC;EACpC,CAAC,CAAC;EAEFR,GAAG,CAACS,IAAI,CAAC,KAAK,EAAEC,aAAa,CAACX,aAAa,CAAC,CAAC;EAC7CC,GAAG,CAACW,IAAI,CAAC,CAAC;AACZ;AAEA,OAAO,SAASD,aAAaA,CAACX,aAAa,EAAE;EAC3C,IAAIa,GAAG,GACLb,aAAa,CAACc,aAAa,IAC3Bd,aAAa,CAACe,UAAU,IACxBf,aAAa,CAACgB,IAAI;EACpB,IAAIH,GAAG,CAACI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;IAC1BJ,GAAG,GAAGK,QAAQ,CAACC,MAAM,GAAGpC,IAAI,CAAC8B,GAAG,CAAC;EACnC;EACA,IAAIO,QAAQ,GAAGP,GAAG;EAClB,IAAIA,GAAG,CAACQ,WAAW,CAAC,GAAG,CAAC,KAAKR,GAAG,CAACS,MAAM,GAAG,CAAC,EAAE;IAC3CF,QAAQ,GAAGrC,IAAI,CAAC8B,GAAG,CAAC,GAAG,iBAAiB;EAC1C,CAAC,MAAM;IACLO,QAAQ,GAAGrC,IAAI,CAAC8B,GAAG,CAAC,GAAG,kBAAkB;EAC3C;EACAO,QAAQ,IAAI,UAAU,GAAGpB,aAAa,CAACuB,aAAa;EACpD;EACA,IAAIvB,aAAa,CAACgB,IAAI,IAAIhB,aAAa,CAACwB,WAAW,EAAE;IACnDJ,QAAQ,GACNA,QAAQ,GAAG,SAAS,GAAGpB,aAAa,CAACwB,WAAW,GAAG,mBAAmB;EAC1E;EACA,OAAOJ,QAAQ;AACjB;AAEA,SAASX,gCAAgCA,CAAA,EAAG;EAC1C3B,OAAO,CAAC2C,KAAK,CAAC,0CAA0C,CAAC;AAC3D","ignoreList":[]}
1
+ {"version":3,"file":"asyncClocks.js","names":["addEventListener","display","trim","timeOffset","fetchAndApplyRemoteClocks","initConfiguration","callback","start","performance","now","fetchRemoteClocks","serverTimestamp","end","rtt","applyRemoteClocks","estimatedClientTime","timing","navigationStart","offset","configuration","xhr","XMLHttpRequest","status","remoteConfiguration","JSON","parse","responseText","content","displayRemoteClocksFetchingError","open","buildEndpoint","send","url","datakitOrigin","datakitUrl","site","indexOf","location","origin","endpoint","lastIndexOf","length","applicationId","clientToken","error"],"sources":["../../src/browser/asyncClocks.js"],"sourcesContent":["import { addEventListener } from './addEventListener'\nimport { display } from '../helper/display'\nimport { trim } from '../configuration/transportConfiguration'\nlet timeOffset\nexport function fetchAndApplyRemoteClocks(initConfiguration, callback) {\n const start = performance.now()\n fetchRemoteClocks(initConfiguration, (serverTimestamp) => {\n const end = performance.now()\n const rtt = end - start\n callback(applyRemoteClocks(serverTimestamp, rtt, start))\n })\n}\nfunction applyRemoteClocks(serverTimestamp, rtt, start) {\n const estimatedClientTime =\n performance.timing.navigationStart + start + rtt / 2\n\n const offset = serverTimestamp - estimatedClientTime\n return offset\n}\nexport function fetchRemoteClocks(configuration, callback) {\n const xhr = new XMLHttpRequest()\n\n addEventListener(xhr, 'load', function () {\n if (xhr.status === 200) {\n const remoteConfiguration = JSON.parse(xhr.responseText)\n callback(remoteConfiguration.content)\n } else {\n displayRemoteClocksFetchingError()\n }\n })\n\n addEventListener(xhr, 'error', function () {\n callback({})\n displayRemoteClocksFetchingError()\n })\n\n xhr.open('GET', buildEndpoint(configuration))\n xhr.send()\n}\n\nexport function buildEndpoint(configuration) {\n var url =\n configuration.datakitOrigin ||\n configuration.datakitUrl ||\n configuration.site\n if (url.indexOf('/') === 0) {\n url = location.origin + trim(url)\n }\n var endpoint = url\n if (url.lastIndexOf('/') === url.length - 1) {\n endpoint = trim(url) + 'v1/env_variable'\n } else {\n endpoint = trim(url) + '/v1/env_variable'\n }\n endpoint += '?app_id=' + configuration.applicationId\n //testing-openway.dataflux.cn/v1/env_variable?token=a47fb0cdddaa4561a90d941317cdbc0b&app_id=d1b454d0_22eb_11ef_9b66_95ca11aa2c6c&to_headless=true\n if (configuration.site && configuration.clientToken) {\n endpoint =\n endpoint + '&token=' + configuration.clientToken + '&to_headless=true'\n }\n return endpoint\n}\n\nfunction displayRemoteClocksFetchingError() {\n display.error('Error fetching the remote configuration.')\n}\n"],"mappings":"AAAA,SAASA,gBAAgB,QAAQ,oBAAoB;AACrD,SAASC,OAAO,QAAQ,mBAAmB;AAC3C,SAASC,IAAI,QAAQ,yCAAyC;AAC9D,IAAIC,UAAU;AACd,OAAO,SAASC,yBAAyBA,CAACC,iBAAiB,EAAEC,QAAQ,EAAE;EACrE,IAAMC,KAAK,GAAGC,WAAW,CAACC,GAAG,CAAC,CAAC;EAC/BC,iBAAiB,CAACL,iBAAiB,EAAE,UAACM,eAAe,EAAK;IACxD,IAAMC,GAAG,GAAGJ,WAAW,CAACC,GAAG,CAAC,CAAC;IAC7B,IAAMI,GAAG,GAAGD,GAAG,GAAGL,KAAK;IACvBD,QAAQ,CAACQ,iBAAiB,CAACH,eAAe,EAAEE,GAAG,EAAEN,KAAK,CAAC,CAAC;EAC1D,CAAC,CAAC;AACJ;AACA,SAASO,iBAAiBA,CAACH,eAAe,EAAEE,GAAG,EAAEN,KAAK,EAAE;EACtD,IAAMQ,mBAAmB,GACvBP,WAAW,CAACQ,MAAM,CAACC,eAAe,GAAGV,KAAK,GAAGM,GAAG,GAAG,CAAC;EAEtD,IAAMK,MAAM,GAAGP,eAAe,GAAGI,mBAAmB;EACpD,OAAOG,MAAM;AACf;AACA,OAAO,SAASR,iBAAiBA,CAACS,aAAa,EAAEb,QAAQ,EAAE;EACzD,IAAMc,GAAG,GAAG,IAAIC,cAAc,CAAC,CAAC;EAEhCrB,gBAAgB,CAACoB,GAAG,EAAE,MAAM,EAAE,YAAY;IACxC,IAAIA,GAAG,CAACE,MAAM,KAAK,GAAG,EAAE;MACtB,IAAMC,mBAAmB,GAAGC,IAAI,CAACC,KAAK,CAACL,GAAG,CAACM,YAAY,CAAC;MACxDpB,QAAQ,CAACiB,mBAAmB,CAACI,OAAO,CAAC;IACvC,CAAC,MAAM;MACLC,gCAAgC,CAAC,CAAC;IACpC;EACF,CAAC,CAAC;EAEF5B,gBAAgB,CAACoB,GAAG,EAAE,OAAO,EAAE,YAAY;IACzCd,QAAQ,CAAC,CAAC,CAAC,CAAC;IACZsB,gCAAgC,CAAC,CAAC;EACpC,CAAC,CAAC;EAEFR,GAAG,CAACS,IAAI,CAAC,KAAK,EAAEC,aAAa,CAACX,aAAa,CAAC,CAAC;EAC7CC,GAAG,CAACW,IAAI,CAAC,CAAC;AACZ;AAEA,OAAO,SAASD,aAAaA,CAACX,aAAa,EAAE;EAC3C,IAAIa,GAAG,GACLb,aAAa,CAACc,aAAa,IAC3Bd,aAAa,CAACe,UAAU,IACxBf,aAAa,CAACgB,IAAI;EACpB,IAAIH,GAAG,CAACI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;IAC1BJ,GAAG,GAAGK,QAAQ,CAACC,MAAM,GAAGpC,IAAI,CAAC8B,GAAG,CAAC;EACnC;EACA,IAAIO,QAAQ,GAAGP,GAAG;EAClB,IAAIA,GAAG,CAACQ,WAAW,CAAC,GAAG,CAAC,KAAKR,GAAG,CAACS,MAAM,GAAG,CAAC,EAAE;IAC3CF,QAAQ,GAAGrC,IAAI,CAAC8B,GAAG,CAAC,GAAG,iBAAiB;EAC1C,CAAC,MAAM;IACLO,QAAQ,GAAGrC,IAAI,CAAC8B,GAAG,CAAC,GAAG,kBAAkB;EAC3C;EACAO,QAAQ,IAAI,UAAU,GAAGpB,aAAa,CAACuB,aAAa;EACpD;EACA,IAAIvB,aAAa,CAACgB,IAAI,IAAIhB,aAAa,CAACwB,WAAW,EAAE;IACnDJ,QAAQ,GACNA,QAAQ,GAAG,SAAS,GAAGpB,aAAa,CAACwB,WAAW,GAAG,mBAAmB;EAC1E;EACA,OAAOJ,QAAQ;AACjB;AAEA,SAASX,gCAAgCA,CAAA,EAAG;EAC1C3B,OAAO,CAAC2C,KAAK,CAAC,0CAA0C,CAAC;AAC3D","ignoreList":[]}
@@ -43,6 +43,7 @@ var modifiableFieldPaths = {
43
43
  actionNameAttribute: 'string',
44
44
  trackViewsManually: 'boolean',
45
45
  workerUrl: 'string',
46
+ replayCanvasWorkerUrl: 'string',
46
47
  compressIntakeRequests: 'boolean',
47
48
  traceType: 'string'
48
49
  };
@@ -1 +1 @@
1
- {"version":3,"file":"remoteConfiguration.js","names":["addEventListener","display","trim","objectEntries","getType","fetchAndApplyRemoteConfiguration","initConfiguration","callback","fetchRemoteConfiguration","remoteInitConfiguration","applyRemoteConfiguration","getSimpleRemoteConfiguration","modifiableFieldPaths","sessionSampleRate","telemetrySampleRate","silentMultipleInit","service","env","version","tracingSampleRate","useCrossSiteSessionCookie","usePartitionedCrossSiteSessionCookie","useSecureSessionCookie","trackSessionAcrossSubdomains","storeContextsToLocal","storeContextsKey","sendContentTypeByJson","allowFallbackToLocalStorage","sessionOnErrorSampleRate","sessionReplaySampleRate","sessionReplayOnErrorSampleRate","trackUserInteractions","trackInteractions","actionNameAttribute","trackViewsManually","workerUrl","compressIntakeRequests","traceType","modificationByFieldsPath","remoteConfiguration","result","forEach","_ref","_ref2","_slicedToArray","fieldPath","fieldType","remoteValue","simpleRemoteInitConfiguration","key","undefined","simpleKey","replace","applicationId","_objectSpread","configuration","xhr","XMLHttpRequest","status","JSON","parse","responseText","content","displayRemoteConfigurationFetchingError","open","buildEndpoint","send","url","datakitOrigin","datakitUrl","site","indexOf","location","origin","endpoint","lastIndexOf","length","clientToken","error"],"sources":["../../src/configuration/remoteConfiguration.js"],"sourcesContent":["import { addEventListener } from '../browser/addEventListener'\nimport { display } from '../helper/display'\nimport { trim } from './transportConfiguration'\nimport { objectEntries, getType } from '../helper/tools'\nexport function fetchAndApplyRemoteConfiguration(initConfiguration, callback) {\n fetchRemoteConfiguration(initConfiguration, (remoteInitConfiguration) => {\n callback(\n applyRemoteConfiguration(initConfiguration, remoteInitConfiguration),\n getSimpleRemoteConfiguration(initConfiguration, remoteInitConfiguration)\n )\n })\n}\n\nconst modifiableFieldPaths = {\n sessionSampleRate: 'number',\n telemetrySampleRate: 'number',\n silentMultipleInit: 'boolean',\n service: 'string',\n env: 'string',\n version: 'string',\n tracingSampleRate: 'number',\n useCrossSiteSessionCookie: 'boolean',\n usePartitionedCrossSiteSessionCookie: 'boolean',\n useSecureSessionCookie: 'boolean',\n trackSessionAcrossSubdomains: 'boolean',\n storeContextsToLocal: 'boolean',\n storeContextsKey: 'string',\n sendContentTypeByJson: 'boolean',\n allowFallbackToLocalStorage: 'boolean',\n sessionOnErrorSampleRate: 'number',\n sessionReplaySampleRate: 'number',\n sessionReplayOnErrorSampleRate: 'number',\n trackUserInteractions: 'boolean',\n trackInteractions: 'boolean',\n actionNameAttribute: 'string',\n trackViewsManually: 'boolean',\n workerUrl: 'string',\n compressIntakeRequests: 'boolean',\n traceType: 'string'\n}\nfunction modificationByFieldsPath(remoteConfiguration, modifiableFieldPaths) {\n const result = {}\n objectEntries(modifiableFieldPaths).forEach(([fieldPath, fieldType]) => {\n // const sourceValue = sourceConfiguration[fieldPath]\n const remoteValue = remoteConfiguration[fieldPath]\n if (getType(remoteValue) === fieldType) {\n result[fieldPath] = remoteValue\n }\n })\n return result\n}\nexport function getSimpleRemoteConfiguration(\n initConfiguration,\n remoteInitConfiguration\n) {\n const simpleRemoteInitConfiguration = {}\n for (const key in remoteInitConfiguration) {\n if (remoteInitConfiguration[key] !== undefined) {\n // ex\n // {\n // \"R.d1b454d0_22eb_11ef_9b66_95ca11aa2c6c.sessionSampleRate\": 80\n // }\n // transform to\n // {\n // \"sessionSampleRate\": 80\n // }\n const simpleKey = key.replace(\n 'R.' + initConfiguration.applicationId + '.',\n ''\n )\n simpleRemoteInitConfiguration[simpleKey] = remoteInitConfiguration[key]\n }\n }\n return simpleRemoteInitConfiguration\n}\nexport function applyRemoteConfiguration(\n initConfiguration,\n remoteInitConfiguration\n) {\n const simpleRemoteInitConfiguration = getSimpleRemoteConfiguration(\n initConfiguration,\n remoteInitConfiguration\n )\n return {\n ...initConfiguration,\n ...modificationByFieldsPath(\n simpleRemoteInitConfiguration,\n modifiableFieldPaths\n )\n }\n}\n\nexport function fetchRemoteConfiguration(configuration, callback) {\n const xhr = new XMLHttpRequest()\n\n addEventListener(xhr, 'load', function () {\n if (xhr.status === 200) {\n const remoteConfiguration = JSON.parse(xhr.responseText)\n callback(remoteConfiguration.content)\n } else {\n callback({})\n displayRemoteConfigurationFetchingError()\n }\n })\n\n addEventListener(xhr, 'error', function () {\n callback({})\n displayRemoteConfigurationFetchingError()\n })\n\n xhr.open('GET', buildEndpoint(configuration))\n xhr.send()\n}\n\nexport function buildEndpoint(configuration) {\n var url =\n configuration.datakitOrigin ||\n configuration.datakitUrl ||\n configuration.site\n if (url.indexOf('/') === 0) {\n url = location.origin + trim(url)\n }\n var endpoint = url\n if (url.lastIndexOf('/') === url.length - 1) {\n endpoint = trim(url) + 'v1/env_variable'\n } else {\n endpoint = trim(url) + '/v1/env_variable'\n }\n endpoint += '?app_id=' + configuration.applicationId\n //testing-openway.dataflux.cn/v1/env_variable?token=a47fb0cdddaa4561a90d941317cdbc0b&app_id=d1b454d0_22eb_11ef_9b66_95ca11aa2c6c&to_headless=true\n if (configuration.site && configuration.clientToken) {\n endpoint =\n endpoint + '&token=' + configuration.clientToken + '&to_headless=true'\n }\n return endpoint\n}\n\nfunction displayRemoteConfigurationFetchingError() {\n display.error('Error fetching the remote configuration.')\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"remoteConfiguration.js","names":["addEventListener","display","trim","objectEntries","getType","fetchAndApplyRemoteConfiguration","initConfiguration","callback","fetchRemoteConfiguration","remoteInitConfiguration","applyRemoteConfiguration","getSimpleRemoteConfiguration","modifiableFieldPaths","sessionSampleRate","telemetrySampleRate","silentMultipleInit","service","env","version","tracingSampleRate","useCrossSiteSessionCookie","usePartitionedCrossSiteSessionCookie","useSecureSessionCookie","trackSessionAcrossSubdomains","storeContextsToLocal","storeContextsKey","sendContentTypeByJson","allowFallbackToLocalStorage","sessionOnErrorSampleRate","sessionReplaySampleRate","sessionReplayOnErrorSampleRate","trackUserInteractions","trackInteractions","actionNameAttribute","trackViewsManually","workerUrl","replayCanvasWorkerUrl","compressIntakeRequests","traceType","modificationByFieldsPath","remoteConfiguration","result","forEach","_ref","_ref2","_slicedToArray","fieldPath","fieldType","remoteValue","simpleRemoteInitConfiguration","key","undefined","simpleKey","replace","applicationId","_objectSpread","configuration","xhr","XMLHttpRequest","status","JSON","parse","responseText","content","displayRemoteConfigurationFetchingError","open","buildEndpoint","send","url","datakitOrigin","datakitUrl","site","indexOf","location","origin","endpoint","lastIndexOf","length","clientToken","error"],"sources":["../../src/configuration/remoteConfiguration.js"],"sourcesContent":["import { addEventListener } from '../browser/addEventListener'\nimport { display } from '../helper/display'\nimport { trim } from './transportConfiguration'\nimport { objectEntries, getType } from '../helper/tools'\nexport function fetchAndApplyRemoteConfiguration(initConfiguration, callback) {\n fetchRemoteConfiguration(initConfiguration, (remoteInitConfiguration) => {\n callback(\n applyRemoteConfiguration(initConfiguration, remoteInitConfiguration),\n getSimpleRemoteConfiguration(initConfiguration, remoteInitConfiguration)\n )\n })\n}\n\nconst modifiableFieldPaths = {\n sessionSampleRate: 'number',\n telemetrySampleRate: 'number',\n silentMultipleInit: 'boolean',\n service: 'string',\n env: 'string',\n version: 'string',\n tracingSampleRate: 'number',\n useCrossSiteSessionCookie: 'boolean',\n usePartitionedCrossSiteSessionCookie: 'boolean',\n useSecureSessionCookie: 'boolean',\n trackSessionAcrossSubdomains: 'boolean',\n storeContextsToLocal: 'boolean',\n storeContextsKey: 'string',\n sendContentTypeByJson: 'boolean',\n allowFallbackToLocalStorage: 'boolean',\n sessionOnErrorSampleRate: 'number',\n sessionReplaySampleRate: 'number',\n sessionReplayOnErrorSampleRate: 'number',\n trackUserInteractions: 'boolean',\n trackInteractions: 'boolean',\n actionNameAttribute: 'string',\n trackViewsManually: 'boolean',\n workerUrl: 'string',\n replayCanvasWorkerUrl: 'string',\n compressIntakeRequests: 'boolean',\n traceType: 'string'\n}\nfunction modificationByFieldsPath(remoteConfiguration, modifiableFieldPaths) {\n const result = {}\n objectEntries(modifiableFieldPaths).forEach(([fieldPath, fieldType]) => {\n // const sourceValue = sourceConfiguration[fieldPath]\n const remoteValue = remoteConfiguration[fieldPath]\n if (getType(remoteValue) === fieldType) {\n result[fieldPath] = remoteValue\n }\n })\n return result\n}\nexport function getSimpleRemoteConfiguration(\n initConfiguration,\n remoteInitConfiguration\n) {\n const simpleRemoteInitConfiguration = {}\n for (const key in remoteInitConfiguration) {\n if (remoteInitConfiguration[key] !== undefined) {\n // ex\n // {\n // \"R.d1b454d0_22eb_11ef_9b66_95ca11aa2c6c.sessionSampleRate\": 80\n // }\n // transform to\n // {\n // \"sessionSampleRate\": 80\n // }\n const simpleKey = key.replace(\n 'R.' + initConfiguration.applicationId + '.',\n ''\n )\n simpleRemoteInitConfiguration[simpleKey] = remoteInitConfiguration[key]\n }\n }\n return simpleRemoteInitConfiguration\n}\nexport function applyRemoteConfiguration(\n initConfiguration,\n remoteInitConfiguration\n) {\n const simpleRemoteInitConfiguration = getSimpleRemoteConfiguration(\n initConfiguration,\n remoteInitConfiguration\n )\n return {\n ...initConfiguration,\n ...modificationByFieldsPath(\n simpleRemoteInitConfiguration,\n modifiableFieldPaths\n )\n }\n}\n\nexport function fetchRemoteConfiguration(configuration, callback) {\n const xhr = new XMLHttpRequest()\n\n addEventListener(xhr, 'load', function () {\n if (xhr.status === 200) {\n const remoteConfiguration = JSON.parse(xhr.responseText)\n callback(remoteConfiguration.content)\n } else {\n callback({})\n displayRemoteConfigurationFetchingError()\n }\n })\n\n addEventListener(xhr, 'error', function () {\n callback({})\n displayRemoteConfigurationFetchingError()\n })\n\n xhr.open('GET', buildEndpoint(configuration))\n xhr.send()\n}\n\nexport function buildEndpoint(configuration) {\n var url =\n configuration.datakitOrigin ||\n configuration.datakitUrl ||\n configuration.site\n if (url.indexOf('/') === 0) {\n url = location.origin + trim(url)\n }\n var endpoint = url\n if (url.lastIndexOf('/') === url.length - 1) {\n endpoint = trim(url) + 'v1/env_variable'\n } else {\n endpoint = trim(url) + '/v1/env_variable'\n }\n endpoint += '?app_id=' + configuration.applicationId\n //testing-openway.dataflux.cn/v1/env_variable?token=a47fb0cdddaa4561a90d941317cdbc0b&app_id=d1b454d0_22eb_11ef_9b66_95ca11aa2c6c&to_headless=true\n if (configuration.site && configuration.clientToken) {\n endpoint =\n endpoint + '&token=' + configuration.clientToken + '&to_headless=true'\n }\n return endpoint\n}\n\nfunction displayRemoteConfigurationFetchingError() {\n display.error('Error fetching the remote configuration.')\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,11 +1,26 @@
1
1
  import { display } from '../helper/display';
2
2
  import { monitor } from '../helper/monitor';
3
+ function getBrowserWindow() {
4
+ return typeof window !== 'undefined' ? window : undefined;
5
+ }
6
+ function getNavigator() {
7
+ var browserWindow = getBrowserWindow();
8
+ return browserWindow && typeof browserWindow.navigator !== 'undefined' ? browserWindow.navigator : {};
9
+ }
10
+ function getUserAgent() {
11
+ return getNavigator().userAgent || '';
12
+ }
13
+ function getTarget(target, context) {
14
+ return target || context || {};
15
+ }
3
16
  var VariableLibrary = {
4
- navigator: typeof window !== 'undefined' && typeof window.navigator != 'undefined' ? window.navigator : {},
17
+ get navigator() {
18
+ return getNavigator();
19
+ },
5
20
  infoMap: {
6
21
  engine: ['WebKit', 'Trident', 'Gecko', 'Presto'],
7
- browser: ['Safari', 'Chrome', 'Edge', 'IE', 'IE 11', 'IE 10', 'IE 9', 'IE 8', 'IE 7', 'Firefox', 'Firefox Focus', 'Chromium', 'Opera', 'Vivaldi', 'Yandex', 'Arora', 'Lunascape', 'QupZilla', 'Coc Coc', 'Kindle', 'Iceweasel', 'Konqueror', 'Iceape', 'SeaMonkey', 'Epiphany', '360', '360SE', '360EE', 'UC', 'QQBrowser', 'QQ', 'Baidu', 'Maxthon', 'Sogou', 'LBBROWSER', '2345Explorer', 'TheWorld', 'XiaoMi', 'Quark', 'Qiyu', 'Wechat',, 'WechatWork', 'Taobao', 'Alipay', 'Weibo', 'Douban', 'Suning', 'iQiYi'],
8
- os: ['Windows', 'Linux', 'Mac OS', 'Android', 'Ubuntu', 'FreeBSD', 'Debian', 'iOS', 'Windows Phone', 'BlackBerry', 'MeeGo', 'Symbian', 'Chrome OS', 'WebOS'],
22
+ browser: ['Safari', 'Chrome', 'Edge', 'IE', 'IE 11', 'IE 10', 'IE 9', 'IE 8', 'IE 7', 'Firefox', 'Firefox Focus', 'Chromium', 'Opera', 'Vivaldi', 'Yandex', 'Arora', 'Lunascape', 'QupZilla', 'Coc Coc', 'Kindle', 'Iceweasel', 'Konqueror', 'Iceape', 'SeaMonkey', 'Epiphany', '360', '360SE', '360EE', 'UC', 'QQBrowser', 'QQ', 'Baidu', 'Maxthon', 'Sogou', 'LBBROWSER', '2345Explorer', 'TheWorld', 'XiaoMi', 'Quark', 'Qiyu', 'Wechat', 'WechatWork', 'Taobao', 'Alipay', 'Weibo', 'Douban', 'Suning', 'iQiYi'],
23
+ os: ['Windows', 'Linux', 'Mac OS', 'Android', 'HarmonyOS', 'Ubuntu', 'FreeBSD', 'Debian', 'iOS', 'Windows Phone', 'BlackBerry', 'MeeGo', 'Symbian', 'Chrome OS', 'WebOS'],
9
24
  device: ['Mobile', 'Tablet', 'iPad']
10
25
  }
11
26
  };
@@ -62,6 +77,7 @@ var MethodLibrary = {
62
77
  Linux: u.indexOf('Linux') > -1 || u.indexOf('X11') > -1,
63
78
  'Mac OS': u.indexOf('Macintosh') > -1,
64
79
  Android: u.indexOf('Android') > -1 || u.indexOf('Adr') > -1,
80
+ HarmonyOS: u.indexOf('HarmonyOS') > -1 || u.indexOf('OpenHarmony') > -1 || u.indexOf('HMOS') > -1,
65
81
  Ubuntu: u.indexOf('Ubuntu') > -1,
66
82
  FreeBSD: u.indexOf('FreeBSD') > -1,
67
83
  Debian: u.indexOf('Debian') > -1,
@@ -77,8 +93,9 @@ var MethodLibrary = {
77
93
  iPad: u.indexOf('iPad') > -1
78
94
  };
79
95
  }),
80
- matchInfoMap: monitor(function (_this) {
81
- var u = VariableLibrary.navigator.userAgent || '';
96
+ matchInfoMap: monitor(function (target) {
97
+ var _this = getTarget(target, this);
98
+ var u = getUserAgent();
82
99
  var match = MethodLibrary.getMatchMap(u);
83
100
  for (var s in VariableLibrary.infoMap) {
84
101
  for (var i = 0; i < VariableLibrary.infoMap[s].length; i++) {
@@ -89,14 +106,15 @@ var MethodLibrary = {
89
106
  }
90
107
  }
91
108
  }),
92
- getOS: monitor(function () {
93
- var _this = this;
109
+ getOS: monitor(function (target) {
110
+ var _this = getTarget(target, this);
111
+ _this.os = '';
94
112
  MethodLibrary.matchInfoMap(_this);
95
113
  return _this.os || 'Unknown';
96
114
  }),
97
- getOSVersion: monitor(function () {
98
- var _this = this;
99
- var u = VariableLibrary.navigator.userAgent || '';
115
+ getOSVersion: monitor(function (target) {
116
+ var _this = getTarget(target, this);
117
+ var u = getUserAgent();
100
118
  _this.osVersion = '';
101
119
  _this.osMajor = '';
102
120
  var osVersion = {
@@ -117,6 +135,9 @@ var MethodLibrary = {
117
135
  Android: function Android() {
118
136
  return u.replace(/^.*Android ([\d.]+);.*$/, '$1');
119
137
  },
138
+ HarmonyOS: function HarmonyOS() {
139
+ return u.replace(/^.*(?:HarmonyOS|OpenHarmony)[\/\s]([\d.]+).*$/, '$1').replace(/^.*HMOS[\s\/]([\d.]+).*$/, '$1');
140
+ },
120
141
  iOS: function iOS() {
121
142
  return u.replace(/^.*OS ([\d_]+) like.*$/, '$1').replace(/_/g, '.');
122
143
  },
@@ -147,14 +168,18 @@ var MethodLibrary = {
147
168
  osMajor: _this.osMajor
148
169
  };
149
170
  }),
150
- getDeviceType: monitor(function () {
151
- var _this = this;
171
+ getDeviceType: monitor(function (target) {
172
+ var _this = getTarget(target, this);
152
173
  _this.device = 'PC';
153
174
  MethodLibrary.matchInfoMap(_this);
154
175
  return _this.device;
155
176
  }),
156
177
  getNetwork: monitor(function () {
157
- var connection = window.navigator.connection || window.navigator.mozConnection || window.navigator.webkitConnection;
178
+ var browserWindow = getBrowserWindow();
179
+ if (!browserWindow || !browserWindow.navigator) {
180
+ return 'unknown';
181
+ }
182
+ var connection = browserWindow.navigator.connection || browserWindow.navigator.mozConnection || browserWindow.navigator.webkitConnection;
158
183
  var result = 'unknown';
159
184
  var type = connection ? connection.type || connection.effectiveType : null;
160
185
  if (type && typeof type === 'string') {
@@ -191,10 +216,11 @@ var MethodLibrary = {
191
216
  }
192
217
  return result;
193
218
  }),
194
- getLanguage: monitor(function () {
195
- var _this = this;
219
+ getLanguage: monitor(function (target) {
220
+ var _this = getTarget(target, this);
196
221
  _this.language = function () {
197
- var language = VariableLibrary.navigator.browserLanguage || VariableLibrary.navigator.language || '';
222
+ var navigator = getNavigator();
223
+ var language = navigator.browserLanguage || navigator.language || '';
198
224
  var arr = language.split('-');
199
225
  if (arr[1]) {
200
226
  arr[1] = arr[1].toUpperCase();
@@ -211,12 +237,19 @@ var MethodLibrary = {
211
237
  return undefined;
212
238
  }
213
239
  }),
214
- getBrowserInfo: monitor(function () {
215
- var _this = this;
240
+ getBrowserInfo: monitor(function (target) {
241
+ var _this = getTarget(target, this);
242
+ _this.engine = '';
243
+ _this.browser = '';
216
244
  MethodLibrary.matchInfoMap(_this);
217
- var u = VariableLibrary.navigator.userAgent || '';
245
+ var browserWindow = getBrowserWindow();
246
+ var navigator = getNavigator();
247
+ var u = getUserAgent();
218
248
  var _mime = function _mime(option, value) {
219
- var mimeTypes = VariableLibrary.navigator.mimeTypes;
249
+ var mimeTypes = navigator.mimeTypes;
250
+ if (!mimeTypes) {
251
+ return false;
252
+ }
220
253
  for (var key in mimeTypes) {
221
254
  if (mimeTypes[key][option] == value) {
222
255
  return true;
@@ -226,9 +259,9 @@ var MethodLibrary = {
226
259
  };
227
260
  var match = MethodLibrary.getMatchMap(u);
228
261
  var is360 = false;
229
- if (typeof window !== 'undefined' && window.chrome) {
262
+ if (browserWindow && browserWindow.chrome) {
230
263
  var chrome_version = u.replace(/^.*Chrome\/([\d]+).*$/, '$1');
231
- if (chrome_version > 36 && window.showModalDialog) {
264
+ if (chrome_version > 36 && browserWindow.showModalDialog) {
232
265
  is360 = true;
233
266
  } else if (chrome_version > 45) {
234
267
  is360 = _mime('type', 'application/vnd.chromium.remoting-viewer');
@@ -243,14 +276,14 @@ var MethodLibrary = {
243
276
  if (is360) {
244
277
  if (_mime('type', 'application/gameplugin')) {
245
278
  match['360SE'] = true;
246
- } else if (VariableLibrary.navigator && VariableLibrary.navigator.connection && typeof VariableLibrary.navigator['connection']['saveData'] == 'undefined') {
279
+ } else if (navigator && navigator.connection && typeof navigator['connection']['saveData'] == 'undefined') {
247
280
  match['360SE'] = true;
248
281
  } else {
249
282
  match['360EE'] = true;
250
283
  }
251
284
  }
252
- if (match['IE'] || match['Edge']) {
253
- var navigator_top = window.screenTop - window.screenY;
285
+ if (browserWindow && (match['IE'] || match['Edge'])) {
286
+ var navigator_top = browserWindow.screenTop - browserWindow.screenY;
254
287
  switch (navigator_top) {
255
288
  case 71:
256
289
  break;
@@ -447,10 +480,10 @@ var MethodLibrary = {
447
480
  }
448
481
  if (_this.browser == 'Chrome' && u.match(/\S+Browser/)) {
449
482
  _this.browser = u.match(/\S+Browser/)[0];
450
- _this.version = u.replace(/^.*Browser\/([\d.]+).*$/, '$1');
483
+ _this.browserVersion = u.replace(/^.*Browser\/([\d.]+).*$/, '$1');
451
484
  }
452
485
  if (_this.browser == 'Edge') {
453
- if (_this.version > '75') {
486
+ if (_this.browserVersion > '75') {
454
487
  _this.engine = 'Blink';
455
488
  } else {
456
489
  _this.engine = 'EdgeHTML';
@@ -460,22 +493,23 @@ var MethodLibrary = {
460
493
  _this.engine = 'Blink';
461
494
  } else if (match['Chrome'] && _this.engine == 'WebKit' && parseInt(_this.browserVersion) > 27) {
462
495
  _this.engine = 'Blink';
463
- } else if (_this.browser == 'Opera' && parseInt(_this.version) > 12) {
496
+ } else if (_this.browser == 'Opera' && parseInt(_this.browserVersion) > 12) {
464
497
  _this.engine = 'Blink';
465
498
  } else if (_this.browser == 'Yandex') {
466
499
  _this.engine = 'Blink';
467
500
  }
468
501
  if (_this.browserVersion) {
469
- _this.browserMajor = _this.browserVersion.split('.').length && this.browserVersion.split('.')[0];
502
+ _this.browserMajor = _this.browserVersion.split('.').length && _this.browserVersion.split('.')[0];
470
503
  }
471
504
  return {
472
505
  browser: _this.browser,
473
506
  browserVersion: _this.browserVersion,
474
- engine: _this.engine,
507
+ engine: _this.engine || 'Unknown',
475
508
  browserMajor: _this.browserMajor
476
509
  };
477
510
  }),
478
- getGeoPostion: monitor(function (callback) {
511
+ getGeoPosition: monitor(function (callback) {
512
+ var navigator = getNavigator();
479
513
  navigator && navigator.geolocation && navigator.geolocation.getCurrentPosition(function (position) {
480
514
  callback(position);
481
515
  }, function (error) {
@@ -483,21 +517,33 @@ var MethodLibrary = {
483
517
  });
484
518
  })
485
519
  };
486
- var _deviceInfo = {};
487
- if (typeof window !== 'undefined') {
488
- _deviceInfo = {
489
- os: MethodLibrary.getOS(),
490
- osVersion: MethodLibrary.getOSVersion().version,
491
- osVersionMajor: MethodLibrary.getOSVersion().osMajor,
492
- browser: MethodLibrary.getBrowserInfo().browser,
493
- browserVersion: MethodLibrary.getBrowserInfo().browserVersion,
494
- browserVersionMajor: MethodLibrary.getBrowserInfo().browserMajor,
495
- screenSize: window.screen.width + '*' + window.screen.height,
520
+ MethodLibrary.getGeoPostion = MethodLibrary.getGeoPosition;
521
+ export function getDeviceInfo() {
522
+ var browserWindow = getBrowserWindow();
523
+ if (!browserWindow) {
524
+ return {};
525
+ }
526
+ var screen = browserWindow.screen || {
527
+ width: 0,
528
+ height: 0
529
+ };
530
+ var target = {};
531
+ var osInfo = MethodLibrary.getOS(target);
532
+ var osVersionInfo = MethodLibrary.getOSVersion(target);
533
+ var browserInfo = MethodLibrary.getBrowserInfo(target);
534
+ return {
535
+ os: osInfo,
536
+ osVersion: osVersionInfo.version,
537
+ osVersionMajor: osVersionInfo.osMajor,
538
+ browser: browserInfo.browser,
539
+ browserVersion: browserInfo.browserVersion,
540
+ browserVersionMajor: browserInfo.browserMajor,
541
+ screenSize: screen.width + '*' + screen.height,
496
542
  networkType: MethodLibrary.getNetwork(),
497
- device: MethodLibrary.getDeviceType(),
543
+ device: MethodLibrary.getDeviceType(target),
498
544
  timeZone: MethodLibrary.getTimeZone(),
499
- userAgent: VariableLibrary.navigator.userAgent || ''
545
+ userAgent: getUserAgent()
500
546
  };
501
547
  }
502
- export var deviceInfo = _deviceInfo;
548
+ export var deviceInfo = getDeviceInfo();
503
549
  //# sourceMappingURL=deviceInfo.js.map