@cloudcare/browser-core 3.2.4 → 3.2.7
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/cookie.js +14 -9
- package/cjs/browser/cookie.js.map +1 -1
- package/cjs/configuration/configuration.js +3 -24
- package/cjs/configuration/configuration.js.map +1 -1
- package/cjs/index.js +90 -41
- package/cjs/index.js.map +1 -1
- package/cjs/init.js +0 -19
- package/cjs/init.js.map +1 -1
- package/cjs/session/sessionConstants.js +3 -1
- package/cjs/session/sessionConstants.js.map +1 -1
- package/cjs/session/sessionInCookie.js +59 -0
- package/cjs/session/sessionInCookie.js.map +1 -0
- package/cjs/session/sessionInLocalStorage.js +44 -0
- package/cjs/session/sessionInLocalStorage.js.map +1 -0
- package/cjs/session/sessionManagement.js +38 -31
- package/cjs/session/sessionManagement.js.map +1 -1
- package/cjs/session/sessionState.js +73 -0
- package/cjs/session/sessionState.js.map +1 -0
- package/cjs/session/sessionStore.js +113 -90
- package/cjs/session/sessionStore.js.map +1 -1
- package/cjs/session/sessionStoreOperations.js +117 -0
- package/cjs/session/sessionStoreOperations.js.map +1 -0
- package/esm/browser/cookie.js +15 -8
- package/esm/browser/cookie.js.map +1 -1
- package/esm/configuration/configuration.js +3 -23
- package/esm/configuration/configuration.js.map +1 -1
- package/esm/index.js +3 -4
- package/esm/index.js.map +1 -1
- package/esm/init.js +0 -19
- package/esm/init.js.map +1 -1
- package/esm/session/sessionConstants.js +1 -0
- package/esm/session/sessionConstants.js.map +1 -1
- package/esm/session/sessionInCookie.js +51 -0
- package/esm/session/sessionInCookie.js.map +1 -0
- package/esm/session/sessionInLocalStorage.js +37 -0
- package/esm/session/sessionInLocalStorage.js.map +1 -0
- package/esm/session/sessionManagement.js +35 -28
- package/esm/session/sessionManagement.js.map +1 -1
- package/esm/session/sessionState.js +59 -0
- package/esm/session/sessionState.js.map +1 -0
- package/esm/session/sessionStore.js +113 -90
- package/esm/session/sessionStore.js.map +1 -1
- package/esm/session/sessionStoreOperations.js +108 -0
- package/esm/session/sessionStoreOperations.js.map +1 -0
- package/package.json +2 -2
- package/src/browser/cookie.js +23 -11
- package/src/configuration/configuration.js +8 -32
- package/src/index.js +9 -4
- package/src/init.js +0 -19
- package/src/session/sessionConstants.js +1 -0
- package/src/session/sessionInCookie.js +87 -0
- package/src/session/sessionInLocalStorage.js +45 -0
- package/src/session/sessionManagement.js +48 -36
- package/src/session/sessionState.js +72 -0
- package/src/session/sessionStore.js +163 -108
- package/src/session/sessionStoreOperations.js +134 -0
- package/types/index.d.ts +4 -0
- package/cjs/session/sessionCookieStore.js +0 -156
- package/cjs/session/sessionCookieStore.js.map +0 -1
- package/cjs/synthetics/usr.js +0 -26
- package/cjs/synthetics/usr.js.map +0 -1
- package/esm/session/sessionCookieStore.js +0 -142
- package/esm/session/sessionCookieStore.js.map +0 -1
- package/esm/synthetics/usr.js +0 -17
- package/esm/synthetics/usr.js.map +0 -1
- package/src/session/sessionCookieStore.js +0 -169
- package/src/synthetics/usr.js +0 -18
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configuration.js","names":["
|
|
1
|
+
{"version":3,"file":"configuration.js","names":["catchUserErrors","display","assign","isPercentage","ONE_SECOND","isNullUndefinedDefaultValue","ONE_KIBI_BYTE","computeTransportConfiguration","selectSessionStoreStrategyType","DefaultPrivacyLevel","ALLOW","MASK","MASK_USER_INPUT","validateAndBuildConfiguration","initConfiguration","sampleRate","undefined","error","sessionSampleRate","telemetrySampleRate","beforeSend","sessionStoreStrategyType","service","version","env","telemetryEnabled","silentMultipleInit","batchBytesLimit","eventRateLimiterThreshold","maxTelemetryEventsPerPage","flushTimeout","batchMessagesLimit","messageBytesLimit","resourceUrlLimit","storeContextsToLocal","storeContextsKey","sendContentTypeByJson","validatePostRequestRequireParamsConfiguration","site","datakitOrigin","datakitUrl","clientToken"],"sources":["../../src/configuration/configuration.js"],"sourcesContent":["import { catchUserErrors } from '../helper/catchUserErrors'\nimport { display } from '../helper/display'\nimport {\n assign,\n isPercentage,\n ONE_SECOND,\n isNullUndefinedDefaultValue\n} from '../helper/tools'\nimport { ONE_KIBI_BYTE } from '../helper/byteUtils'\nimport { computeTransportConfiguration } from './transportConfiguration'\nimport { selectSessionStoreStrategyType } from '../session/sessionStore'\nexport var DefaultPrivacyLevel = {\n ALLOW: 'allow',\n MASK: 'mask',\n MASK_USER_INPUT: 'mask-user-input'\n}\nexport function validateAndBuildConfiguration(initConfiguration) {\n if (\n initConfiguration.sampleRate !== undefined &&\n !isPercentage(initConfiguration.sampleRate)\n ) {\n display.error('Sample Rate should be a number between 0 and 100')\n return\n }\n if (\n initConfiguration.sessionSampleRate !== undefined &&\n !isPercentage(initConfiguration.sessionSampleRate)\n ) {\n display.error('Sample Rate should be a number between 0 and 100')\n return\n }\n if (\n initConfiguration.telemetrySampleRate !== undefined &&\n !isPercentage(initConfiguration.telemetrySampleRate)\n ) {\n display.error('Telemetry Sample Rate should be a number between 0 and 100')\n return\n }\n\n var sessionSampleRate = isNullUndefinedDefaultValue(\n initConfiguration.sessionSampleRate,\n initConfiguration.sampleRate\n )\n return assign(\n {\n beforeSend:\n initConfiguration.beforeSend &&\n catchUserErrors(\n initConfiguration.beforeSend,\n 'beforeSend threw an error:'\n ),\n sessionStoreStrategyType:\n selectSessionStoreStrategyType(initConfiguration),\n sessionSampleRate: isNullUndefinedDefaultValue(sessionSampleRate, 100),\n service: initConfiguration.service,\n version: initConfiguration.version,\n env: initConfiguration.env,\n telemetrySampleRate: isNullUndefinedDefaultValue(\n initConfiguration.telemetrySampleRate,\n 100\n ),\n telemetryEnabled: isNullUndefinedDefaultValue(\n initConfiguration.telemetryEnabled,\n false\n ),\n silentMultipleInit: !!initConfiguration.silentMultipleInit,\n\n /**\n * beacon payload max queue size implementation is 64kb\n * ensure that we leave room for logs, rum and potential other users\n */\n batchBytesLimit: 16 * ONE_KIBI_BYTE,\n\n eventRateLimiterThreshold: 3000,\n maxTelemetryEventsPerPage: 15,\n\n /**\n * flush automatically, aim to be lower than ALB connection timeout\n * to maximize connection reuse.\n */\n flushTimeout: 30 * ONE_SECOND,\n\n /**\n * Logs intake limit\n */\n batchMessagesLimit: 50,\n messageBytesLimit: 256 * ONE_KIBI_BYTE,\n resourceUrlLimit: 5 * ONE_KIBI_BYTE,\n storeContextsToLocal: !!initConfiguration.storeContextsToLocal,\n // 存储到localstorage key ,默认不填,自动生成\n storeContextsKey: initConfiguration.storeContextsKey,\n sendContentTypeByJson: !!initConfiguration.sendContentTypeByJson\n },\n computeTransportConfiguration(initConfiguration)\n )\n}\nexport function validatePostRequestRequireParamsConfiguration(\n initConfiguration\n) {\n if (\n !initConfiguration.site &&\n !initConfiguration.datakitOrigin &&\n !initConfiguration.datakitUrl\n ) {\n display.error(\n 'datakitOrigin or site is not configured, no RUM data will be collected.'\n )\n return false\n }\n // if (!initConfiguration.datakitUrl && !initConfiguration.datakitOrigin) {\n // display.error(\n // 'datakitOrigin is not configured, no RUM data will be collected.'\n // )\n // return false\n // }\n if (initConfiguration.site && !initConfiguration.clientToken) {\n display.error(\n 'clientToken is not configured, no RUM data will be collected.'\n )\n return false\n }\n return true\n}\n"],"mappings":"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","ignoreList":[]}
|
package/esm/index.js
CHANGED
|
@@ -37,10 +37,9 @@ export * from './browser/runOnReadyState';
|
|
|
37
37
|
export * from './browser/scroll';
|
|
38
38
|
export * from './dataMap';
|
|
39
39
|
export * from './init';
|
|
40
|
-
export
|
|
41
|
-
export
|
|
42
|
-
export
|
|
43
|
-
export * from './session/sessionStore';
|
|
40
|
+
export { startSessionManager, stopSessionManager } from './session/sessionManagement';
|
|
41
|
+
export { SESSION_TIME_OUT_DELAY, SESSION_STORE_KEY } from './session/sessionConstants';
|
|
42
|
+
export { STORAGE_POLL_DELAY } from './session/sessionStore';
|
|
44
43
|
export * from './transport';
|
|
45
44
|
export * from './synthetics/syntheticsWorkerValues';
|
|
46
45
|
export * from './helper/serialisation/contextManager';
|
package/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../src/index.js"],"sourcesContent":["export * from './helper/boundedBuffer'\nexport * from './helper/valueHistory'\nexport * from './helper/deviceInfo'\nexport * from './helper/enums'\nexport * from './helper/instrumentMethod'\nexport * from './helper/errorTools'\nexport * from './helper/byteUtils'\nexport * from './error/trackRuntimeError'\nexport * from './console/consoleObservable'\nexport * from './report/reportObservable'\nexport * from './helper/display'\nexport * from './helper/monitor'\nexport * from './helper/sanitize'\nexport * from './helper/eventEmitter'\nexport * from './helper/lifeCycle'\nexport * from './helper/limitModification'\nexport * from './helper/createEventRateLimiter'\nexport * from './helper/observable'\nexport * from './helper/tools'\nexport * from './helper/urlPolyfill'\nexport * from './helper/mobileUtil'\nexport * from './helper/getZoneJsOriginalValue'\nexport * from './helper/timer'\nexport * from './helper/readBytesFromStream'\nexport * from './helper/requestIdleCallback'\nexport * from './helper/taskQueue'\nexport * from './tracekit'\nexport * from './configuration/configuration'\nexport * from './configuration/transportConfiguration'\nexport * from './browser/cookie'\nexport * from './browser/fetchObservable'\nexport * from './browser/xhrObservable'\nexport * from './browser/pageExitObservable'\nexport * from './browser/htmlDomUtils'\nexport * from './browser/addEventListener'\nexport * from './browser/runOnReadyState'\nexport * from './browser/scroll'\n\nexport * from './dataMap'\nexport * from './init'\nexport
|
|
1
|
+
{"version":3,"file":"index.js","names":["startSessionManager","stopSessionManager","SESSION_TIME_OUT_DELAY","SESSION_STORE_KEY","STORAGE_POLL_DELAY"],"sources":["../src/index.js"],"sourcesContent":["export * from './helper/boundedBuffer'\nexport * from './helper/valueHistory'\nexport * from './helper/deviceInfo'\nexport * from './helper/enums'\nexport * from './helper/instrumentMethod'\nexport * from './helper/errorTools'\nexport * from './helper/byteUtils'\nexport * from './error/trackRuntimeError'\nexport * from './console/consoleObservable'\nexport * from './report/reportObservable'\nexport * from './helper/display'\nexport * from './helper/monitor'\nexport * from './helper/sanitize'\nexport * from './helper/eventEmitter'\nexport * from './helper/lifeCycle'\nexport * from './helper/limitModification'\nexport * from './helper/createEventRateLimiter'\nexport * from './helper/observable'\nexport * from './helper/tools'\nexport * from './helper/urlPolyfill'\nexport * from './helper/mobileUtil'\nexport * from './helper/getZoneJsOriginalValue'\nexport * from './helper/timer'\nexport * from './helper/readBytesFromStream'\nexport * from './helper/requestIdleCallback'\nexport * from './helper/taskQueue'\nexport * from './tracekit'\nexport * from './configuration/configuration'\nexport * from './configuration/transportConfiguration'\nexport * from './browser/cookie'\nexport * from './browser/fetchObservable'\nexport * from './browser/xhrObservable'\nexport * from './browser/pageExitObservable'\nexport * from './browser/htmlDomUtils'\nexport * from './browser/addEventListener'\nexport * from './browser/runOnReadyState'\nexport * from './browser/scroll'\n\nexport * from './dataMap'\nexport * from './init'\nexport {\n startSessionManager,\n stopSessionManager\n} from './session/sessionManagement'\nexport {\n SESSION_TIME_OUT_DELAY,\n SESSION_STORE_KEY\n} from './session/sessionConstants'\nexport { STORAGE_POLL_DELAY } from './session/sessionStore'\nexport * from './transport'\nexport * from './synthetics/syntheticsWorkerValues'\n\nexport * from './helper/serialisation/contextManager'\nexport * from './helper/serialisation/heavyCustomerDataWarning'\nexport * from './helper/serialisation/jsonStringify'\nexport * from './helper/serialisation/rowData'\nexport * from './helper/serialisation/storedContextManager'\nexport * from './helper/encoder'\nexport * from './user'\nexport * from './helper/polyfills'\nexport * from './telemetry/telemetry'\nexport * from './helper/catchUserErrors'\nexport * from './helper/connectivity'\nexport * from './helper/displayAlreadyInitializedError'\n"],"mappings":"AAAA,cAAc,wBAAwB;AACtC,cAAc,uBAAuB;AACrC,cAAc,qBAAqB;AACnC,cAAc,gBAAgB;AAC9B,cAAc,2BAA2B;AACzC,cAAc,qBAAqB;AACnC,cAAc,oBAAoB;AAClC,cAAc,2BAA2B;AACzC,cAAc,6BAA6B;AAC3C,cAAc,2BAA2B;AACzC,cAAc,kBAAkB;AAChC,cAAc,kBAAkB;AAChC,cAAc,mBAAmB;AACjC,cAAc,uBAAuB;AACrC,cAAc,oBAAoB;AAClC,cAAc,4BAA4B;AAC1C,cAAc,iCAAiC;AAC/C,cAAc,qBAAqB;AACnC,cAAc,gBAAgB;AAC9B,cAAc,sBAAsB;AACpC,cAAc,qBAAqB;AACnC,cAAc,iCAAiC;AAC/C,cAAc,gBAAgB;AAC9B,cAAc,8BAA8B;AAC5C,cAAc,8BAA8B;AAC5C,cAAc,oBAAoB;AAClC,cAAc,YAAY;AAC1B,cAAc,+BAA+B;AAC7C,cAAc,wCAAwC;AACtD,cAAc,kBAAkB;AAChC,cAAc,2BAA2B;AACzC,cAAc,yBAAyB;AACvC,cAAc,8BAA8B;AAC5C,cAAc,wBAAwB;AACtC,cAAc,4BAA4B;AAC1C,cAAc,2BAA2B;AACzC,cAAc,kBAAkB;AAEhC,cAAc,WAAW;AACzB,cAAc,QAAQ;AACtB,SACEA,mBAAmB,EACnBC,kBAAkB,QACb,6BAA6B;AACpC,SACEC,sBAAsB,EACtBC,iBAAiB,QACZ,4BAA4B;AACnC,SAASC,kBAAkB,QAAQ,wBAAwB;AAC3D,cAAc,aAAa;AAC3B,cAAc,qCAAqC;AAEnD,cAAc,uCAAuC;AACrD,cAAc,iDAAiD;AAC/D,cAAc,sCAAsC;AACpD,cAAc,gCAAgC;AAC9C,cAAc,6CAA6C;AAC3D,cAAc,kBAAkB;AAChC,cAAc,QAAQ;AACtB,cAAc,oBAAoB;AAClC,cAAc,uBAAuB;AACrC,cAAc,0BAA0B;AACxC,cAAc,uBAAuB;AACrC,cAAc,yCAAyC","ignoreList":[]}
|
package/esm/init.js
CHANGED
|
@@ -55,23 +55,4 @@ export function getGlobalObject() {
|
|
|
55
55
|
}
|
|
56
56
|
return globalObject;
|
|
57
57
|
}
|
|
58
|
-
// export function checkCookiesAuthorized(options) {
|
|
59
|
-
// if (!areCookiesAuthorized(options)) {
|
|
60
|
-
// console.warn('Cookies are not authorized, we will not send any data.')
|
|
61
|
-
// return false
|
|
62
|
-
// }
|
|
63
|
-
// return true
|
|
64
|
-
// }
|
|
65
|
-
|
|
66
|
-
// export function checkIsNotLocalFile() {
|
|
67
|
-
// if (isLocalFile()) {
|
|
68
|
-
// console.error('Execution is not allowed in the current context.')
|
|
69
|
-
// return false
|
|
70
|
-
// }
|
|
71
|
-
// return true
|
|
72
|
-
// }
|
|
73
|
-
|
|
74
|
-
// function isLocalFile() {
|
|
75
|
-
// return window.location.protocol === 'file:'
|
|
76
|
-
// }
|
|
77
58
|
//# sourceMappingURL=init.js.map
|
package/esm/init.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","names":["each","assign","setDebugMode","catchUserErrors","makePublicApi","stub","publicApi","onReady","callback","Object","defineProperty","get","enumerable","defineGlobal","global","name","api","existingGlobalVariable","q","fn","getGlobalObject","globalThis","_typeof","prototype","configurable","globalObject","_gc_temp_","self","window"],"sources":["../src/init.js"],"sourcesContent":["import { each, assign } from './helper/tools'\nimport { setDebugMode } from './helper/monitor'\nimport { catchUserErrors } from './helper/catchUserErrors'\n\nexport function makePublicApi(stub) {\n var publicApi = assign(\n {\n onReady: function (callback) {\n callback()\n }\n },\n stub\n )\n\n // Add an \"hidden\" property to set debug mode. We define it that way to hide it\n // as much as possible but of course it's not a real protection.\n Object.defineProperty(publicApi, '_setDebug', {\n get: function () {\n return setDebugMode\n },\n enumerable: false\n })\n\n return publicApi\n}\nexport function defineGlobal(global, name, api) {\n var existingGlobalVariable = global[name]\n global[name] = api\n if (existingGlobalVariable && existingGlobalVariable.q) {\n each(existingGlobalVariable.q, function (fn) {\n catchUserErrors(fn, 'onReady callback threw an error:')()\n })\n }\n}\n\nexport function getGlobalObject() {\n if (typeof globalThis === 'object') {\n return globalThis\n }\n Object.defineProperty(Object.prototype, '_gc_temp_', {\n get: function () {\n return this\n },\n configurable: true\n })\n // @ts-ignore\n var globalObject = _gc_temp_\n // @ts-ignore\n delete Object.prototype._gc_temp_\n if (typeof globalObject !== 'object') {\n // on safari _gc_temp_ is available on window but not globally\n // fallback on other browser globals check\n if (typeof self === 'object') {\n globalObject = self\n } else if (typeof window === 'object') {\n globalObject = window\n } else {\n globalObject = {}\n }\n }\n return globalObject\n}\n
|
|
1
|
+
{"version":3,"file":"init.js","names":["each","assign","setDebugMode","catchUserErrors","makePublicApi","stub","publicApi","onReady","callback","Object","defineProperty","get","enumerable","defineGlobal","global","name","api","existingGlobalVariable","q","fn","getGlobalObject","globalThis","_typeof","prototype","configurable","globalObject","_gc_temp_","self","window"],"sources":["../src/init.js"],"sourcesContent":["import { each, assign } from './helper/tools'\nimport { setDebugMode } from './helper/monitor'\nimport { catchUserErrors } from './helper/catchUserErrors'\n\nexport function makePublicApi(stub) {\n var publicApi = assign(\n {\n onReady: function (callback) {\n callback()\n }\n },\n stub\n )\n\n // Add an \"hidden\" property to set debug mode. We define it that way to hide it\n // as much as possible but of course it's not a real protection.\n Object.defineProperty(publicApi, '_setDebug', {\n get: function () {\n return setDebugMode\n },\n enumerable: false\n })\n\n return publicApi\n}\nexport function defineGlobal(global, name, api) {\n var existingGlobalVariable = global[name]\n global[name] = api\n if (existingGlobalVariable && existingGlobalVariable.q) {\n each(existingGlobalVariable.q, function (fn) {\n catchUserErrors(fn, 'onReady callback threw an error:')()\n })\n }\n}\n\nexport function getGlobalObject() {\n if (typeof globalThis === 'object') {\n return globalThis\n }\n Object.defineProperty(Object.prototype, '_gc_temp_', {\n get: function () {\n return this\n },\n configurable: true\n })\n // @ts-ignore\n var globalObject = _gc_temp_\n // @ts-ignore\n delete Object.prototype._gc_temp_\n if (typeof globalObject !== 'object') {\n // on safari _gc_temp_ is available on window but not globally\n // fallback on other browser globals check\n if (typeof self === 'object') {\n globalObject = self\n } else if (typeof window === 'object') {\n globalObject = window\n } else {\n globalObject = {}\n }\n }\n return globalObject\n}\n"],"mappings":";AAAA,SAASA,IAAI,EAAEC,MAAM,QAAQ,gBAAgB;AAC7C,SAASC,YAAY,QAAQ,kBAAkB;AAC/C,SAASC,eAAe,QAAQ,0BAA0B;AAE1D,OAAO,SAASC,aAAaA,CAACC,IAAI,EAAE;EAClC,IAAIC,SAAS,GAAGL,MAAM,CACpB;IACEM,OAAO,EAAE,SAAAA,QAAUC,QAAQ,EAAE;MAC3BA,QAAQ,CAAC,CAAC;IACZ;EACF,CAAC,EACDH,IACF,CAAC;;EAED;EACA;EACAI,MAAM,CAACC,cAAc,CAACJ,SAAS,EAAE,WAAW,EAAE;IAC5CK,GAAG,EAAE,SAAAA,IAAA,EAAY;MACf,OAAOT,YAAY;IACrB,CAAC;IACDU,UAAU,EAAE;EACd,CAAC,CAAC;EAEF,OAAON,SAAS;AAClB;AACA,OAAO,SAASO,YAAYA,CAACC,MAAM,EAAEC,IAAI,EAAEC,GAAG,EAAE;EAC9C,IAAIC,sBAAsB,GAAGH,MAAM,CAACC,IAAI,CAAC;EACzCD,MAAM,CAACC,IAAI,CAAC,GAAGC,GAAG;EAClB,IAAIC,sBAAsB,IAAIA,sBAAsB,CAACC,CAAC,EAAE;IACtDlB,IAAI,CAACiB,sBAAsB,CAACC,CAAC,EAAE,UAAUC,EAAE,EAAE;MAC3ChB,eAAe,CAACgB,EAAE,EAAE,kCAAkC,CAAC,CAAC,CAAC;IAC3D,CAAC,CAAC;EACJ;AACF;AAEA,OAAO,SAASC,eAAeA,CAAA,EAAG;EAChC,IAAI,QAAOC,UAAU,iCAAAC,OAAA,CAAVD,UAAU,OAAK,QAAQ,EAAE;IAClC,OAAOA,UAAU;EACnB;EACAZ,MAAM,CAACC,cAAc,CAACD,MAAM,CAACc,SAAS,EAAE,WAAW,EAAE;IACnDZ,GAAG,EAAE,SAAAA,IAAA,EAAY;MACf,OAAO,IAAI;IACb,CAAC;IACDa,YAAY,EAAE;EAChB,CAAC,CAAC;EACF;EACA,IAAIC,YAAY,GAAGC,SAAS;EAC5B;EACA,OAAOjB,MAAM,CAACc,SAAS,CAACG,SAAS;EACjC,IAAIJ,OAAA,CAAOG,YAAY,MAAK,QAAQ,EAAE;IACpC;IACA;IACA,IAAI,QAAOE,IAAI,iCAAAL,OAAA,CAAJK,IAAI,OAAK,QAAQ,EAAE;MAC5BF,YAAY,GAAGE,IAAI;IACrB,CAAC,MAAM,IAAI,QAAOC,MAAM,iCAAAN,OAAA,CAANM,MAAM,OAAK,QAAQ,EAAE;MACrCH,YAAY,GAAGG,MAAM;IACvB,CAAC,MAAM;MACLH,YAAY,GAAG,CAAC,CAAC;IACnB;EACF;EACA,OAAOA,YAAY;AACrB","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sessionConstants.js","names":["ONE_HOUR","ONE_MINUTE","SESSION_TIME_OUT_DELAY","SESSION_EXPIRATION_DELAY"],"sources":["../../src/session/sessionConstants.js"],"sourcesContent":["import { ONE_HOUR, ONE_MINUTE } from '../helper/tools'\nexport var SESSION_TIME_OUT_DELAY = 4 * ONE_HOUR\nexport var SESSION_EXPIRATION_DELAY = 15 * ONE_MINUTE\n"],"mappings":"AAAA,SAASA,QAAQ,EAAEC,UAAU,QAAQ,iBAAiB;AACtD,OAAO,IAAIC,sBAAsB,GAAG,CAAC,GAAGF,QAAQ;AAChD,OAAO,IAAIG,wBAAwB,GAAG,EAAE,GAAGF,UAAU","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"sessionConstants.js","names":["ONE_HOUR","ONE_MINUTE","SESSION_TIME_OUT_DELAY","SESSION_EXPIRATION_DELAY","SESSION_STORE_KEY"],"sources":["../../src/session/sessionConstants.js"],"sourcesContent":["import { ONE_HOUR, ONE_MINUTE } from '../helper/tools'\nexport var SESSION_TIME_OUT_DELAY = 4 * ONE_HOUR\nexport var SESSION_EXPIRATION_DELAY = 15 * ONE_MINUTE\nexport var SESSION_STORE_KEY = '_gc_s'\n"],"mappings":"AAAA,SAASA,QAAQ,EAAEC,UAAU,QAAQ,iBAAiB;AACtD,OAAO,IAAIC,sBAAsB,GAAG,CAAC,GAAGF,QAAQ;AAChD,OAAO,IAAIG,wBAAwB,GAAG,EAAE,GAAGF,UAAU;AACrD,OAAO,IAAIG,iBAAiB,GAAG,OAAO","ignoreList":[]}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { isChromium } from '../helper/tools';
|
|
2
|
+
import { getCurrentSite, areCookiesAuthorized, getCookie, setCookie } from '../browser/cookie';
|
|
3
|
+
import { SESSION_EXPIRATION_DELAY, SESSION_TIME_OUT_DELAY, SESSION_STORE_KEY } from './sessionConstants';
|
|
4
|
+
import { toSessionString, toSessionState, getExpiredSessionState } from './sessionState';
|
|
5
|
+
export function selectCookieStrategy(initConfiguration) {
|
|
6
|
+
var cookieOptions = buildCookieOptions(initConfiguration);
|
|
7
|
+
return areCookiesAuthorized(cookieOptions) ? {
|
|
8
|
+
type: 'Cookie',
|
|
9
|
+
cookieOptions: cookieOptions
|
|
10
|
+
} : undefined;
|
|
11
|
+
}
|
|
12
|
+
export function initCookieStrategy(cookieOptions) {
|
|
13
|
+
var cookieStore = {
|
|
14
|
+
/**
|
|
15
|
+
* Lock strategy allows mitigating issues due to concurrent access to cookie.
|
|
16
|
+
* This issue concerns only chromium browsers and enabling this on firefox increases cookie write failures.
|
|
17
|
+
*/
|
|
18
|
+
isLockEnabled: isChromium(),
|
|
19
|
+
persistSession: persistSessionCookie(cookieOptions),
|
|
20
|
+
retrieveSession: retrieveSessionCookie(cookieOptions),
|
|
21
|
+
expireSession: function expireSession() {
|
|
22
|
+
return expireSessionCookie(cookieOptions);
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
return cookieStore;
|
|
26
|
+
}
|
|
27
|
+
function persistSessionCookie(options) {
|
|
28
|
+
return function (session) {
|
|
29
|
+
setCookie(SESSION_STORE_KEY, toSessionString(session), SESSION_EXPIRATION_DELAY, options);
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
function expireSessionCookie(options) {
|
|
33
|
+
setCookie(SESSION_STORE_KEY, toSessionString(getExpiredSessionState()), SESSION_TIME_OUT_DELAY, options);
|
|
34
|
+
}
|
|
35
|
+
function retrieveSessionCookie(options) {
|
|
36
|
+
return function () {
|
|
37
|
+
var sessionString = getCookie(SESSION_STORE_KEY, options);
|
|
38
|
+
return toSessionState(sessionString);
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
export function buildCookieOptions(initConfiguration) {
|
|
42
|
+
var cookieOptions = {};
|
|
43
|
+
cookieOptions.secure = !!initConfiguration.useSecureSessionCookie || !!initConfiguration.usePartitionedCrossSiteSessionCookie || !!initConfiguration.useCrossSiteSessionCookie;
|
|
44
|
+
cookieOptions.crossSite = !!initConfiguration.usePartitionedCrossSiteSessionCookie || !!initConfiguration.useCrossSiteSessionCookie;
|
|
45
|
+
cookieOptions.partitioned = !!initConfiguration.usePartitionedCrossSiteSessionCookie;
|
|
46
|
+
if (initConfiguration.trackSessionAcrossSubdomains) {
|
|
47
|
+
cookieOptions.domain = getCurrentSite();
|
|
48
|
+
}
|
|
49
|
+
return cookieOptions;
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=sessionInCookie.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sessionInCookie.js","names":["isChromium","getCurrentSite","areCookiesAuthorized","getCookie","setCookie","SESSION_EXPIRATION_DELAY","SESSION_TIME_OUT_DELAY","SESSION_STORE_KEY","toSessionString","toSessionState","getExpiredSessionState","selectCookieStrategy","initConfiguration","cookieOptions","buildCookieOptions","type","undefined","initCookieStrategy","cookieStore","isLockEnabled","persistSession","persistSessionCookie","retrieveSession","retrieveSessionCookie","expireSession","expireSessionCookie","options","session","sessionString","secure","useSecureSessionCookie","usePartitionedCrossSiteSessionCookie","useCrossSiteSessionCookie","crossSite","partitioned","trackSessionAcrossSubdomains","domain"],"sources":["../../src/session/sessionInCookie.js"],"sourcesContent":["import { isChromium } from '../helper/tools'\nimport {\n getCurrentSite,\n areCookiesAuthorized,\n getCookie,\n setCookie\n} from '../browser/cookie'\nimport {\n SESSION_EXPIRATION_DELAY,\n SESSION_TIME_OUT_DELAY,\n SESSION_STORE_KEY\n} from './sessionConstants'\nimport {\n toSessionString,\n toSessionState,\n getExpiredSessionState\n} from './sessionState'\n\nexport function selectCookieStrategy(initConfiguration) {\n const cookieOptions = buildCookieOptions(initConfiguration)\n return areCookiesAuthorized(cookieOptions)\n ? { type: 'Cookie', cookieOptions }\n : undefined\n}\n\nexport function initCookieStrategy(cookieOptions) {\n const cookieStore = {\n /**\n * Lock strategy allows mitigating issues due to concurrent access to cookie.\n * This issue concerns only chromium browsers and enabling this on firefox increases cookie write failures.\n */\n isLockEnabled: isChromium(),\n persistSession: persistSessionCookie(cookieOptions),\n retrieveSession: retrieveSessionCookie(cookieOptions),\n expireSession: function () {\n return expireSessionCookie(cookieOptions)\n }\n }\n return cookieStore\n}\n\nfunction persistSessionCookie(options) {\n return function (session) {\n setCookie(\n SESSION_STORE_KEY,\n toSessionString(session),\n SESSION_EXPIRATION_DELAY,\n options\n )\n }\n}\n\nfunction expireSessionCookie(options) {\n setCookie(\n SESSION_STORE_KEY,\n toSessionString(getExpiredSessionState()),\n SESSION_TIME_OUT_DELAY,\n options\n )\n}\n\nfunction retrieveSessionCookie(options) {\n return function () {\n var sessionString = getCookie(SESSION_STORE_KEY, options)\n return toSessionState(sessionString)\n }\n}\n\nexport function buildCookieOptions(initConfiguration) {\n const cookieOptions = {}\n\n cookieOptions.secure =\n !!initConfiguration.useSecureSessionCookie ||\n !!initConfiguration.usePartitionedCrossSiteSessionCookie ||\n !!initConfiguration.useCrossSiteSessionCookie\n cookieOptions.crossSite =\n !!initConfiguration.usePartitionedCrossSiteSessionCookie ||\n !!initConfiguration.useCrossSiteSessionCookie\n cookieOptions.partitioned =\n !!initConfiguration.usePartitionedCrossSiteSessionCookie\n\n if (initConfiguration.trackSessionAcrossSubdomains) {\n cookieOptions.domain = getCurrentSite()\n }\n\n return cookieOptions\n}\n"],"mappings":"AAAA,SAASA,UAAU,QAAQ,iBAAiB;AAC5C,SACEC,cAAc,EACdC,oBAAoB,EACpBC,SAAS,EACTC,SAAS,QACJ,mBAAmB;AAC1B,SACEC,wBAAwB,EACxBC,sBAAsB,EACtBC,iBAAiB,QACZ,oBAAoB;AAC3B,SACEC,eAAe,EACfC,cAAc,EACdC,sBAAsB,QACjB,gBAAgB;AAEvB,OAAO,SAASC,oBAAoBA,CAACC,iBAAiB,EAAE;EACtD,IAAMC,aAAa,GAAGC,kBAAkB,CAACF,iBAAiB,CAAC;EAC3D,OAAOV,oBAAoB,CAACW,aAAa,CAAC,GACtC;IAAEE,IAAI,EAAE,QAAQ;IAAEF,aAAa,EAAbA;EAAc,CAAC,GACjCG,SAAS;AACf;AAEA,OAAO,SAASC,kBAAkBA,CAACJ,aAAa,EAAE;EAChD,IAAMK,WAAW,GAAG;IAClB;AACJ;AACA;AACA;IACIC,aAAa,EAAEnB,UAAU,CAAC,CAAC;IAC3BoB,cAAc,EAAEC,oBAAoB,CAACR,aAAa,CAAC;IACnDS,eAAe,EAAEC,qBAAqB,CAACV,aAAa,CAAC;IACrDW,aAAa,EAAE,SAAAA,cAAA,EAAY;MACzB,OAAOC,mBAAmB,CAACZ,aAAa,CAAC;IAC3C;EACF,CAAC;EACD,OAAOK,WAAW;AACpB;AAEA,SAASG,oBAAoBA,CAACK,OAAO,EAAE;EACrC,OAAO,UAAUC,OAAO,EAAE;IACxBvB,SAAS,CACPG,iBAAiB,EACjBC,eAAe,CAACmB,OAAO,CAAC,EACxBtB,wBAAwB,EACxBqB,OACF,CAAC;EACH,CAAC;AACH;AAEA,SAASD,mBAAmBA,CAACC,OAAO,EAAE;EACpCtB,SAAS,CACPG,iBAAiB,EACjBC,eAAe,CAACE,sBAAsB,CAAC,CAAC,CAAC,EACzCJ,sBAAsB,EACtBoB,OACF,CAAC;AACH;AAEA,SAASH,qBAAqBA,CAACG,OAAO,EAAE;EACtC,OAAO,YAAY;IACjB,IAAIE,aAAa,GAAGzB,SAAS,CAACI,iBAAiB,EAAEmB,OAAO,CAAC;IACzD,OAAOjB,cAAc,CAACmB,aAAa,CAAC;EACtC,CAAC;AACH;AAEA,OAAO,SAASd,kBAAkBA,CAACF,iBAAiB,EAAE;EACpD,IAAMC,aAAa,GAAG,CAAC,CAAC;EAExBA,aAAa,CAACgB,MAAM,GAClB,CAAC,CAACjB,iBAAiB,CAACkB,sBAAsB,IAC1C,CAAC,CAAClB,iBAAiB,CAACmB,oCAAoC,IACxD,CAAC,CAACnB,iBAAiB,CAACoB,yBAAyB;EAC/CnB,aAAa,CAACoB,SAAS,GACrB,CAAC,CAACrB,iBAAiB,CAACmB,oCAAoC,IACxD,CAAC,CAACnB,iBAAiB,CAACoB,yBAAyB;EAC/CnB,aAAa,CAACqB,WAAW,GACvB,CAAC,CAACtB,iBAAiB,CAACmB,oCAAoC;EAE1D,IAAInB,iBAAiB,CAACuB,4BAA4B,EAAE;IAClDtB,aAAa,CAACuB,MAAM,GAAGnC,cAAc,CAAC,CAAC;EACzC;EAEA,OAAOY,aAAa;AACtB","ignoreList":[]}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { UUID } from '../helper/tools';
|
|
2
|
+
import { toSessionString, toSessionState, getExpiredSessionState } from './sessionState';
|
|
3
|
+
import { SESSION_STORE_KEY } from './sessionConstants';
|
|
4
|
+
var LOCAL_STORAGE_TEST_KEY = '_gc_test_';
|
|
5
|
+
export function selectLocalStorageStrategy() {
|
|
6
|
+
try {
|
|
7
|
+
var id = UUID();
|
|
8
|
+
var testKey = "".concat(LOCAL_STORAGE_TEST_KEY).concat(id);
|
|
9
|
+
localStorage.setItem(testKey, id);
|
|
10
|
+
var retrievedId = localStorage.getItem(testKey);
|
|
11
|
+
localStorage.removeItem(testKey);
|
|
12
|
+
return id === retrievedId ? {
|
|
13
|
+
type: 'LocalStorage'
|
|
14
|
+
} : undefined;
|
|
15
|
+
} catch (e) {
|
|
16
|
+
return undefined;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
export function initLocalStorageStrategy() {
|
|
20
|
+
return {
|
|
21
|
+
isLockEnabled: false,
|
|
22
|
+
persistSession: persistInLocalStorage,
|
|
23
|
+
retrieveSession: retrieveSessionFromLocalStorage,
|
|
24
|
+
expireSession: expireSessionFromLocalStorage
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
function persistInLocalStorage(sessionState) {
|
|
28
|
+
localStorage.setItem(SESSION_STORE_KEY, toSessionString(sessionState));
|
|
29
|
+
}
|
|
30
|
+
function retrieveSessionFromLocalStorage() {
|
|
31
|
+
var sessionString = localStorage.getItem(SESSION_STORE_KEY);
|
|
32
|
+
return toSessionState(sessionString);
|
|
33
|
+
}
|
|
34
|
+
function expireSessionFromLocalStorage() {
|
|
35
|
+
persistInLocalStorage(getExpiredSessionState());
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=sessionInLocalStorage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sessionInLocalStorage.js","names":["UUID","toSessionString","toSessionState","getExpiredSessionState","SESSION_STORE_KEY","LOCAL_STORAGE_TEST_KEY","selectLocalStorageStrategy","id","testKey","concat","localStorage","setItem","retrievedId","getItem","removeItem","type","undefined","e","initLocalStorageStrategy","isLockEnabled","persistSession","persistInLocalStorage","retrieveSession","retrieveSessionFromLocalStorage","expireSession","expireSessionFromLocalStorage","sessionState","sessionString"],"sources":["../../src/session/sessionInLocalStorage.js"],"sourcesContent":["import { UUID } from '../helper/tools'\nimport {\n toSessionString,\n toSessionState,\n getExpiredSessionState\n} from './sessionState'\n\nimport { SESSION_STORE_KEY } from './sessionConstants'\n\nconst LOCAL_STORAGE_TEST_KEY = '_gc_test_'\n\nexport function selectLocalStorageStrategy() {\n try {\n const id = UUID()\n const testKey = `${LOCAL_STORAGE_TEST_KEY}${id}`\n localStorage.setItem(testKey, id)\n const retrievedId = localStorage.getItem(testKey)\n localStorage.removeItem(testKey)\n return id === retrievedId ? { type: 'LocalStorage' } : undefined\n } catch (e) {\n return undefined\n }\n}\n\nexport function initLocalStorageStrategy() {\n return {\n isLockEnabled: false,\n persistSession: persistInLocalStorage,\n retrieveSession: retrieveSessionFromLocalStorage,\n expireSession: expireSessionFromLocalStorage\n }\n}\n\nfunction persistInLocalStorage(sessionState) {\n localStorage.setItem(SESSION_STORE_KEY, toSessionString(sessionState))\n}\n\nfunction retrieveSessionFromLocalStorage() {\n const sessionString = localStorage.getItem(SESSION_STORE_KEY)\n return toSessionState(sessionString)\n}\n\nfunction expireSessionFromLocalStorage() {\n persistInLocalStorage(getExpiredSessionState())\n}\n"],"mappings":"AAAA,SAASA,IAAI,QAAQ,iBAAiB;AACtC,SACEC,eAAe,EACfC,cAAc,EACdC,sBAAsB,QACjB,gBAAgB;AAEvB,SAASC,iBAAiB,QAAQ,oBAAoB;AAEtD,IAAMC,sBAAsB,GAAG,WAAW;AAE1C,OAAO,SAASC,0BAA0BA,CAAA,EAAG;EAC3C,IAAI;IACF,IAAMC,EAAE,GAAGP,IAAI,CAAC,CAAC;IACjB,IAAMQ,OAAO,MAAAC,MAAA,CAAMJ,sBAAsB,EAAAI,MAAA,CAAGF,EAAE,CAAE;IAChDG,YAAY,CAACC,OAAO,CAACH,OAAO,EAAED,EAAE,CAAC;IACjC,IAAMK,WAAW,GAAGF,YAAY,CAACG,OAAO,CAACL,OAAO,CAAC;IACjDE,YAAY,CAACI,UAAU,CAACN,OAAO,CAAC;IAChC,OAAOD,EAAE,KAAKK,WAAW,GAAG;MAAEG,IAAI,EAAE;IAAe,CAAC,GAAGC,SAAS;EAClE,CAAC,CAAC,OAAOC,CAAC,EAAE;IACV,OAAOD,SAAS;EAClB;AACF;AAEA,OAAO,SAASE,wBAAwBA,CAAA,EAAG;EACzC,OAAO;IACLC,aAAa,EAAE,KAAK;IACpBC,cAAc,EAAEC,qBAAqB;IACrCC,eAAe,EAAEC,+BAA+B;IAChDC,aAAa,EAAEC;EACjB,CAAC;AACH;AAEA,SAASJ,qBAAqBA,CAACK,YAAY,EAAE;EAC3ChB,YAAY,CAACC,OAAO,CAACP,iBAAiB,EAAEH,eAAe,CAACyB,YAAY,CAAC,CAAC;AACxE;AAEA,SAASH,+BAA+BA,CAAA,EAAG;EACzC,IAAMI,aAAa,GAAGjB,YAAY,CAACG,OAAO,CAACT,iBAAiB,CAAC;EAC7D,OAAOF,cAAc,CAACyB,aAAa,CAAC;AACtC;AAEA,SAASF,6BAA6BA,CAAA,EAAG;EACvCJ,qBAAqB,CAAClB,sBAAsB,CAAC,CAAC,CAAC;AACjD","ignoreList":[]}
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { addEventListeners, addEventListener } from '../browser/addEventListener';
|
|
1
|
+
import { Observable } from '../helper/observable';
|
|
3
2
|
import { createValueHistory } from '../helper/valueHistory';
|
|
4
|
-
import {
|
|
5
|
-
import { SESSION_TIME_OUT_DELAY } from './sessionConstants';
|
|
3
|
+
import { relativeNow, clocksOrigin, ONE_MINUTE } from '../helper/tools';
|
|
6
4
|
import { DOM_EVENT } from '../helper/enums';
|
|
5
|
+
import { addEventListener, addEventListeners } from '../browser/addEventListener';
|
|
7
6
|
import { clearInterval, setInterval } from '../helper/timer';
|
|
8
|
-
import {
|
|
7
|
+
import { SESSION_TIME_OUT_DELAY } from './sessionConstants';
|
|
8
|
+
import { startSessionStore } from './sessionStore';
|
|
9
9
|
export var VISIBILITY_CHECK_DELAY = ONE_MINUTE;
|
|
10
10
|
var SESSION_CONTEXT_TIMEOUT_DELAY = SESSION_TIME_OUT_DELAY;
|
|
11
11
|
var stopCallbacks = [];
|
|
12
|
-
export
|
|
12
|
+
export function startSessionManager(configuration, productKey, computeSessionState) {
|
|
13
13
|
var renewObservable = new Observable();
|
|
14
14
|
var expireObservable = new Observable();
|
|
15
|
-
var sessionStore = startSessionStore(
|
|
15
|
+
var sessionStore = startSessionStore(configuration.sessionStoreStrategyType, productKey, computeSessionState);
|
|
16
16
|
stopCallbacks.push(function () {
|
|
17
17
|
return sessionStore.stop();
|
|
18
18
|
});
|
|
@@ -30,18 +30,20 @@ export var startSessionManager = function startSessionManager(options, productKe
|
|
|
30
30
|
expireObservable.notify();
|
|
31
31
|
sessionContextHistory.closeActive(relativeNow());
|
|
32
32
|
});
|
|
33
|
+
|
|
34
|
+
// We expand/renew session unconditionally as tracking consent is always granted when the session
|
|
35
|
+
// manager is started.
|
|
33
36
|
sessionStore.expandOrRenewSession();
|
|
34
37
|
sessionContextHistory.add(buildSessionContext(), clocksOrigin().relative);
|
|
35
38
|
trackActivity(function () {
|
|
36
|
-
|
|
39
|
+
sessionStore.expandOrRenewSession();
|
|
37
40
|
});
|
|
38
41
|
trackVisibility(function () {
|
|
39
42
|
return sessionStore.expandSession();
|
|
40
43
|
});
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
44
|
+
trackResume(function () {
|
|
45
|
+
sessionStore.restartSession();
|
|
46
|
+
});
|
|
45
47
|
function buildSessionContext() {
|
|
46
48
|
return {
|
|
47
49
|
id: sessionStore.getSession().id,
|
|
@@ -49,26 +51,29 @@ export var startSessionManager = function startSessionManager(options, productKe
|
|
|
49
51
|
};
|
|
50
52
|
}
|
|
51
53
|
return {
|
|
52
|
-
|
|
53
|
-
return sessionContextHistory.find(startTime);
|
|
54
|
+
findSession: function findSession(startTime, options) {
|
|
55
|
+
return sessionContextHistory.find(startTime, options);
|
|
54
56
|
},
|
|
55
57
|
renewObservable: renewObservable,
|
|
56
58
|
expireObservable: expireObservable,
|
|
57
|
-
|
|
59
|
+
sessionStateUpdateObservable: sessionStore.sessionStateUpdateObservable,
|
|
60
|
+
expire: sessionStore.expire,
|
|
61
|
+
updateSessionState: sessionStore.updateSessionState
|
|
58
62
|
};
|
|
59
|
-
}
|
|
63
|
+
}
|
|
60
64
|
export function stopSessionManager() {
|
|
61
|
-
|
|
62
|
-
|
|
65
|
+
stopCallbacks.forEach(function (e) {
|
|
66
|
+
e();
|
|
63
67
|
});
|
|
64
68
|
stopCallbacks = [];
|
|
65
69
|
}
|
|
66
70
|
function trackActivity(expandOrRenewSession) {
|
|
67
71
|
var _addEventListeners = addEventListeners(window, [DOM_EVENT.CLICK, DOM_EVENT.TOUCH_START, DOM_EVENT.KEY_DOWN, DOM_EVENT.SCROLL], expandOrRenewSession, {
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
+
capture: true,
|
|
73
|
+
passive: true
|
|
74
|
+
}),
|
|
75
|
+
stop = _addEventListeners.stop;
|
|
76
|
+
stopCallbacks.push(stop);
|
|
72
77
|
}
|
|
73
78
|
function trackVisibility(expandSession) {
|
|
74
79
|
var expandSessionWhenVisible = function expandSessionWhenVisible() {
|
|
@@ -76,17 +81,19 @@ function trackVisibility(expandSession) {
|
|
|
76
81
|
expandSession();
|
|
77
82
|
}
|
|
78
83
|
};
|
|
79
|
-
var _addEventListener = addEventListener(document, DOM_EVENT.VISIBILITY_CHANGE, expandSessionWhenVisible)
|
|
80
|
-
|
|
84
|
+
var _addEventListener = addEventListener(document, DOM_EVENT.VISIBILITY_CHANGE, expandSessionWhenVisible),
|
|
85
|
+
stop = _addEventListener.stop;
|
|
86
|
+
stopCallbacks.push(stop);
|
|
81
87
|
var visibilityCheckInterval = setInterval(expandSessionWhenVisible, VISIBILITY_CHECK_DELAY);
|
|
82
88
|
stopCallbacks.push(function () {
|
|
83
89
|
clearInterval(visibilityCheckInterval);
|
|
84
90
|
});
|
|
85
91
|
}
|
|
86
92
|
function trackResume(cb) {
|
|
87
|
-
var
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
93
|
+
var _addEventListener2 = addEventListener(window, DOM_EVENT.RESUME, cb, {
|
|
94
|
+
capture: true
|
|
95
|
+
}),
|
|
96
|
+
stop = _addEventListener2.stop;
|
|
97
|
+
stopCallbacks.push(stop);
|
|
91
98
|
}
|
|
92
99
|
//# sourceMappingURL=sessionManagement.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sessionManagement.js","names":["
|
|
1
|
+
{"version":3,"file":"sessionManagement.js","names":["Observable","createValueHistory","relativeNow","clocksOrigin","ONE_MINUTE","DOM_EVENT","addEventListener","addEventListeners","clearInterval","setInterval","SESSION_TIME_OUT_DELAY","startSessionStore","VISIBILITY_CHECK_DELAY","SESSION_CONTEXT_TIMEOUT_DELAY","stopCallbacks","startSessionManager","configuration","productKey","computeSessionState","renewObservable","expireObservable","sessionStore","sessionStoreStrategyType","push","stop","sessionContextHistory","expireDelay","subscribe","add","buildSessionContext","notify","closeActive","expandOrRenewSession","relative","trackActivity","trackVisibility","expandSession","trackResume","restartSession","id","getSession","trackingType","findSession","startTime","options","find","sessionStateUpdateObservable","expire","updateSessionState","stopSessionManager","forEach","e","_addEventListeners","window","CLICK","TOUCH_START","KEY_DOWN","SCROLL","capture","passive","expandSessionWhenVisible","document","visibilityState","_addEventListener","VISIBILITY_CHANGE","visibilityCheckInterval","cb","_addEventListener2","RESUME"],"sources":["../../src/session/sessionManagement.js"],"sourcesContent":["import { Observable } from '../helper/observable'\nimport { createValueHistory } from '../helper/valueHistory'\nimport { relativeNow, clocksOrigin, ONE_MINUTE } from '../helper/tools'\nimport { DOM_EVENT } from '../helper/enums'\nimport {\n addEventListener,\n addEventListeners\n} from '../browser/addEventListener'\nimport { clearInterval, setInterval } from '../helper/timer'\nimport { SESSION_TIME_OUT_DELAY } 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 // We expand/renew session unconditionally as tracking consent is always granted when the session\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 return {\n id: sessionStore.getSession().id,\n trackingType: sessionStore.getSession()[productKey]\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":[]}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
2
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
3
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
4
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
5
|
+
function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
|
|
6
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
7
|
+
import { isEmptyObject, objectEntries, dateNow, map } from '../helper/tools';
|
|
8
|
+
import { SESSION_EXPIRATION_DELAY, SESSION_TIME_OUT_DELAY } from './sessionConstants';
|
|
9
|
+
var SESSION_ENTRY_REGEXP = /^([a-zA-Z]+)=([a-z0-9-]+)$/;
|
|
10
|
+
var SESSION_ENTRY_SEPARATOR = '&';
|
|
11
|
+
export var EXPIRED = '1';
|
|
12
|
+
export function getExpiredSessionState() {
|
|
13
|
+
return {
|
|
14
|
+
isExpired: EXPIRED
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
export function isSessionInNotStartedState(session) {
|
|
18
|
+
return isEmptyObject(session);
|
|
19
|
+
}
|
|
20
|
+
export function isSessionStarted(session) {
|
|
21
|
+
return !isSessionInNotStartedState(session);
|
|
22
|
+
}
|
|
23
|
+
export function isSessionInExpiredState(session) {
|
|
24
|
+
return session.isExpired !== undefined || !isActiveSession(session);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
// An active session is a session in either `Tracked` or `NotTracked` state
|
|
28
|
+
function isActiveSession(sessionState) {
|
|
29
|
+
// created and expire can be undefined for versions which was not storing them
|
|
30
|
+
// these checks could be removed when older versions will not be available/live anymore
|
|
31
|
+
return (sessionState.created === undefined || dateNow() - Number(sessionState.created) < SESSION_TIME_OUT_DELAY) && (sessionState.expire === undefined || dateNow() < Number(sessionState.expire));
|
|
32
|
+
}
|
|
33
|
+
export function expandSessionState(session) {
|
|
34
|
+
session.expire = String(dateNow() + SESSION_EXPIRATION_DELAY);
|
|
35
|
+
}
|
|
36
|
+
export function toSessionString(session) {
|
|
37
|
+
return map(objectEntries(session), function (item) {
|
|
38
|
+
return item[0] + '=' + item[1];
|
|
39
|
+
}).join(SESSION_ENTRY_SEPARATOR);
|
|
40
|
+
}
|
|
41
|
+
export function toSessionState(sessionString) {
|
|
42
|
+
var session = {};
|
|
43
|
+
if (isValidSessionString(sessionString)) {
|
|
44
|
+
sessionString.split(SESSION_ENTRY_SEPARATOR).forEach(function (entry) {
|
|
45
|
+
var matches = SESSION_ENTRY_REGEXP.exec(entry);
|
|
46
|
+
if (matches !== null) {
|
|
47
|
+
var _matches = _slicedToArray(matches, 3),
|
|
48
|
+
key = _matches[1],
|
|
49
|
+
value = _matches[2];
|
|
50
|
+
session[key] = value;
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
return session;
|
|
55
|
+
}
|
|
56
|
+
function isValidSessionString(sessionString) {
|
|
57
|
+
return !!sessionString && (sessionString.indexOf(SESSION_ENTRY_SEPARATOR) !== -1 || SESSION_ENTRY_REGEXP.test(sessionString));
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=sessionState.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sessionState.js","names":["isEmptyObject","objectEntries","dateNow","map","SESSION_EXPIRATION_DELAY","SESSION_TIME_OUT_DELAY","SESSION_ENTRY_REGEXP","SESSION_ENTRY_SEPARATOR","EXPIRED","getExpiredSessionState","isExpired","isSessionInNotStartedState","session","isSessionStarted","isSessionInExpiredState","undefined","isActiveSession","sessionState","created","Number","expire","expandSessionState","String","toSessionString","item","join","toSessionState","sessionString","isValidSessionString","split","forEach","entry","matches","exec","_matches","_slicedToArray","key","value","indexOf","test"],"sources":["../../src/session/sessionState.js"],"sourcesContent":["import { isEmptyObject, objectEntries, dateNow, map } from '../helper/tools'\nimport {\n SESSION_EXPIRATION_DELAY,\n SESSION_TIME_OUT_DELAY\n} from './sessionConstants'\n\nconst SESSION_ENTRY_REGEXP = /^([a-zA-Z]+)=([a-z0-9-]+)$/\nconst SESSION_ENTRY_SEPARATOR = '&'\n\nexport const EXPIRED = '1'\n\nexport function getExpiredSessionState() {\n return {\n isExpired: EXPIRED\n }\n}\n\nexport function isSessionInNotStartedState(session) {\n return isEmptyObject(session)\n}\n\nexport function isSessionStarted(session) {\n return !isSessionInNotStartedState(session)\n}\n\nexport function isSessionInExpiredState(session) {\n return session.isExpired !== undefined || !isActiveSession(session)\n}\n\n// An active session is a session in either `Tracked` or `NotTracked` state\nfunction isActiveSession(sessionState) {\n // created and expire can be undefined for versions which was not storing them\n // these checks could be removed when older versions will not be available/live anymore\n return (\n (sessionState.created === undefined ||\n dateNow() - Number(sessionState.created) < SESSION_TIME_OUT_DELAY) &&\n (sessionState.expire === undefined ||\n dateNow() < Number(sessionState.expire))\n )\n}\n\nexport function expandSessionState(session) {\n session.expire = String(dateNow() + SESSION_EXPIRATION_DELAY)\n}\n\nexport function toSessionString(session) {\n return map(objectEntries(session), function (item) {\n return item[0] + '=' + item[1]\n }).join(SESSION_ENTRY_SEPARATOR)\n}\n\nexport function toSessionState(sessionString) {\n const session = {}\n if (isValidSessionString(sessionString)) {\n sessionString.split(SESSION_ENTRY_SEPARATOR).forEach(function (entry) {\n const matches = SESSION_ENTRY_REGEXP.exec(entry)\n if (matches !== null) {\n const [, key, value] = matches\n session[key] = value\n }\n })\n }\n return session\n}\n\nfunction isValidSessionString(sessionString) {\n return (\n !!sessionString &&\n (sessionString.indexOf(SESSION_ENTRY_SEPARATOR) !== -1 ||\n SESSION_ENTRY_REGEXP.test(sessionString))\n )\n}\n"],"mappings":";;;;;;AAAA,SAASA,aAAa,EAAEC,aAAa,EAAEC,OAAO,EAAEC,GAAG,QAAQ,iBAAiB;AAC5E,SACEC,wBAAwB,EACxBC,sBAAsB,QACjB,oBAAoB;AAE3B,IAAMC,oBAAoB,GAAG,4BAA4B;AACzD,IAAMC,uBAAuB,GAAG,GAAG;AAEnC,OAAO,IAAMC,OAAO,GAAG,GAAG;AAE1B,OAAO,SAASC,sBAAsBA,CAAA,EAAG;EACvC,OAAO;IACLC,SAAS,EAAEF;EACb,CAAC;AACH;AAEA,OAAO,SAASG,0BAA0BA,CAACC,OAAO,EAAE;EAClD,OAAOZ,aAAa,CAACY,OAAO,CAAC;AAC/B;AAEA,OAAO,SAASC,gBAAgBA,CAACD,OAAO,EAAE;EACxC,OAAO,CAACD,0BAA0B,CAACC,OAAO,CAAC;AAC7C;AAEA,OAAO,SAASE,uBAAuBA,CAACF,OAAO,EAAE;EAC/C,OAAOA,OAAO,CAACF,SAAS,KAAKK,SAAS,IAAI,CAACC,eAAe,CAACJ,OAAO,CAAC;AACrE;;AAEA;AACA,SAASI,eAAeA,CAACC,YAAY,EAAE;EACrC;EACA;EACA,OACE,CAACA,YAAY,CAACC,OAAO,KAAKH,SAAS,IACjCb,OAAO,CAAC,CAAC,GAAGiB,MAAM,CAACF,YAAY,CAACC,OAAO,CAAC,GAAGb,sBAAsB,MAClEY,YAAY,CAACG,MAAM,KAAKL,SAAS,IAChCb,OAAO,CAAC,CAAC,GAAGiB,MAAM,CAACF,YAAY,CAACG,MAAM,CAAC,CAAC;AAE9C;AAEA,OAAO,SAASC,kBAAkBA,CAACT,OAAO,EAAE;EAC1CA,OAAO,CAACQ,MAAM,GAAGE,MAAM,CAACpB,OAAO,CAAC,CAAC,GAAGE,wBAAwB,CAAC;AAC/D;AAEA,OAAO,SAASmB,eAAeA,CAACX,OAAO,EAAE;EACvC,OAAOT,GAAG,CAACF,aAAa,CAACW,OAAO,CAAC,EAAE,UAAUY,IAAI,EAAE;IACjD,OAAOA,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,GAAGA,IAAI,CAAC,CAAC,CAAC;EAChC,CAAC,CAAC,CAACC,IAAI,CAAClB,uBAAuB,CAAC;AAClC;AAEA,OAAO,SAASmB,cAAcA,CAACC,aAAa,EAAE;EAC5C,IAAMf,OAAO,GAAG,CAAC,CAAC;EAClB,IAAIgB,oBAAoB,CAACD,aAAa,CAAC,EAAE;IACvCA,aAAa,CAACE,KAAK,CAACtB,uBAAuB,CAAC,CAACuB,OAAO,CAAC,UAAUC,KAAK,EAAE;MACpE,IAAMC,OAAO,GAAG1B,oBAAoB,CAAC2B,IAAI,CAACF,KAAK,CAAC;MAChD,IAAIC,OAAO,KAAK,IAAI,EAAE;QACpB,IAAAE,QAAA,GAAAC,cAAA,CAAuBH,OAAO;UAArBI,GAAG,GAAAF,QAAA;UAAEG,KAAK,GAAAH,QAAA;QACnBtB,OAAO,CAACwB,GAAG,CAAC,GAAGC,KAAK;MACtB;IACF,CAAC,CAAC;EACJ;EACA,OAAOzB,OAAO;AAChB;AAEA,SAASgB,oBAAoBA,CAACD,aAAa,EAAE;EAC3C,OACE,CAAC,CAACA,aAAa,KACdA,aAAa,CAACW,OAAO,CAAC/B,uBAAuB,CAAC,KAAK,CAAC,CAAC,IACpDD,oBAAoB,CAACiC,IAAI,CAACZ,aAAa,CAAC,CAAC;AAE/C","ignoreList":[]}
|