@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.
Files changed (67) hide show
  1. package/cjs/browser/cookie.js +14 -9
  2. package/cjs/browser/cookie.js.map +1 -1
  3. package/cjs/configuration/configuration.js +2 -23
  4. package/cjs/configuration/configuration.js.map +1 -1
  5. package/cjs/index.js +90 -41
  6. package/cjs/index.js.map +1 -1
  7. package/cjs/init.js +0 -19
  8. package/cjs/init.js.map +1 -1
  9. package/cjs/session/sessionConstants.js +3 -1
  10. package/cjs/session/sessionConstants.js.map +1 -1
  11. package/cjs/session/sessionInCookie.js +59 -0
  12. package/cjs/session/sessionInCookie.js.map +1 -0
  13. package/cjs/session/sessionInLocalStorage.js +44 -0
  14. package/cjs/session/sessionInLocalStorage.js.map +1 -0
  15. package/cjs/session/sessionManagement.js +38 -31
  16. package/cjs/session/sessionManagement.js.map +1 -1
  17. package/cjs/session/sessionState.js +73 -0
  18. package/cjs/session/sessionState.js.map +1 -0
  19. package/cjs/session/sessionStore.js +113 -90
  20. package/cjs/session/sessionStore.js.map +1 -1
  21. package/cjs/session/sessionStoreOperations.js +117 -0
  22. package/cjs/session/sessionStoreOperations.js.map +1 -0
  23. package/esm/browser/cookie.js +15 -8
  24. package/esm/browser/cookie.js.map +1 -1
  25. package/esm/configuration/configuration.js +2 -22
  26. package/esm/configuration/configuration.js.map +1 -1
  27. package/esm/index.js +3 -4
  28. package/esm/index.js.map +1 -1
  29. package/esm/init.js +0 -19
  30. package/esm/init.js.map +1 -1
  31. package/esm/session/sessionConstants.js +1 -0
  32. package/esm/session/sessionConstants.js.map +1 -1
  33. package/esm/session/sessionInCookie.js +51 -0
  34. package/esm/session/sessionInCookie.js.map +1 -0
  35. package/esm/session/sessionInLocalStorage.js +37 -0
  36. package/esm/session/sessionInLocalStorage.js.map +1 -0
  37. package/esm/session/sessionManagement.js +35 -28
  38. package/esm/session/sessionManagement.js.map +1 -1
  39. package/esm/session/sessionState.js +59 -0
  40. package/esm/session/sessionState.js.map +1 -0
  41. package/esm/session/sessionStore.js +113 -90
  42. package/esm/session/sessionStore.js.map +1 -1
  43. package/esm/session/sessionStoreOperations.js +108 -0
  44. package/esm/session/sessionStoreOperations.js.map +1 -0
  45. package/package.json +2 -2
  46. package/src/browser/cookie.js +23 -11
  47. package/src/configuration/configuration.js +3 -30
  48. package/src/index.js +9 -4
  49. package/src/init.js +0 -19
  50. package/src/session/sessionConstants.js +1 -0
  51. package/src/session/sessionInCookie.js +87 -0
  52. package/src/session/sessionInLocalStorage.js +45 -0
  53. package/src/session/sessionManagement.js +48 -36
  54. package/src/session/sessionState.js +72 -0
  55. package/src/session/sessionStore.js +163 -108
  56. package/src/session/sessionStoreOperations.js +134 -0
  57. package/types/index.d.ts +4 -0
  58. package/cjs/session/sessionCookieStore.js +0 -156
  59. package/cjs/session/sessionCookieStore.js.map +0 -1
  60. package/cjs/synthetics/usr.js +0 -26
  61. package/cjs/synthetics/usr.js.map +0 -1
  62. package/esm/session/sessionCookieStore.js +0 -142
  63. package/esm/session/sessionCookieStore.js.map +0 -1
  64. package/esm/synthetics/usr.js +0 -17
  65. package/esm/synthetics/usr.js.map +0 -1
  66. package/src/session/sessionCookieStore.js +0 -169
  67. 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.startSessionManager = exports.VISIBILITY_CHECK_DELAY = void 0;
6
+ exports.VISIBILITY_CHECK_DELAY = void 0;
7
+ exports.startSessionManager = startSessionManager;
7
8
  exports.stopSessionManager = stopSessionManager;
8
- var _tools = require("../helper/tools");
9
- var _addEventListener2 = require("../browser/addEventListener");
9
+ var _observable = require("../helper/observable");
10
10
  var _valueHistory = require("../helper/valueHistory");
11
- var _sessionStore = require("./sessionStore");
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 _observable = require("../helper/observable");
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
- var startSessionManager = function startSessionManager(options, productKey, computeSessionState) {
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)(options, productKey, computeSessionState);
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
- return sessionStore.expandOrRenewSession();
48
+ sessionStore.expandOrRenewSession();
45
49
  });
46
50
  trackVisibility(function () {
47
51
  return sessionStore.expandSession();
48
52
  });
