define('core/analytics/reporting',['require','core/utils/collection/each','core/utils/url/serialize','core/config/urls'],function (require) { // eslint-disable-line no-shadow 'use strict'; var each = require('core/utils/collection/each'); var serialize = require('core/utils/url/serialize'); var urls = require('core/config/urls'); var jesterUrl = urls.jester; function getLoaderVersionFromUrl(url) { var parts = url.split('.'); var version = parts.length > 2 ? parts[parts.length - 2] : ''; // eslint-disable-line no-magic-numbers return version.match(/^[0-9a-f]{32}$/i) && version; } function logStat(eventName) { new window.Image().src = serialize(jesterUrl + '/stat.gif', { event: eventName }); } function reportJester(payload) { new window.Image().src = serialize(jesterUrl + '/event.gif', payload); } function reportJesterPOST(payload) { var data = new window.URLSearchParams(); each(payload, function (value, key) { if (value !== undefined) { data.append(key, value); } }); var req = new window.XMLHttpRequest(); req.open('POST', jesterUrl + '/event.json', true); req.withCredentials = true; req.send(data); } return { getLoaderVersionFromUrl: getLoaderVersionFromUrl, logStat: logStat, reportJester: reportJester, reportJesterPOST: reportJesterPOST, }; });