@cloudcare/browser-core 3.2.48 → 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.
- package/cjs/browser/asyncClocks.js +2 -2
- package/cjs/browser/asyncClocks.js.map +1 -1
- package/cjs/configuration/remoteConfiguration.js +1 -0
- package/cjs/configuration/remoteConfiguration.js.map +1 -1
- package/cjs/console/consoleObservable.js +17 -11
- package/cjs/console/consoleObservable.js.map +1 -1
- package/cjs/helper/deviceInfo.js +91 -44
- package/cjs/helper/deviceInfo.js.map +1 -1
- package/cjs/helper/errorTools.js +12 -7
- package/cjs/helper/errorTools.js.map +1 -1
- package/cjs/helper/monitor.js +11 -7
- package/cjs/helper/monitor.js.map +1 -1
- package/cjs/helper/polyfills.js +1 -1
- package/cjs/helper/polyfills.js.map +1 -1
- package/cjs/helper/tools.js +4 -4
- package/cjs/helper/tools.js.map +1 -1
- package/cjs/helper/valueHistory.js +1 -1
- package/cjs/helper/valueHistory.js.map +1 -1
- package/cjs/report/reportObservable.js +2 -2
- package/cjs/report/reportObservable.js.map +1 -1
- package/cjs/session/sessionManagement.js +1 -0
- package/cjs/session/sessionManagement.js.map +1 -1
- package/cjs/session/sessionStore.js +1 -1
- package/cjs/session/sessionStore.js.map +1 -1
- package/cjs/synthetics/syntheticsWorkerValues.js +2 -2
- package/cjs/synthetics/syntheticsWorkerValues.js.map +1 -1
- package/esm/browser/asyncClocks.js +2 -2
- package/esm/browser/asyncClocks.js.map +1 -1
- package/esm/configuration/remoteConfiguration.js +1 -0
- package/esm/configuration/remoteConfiguration.js.map +1 -1
- package/esm/console/consoleObservable.js +19 -13
- package/esm/console/consoleObservable.js.map +1 -1
- package/esm/helper/deviceInfo.js +90 -44
- package/esm/helper/deviceInfo.js.map +1 -1
- package/esm/helper/errorTools.js +11 -7
- package/esm/helper/errorTools.js.map +1 -1
- package/esm/helper/monitor.js +10 -7
- package/esm/helper/monitor.js.map +1 -1
- package/esm/helper/polyfills.js +1 -1
- package/esm/helper/polyfills.js.map +1 -1
- package/esm/helper/tools.js +4 -4
- package/esm/helper/tools.js.map +1 -1
- package/esm/helper/valueHistory.js +1 -1
- package/esm/helper/valueHistory.js.map +1 -1
- package/esm/report/reportObservable.js +2 -0
- package/esm/report/reportObservable.js.map +1 -1
- package/esm/session/sessionManagement.js +1 -0
- package/esm/session/sessionManagement.js.map +1 -1
- package/esm/session/sessionStore.js +1 -1
- package/esm/session/sessionStore.js.map +1 -1
- package/esm/synthetics/syntheticsWorkerValues.js +2 -2
- package/esm/synthetics/syntheticsWorkerValues.js.map +1 -1
- package/package.json +2 -2
- package/src/browser/asyncClocks.js +2 -2
- package/src/configuration/remoteConfiguration.js +1 -0
- package/src/console/consoleObservable.js +20 -18
- package/src/helper/deviceInfo.js +105 -53
- package/src/helper/errorTools.js +22 -12
- package/src/helper/monitor.js +10 -8
- package/src/helper/polyfills.js +1 -1
- package/src/helper/tools.js +4 -4
- package/src/helper/valueHistory.js +1 -1
- package/src/report/reportObservable.js +2 -0
- package/src/session/sessionManagement.js +1 -0
- package/src/session/sessionStore.js +4 -1
- package/src/synthetics/syntheticsWorkerValues.js +6 -4
- package/types/index.d.ts +74 -0
|
@@ -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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
|
|
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
|
|
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
|
|
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
|
|
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;
|
|
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":[]}
|
|
@@ -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":";;;;;;;;;;;;AAAA,SAASA,gBAAgB,QAAQ,6BAA6B;AAC9D,SAASC,OAAO,QAAQ,mBAAmB;AAC3C,SAASC,IAAI,QAAQ,0BAA0B;AAC/C,SAASC,aAAa,EAAEC,OAAO,QAAQ,iBAAiB;AACxD,OAAO,SAASC,gCAAgCA,CAACC,iBAAiB,EAAEC,QAAQ,EAAE;EAC5EC,wBAAwB,CAACF,iBAAiB,EAAE,UAACG,uBAAuB,EAAK;IACvEF,QAAQ,CACNG,wBAAwB,CAACJ,iBAAiB,EAAEG,uBAAuB,CAAC,EACpEE,4BAA4B,CAACL,iBAAiB,EAAEG,uBAAuB,CACzE,CAAC;EACH,CAAC,CAAC;AACJ;AAEA,IAAMG,oBAAoB,GAAG;EAC3BC,iBAAiB,EAAE,QAAQ;EAC3BC,mBAAmB,EAAE,QAAQ;EAC7BC,kBAAkB,EAAE,SAAS;EAC7BC,OAAO,EAAE,QAAQ;EACjBC,GAAG,EAAE,QAAQ;EACbC,OAAO,EAAE,QAAQ;EACjBC,iBAAiB,EAAE,QAAQ;EAC3BC,yBAAyB,EAAE,SAAS;EACpCC,oCAAoC,EAAE,SAAS;EAC/CC,sBAAsB,EAAE,SAAS;EACjCC,4BAA4B,EAAE,SAAS;EACvCC,oBAAoB,EAAE,SAAS;EAC/BC,gBAAgB,EAAE,QAAQ;EAC1BC,qBAAqB,EAAE,SAAS;EAChCC,2BAA2B,EAAE,SAAS;EACtCC,wBAAwB,EAAE,QAAQ;EAClCC,uBAAuB,EAAE,QAAQ;EACjCC,8BAA8B,EAAE,QAAQ;EACxCC,qBAAqB,EAAE,SAAS;EAChCC,iBAAiB,EAAE,SAAS;EAC5BC,mBAAmB,EAAE,QAAQ;EAC7BC,kBAAkB,EAAE,SAAS;EAC7BC,SAAS,EAAE,QAAQ;EACnBC,sBAAsB,EAAE,SAAS;EACjCC,SAAS,EAAE;AACb,CAAC;AACD,SAASC,wBAAwBA,CAACC,mBAAmB,
|
|
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,12 +1,13 @@
|
|
|
1
1
|
import { computeStackTrace } from '../tracekit';
|
|
2
|
-
import { createHandlingStack, formatErrorMessage,
|
|
2
|
+
import { createHandlingStack, formatErrorMessage, computeRawError, isError } from '../helper/errorTools';
|
|
3
3
|
import { mergeObservables, Observable } from '../helper/observable';
|
|
4
4
|
import { find, map, clocksNow } from '../helper/tools';
|
|
5
5
|
import { jsonStringify } from '../helper/serialisation/jsonStringify';
|
|
6
6
|
import { ConsoleApiName } from '../helper/display';
|
|
7
7
|
import { callMonitored } from '../helper/monitor';
|
|
8
|
-
import { ErrorHandling } from '../helper/enums';
|
|
8
|
+
import { ErrorHandling, NonErrorPrefix } from '../helper/enums';
|
|
9
9
|
import { ErrorSource } from '../helper/errorTools';
|
|
10
|
+
import { sanitize } from '../helper/sanitize';
|
|
10
11
|
var consoleObservablesByApi = {};
|
|
11
12
|
export function initConsoleObservable(apis) {
|
|
12
13
|
var consoleObservables = map(apis, function (api) {
|
|
@@ -41,35 +42,40 @@ function buildConsoleLog(params, api, handlingStack) {
|
|
|
41
42
|
var message = map(params, function (param) {
|
|
42
43
|
return formatConsoleParameters(param);
|
|
43
44
|
}).join(' ');
|
|
44
|
-
var error;
|
|
45
45
|
if (api === ConsoleApiName.error) {
|
|
46
|
-
var firstErrorParam = find(params,
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
error = {
|
|
50
|
-
stack: firstErrorParam ? toStackTraceString(computeStackTrace(firstErrorParam)) : undefined,
|
|
51
|
-
causes: firstErrorParam ? flattenErrorCauses(firstErrorParam, 'console') : undefined,
|
|
46
|
+
var firstErrorParam = find(params, isError);
|
|
47
|
+
var rawError = computeRawError({
|
|
48
|
+
originalError: firstErrorParam,
|
|
52
49
|
startClocks: clocksNow(),
|
|
53
50
|
message: message,
|
|
54
51
|
source: ErrorSource.CONSOLE,
|
|
55
52
|
handling: ErrorHandling.HANDLED,
|
|
53
|
+
handlingStack: handlingStack,
|
|
54
|
+
nonErrorPrefix: NonErrorPrefix.PROVIDED,
|
|
55
|
+
useFallbackStack: false
|
|
56
|
+
});
|
|
57
|
+
rawError.message = message;
|
|
58
|
+
return {
|
|
59
|
+
api: api,
|
|
60
|
+
message: message,
|
|
61
|
+
error: rawError,
|
|
56
62
|
handlingStack: handlingStack
|
|
57
63
|
};
|
|
58
64
|
}
|
|
59
65
|
return {
|
|
60
66
|
api: api,
|
|
61
67
|
message: message,
|
|
62
|
-
error:
|
|
68
|
+
error: undefined,
|
|
63
69
|
handlingStack: handlingStack
|
|
64
70
|
};
|
|
65
71
|
}
|
|
66
72
|
function formatConsoleParameters(param) {
|
|
67
73
|
if (typeof param === 'string') {
|
|
68
|
-
return param;
|
|
74
|
+
return sanitize(param);
|
|
69
75
|
}
|
|
70
|
-
if (param
|
|
76
|
+
if (isError(param)) {
|
|
71
77
|
return formatErrorMessage(computeStackTrace(param));
|
|
72
78
|
}
|
|
73
|
-
return jsonStringify(param, undefined, 2);
|
|
79
|
+
return jsonStringify(sanitize(param), undefined, 2);
|
|
74
80
|
}
|
|
75
81
|
//# sourceMappingURL=consoleObservable.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consoleObservable.js","names":["computeStackTrace","createHandlingStack","formatErrorMessage","
|
|
1
|
+
{"version":3,"file":"consoleObservable.js","names":["computeStackTrace","createHandlingStack","formatErrorMessage","computeRawError","isError","mergeObservables","Observable","find","map","clocksNow","jsonStringify","ConsoleApiName","callMonitored","ErrorHandling","NonErrorPrefix","ErrorSource","sanitize","consoleObservablesByApi","initConsoleObservable","apis","consoleObservables","api","createConsoleObservable","apply","resetConsoleObservable","observable","originalConsoleApi","console","params","slice","call","arguments","handlingStack","notify","buildConsoleLog","message","param","formatConsoleParameters","join","error","firstErrorParam","rawError","originalError","startClocks","source","CONSOLE","handling","HANDLED","nonErrorPrefix","PROVIDED","useFallbackStack","undefined"],"sources":["../../src/console/consoleObservable.js"],"sourcesContent":["import { computeStackTrace } from '../tracekit'\nimport {\n createHandlingStack,\n formatErrorMessage,\n computeRawError,\n isError\n} from '../helper/errorTools'\nimport { mergeObservables, Observable } from '../helper/observable'\nimport { find, map, clocksNow } from '../helper/tools'\nimport { jsonStringify } from '../helper/serialisation/jsonStringify'\nimport { ConsoleApiName } from '../helper/display'\nimport { callMonitored } from '../helper/monitor'\nimport { ErrorHandling, NonErrorPrefix } from '../helper/enums'\nimport { ErrorSource } from '../helper/errorTools'\nimport { sanitize } from '../helper/sanitize'\nvar consoleObservablesByApi = {}\n\nexport function initConsoleObservable(apis) {\n var consoleObservables = map(apis, function (api) {\n if (!consoleObservablesByApi[api]) {\n consoleObservablesByApi[api] = createConsoleObservable(api)\n }\n return consoleObservablesByApi[api]\n })\n\n return mergeObservables.apply(this, consoleObservables)\n}\nexport function resetConsoleObservable() {\n consoleObservablesByApi = {}\n}\n/* eslint-disable no-console */\nfunction createConsoleObservable(api) {\n return new Observable(function (observable) {\n var originalConsoleApi = console[api]\n console[api] = function () {\n var params = [].slice.call(arguments)\n originalConsoleApi.apply(console, arguments)\n var handlingStack = createHandlingStack()\n callMonitored(function () {\n observable.notify(buildConsoleLog(params, api, handlingStack))\n })\n }\n return function () {\n console[api] = originalConsoleApi\n }\n })\n}\n\nfunction buildConsoleLog(params, api, handlingStack) {\n var message = map(params, function (param) {\n return formatConsoleParameters(param)\n }).join(' ')\n if (api === ConsoleApiName.error) {\n var firstErrorParam = find(params, isError)\n const rawError = computeRawError({\n originalError: firstErrorParam,\n startClocks: clocksNow(),\n message: message,\n source: ErrorSource.CONSOLE,\n handling: ErrorHandling.HANDLED,\n handlingStack: handlingStack,\n nonErrorPrefix: NonErrorPrefix.PROVIDED,\n useFallbackStack: false\n })\n rawError.message = message\n return {\n api: api,\n message: message,\n error: rawError,\n handlingStack: handlingStack\n }\n }\n\n return {\n api: api,\n message: message,\n error: undefined,\n handlingStack: handlingStack\n }\n}\n\nfunction formatConsoleParameters(param) {\n if (typeof param === 'string') {\n return sanitize(param)\n }\n if (isError(param)) {\n return formatErrorMessage(computeStackTrace(param))\n }\n return jsonStringify(sanitize(param), undefined, 2)\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,aAAa;AAC/C,SACEC,mBAAmB,EACnBC,kBAAkB,EAClBC,eAAe,EACfC,OAAO,QACF,sBAAsB;AAC7B,SAASC,gBAAgB,EAAEC,UAAU,QAAQ,sBAAsB;AACnE,SAASC,IAAI,EAAEC,GAAG,EAAEC,SAAS,QAAQ,iBAAiB;AACtD,SAASC,aAAa,QAAQ,uCAAuC;AACrE,SAASC,cAAc,QAAQ,mBAAmB;AAClD,SAASC,aAAa,QAAQ,mBAAmB;AACjD,SAASC,aAAa,EAAEC,cAAc,QAAQ,iBAAiB;AAC/D,SAASC,WAAW,QAAQ,sBAAsB;AAClD,SAASC,QAAQ,QAAQ,oBAAoB;AAC7C,IAAIC,uBAAuB,GAAG,CAAC,CAAC;AAEhC,OAAO,SAASC,qBAAqBA,CAACC,IAAI,EAAE;EAC1C,IAAIC,kBAAkB,GAAGZ,GAAG,CAACW,IAAI,EAAE,UAAUE,GAAG,EAAE;IAChD,IAAI,CAACJ,uBAAuB,CAACI,GAAG,CAAC,EAAE;MACjCJ,uBAAuB,CAACI,GAAG,CAAC,GAAGC,uBAAuB,CAACD,GAAG,CAAC;IAC7D;IACA,OAAOJ,uBAAuB,CAACI,GAAG,CAAC;EACrC,CAAC,CAAC;EAEF,OAAOhB,gBAAgB,CAACkB,KAAK,CAAC,IAAI,EAAEH,kBAAkB,CAAC;AACzD;AACA,OAAO,SAASI,sBAAsBA,CAAA,EAAG;EACvCP,uBAAuB,GAAG,CAAC,CAAC;AAC9B;AACA;AACA,SAASK,uBAAuBA,CAACD,GAAG,EAAE;EACpC,OAAO,IAAIf,UAAU,CAAC,UAAUmB,UAAU,EAAE;IAC1C,IAAIC,kBAAkB,GAAGC,OAAO,CAACN,GAAG,CAAC;IACrCM,OAAO,CAACN,GAAG,CAAC,GAAG,YAAY;MACzB,IAAIO,MAAM,GAAG,EAAE,CAACC,KAAK,CAACC,IAAI,CAACC,SAAS,CAAC;MACrCL,kBAAkB,CAACH,KAAK,CAACI,OAAO,EAAEI,SAAS,CAAC;MAC5C,IAAIC,aAAa,GAAG/B,mBAAmB,CAAC,CAAC;MACzCW,aAAa,CAAC,YAAY;QACxBa,UAAU,CAACQ,MAAM,CAACC,eAAe,CAACN,MAAM,EAAEP,GAAG,EAAEW,aAAa,CAAC,CAAC;MAChE,CAAC,CAAC;IACJ,CAAC;IACD,OAAO,YAAY;MACjBL,OAAO,CAACN,GAAG,CAAC,GAAGK,kBAAkB;IACnC,CAAC;EACH,CAAC,CAAC;AACJ;AAEA,SAASQ,eAAeA,CAACN,MAAM,EAAEP,GAAG,EAAEW,aAAa,EAAE;EACnD,IAAIG,OAAO,GAAG3B,GAAG,CAACoB,MAAM,EAAE,UAAUQ,KAAK,EAAE;IACzC,OAAOC,uBAAuB,CAACD,KAAK,CAAC;EACvC,CAAC,CAAC,CAACE,IAAI,CAAC,GAAG,CAAC;EACZ,IAAIjB,GAAG,KAAKV,cAAc,CAAC4B,KAAK,EAAE;IAChC,IAAIC,eAAe,GAAGjC,IAAI,CAACqB,MAAM,EAAExB,OAAO,CAAC;IAC3C,IAAMqC,QAAQ,GAAGtC,eAAe,CAAC;MAC/BuC,aAAa,EAAEF,eAAe;MAC9BG,WAAW,EAAElC,SAAS,CAAC,CAAC;MACxB0B,OAAO,EAAEA,OAAO;MAChBS,MAAM,EAAE7B,WAAW,CAAC8B,OAAO;MAC3BC,QAAQ,EAAEjC,aAAa,CAACkC,OAAO;MAC/Bf,aAAa,EAAEA,aAAa;MAC5BgB,cAAc,EAAElC,cAAc,CAACmC,QAAQ;MACvCC,gBAAgB,EAAE;IACpB,CAAC,CAAC;IACFT,QAAQ,CAACN,OAAO,GAAGA,OAAO;IAC1B,OAAO;MACLd,GAAG,EAAEA,GAAG;MACRc,OAAO,EAAEA,OAAO;MAChBI,KAAK,EAAEE,QAAQ;MACfT,aAAa,EAAEA;IACjB,CAAC;EACH;EAEA,OAAO;IACLX,GAAG,EAAEA,GAAG;IACRc,OAAO,EAAEA,OAAO;IAChBI,KAAK,EAAEY,SAAS;IAChBnB,aAAa,EAAEA;EACjB,CAAC;AACH;AAEA,SAASK,uBAAuBA,CAACD,KAAK,EAAE;EACtC,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;IAC7B,OAAOpB,QAAQ,CAACoB,KAAK,CAAC;EACxB;EACA,IAAIhC,OAAO,CAACgC,KAAK,CAAC,EAAE;IAClB,OAAOlC,kBAAkB,CAACF,iBAAiB,CAACoC,KAAK,CAAC,CAAC;EACrD;EACA,OAAO1B,aAAa,CAACM,QAAQ,CAACoB,KAAK,CAAC,EAAEe,SAAS,EAAE,CAAC,CAAC;AACrD","ignoreList":[]}
|