49
- // trackResume(function () {
50
- // return sessionStore.expandSession()
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
- findActiveSession: function findActiveSession(startTime) {
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
- expire: sessionStore.expire
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
- (0, _tools.each)(stopCallbacks, function (e) {
71
- return e();
74
+ stopCallbacks.forEach(function (e) {
75
+ e();
72
76
  });
73
77
  stopCallbacks = [];
74
78
  }
75
79
  function trackActivity(expandOrRenewSession) {
76
- var _addEventListeners = (0, _addEventListener2.addEventListeners)(window, [_enums.DOM_EVENT.CLICK, _enums.DOM_EVENT.TOUCH_START, _enums.DOM_EVENT.KEY_DOWN, _enums.DOM_EVENT.SCROLL], expandOrRenewSession, {
77
- capture: true,
78
- passive: true
79
- });
80
- stopCallbacks.push(_addEventListeners.stop);
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, _addEventListener2.addEventListener)(document, _enums.DOM_EVENT.VISIBILITY_CHANGE, expandSessionWhenVisible);
89
- stopCallbacks.push(_addEventListener.stop);
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 _addEventListener = (0, _addEventListener2.addEventListener)(window, _enums.DOM_EVENT.RESUME, cb, {
97
- capture: true
98
- });
99
- stopCallbacks.push(_addEventListener.stop);
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":["_tools","require","_addEventListener2","_valueHistory","_sessionStore","_sessionConstants","_enums","_timer","_observable","VISIBILITY_CHECK_DELAY","ONE_MINUTE","exports","SESSION_CONTEXT_TIMEOUT_DELAY","SESSION_TIME_OUT_DELAY","stopCallbacks","startSessionManager","options","productKey","computeSessionState","renewObservable","Observable","expireObservable","sessionStore","startSessionStore","push","stop","sessionContextHistory","createValueHistory","expireDelay","subscribe","add","buildSessionContext","relativeNow","notify","closeActive","expandOrRenewSession","clocksOrigin","relative","trackActivity","trackVisibility","expandSession","id","getSession","trackingType","findActiveSession","startTime","find","expire","stopSessionManager","each","e","_addEventListeners","addEventListeners","window","DOM_EVENT","CLICK","TOUCH_START","KEY_DOWN","SCROLL","capture","passive","expandSessionWhenVisible","document","visibilityState","_addEventListener","addEventListener","VISIBILITY_CHANGE","visibilityCheckInterval","setInterval","clearInterval","trackResume","cb","RESUME"],"sources":["../../src/session/sessionManagement.js"],"sourcesContent":["import { relativeNow, clocksOrigin, ONE_MINUTE, each } from '../helper/tools'\nimport {\n addEventListeners,\n addEventListener\n} from '../browser/addEventListener'\nimport { createValueHistory } from '../helper/valueHistory'\nimport { startSessionStore } from './sessionStore'\nimport { SESSION_TIME_OUT_DELAY } from './sessionConstants'\nimport { DOM_EVENT } from '../helper/enums'\nimport { clearInterval, setInterval } from '../helper/timer'\nimport { Observable } from '../helper/observable'\nexport var VISIBILITY_CHECK_DELAY = ONE_MINUTE\nvar SESSION_CONTEXT_TIMEOUT_DELAY = SESSION_TIME_OUT_DELAY\nvar stopCallbacks = []\n\nexport var startSessionManager = function (\n options,\n productKey,\n computeSessionState\n) {\n var renewObservable = new Observable()\n var expireObservable = new Observable()\n var sessionStore = startSessionStore(options, productKey, computeSessionState)\n stopCallbacks.push(function () {\n return sessionStore.stop()\n })\n\n var 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 sessionStore.expandOrRenewSession()\n sessionContextHistory.add(buildSessionContext(), clocksOrigin().relative)\n\n trackActivity(function () {\n return sessionStore.expandOrRenewSession()\n })\n trackVisibility(function () {\n return sessionStore.expandSession()\n })\n // trackResume(function () {\n // return sessionStore.expandSession()\n // })\n\n function buildSessionContext() {\n return {\n id: sessionStore.getSession().id,\n trackingType: sessionStore.getSession()[productKey]\n }\n }\n\n return {\n findActiveSession: function (startTime) {\n return sessionContextHistory.find(startTime)\n },\n renewObservable: renewObservable,\n expireObservable: expireObservable,\n expire: sessionStore.expire\n }\n}\n\nexport function stopSessionManager() {\n each(stopCallbacks, function (e) {\n return e()\n })\n stopCallbacks = []\n}\n\nfunction trackActivity(expandOrRenewSession) {\n var _addEventListeners = 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(_addEventListeners.stop)\n}\n\nfunction trackVisibility(expandSession) {\n var expandSessionWhenVisible = function () {\n if (document.visibilityState === 'visible') {\n expandSession()\n }\n }\n var _addEventListener = addEventListener(\n document,\n DOM_EVENT.VISIBILITY_CHANGE,\n expandSessionWhenVisible\n )\n stopCallbacks.push(_addEventListener.stop)\n\n var visibilityCheckInterval = setInterval(\n expandSessionWhenVisible,\n VISIBILITY_CHECK_DELAY\n )\n stopCallbacks.push(function () {\n clearInterval(visibilityCheckInterval)\n })\n}\nfunction trackResume(cb) {\n var _addEventListener = addEventListener(window, DOM_EVENT.RESUME, cb, {\n capture: true\n })\n stopCallbacks.push(_addEventListener.stop)\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"sessionManagement.js","names":["_observable","require","_valueHistory","_tools","_enums","_addEventListener3","_timer","_sessionConstants","_sessionStore","VISIBILITY_CHECK_DELAY","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":[]}