@cloudcare/browser-core 3.2.15 → 3.2.17
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 +3 -1
- package/cjs/browser/cookie.js.map +1 -1
- package/cjs/helper/tools.js +2 -116
- package/cjs/helper/tools.js.map +1 -1
- package/esm/browser/cookie.js +3 -1
- package/esm/browser/cookie.js.map +1 -1
- package/esm/helper/tools.js +0 -108
- package/esm/helper/tools.js.map +1 -1
- package/package.json +2 -2
- package/src/browser/cookie.js +6 -2
- package/src/helper/tools.js +2 -138
package/cjs/browser/cookie.js
CHANGED
|
@@ -76,7 +76,9 @@ function getCurrentSite() {
|
|
|
76
76
|
var testCookieValue = 'test';
|
|
77
77
|
var domainLevels = window.location.hostname.split('.');
|
|
78
78
|
var candidateDomain = domainLevels.pop();
|
|
79
|
-
while (domainLevels.length && !getCookie(testCookieName
|
|
79
|
+
while (domainLevels.length && !getCookie(testCookieName, {
|
|
80
|
+
domain: candidateDomain
|
|
81
|
+
})) {
|
|
80
82
|
candidateDomain = "".concat(domainLevels.pop(), ".").concat(candidateDomain);
|
|
81
83
|
setCookie(testCookieName, testCookieValue, _tools.ONE_SECOND, {
|
|
82
84
|
domain: candidateDomain
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cookie.js","names":["_tools","require","getCookieName","name","options","concat","crossSite","domain","secure","partitioned","setCookie","value","expireDelay","date","Date","setTime","getTime","expires","toUTCString","sameSite","document","cookie","getCookie","findCommaSeparatedValue","initCookieParsed","getInitCookie","findCommaSeparatedValues","get","resetInitCookies","undefined","deleteCookie","areCookiesAuthorized","testCookieName","UUID","testCookieValue","ONE_MINUTE","isCookieCorrectlySet","error","getCurrentSiteCache","getCurrentSite","domainLevels","window","location","hostname","split","candidateDomain","pop","length","ONE_SECOND"],"sources":["../../src/browser/cookie.js"],"sourcesContent":["import {\n findCommaSeparatedValue,\n UUID,\n ONE_SECOND,\n ONE_MINUTE,\n findCommaSeparatedValues\n} from '../helper/tools'\n\nfunction getCookieName(name, options) {\n return `${name}_${options && options.crossSite ? 'cs1' : 'cs0'}_${\n options && options.domain ? 'd1' : 'd0'\n }_${options && options.secure ? 'sec1' : 'sec0'}_${\n options && options.partitioned ? 'part1' : 'part0'\n }`\n}\nexport function setCookie(name, value, expireDelay, options) {\n var date = new Date()\n date.setTime(date.getTime() + expireDelay)\n var expires = 'expires=' + date.toUTCString()\n var sameSite = options && options.crossSite ? 'none' : 'strict'\n var domain = options && options.domain ? ';domain=' + options.domain : ''\n var secure = options && options.secure ? ';secure' : ''\n var partitioned = options && options.partitioned ? ';partitioned' : ''\n\n document.cookie =\n getCookieName(name, options) +\n '=' +\n value +\n ';' +\n expires +\n ';path=/;samesite=' +\n sameSite +\n domain +\n secure +\n partitioned\n}\n\nexport function getCookie(name, options) {\n return findCommaSeparatedValue(document.cookie, getCookieName(name, options))\n}\nvar initCookieParsed\n/**\n * Returns a cached value of the cookie. Use this during SDK initialization (and whenever possible)\n * to avoid accessing document.cookie multiple times.\n */\nexport function getInitCookie(name) {\n if (!initCookieParsed) {\n initCookieParsed = findCommaSeparatedValues(document.cookie)\n }\n return initCookieParsed.get(name)\n}\n\nexport function resetInitCookies() {\n initCookieParsed = undefined\n}\nexport function deleteCookie(name, options) {\n setCookie(name, '', 0, options)\n}\n\nexport function areCookiesAuthorized(options) {\n if (document.cookie === undefined || document.cookie === null) {\n return false\n }\n try {\n // Use a unique cookie name to avoid issues when the SDK is initialized multiple times during\n // the test cookie lifetime\n var testCookieName = `gc_cookie_test_${UUID()}`\n var testCookieValue = 'test'\n setCookie(testCookieName, testCookieValue, ONE_MINUTE, options)\n const isCookieCorrectlySet =\n getCookie(testCookieName, options) === testCookieValue\n deleteCookie(testCookieName, options)\n return isCookieCorrectlySet\n } catch (error) {\n return false\n }\n}\n\n/**\n * No API to retrieve it, number of levels for subdomain and suffix are unknown\n * strategy: find the minimal domain on which cookies are allowed to be set\n * https://web.dev/same-site-same-origin/#site\n */\nvar getCurrentSiteCache\nexport function getCurrentSite() {\n if (getCurrentSiteCache === undefined) {\n // Use a unique cookie name to avoid issues when the SDK is initialized multiple times during\n // the test cookie lifetime\n const testCookieName = `gc_site_test_${UUID()}`\n const testCookieValue = 'test'\n
|
|
1
|
+
{"version":3,"file":"cookie.js","names":["_tools","require","getCookieName","name","options","concat","crossSite","domain","secure","partitioned","setCookie","value","expireDelay","date","Date","setTime","getTime","expires","toUTCString","sameSite","document","cookie","getCookie","findCommaSeparatedValue","initCookieParsed","getInitCookie","findCommaSeparatedValues","get","resetInitCookies","undefined","deleteCookie","areCookiesAuthorized","testCookieName","UUID","testCookieValue","ONE_MINUTE","isCookieCorrectlySet","error","getCurrentSiteCache","getCurrentSite","domainLevels","window","location","hostname","split","candidateDomain","pop","length","ONE_SECOND"],"sources":["../../src/browser/cookie.js"],"sourcesContent":["import {\n findCommaSeparatedValue,\n UUID,\n ONE_SECOND,\n ONE_MINUTE,\n findCommaSeparatedValues\n} from '../helper/tools'\n\nfunction getCookieName(name, options) {\n return `${name}_${options && options.crossSite ? 'cs1' : 'cs0'}_${\n options && options.domain ? 'd1' : 'd0'\n }_${options && options.secure ? 'sec1' : 'sec0'}_${\n options && options.partitioned ? 'part1' : 'part0'\n }`\n}\nexport function setCookie(name, value, expireDelay, options) {\n var date = new Date()\n date.setTime(date.getTime() + expireDelay)\n var expires = 'expires=' + date.toUTCString()\n var sameSite = options && options.crossSite ? 'none' : 'strict'\n var domain = options && options.domain ? ';domain=' + options.domain : ''\n var secure = options && options.secure ? ';secure' : ''\n var partitioned = options && options.partitioned ? ';partitioned' : ''\n\n document.cookie =\n getCookieName(name, options) +\n '=' +\n value +\n ';' +\n expires +\n ';path=/;samesite=' +\n sameSite +\n domain +\n secure +\n partitioned\n}\n\nexport function getCookie(name, options) {\n return findCommaSeparatedValue(document.cookie, getCookieName(name, options))\n}\nvar initCookieParsed\n/**\n * Returns a cached value of the cookie. Use this during SDK initialization (and whenever possible)\n * to avoid accessing document.cookie multiple times.\n */\nexport function getInitCookie(name) {\n if (!initCookieParsed) {\n initCookieParsed = findCommaSeparatedValues(document.cookie)\n }\n return initCookieParsed.get(name)\n}\n\nexport function resetInitCookies() {\n initCookieParsed = undefined\n}\nexport function deleteCookie(name, options) {\n setCookie(name, '', 0, options)\n}\n\nexport function areCookiesAuthorized(options) {\n if (document.cookie === undefined || document.cookie === null) {\n return false\n }\n try {\n // Use a unique cookie name to avoid issues when the SDK is initialized multiple times during\n // the test cookie lifetime\n var testCookieName = `gc_cookie_test_${UUID()}`\n var testCookieValue = 'test'\n setCookie(testCookieName, testCookieValue, ONE_MINUTE, options)\n const isCookieCorrectlySet =\n getCookie(testCookieName, options) === testCookieValue\n deleteCookie(testCookieName, options)\n return isCookieCorrectlySet\n } catch (error) {\n return false\n }\n}\n\n/**\n * No API to retrieve it, number of levels for subdomain and suffix are unknown\n * strategy: find the minimal domain on which cookies are allowed to be set\n * https://web.dev/same-site-same-origin/#site\n */\nvar getCurrentSiteCache\nexport function getCurrentSite() {\n if (getCurrentSiteCache === undefined) {\n // Use a unique cookie name to avoid issues when the SDK is initialized multiple times during\n // the test cookie lifetime\n const testCookieName = `gc_site_test_${UUID()}`\n const testCookieValue = 'test'\n const domainLevels = window.location.hostname.split('.')\n let candidateDomain = domainLevels.pop()\n while (\n domainLevels.length &&\n !getCookie(testCookieName, {\n domain: candidateDomain\n })\n ) {\n candidateDomain = `${domainLevels.pop()}.${candidateDomain}`\n setCookie(testCookieName, testCookieValue, ONE_SECOND, {\n domain: candidateDomain\n })\n }\n deleteCookie(testCookieName, { domain: candidateDomain })\n getCurrentSiteCache = candidateDomain\n }\n return getCurrentSiteCache\n}\n"],"mappings":"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","ignoreList":[]}
|
package/cjs/helper/tools.js
CHANGED
|
@@ -5,7 +5,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.ONE_YEAR = exports.ONE_SECOND = exports.ONE_MINUTE = exports.ONE_HOUR = exports.ONE_DAY = exports.Browser = void 0;
|
|
7
7
|
exports.UUID = UUID;
|
|
8
|
-
exports._URL = void 0;
|
|
9
8
|
exports.addDuration = addDuration;
|
|
10
9
|
exports.ajax = void 0;
|
|
11
10
|
exports.arrayFrom = arrayFrom;
|
|
@@ -13,10 +12,9 @@ exports.assign = assign;
|
|
|
13
12
|
exports.base64Encode = exports.autoExeQueue = void 0;
|
|
14
13
|
exports.clocksNow = clocksNow;
|
|
15
14
|
exports.clocksOrigin = clocksOrigin;
|
|
16
|
-
exports.cssEscape = exports.coverExtend =
|
|
15
|
+
exports.cssEscape = exports.coverExtend = void 0;
|
|
17
16
|
exports.currentDrift = currentDrift;
|
|
18
17
|
exports.dateNow = dateNow;
|
|
19
|
-
exports.decodeURIComponent = void 0;
|
|
20
18
|
exports.deepClone = deepClone;
|
|
21
19
|
exports.deepSnakeCase = deepSnakeCase;
|
|
22
20
|
exports.detectBrowser = detectBrowser;
|
|
@@ -37,7 +35,7 @@ exports.getLinkElementOrigin = getLinkElementOrigin;
|
|
|
37
35
|
exports.getLocationOrigin = getLocationOrigin;
|
|
38
36
|
exports.getNavigationStart = getNavigationStart;
|
|
39
37
|
exports.getPathFromHash = getPathFromHash;
|
|
40
|
-
exports.getReferrer = exports.getQueryParamsFromUrl =
|
|
38
|
+
exports.getReferrer = exports.getQueryParamsFromUrl = void 0;
|
|
41
39
|
exports.getRelativeTime = getRelativeTime;
|
|
42
40
|
exports.getScreenOrientation = void 0;
|
|
43
41
|
exports.getStatusGroup = getStatusGroup;
|
|
@@ -443,16 +441,6 @@ var safeJSONParse = function safeJSONParse(str) {
|
|
|
443
441
|
return val;
|
|
444
442
|
};
|
|
445
443
|
exports.safeJSONParse = safeJSONParse;
|
|
446
|
-
var decodeURIComponent = function decodeURIComponent(val) {
|
|
447
|
-
var result = val;
|
|
448
|
-
try {
|
|
449
|
-
result = decodeURIComponent(val);
|
|
450
|
-
} catch (error) {
|
|
451
|
-
result = val;
|
|
452
|
-
}
|
|
453
|
-
return result;
|
|
454
|
-
};
|
|
455
|
-
exports.decodeURIComponent = decodeURIComponent;
|
|
456
444
|
var encodeDates = function encodeDates(obj) {
|
|
457
445
|
each(obj, function (v, k) {
|
|
458
446
|
if (isDate(v)) {
|
|
@@ -713,19 +701,6 @@ function replaceNumberCharByPath(path) {
|
|
|
713
701
|
}
|
|
714
702
|
return pathGroup || '/';
|
|
715
703
|
}
|
|
716
|
-
var getQueryParam = function getQueryParam(url, param) {
|
|
717
|
-
param = param.replace(/[\[]/, '\\[').replace(/[\]]/, '\\]');
|
|
718
|
-
url = decodeURIComponent(url);
|
|
719
|
-
var regexS = '[\\?&]' + param + '=([^&#]*)',
|
|
720
|
-
regex = new RegExp(regexS),
|
|
721
|
-
results = regex.exec(url);
|
|
722
|
-
if (results === null || results && typeof results[1] !== 'string' && results[1].length) {
|
|
723
|
-
return '';
|
|
724
|
-
} else {
|
|
725
|
-
return decodeURIComponent(results[1]);
|
|
726
|
-
}
|
|
727
|
-
};
|
|
728
|
-
exports.getQueryParam = getQueryParam;
|
|
729
704
|
var urlParse = function urlParse(para) {
|
|
730
705
|
var URLParser = function URLParser(a) {
|
|
731
706
|
this._fields = {
|
|
@@ -819,45 +794,6 @@ function elementMatches(element, selector) {
|
|
|
819
794
|
}
|
|
820
795
|
return false;
|
|
821
796
|
}
|
|
822
|
-
var cookie = {
|
|
823
|
-
get: function get(name) {
|
|
824
|
-
var nameEQ = name + '=';
|
|
825
|
-
var ca = document.cookie.split(';');
|
|
826
|
-
for (var i = 0; i < ca.length; i++) {
|
|
827
|
-
var c = ca[i];
|
|
828
|
-
while (c.charAt(0) == ' ') {
|
|
829
|
-
c = c.substring(1, c.length);
|
|
830
|
-
}
|
|
831
|
-
if (c.indexOf(nameEQ) == 0) {
|
|
832
|
-
return decodeURIComponent(c.substring(nameEQ.length, c.length));
|
|
833
|
-
}
|
|
834
|
-
}
|
|
835
|
-
return null;
|
|
836
|
-
},
|
|
837
|
-
set: function set(name, value, days, is_secure) {
|
|
838
|
-
var cdomain = '',
|
|
839
|
-
expires = '',
|
|
840
|
-
secure = '';
|
|
841
|
-
days = days == null ? 73000 : days;
|
|
842
|
-
if (days !== 0) {
|
|
843
|
-
var date = new Date();
|
|
844
|
-
if (String(days).slice(-1) === 's') {
|
|
845
|
-
date.setTime(date.getTime() + Number(String(days).slice(0, -1)) * 1000);
|
|
846
|
-
} else {
|
|
847
|
-
date.setTime(date.getTime() + days * 24 * 60 * 60 * 1000);
|
|
848
|
-
}
|
|
849
|
-
expires = '; expires=' + date.toGMTString();
|
|
850
|
-
}
|
|
851
|
-
if (is_secure) {
|
|
852
|
-
secure = '; secure';
|
|
853
|
-
}
|
|
854
|
-
document.cookie = name + '=' + encodeURIComponent(value) + expires + '; path=/' + cdomain + secure;
|
|
855
|
-
},
|
|
856
|
-
remove: function remove(name) {
|
|
857
|
-
cookie.set(name, '', -1);
|
|
858
|
-
}
|
|
859
|
-
};
|
|
860
|
-
exports.cookie = cookie;
|
|
861
797
|
var localStorage = {
|
|
862
798
|
get: function get(name) {
|
|
863
799
|
return window.localStorage.getItem(name);
|
|
@@ -1195,56 +1131,6 @@ function mergeInto(destination, source, circularReferenceChecker) {
|
|
|
1195
1131
|
function deepClone(value) {
|
|
1196
1132
|
return mergeInto(undefined, value);
|
|
1197
1133
|
}
|
|
1198
|
-
var _URL = function _URL(url) {
|
|
1199
|
-
var result = {};
|
|
1200
|
-
var basicProps = ['hash', 'host', 'hostname', 'href', 'origin', 'password', 'pathname', 'port', 'protocol', 'search', 'username'];
|
|
1201
|
-
var isURLAPIWorking = function isURLAPIWorking() {
|
|
1202
|
-
var url;
|
|
1203
|
-
try {
|
|
1204
|
-
url = new URL('http://modernizr.com/');
|
|
1205
|
-
return url.href === 'http://modernizr.com/';
|
|
1206
|
-
} catch (e) {
|
|
1207
|
-
return false;
|
|
1208
|
-
}
|
|
1209
|
-
};
|
|
1210
|
-
if (typeof window.URL === 'function' && isURLAPIWorking()) {
|
|
1211
|
-
result = new URL(url);
|
|
1212
|
-
if (!result.searchParams) {
|
|
1213
|
-
result.searchParams = function () {
|
|
1214
|
-
var params = getURLSearchParams(result.search);
|
|
1215
|
-
return {
|
|
1216
|
-
get: function get(searchParam) {
|
|
1217
|
-
return params[searchParam];
|
|
1218
|
-
}
|
|
1219
|
-
};
|
|
1220
|
-
}();
|
|
1221
|
-
}
|
|
1222
|
-
} else {
|
|
1223
|
-
var _regex = /^https?:\/\/.+/;
|
|
1224
|
-
if (_regex.test(url) === false) {
|
|
1225
|
-
throw 'Invalid URL';
|
|
1226
|
-
}
|
|
1227
|
-
var link = document.createElement('a');
|
|
1228
|
-
link.href = url;
|
|
1229
|
-
for (var i = basicProps.length - 1; i >= 0; i--) {
|
|
1230
|
-
var prop = basicProps[i];
|
|
1231
|
-
result[prop] = link[prop];
|
|
1232
|
-
}
|
|
1233
|
-
if (result.hostname && typeof result.pathname === 'string' && result.pathname.indexOf('/') !== 0) {
|
|
1234
|
-
result.pathname = '/' + result.pathname;
|
|
1235
|
-
}
|
|
1236
|
-
result.searchParams = function () {
|
|
1237
|
-
var params = getURLSearchParams(result.search);
|
|
1238
|
-
return {
|
|
1239
|
-
get: function get(searchParam) {
|
|
1240
|
-
return params[searchParam];
|
|
1241
|
-
}
|
|
1242
|
-
};
|
|
1243
|
-
}();
|
|
1244
|
-
}
|
|
1245
|
-
return result;
|
|
1246
|
-
};
|
|
1247
|
-
exports._URL = _URL;
|
|
1248
1134
|
var getCurrentDomain = function getCurrentDomain(url) {
|
|
1249
1135
|
var cookieTopLevelDomain = getCookieTopLevelDomain();
|
|
1250
1136
|
if (url === '') {
|