@cloudcare/browser-core 3.2.4 → 3.2.6
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 +2 -23
- 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 +2 -22
- 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 +3 -30
- 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
|
@@ -3,10 +3,12 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.SESSION_TIME_OUT_DELAY = exports.SESSION_EXPIRATION_DELAY = void 0;
|
|
6
|
+
exports.SESSION_TIME_OUT_DELAY = exports.SESSION_STORE_KEY = exports.SESSION_EXPIRATION_DELAY = void 0;
|
|
7
7
|
var _tools = require("../helper/tools");
|
|
8
8
|
var SESSION_TIME_OUT_DELAY = 4 * _tools.ONE_HOUR;
|
|
9
9
|
exports.SESSION_TIME_OUT_DELAY = SESSION_TIME_OUT_DELAY;
|
|
10
10
|
var SESSION_EXPIRATION_DELAY = 15 * _tools.ONE_MINUTE;
|
|
11
11
|
exports.SESSION_EXPIRATION_DELAY = SESSION_EXPIRATION_DELAY;
|
|
12
|
+
var SESSION_STORE_KEY = '_gc_s';
|
|
13
|
+
exports.SESSION_STORE_KEY = SESSION_STORE_KEY;
|
|
12
14
|
//# sourceMappingURL=sessionConstants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sessionConstants.js","names":["_tools","require","SESSION_TIME_OUT_DELAY","ONE_HOUR","exports","SESSION_EXPIRATION_DELAY","ONE_MINUTE"],"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,IAAAA,MAAA,GAAAC,OAAA;AACO,IAAIC,sBAAsB,GAAG,CAAC,GAAGC,eAAQ;AAAAC,OAAA,CAAAF,sBAAA,GAAAA,sBAAA;AACzC,IAAIG,wBAAwB,GAAG,EAAE,GAAGC,iBAAU;AAAAF,OAAA,CAAAC,wBAAA,GAAAA,wBAAA","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"sessionConstants.js","names":["_tools","require","SESSION_TIME_OUT_DELAY","ONE_HOUR","exports","SESSION_EXPIRATION_DELAY","ONE_MINUTE","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,IAAAA,MAAA,GAAAC,OAAA;AACO,IAAIC,sBAAsB,GAAG,CAAC,GAAGC,eAAQ;AAAAC,OAAA,CAAAF,sBAAA,GAAAA,sBAAA;AACzC,IAAIG,wBAAwB,GAAG,EAAE,GAAGC,iBAAU;AAAAF,OAAA,CAAAC,wBAAA,GAAAA,wBAAA;AAC9C,IAAIE,iBAAiB,GAAG,OAAO;AAAAH,OAAA,CAAAG,iBAAA,GAAAA,iBAAA","ignoreList":[]}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.buildCookieOptions = buildCookieOptions;
|
|
7
|
+
exports.initCookieStrategy = initCookieStrategy;
|
|
8
|
+
exports.selectCookieStrategy = selectCookieStrategy;
|
|
9
|
+
var _tools = require("../helper/tools");
|
|
10
|
+
var _cookie = require("../browser/cookie");
|
|
11
|
+
var _sessionConstants = require("./sessionConstants");
|
|
12
|
+
var _sessionState = require("./sessionState");
|
|
13
|
+
function selectCookieStrategy(initConfiguration) {
|
|
14
|
+
var cookieOptions = buildCookieOptions(initConfiguration);
|
|
15
|
+
return (0, _cookie.areCookiesAuthorized)(cookieOptions) ? {
|
|
16
|
+
type: 'Cookie',
|
|
17
|
+
cookieOptions: cookieOptions
|
|
18
|
+
} : undefined;
|
|
19
|
+
}
|
|
20
|
+
function initCookieStrategy(cookieOptions) {
|
|
21
|
+
var cookieStore = {
|
|
22
|
+
/**
|
|
23
|
+
* Lock strategy allows mitigating issues due to concurrent access to cookie.
|
|
24
|
+
* This issue concerns only chromium browsers and enabling this on firefox increases cookie write failures.
|
|
25
|
+
*/
|
|
26
|
+
isLockEnabled: (0, _tools.isChromium)(),
|
|
27
|
+
persistSession: persistSessionCookie(cookieOptions),
|
|
28
|
+
retrieveSession: retrieveSessionCookie(cookieOptions),
|
|
29
|
+
expireSession: function expireSession() {
|
|
30
|
+
return expireSessionCookie(cookieOptions);
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
return cookieStore;
|
|
34
|
+
}
|
|
35
|
+
function persistSessionCookie(options) {
|
|
36
|
+
return function (session) {
|
|
37
|
+
(0, _cookie.setCookie)(_sessionConstants.SESSION_STORE_KEY, (0, _sessionState.toSessionString)(session), _sessionConstants.SESSION_EXPIRATION_DELAY, options);
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
function expireSessionCookie(options) {
|
|
41
|
+
(0, _cookie.setCookie)(_sessionConstants.SESSION_STORE_KEY, (0, _sessionState.toSessionString)((0, _sessionState.getExpiredSessionState)()), _sessionConstants.SESSION_TIME_OUT_DELAY, options);
|
|
42
|
+
}
|
|
43
|
+
function retrieveSessionCookie(options) {
|
|
44
|
+
return function () {
|
|
45
|
+
var sessionString = (0, _cookie.getCookie)(_sessionConstants.SESSION_STORE_KEY, options);
|
|
46
|
+
return (0, _sessionState.toSessionState)(sessionString);
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
function buildCookieOptions(initConfiguration) {
|
|
50
|
+
var cookieOptions = {};
|
|
51
|
+
cookieOptions.secure = !!initConfiguration.useSecureSessionCookie || !!initConfiguration.usePartitionedCrossSiteSessionCookie || !!initConfiguration.useCrossSiteSessionCookie;
|
|
52
|
+
cookieOptions.crossSite = !!initConfiguration.usePartitionedCrossSiteSessionCookie || !!initConfiguration.useCrossSiteSessionCookie;
|
|
53
|
+
cookieOptions.partitioned = !!initConfiguration.usePartitionedCrossSiteSessionCookie;
|
|
54
|
+
if (initConfiguration.trackSessionAcrossSubdomains) {
|
|
55
|
+
cookieOptions.domain = (0, _cookie.getCurrentSite)();
|
|
56
|
+
}
|
|
57
|
+
return cookieOptions;
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=sessionInCookie.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sessionInCookie.js","names":["_tools","require","_cookie","_sessionConstants","_sessionState","selectCookieStrategy","initConfiguration","cookieOptions","buildCookieOptions","areCookiesAuthorized","type","undefined","initCookieStrategy","cookieStore","isLockEnabled","isChromium","persistSession","persistSessionCookie","retrieveSession","retrieveSessionCookie","expireSession","expireSessionCookie","options","session","setCookie","SESSION_STORE_KEY","toSessionString","SESSION_EXPIRATION_DELAY","getExpiredSessionState","SESSION_TIME_OUT_DELAY","sessionString","getCookie","toSessionState","secure","useSecureSessionCookie","usePartitionedCrossSiteSessionCookie","useCrossSiteSessionCookie","crossSite","partitioned","trackSessionAcrossSubdomains","domain","getCurrentSite"],"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,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAMA,IAAAE,iBAAA,GAAAF,OAAA;AAKA,IAAAG,aAAA,GAAAH,OAAA;AAMO,SAASI,oBAAoBA,CAACC,iBAAiB,EAAE;EACtD,IAAMC,aAAa,GAAGC,kBAAkB,CAACF,iBAAiB,CAAC;EAC3D,OAAO,IAAAG,4BAAoB,EAACF,aAAa,CAAC,GACtC;IAAEG,IAAI,EAAE,QAAQ;IAAEH,aAAa,EAAbA;EAAc,CAAC,GACjCI,SAAS;AACf;AAEO,SAASC,kBAAkBA,CAACL,aAAa,EAAE;EAChD,IAAMM,WAAW,GAAG;IAClB;AACJ;AACA;AACA;IACIC,aAAa,EAAE,IAAAC,iBAAU,EAAC,CAAC;IAC3BC,cAAc,EAAEC,oBAAoB,CAACV,aAAa,CAAC;IACnDW,eAAe,EAAEC,qBAAqB,CAACZ,aAAa,CAAC;IACrDa,aAAa,EAAE,SAAAA,cAAA,EAAY;MACzB,OAAOC,mBAAmB,CAACd,aAAa,CAAC;IAC3C;EACF,CAAC;EACD,OAAOM,WAAW;AACpB;AAEA,SAASI,oBAAoBA,CAACK,OAAO,EAAE;EACrC,OAAO,UAAUC,OAAO,EAAE;IACxB,IAAAC,iBAAS,EACPC,mCAAiB,EACjB,IAAAC,6BAAe,EAACH,OAAO,CAAC,EACxBI,0CAAwB,EACxBL,OACF,CAAC;EACH,CAAC;AACH;AAEA,SAASD,mBAAmBA,CAACC,OAAO,EAAE;EACpC,IAAAE,iBAAS,EACPC,mCAAiB,EACjB,IAAAC,6BAAe,EAAC,IAAAE,oCAAsB,EAAC,CAAC,CAAC,EACzCC,wCAAsB,EACtBP,OACF,CAAC;AACH;AAEA,SAASH,qBAAqBA,CAACG,OAAO,EAAE;EACtC,OAAO,YAAY;IACjB,IAAIQ,aAAa,GAAG,IAAAC,iBAAS,EAACN,mCAAiB,EAAEH,OAAO,CAAC;IACzD,OAAO,IAAAU,4BAAc,EAACF,aAAa,CAAC;EACtC,CAAC;AACH;AAEO,SAAStB,kBAAkBA,CAACF,iBAAiB,EAAE;EACpD,IAAMC,aAAa,GAAG,CAAC,CAAC;EAExBA,aAAa,CAAC0B,MAAM,GAClB,CAAC,CAAC3B,iBAAiB,CAAC4B,sBAAsB,IAC1C,CAAC,CAAC5B,iBAAiB,CAAC6B,oCAAoC,IACxD,CAAC,CAAC7B,iBAAiB,CAAC8B,yBAAyB;EAC/C7B,aAAa,CAAC8B,SAAS,GACrB,CAAC,CAAC/B,iBAAiB,CAAC6B,oCAAoC,IACxD,CAAC,CAAC7B,iBAAiB,CAAC8B,yBAAyB;EAC/C7B,aAAa,CAAC+B,WAAW,GACvB,CAAC,CAAChC,iBAAiB,CAAC6B,oCAAoC;EAE1D,IAAI7B,iBAAiB,CAACiC,4BAA4B,EAAE;IAClDhC,aAAa,CAACiC,MAAM,GAAG,IAAAC,sBAAc,EAAC,CAAC;EACzC;EAEA,OAAOlC,aAAa;AACtB","ignoreList":[]}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.initLocalStorageStrategy = initLocalStorageStrategy;
|
|
7
|
+
exports.selectLocalStorageStrategy = selectLocalStorageStrategy;
|
|
8
|
+
var _tools = require("../helper/tools");
|
|
9
|
+
var _sessionState = require("./sessionState");
|
|
10
|
+
var _sessionConstants = require("./sessionConstants");
|
|
11
|
+
var LOCAL_STORAGE_TEST_KEY = '_gc_test_';
|
|
12
|
+
function selectLocalStorageStrategy() {
|
|
13
|
+
try {
|
|
14
|
+
var id = (0, _tools.UUID)();
|
|
15
|
+
var testKey = "".concat(LOCAL_STORAGE_TEST_KEY).concat(id);
|
|
16
|
+
localStorage.setItem(testKey, id);
|
|
17
|
+
var retrievedId = localStorage.getItem(testKey);
|
|
18
|
+
localStorage.removeItem(testKey);
|
|
19
|
+
return id === retrievedId ? {
|
|
20
|
+
type: 'LocalStorage'
|
|
21
|
+
} : undefined;
|
|
22
|
+
} catch (e) {
|
|
23
|
+
return undefined;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
function initLocalStorageStrategy() {
|
|
27
|
+
return {
|
|
28
|
+
isLockEnabled: false,
|
|
29
|
+
persistSession: persistInLocalStorage,
|
|
30
|
+
retrieveSession: retrieveSessionFromLocalStorage,
|
|
31
|
+
expireSession: expireSessionFromLocalStorage
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
function persistInLocalStorage(sessionState) {
|
|
35
|
+
localStorage.setItem(_sessionConstants.SESSION_STORE_KEY, (0, _sessionState.toSessionString)(sessionState));
|
|
36
|
+
}
|
|
37
|
+
function retrieveSessionFromLocalStorage() {
|
|
38
|
+
var sessionString = localStorage.getItem(_sessionConstants.SESSION_STORE_KEY);
|
|
39
|
+
return (0, _sessionState.toSessionState)(sessionString);
|
|
40
|
+
}
|
|
41
|
+
function expireSessionFromLocalStorage() {
|
|
42
|
+
persistInLocalStorage((0, _sessionState.getExpiredSessionState)());
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=sessionInLocalStorage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sessionInLocalStorage.js","names":["_tools","require","_sessionState","_sessionConstants","LOCAL_STORAGE_TEST_KEY","selectLocalStorageStrategy","id","UUID","testKey","concat","localStorage","setItem","retrievedId","getItem","removeItem","type","undefined","e","initLocalStorageStrategy","isLockEnabled","persistSession","persistInLocalStorage","retrieveSession","retrieveSessionFromLocalStorage","expireSession","expireSessionFromLocalStorage","sessionState","SESSION_STORE_KEY","toSessionString","sessionString","toSessionState","getExpiredSessionState"],"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,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,aAAA,GAAAD,OAAA;AAMA,IAAAE,iBAAA,GAAAF,OAAA;AAEA,IAAMG,sBAAsB,GAAG,WAAW;AAEnC,SAASC,0BAA0BA,CAAA,EAAG;EAC3C,IAAI;IACF,IAAMC,EAAE,GAAG,IAAAC,WAAI,EAAC,CAAC;IACjB,IAAMC,OAAO,MAAAC,MAAA,CAAML,sBAAsB,EAAAK,MAAA,CAAGH,EAAE,CAAE;IAChDI,YAAY,CAACC,OAAO,CAACH,OAAO,EAAEF,EAAE,CAAC;IACjC,IAAMM,WAAW,GAAGF,YAAY,CAACG,OAAO,CAACL,OAAO,CAAC;IACjDE,YAAY,CAACI,UAAU,CAACN,OAAO,CAAC;IAChC,OAAOF,EAAE,KAAKM,WAAW,GAAG;MAAEG,IAAI,EAAE;IAAe,CAAC,GAAGC,SAAS;EAClE,CAAC,CAAC,OAAOC,CAAC,EAAE;IACV,OAAOD,SAAS;EAClB;AACF;AAEO,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,CAACgB,mCAAiB,EAAE,IAAAC,6BAAe,EAACF,YAAY,CAAC,CAAC;AACxE;AAEA,SAASH,+BAA+BA,CAAA,EAAG;EACzC,IAAMM,aAAa,GAAGnB,YAAY,CAACG,OAAO,CAACc,mCAAiB,CAAC;EAC7D,OAAO,IAAAG,4BAAc,EAACD,aAAa,CAAC;AACtC;AAEA,SAASJ,6BAA6BA,CAAA,EAAG;EACvCJ,qBAAqB,CAAC,IAAAU,oCAAsB,EAAC,CAAC,CAAC;AACjD","ignoreList":[]}
|
|
@@ -3,24 +3,25 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.VISIBILITY_CHECK_DELAY = void 0;
|
|
7
|
+
exports.startSessionManager = startSessionManager;
|
|
7
8
|
exports.stopSessionManager = stopSessionManager;
|
|
8
|
-
var
|
|
9
|
-
var _addEventListener2 = require("../browser/addEventListener");
|
|
9
|
+
var _observable = require("../helper/observable");
|
|
10
10
|
var _valueHistory = require("../helper/valueHistory");
|
|
11
|
-
var
|
|
12
|
-
var _sessionConstants = require("./sessionConstants");
|
|
11
|
+
var _tools = require("../helper/tools");
|
|
13
12
|
var _enums = require("../helper/enums");
|
|
13
|
+
var _addEventListener3 = require("../browser/addEventListener");
|
|
14
14
|
var _timer = require("../helper/timer");
|
|
15
|
-
var
|
|
15
|
+
var _sessionConstants = require("./sessionConstants");
|
|
16
|
+
var _sessionStore = require("./sessionStore");
|
|
16
17
|
var VISIBILITY_CHECK_DELAY = _tools.ONE_MINUTE;
|
|
17
18
|
exports.VISIBILITY_CHECK_DELAY = VISIBILITY_CHECK_DELAY;
|
|
18
19
|
var SESSION_CONTEXT_TIMEOUT_DELAY = _sessionConstants.SESSION_TIME_OUT_DELAY;
|
|
19
20
|
var stopCallbacks = [];
|
|
20
|
-
|
|
21
|
+
function startSessionManager(configuration, productKey, computeSessionState) {
|
|
21
22
|
var renewObservable = new _observable.Observable();
|
|
22
23
|
var expireObservable = new _observable.Observable();
|
|
23
|
-
var sessionStore = (0, _sessionStore.startSessionStore)(
|
|
24
|
+
var sessionStore = (0, _sessionStore.startSessionStore)(configuration.sessionStoreStrategyType, productKey, computeSessionState);
|
|
24
25
|
stopCallbacks.push(function () {
|
|
25
26
|
return sessionStore.stop();
|
|
26
27
|
});
|
|
@@ -38,18 +39,20 @@ var startSessionManager = function startSessionManager(options, productKey, comp
|
|
|
38
39
|
expireObservable.notify();
|
|
39
40
|
sessionContextHistory.closeActive((0, _tools.relativeNow)());
|
|
40
41
|
});
|
|
42
|
+
|
|
43
|
+
// We expand/renew session unconditionally as tracking consent is always granted when the session
|
|
44
|
+
// manager is started.
|
|
41
45
|
sessionStore.expandOrRenewSession();
|
|
42
46
|
sessionContextHistory.add(buildSessionContext(), (0, _tools.clocksOrigin)().relative);
|
|
43
47
|
trackActivity(function () {
|
|
44
|
-
|
|
48
|
+
sessionStore.expandOrRenewSession();
|
|
45
49
|
});
|
|
46
50
|
trackVisibility(function () {
|
|
47
51
|
return sessionStore.expandSession();
|
|
48
52
|
});
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
+
trackResume(function () {
|
|
54
|
+
sessionStore.restartSession();
|
|
55
|
+
});
|
|
53
56
|
function buildSessionContext() {
|
|
54
57
|
return {
|
|
55
58
|
id: sessionStore.getSession().id,
|
|
@@ -57,27 +60,29 @@ var startSessionManager = function startSessionManager(options, productKey, comp
|
|
|
57
60
|
};
|
|
58
61
|
}
|
|
59
62
|
return {
|
|
60
|
-
|
|
61
|
-
return sessionContextHistory.find(startTime);
|
|
63
|
+
findSession: function findSession(startTime, options) {
|
|
64
|
+
return sessionContextHistory.find(startTime, options);
|
|
62
65
|
},
|
|
63
66
|
renewObservable: renewObservable,
|
|
64
67
|
expireObservable: expireObservable,
|
|
65
|
-
|
|
68
|
+
sessionStateUpdateObservable: sessionStore.sessionStateUpdateObservable,
|
|
69
|
+
expire: sessionStore.expire,
|
|
70
|
+
updateSessionState: sessionStore.updateSessionState
|
|
66
71
|
};
|
|
67
|
-
}
|
|
68
|
-
exports.startSessionManager = startSessionManager;
|
|
72
|
+
}
|
|
69
73
|
function stopSessionManager() {
|
|
70
|
-
|
|
71
|
-
|
|
74
|
+
stopCallbacks.forEach(function (e) {
|
|
75
|
+
e();
|
|
72
76
|
});
|
|
73
77
|
stopCallbacks = [];
|
|
74
78
|
}
|
|
75
79
|
function trackActivity(expandOrRenewSession) {
|
|
76
|
-
var _addEventListeners = (0,
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
80
|
+
var _addEventListeners = (0, _addEventListener3.addEventListeners)(window, [_enums.DOM_EVENT.CLICK, _enums.DOM_EVENT.TOUCH_START, _enums.DOM_EVENT.KEY_DOWN, _enums.DOM_EVENT.SCROLL], expandOrRenewSession, {
|
|
81
|
+
capture: true,
|
|
82
|
+
passive: true
|
|
83
|
+
}),
|
|
84
|
+
stop = _addEventListeners.stop;
|
|
85
|
+
stopCallbacks.push(stop);
|
|
81
86
|
}
|
|
82
87
|
function trackVisibility(expandSession) {
|
|
83
88
|
var expandSessionWhenVisible = function expandSessionWhenVisible() {
|
|
@@ -85,17 +90,19 @@ function trackVisibility(expandSession) {
|
|
|
85
90
|
expandSession();
|
|
86
91
|
}
|
|
87
92
|
};
|
|
88
|
-
var _addEventListener = (0,
|
|
89
|
-
|
|
93
|
+
var _addEventListener = (0, _addEventListener3.addEventListener)(document, _enums.DOM_EVENT.VISIBILITY_CHANGE, expandSessionWhenVisible),
|
|
94
|
+
stop = _addEventListener.stop;
|
|
95
|
+
stopCallbacks.push(stop);
|
|
90
96
|
var visibilityCheckInterval = (0, _timer.setInterval)(expandSessionWhenVisible, VISIBILITY_CHECK_DELAY);
|
|
91
97
|
stopCallbacks.push(function () {
|
|
92
98
|
(0, _timer.clearInterval)(visibilityCheckInterval);
|
|
93
99
|
});
|
|
94
100
|
}
|
|
95
101
|
function trackResume(cb) {
|
|
96
|
-
var
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
102
|
+
var _addEventListener2 = (0, _addEventListener3.addEventListener)(window, _enums.DOM_EVENT.RESUME, cb, {
|
|
103
|
+
capture: true
|
|
104
|
+
}),
|
|
105
|
+
stop = _addEventListener2.stop;
|
|
106
|
+
stopCallbacks.push(stop);
|
|
100
107
|
}
|
|
101
108
|
//# sourceMappingURL=sessionManagement.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sessionManagement.js","names":["
|
|
1
|
+
{"version":3,"file":"sessionManagement.js","names":["_observable","require","_valueHistory","_tools","_enums","_addEventListener3","_timer","_sessionConstants","_sessionStore","VISIBILITY_CHECK_DELAY","ONE_MINUTE","exports","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","id","getSession","trackingType","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 } 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,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.EXPIRED = void 0;
|
|
7
|
+
exports.expandSessionState = expandSessionState;
|
|
8
|
+
exports.getExpiredSessionState = getExpiredSessionState;
|
|
9
|
+
exports.isSessionInExpiredState = isSessionInExpiredState;
|
|
10
|
+
exports.isSessionInNotStartedState = isSessionInNotStartedState;
|
|
11
|
+
exports.isSessionStarted = isSessionStarted;
|
|
12
|
+
exports.toSessionState = toSessionState;
|
|
13
|
+
exports.toSessionString = toSessionString;
|
|
14
|
+
var _tools = require("../helper/tools");
|
|
15
|
+
var _sessionConstants = require("./sessionConstants");
|
|
16
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
17
|
+
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."); }
|
|
18
|
+
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); }
|
|
19
|
+
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; }
|
|
20
|
+
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; } }
|
|
21
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
22
|
+
var SESSION_ENTRY_REGEXP = /^([a-zA-Z]+)=([a-z0-9-]+)$/;
|
|
23
|
+
var SESSION_ENTRY_SEPARATOR = '&';
|
|
24
|
+
var EXPIRED = '1';
|
|
25
|
+
exports.EXPIRED = EXPIRED;
|
|
26
|
+
function getExpiredSessionState() {
|
|
27
|
+
return {
|
|
28
|
+
isExpired: EXPIRED
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
function isSessionInNotStartedState(session) {
|
|
32
|
+
return (0, _tools.isEmptyObject)(session);
|
|
33
|
+
}
|
|
34
|
+
function isSessionStarted(session) {
|
|
35
|
+
return !isSessionInNotStartedState(session);
|
|
36
|
+
}
|
|
37
|
+
function isSessionInExpiredState(session) {
|
|
38
|
+
return session.isExpired !== undefined || !isActiveSession(session);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
// An active session is a session in either `Tracked` or `NotTracked` state
|
|
42
|
+
function isActiveSession(sessionState) {
|
|
43
|
+
// created and expire can be undefined for versions which was not storing them
|
|
44
|
+
// these checks could be removed when older versions will not be available/live anymore
|
|
45
|
+
return (sessionState.created === undefined || (0, _tools.dateNow)() - Number(sessionState.created) < _sessionConstants.SESSION_TIME_OUT_DELAY) && (sessionState.expire === undefined || (0, _tools.dateNow)() < Number(sessionState.expire));
|
|
46
|
+
}
|
|
47
|
+
function expandSessionState(session) {
|
|
48
|
+
session.expire = String((0, _tools.dateNow)() + _sessionConstants.SESSION_EXPIRATION_DELAY);
|
|
49
|
+
}
|
|
50
|
+
function toSessionString(session) {
|
|
51
|
+
return (0, _tools.map)((0, _tools.objectEntries)(session), function (item) {
|
|
52
|
+
return item[0] + '=' + item[1];
|
|
53
|
+
}).join(SESSION_ENTRY_SEPARATOR);
|
|
54
|
+
}
|
|
55
|
+
function toSessionState(sessionString) {
|
|
56
|
+
var session = {};
|
|
57
|
+
if (isValidSessionString(sessionString)) {
|
|
58
|
+
sessionString.split(SESSION_ENTRY_SEPARATOR).forEach(function (entry) {
|
|
59
|
+
var matches = SESSION_ENTRY_REGEXP.exec(entry);
|
|
60
|
+
if (matches !== null) {
|
|
61
|
+
var _matches = _slicedToArray(matches, 3),
|
|
62
|
+
key = _matches[1],
|
|
63
|
+
value = _matches[2];
|
|
64
|
+
session[key] = value;
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
return session;
|
|
69
|
+
}
|
|
70
|
+
function isValidSessionString(sessionString) {
|
|
71
|
+
return !!sessionString && (sessionString.indexOf(SESSION_ENTRY_SEPARATOR) !== -1 || SESSION_ENTRY_REGEXP.test(sessionString));
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=sessionState.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sessionState.js","names":["_tools","require","_sessionConstants","_slicedToArray","arr","i","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","o","minLen","_arrayLikeToArray","n","Object","prototype","toString","call","slice","constructor","name","Array","from","test","len","length","arr2","_i","Symbol","iterator","_s","_e","_x","_r","_arr","_n","_d","next","done","push","value","err","isArray","SESSION_ENTRY_REGEXP","SESSION_ENTRY_SEPARATOR","EXPIRED","exports","getExpiredSessionState","isExpired","isSessionInNotStartedState","session","isEmptyObject","isSessionStarted","isSessionInExpiredState","undefined","isActiveSession","sessionState","created","dateNow","Number","SESSION_TIME_OUT_DELAY","expire","expandSessionState","String","SESSION_EXPIRATION_DELAY","toSessionString","map","objectEntries","item","join","toSessionState","sessionString","isValidSessionString","split","forEach","entry","matches","exec","_matches","key","indexOf"],"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":"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","ignoreList":[]}
|