Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@qlean/analytics-client

Package Overview
Dependencies
Maintainers
10
Versions
6
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@qlean/analytics-client - npm Package Compare versions

Comparing version 0.4.2 to 0.5.0

2

dist/bundle.js

@@ -1,1 +0,1 @@

!function(t){var n={};function Q(e){if(n[e])return n[e].exports;var r=n[e]={i:e,l:!1,exports:{}};return t[e].call(r.exports,r,r.exports,Q),r.l=!0,r.exports}Q.m=t,Q.c=n,Q.d=function(t,n,e){Q.o(t,n)||Object.defineProperty(t,n,{enumerable:!0,get:e})},Q.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},Q.t=function(t,n){if(1&n&&(t=Q(t)),8&n)return t;if(4&n&&"object"==typeof t&&t&&t.__esModule)return t;var e=Object.create(null);if(Q.r(e),Object.defineProperty(e,"default",{enumerable:!0,value:t}),2&n&&"string"!=typeof t)for(var r in t)Q.d(e,r,function(n){return t[n]}.bind(null,r));return e},Q.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return Q.d(n,"a",n),n},Q.o=function(t,n){return Object.prototype.hasOwnProperty.call(t,n)},Q.p="",Q(Q.s=0)}([function(module,exports,__webpack_require__){"use strict";eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Qat = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _gateway = __webpack_require__(1);\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar gateway = new _gateway.Gateway();\n\nvar PROP = {\n 'eventId': 'eid',\n 'eventAction': 'ea',\n 'eventCategory': 'ec',\n 'eventLabel': 'el',\n 'phone': 'ph',\n 'user_id': 'uid',\n 'device_id': 'dvid',\n 'url': 'dl'\n};\n\nvar wrapHref = Symbol('wrapHref');\n\nvar Qat = exports.Qat = function () {\n function Qat(_ref) {\n var _this = this;\n\n var buffer = _ref.buffer,\n options = _ref.options;\n\n _classCallCheck(this, Qat);\n\n this.options = options;\n\n gateway.init(options);\n\n if (buffer.length) {\n buffer.forEach(function (event) {\n return _this.emit(event);\n });\n }\n\n if (!options.wrapLink) {\n return;\n }\n\n if (document.readyState === 'complete') {\n this[wrapHref]();\n } else {\n window.addEventListener('load', function () {\n return _this[wrapHref]();\n });\n }\n }\n\n _createClass(Qat, [{\n key: wrapHref,\n value: function value() {\n var els = document.getElementsByTagName('a');\n var pattern = null;\n\n if (_typeof(this.options.wrapLink) === 'object') {\n pattern = this.options.wrapLink.pattern;\n }\n\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = els[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var _ref2;\n\n var a = _step.value;\n\n\n if (pattern && !pattern.test(a.href)) {\n continue;\n }\n\n var oldhref = a.href;\n\n a.href = this.options.url + '?' + gateway.toQuery([(_ref2 = {}, _defineProperty(_ref2, PROP.category, 'redirect'), _defineProperty(_ref2, PROP.action, 'link'), _defineProperty(_ref2, 'tstamp', Date.now()), _defineProperty(_ref2, 'dl', encodeURIComponent(a.href)), _ref2)]) + '&rul=' + encodeURIComponent(oldhref);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n }\n }, {\n key: 'emit',\n value: function emit(event) {\n var item = {\n tstamp: Date.now(),\n dl: encodeURIComponent(location.href),\n prp: {}\n };\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = Object.keys(event)[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var key = _step2.value;\n\n\n if (typeof this.options.normalize === 'function') {\n key = this.options.normalize(key);\n }\n\n if (PROP[key]) {\n item[PROP[key]] = event[key];\n } else {\n item.prp[key] = event[key];\n }\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n\n gateway.pushEvent(item);\n }\n }]);\n\n return Qat;\n}();\n\n/**\n * Данное условие проверяет, что библиотека\n * подключена на обычную страницу и не\n * используется как модуль в приложении\n */\n\n\nif (window && window.$qat) {\n window.$qat = new Qat({\n buffer: window.$qat.buffer || [],\n options: window.$qat.options || {}\n });\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvaW5kZXguanM/YjYzNSJdLCJuYW1lcyI6WyJnYXRld2F5IiwiR2F0ZXdheSIsIlBST1AiLCJ3cmFwSHJlZiIsIlN5bWJvbCIsIlFhdCIsImJ1ZmZlciIsIm9wdGlvbnMiLCJpbml0IiwibGVuZ3RoIiwiZm9yRWFjaCIsImVtaXQiLCJldmVudCIsIndyYXBMaW5rIiwiZG9jdW1lbnQiLCJyZWFkeVN0YXRlIiwid2luZG93IiwiYWRkRXZlbnRMaXN0ZW5lciIsImVscyIsImdldEVsZW1lbnRzQnlUYWdOYW1lIiwicGF0dGVybiIsImEiLCJ0ZXN0IiwiaHJlZiIsIm9sZGhyZWYiLCJ1cmwiLCJ0b1F1ZXJ5IiwiY2F0ZWdvcnkiLCJhY3Rpb24iLCJEYXRlIiwibm93IiwiZW5jb2RlVVJJQ29tcG9uZW50IiwiaXRlbSIsInRzdGFtcCIsImRsIiwibG9jYXRpb24iLCJwcnAiLCJPYmplY3QiLCJrZXlzIiwia2V5Iiwibm9ybWFsaXplIiwicHVzaEV2ZW50IiwiJHFhdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7Ozs7O0FBRUEsSUFBTUEsVUFBVSxJQUFJQyxnQkFBSixFQUFoQjs7QUFFQSxJQUFNQyxPQUFPO0FBQ1gsYUFBVyxLQURBO0FBRVgsaUJBQWUsSUFGSjtBQUdYLG1CQUFpQixJQUhOO0FBSVgsZ0JBQWMsSUFKSDtBQUtYLFdBQVMsSUFMRTtBQU1YLGFBQVcsS0FOQTtBQU9YLGVBQWEsTUFQRjtBQVFYLFNBQU87QUFSSSxDQUFiOztBQVdBLElBQU1DLFdBQVdDLE9BQU8sVUFBUCxDQUFqQjs7SUFFYUMsRyxXQUFBQSxHO0FBRVgscUJBQWlDO0FBQUE7O0FBQUEsUUFBbkJDLE1BQW1CLFFBQW5CQSxNQUFtQjtBQUFBLFFBQVhDLE9BQVcsUUFBWEEsT0FBVzs7QUFBQTs7QUFDL0IsU0FBS0EsT0FBTCxHQUFlQSxPQUFmOztBQUVBUCxZQUFRUSxJQUFSLENBQWFELE9BQWI7O0FBRUEsUUFBSUQsT0FBT0csTUFBWCxF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anMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBHYXRld2F5IH0gZnJvbSAnLi9nYXRld2F5JztcblxuY29uc3QgZ2F0ZXdheSA9IG5ldyBHYXRld2F5KCk7XG5cbmNvbnN0IFBST1AgPSB7XG4gICdldmVudElkJzogJ2VpZCcsXG4gICdldmVudEFjdGlvbic6ICdlYScsXG4gICdldmVudENhdGVnb3J5JzogJ2VjJyxcbiAgJ2V2ZW50TGFiZWwnOiAnZWwnLFxuICAncGhvbmUnOiAncGgnLFxuICAndXNlcl9pZCc6ICd1aWQnLFxuICAnZGV2aWNlX2lkJzogJ2R2aWQnLFxuICAndXJsJzogJ2RsJyxcbn07XG5cbmNvbnN0IHdyYXBIcmVmID0gU3ltYm9sKCd3cmFwSHJlZicpO1xuXG5leHBvcnQgY2xhc3MgUWF0IHtcblxuICBjb25zdHJ1Y3Rvcih7IGJ1ZmZlciwgb3B0aW9ucyB9KSB7XG4gICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcblxuICAgIGdhdGV3YXkuaW5pdChvcHRpb25zKTtcblxuICAgIGlmIChidWZmZXIubGVuZ3RoKSB7XG4gICAgICBidWZmZXIuZm9yRWFjaChldmVudCA9PiB0aGlzLmVtaXQoZXZlbnQpKTtcbiAgICB9XG5cbiAgICBpZiAoIW9wdGlvbnMud3JhcExpbmspIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoZG9jdW1lbnQucmVhZHlTdGF0ZSA9PT0gJ2NvbXBsZXRlJykge1xuICAgICAgdGhpc1t3cmFwSHJlZl0oKTtcbiAgICB9IGVsc2Uge1xuICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCAoKSA9PiB0aGlzW3dyYXBIcmVmXSgpKVxuICAgIH1cblxuICB9XG5cbiAgW3dyYXBIcmVmXSgpIHtcbiAgICBjb25zdCBlbHMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnYScpO1xuICAgIGxldCBwYXR0ZXJuID0gbnVsbDtcblxuICAgIGlmICh0eXBlb2YgdGhpcy5vcHRpb25zLndyYXBMaW5rID09PSAnb2JqZWN0Jykge1xuICAgICAgIHBhdHRlcm4gPSB0aGlzLm9wdGlvbnMud3JhcExpbmsucGF0dGVybjtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGEgb2YgZWxzKSB7XG5cbiAgICAgIGlmIChwYXR0ZXJuICYmICFwYXR0ZXJuLnRlc3QoYS5ocmVmKSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgY29uc3Qgb2xkaHJlZiA9IGEuaHJlZjtcblxuICAgICAgYS5ocmVmID0gYCR7dGhpcy5vcHRpb25zLnVybH0/JHtnYXRld2F5LnRvUXVlcnkoW1xuICAgICAgICB7XG4gICAgICAgICAgW1BST1AuY2F0ZWdvcnldOiAncmVkaXJlY3QnLFxuICAgICAgICAgIFtQUk9QLmFjdGlvbl06ICdsaW5rJyxcbiAgICAgICAgICB0c3RhbXA6IERhdGUubm93KCksXG4gICAgICAgICAgZGw6IGVuY29kZVVSSUNvbXBvbmVudChhLmhyZWYpXG4gICAgICAgIH1cbiAgICAgIF0pfSZydWw9JHtlbmNvZGVVUklDb21wb25lbnQob2xkaHJlZil9YFxuICAgIH1cbiAgfVxuXG4gIGVtaXQoZXZlbnQpIHtcbiAgICBjb25zdCBpdGVtID0ge1xuICAgICAgdHN0YW1wOiBEYXRlLm5vdygpLFxuICAgICAgZGw6IGVuY29kZVVSSUNvbXBvbmVudChsb2NhdGlvbi5ocmVmKSxcbiAgICAgIHBycDoge31cbiAgICB9O1xuXG4gICAgZm9yIChsZXQga2V5IG9mIE9iamVjdC5rZXlzKGV2ZW50KSkge1xuXG4gICAgICBpZiAodHlwZW9mIHRoaXMub3B0aW9ucy5ub3JtYWxpemUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAga2V5ID0gdGhpcy5vcHRpb25zLm5vcm1hbGl6ZShrZXkpO1xuICAgICAgfVxuXG4gICAgICBpZiAoUFJPUFtrZXldKSB7XG4gICAgICAgIGl0ZW1bUFJPUFtrZXldXSA9IGV2ZW50W2tleV07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpdGVtLnBycFtrZXldID0gZXZlbnRba2V5XTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBnYXRld2F5LnB1c2hFdmVudChpdGVtKTtcbiAgfVxuXG59XG5cbi8qKlxuICog0JTQsNC90L3QvtC1INGD0YHQu9C+0LLQuNC1INC/0YDQvtCy0LXRgNGP0LXRgiwg0YfRgtC+INCx0LjQsdC70LjQvtGC0LXQutCwXG4gKiDQv9C+0LTQutC70Y7Rh9C10L3QsCDQvdCwINC+0LHRi9GH0L3Rg9GOINGB0YLRgNCw0L3QuNGG0YMg0Lgg0L3QtVxuICog0LjRgdC/0L7Qu9GM0LfRg9C10YLRgdGPINC60LDQuiDQvNC+0LTRg9C70Ywg0LIg0L/RgNC40LvQvtC20LXQvdC40LhcbiAqL1xuaWYgKHdpbmRvdyAmJiB3aW5kb3cuJHFhdCkge1xuICB3aW5kb3cuJHFhdCA9IG5ldyBRYXQoe1xuICAgIGJ1ZmZlcjogd2luZG93LiRxYXQuYnVmZmVyIHx8IFtdLFxuICAgIG9wdGlvbnM6IHdpbmRvdy4kcWF0Lm9wdGlvbnMgfHwge30sXG4gIH0pO1xufVxuXG5cblxuXG5cblxuXG5cbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///0\n")},function(module,exports,__webpack_require__){"use strict";eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Gateway = exports.Gateway = function () {\n function Gateway() {\n _classCallCheck(this, Gateway);\n\n this.buffer = [];\n this.timeout = null;\n this.options = {};\n }\n\n _createClass(Gateway, [{\n key: 'init',\n value: function init(_ref) {\n var url = _ref.url,\n _ref$timeout = _ref.timeout,\n timeout = _ref$timeout === undefined ? 5000 : _ref$timeout;\n\n this.options.url = url;\n this.options.timeout = timeout;\n }\n }, {\n key: 'pushEvent',\n value: function pushEvent(event) {\n var _this = this;\n\n this.buffer.push(event);\n\n if (this.timeout) {\n clearTimeout(this.timeout);\n }\n\n this.timeout = setTimeout(function () {\n return _this.send();\n }, this.options.timeout);\n }\n }, {\n key: 'toQuery',\n value: function toQuery(items) {\n var count = 0;\n var query = [];\n\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = items[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var item = _step.value;\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n\n for (var _iterator2 = Object.keys(item)[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var key = _step2.value;\n\n var value = item[key];\n\n if (value && (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object') {\n value = JSON.stringify(value);\n }\n\n query.push('' + key + count + '=' + encodeURI(value));\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n\n count += 1;\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return query.join('&');\n }\n }, {\n key: 'send',\n value: function send() {\n\n if (!this.options.url) {\n throw new Error('Нужно инициализировать аналитический модуль!');\n }\n\n var url = this.options.url + '?' + this.toQuery(this.buffer);\n\n if (navigator && navigator.product === 'ReactNative') {\n fetch(url).catch();\n } else {\n var img = new Image();\n img.src = url;\n }\n this.buffer = [];\n }\n }]);\n\n return Gateway;\n}();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvZ2F0ZXdheS5qcz81NmFmIl0sIm5hbWVzIjpbIkdhdGV3YXkiLCJidWZmZXIiLCJ0aW1lb3V0Iiwib3B0aW9ucyIsInVybCIsImV2ZW50IiwicHVzaCIsImNsZWFyVGltZW91dCIsInNldFRpbWVvdXQiLCJzZW5kIiwiaXRlbXMiLCJjb3VudCIsInF1ZXJ5IiwiaXRlbSIsIk9iamVjdCIsImtleXMiLCJrZXkiLCJ2YWx1ZSIsIkpTT04iLCJzdHJpbmdpZnkiLCJlbmNvZGVVUkkiLCJqb2luIiwiRXJyb3IiLCJ0b1F1ZXJ5IiwibmF2aWdhdG9yIiwicHJvZHVjdCIsImZldGNoIiwiY2F0Y2giLCJpbWciLCJJbWFnZSIsInNyYyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBQWFBLE8sV0FBQUEsTztBQUVYLHFCQUFjO0FBQUE7O0FBQ1osU0FBS0MsTUFBTCxHQUFjLEVBQWQ7QUFDQSxTQUFLQyxPQUFMLEdBQWUsSUFBZjtBQUNBLFNBQUtDLE9BQUwsR0FBZSxFQUFmO0FBQ0Q7Ozs7K0JBRTZCO0FBQUEsVUFBdkJDLEdBQXVCLFFBQXZCQSxHQUF1QjtBQUFBLDhCQUFsQkYsT0FBa0I7QUFBQSxVQUFsQkEsT0FBa0IsZ0NBQVIsSUFBUTs7QUFDNUIsV0FBS0MsT0FBTCxDQUFhQyxHQUFiLEdBQW1CQSxHQUFuQjtBQUNBLFdBQUtELE9BQUwsQ0FBYUQsT0FBYixHQUF1QkEsT0FBdkI7QUFDRDs7OzhCQUVTRyxLLEVBQU87QUFBQTs7QUFDZixXQUFLSixNQUFMLENBQVlLLElBQVosQ0FBaUJELEtBQWpCOztBQUVBLFVBQUksS0FBS0gsT0FBVCxFQUFrQjtBQUNoQksscUJBQWEsS0FBS0wsT0FBbEI7QUFDRDs7QUFFRCxXQUFLQSxPQUFMLEdBQWVNLFdBQVc7QUFBQSxlQUFNLE1BQUtDLElBQUwsRUFBTjtBQUFBLE9BQVgsRUFBOEIsS0FBS04sT0FBTCxDQUFhRCxPQUEzQyxDQUFmO0FBQ0Q7Ozs0QkFFT1EsSyxFQUFPO0FBQ2IsVUFBSUMsUUFBUSxDQUFaO0FBQ0EsVUFBTUMsUUFBUSxFQUFkOztBQUZhO0FBQUE7QUFBQTs7QUFBQTtBQUliLDZCQUFtQkYsS0FBbkIsOEhBQTBCO0FBQUEsY0FBZkcsSUFBZTtBQUFBO0FBQUE7QUFBQTs7QUFBQTs7QUFFeEIsa0NBQWtCQyxPQUFPQyxJQUFQLENBQVlGLElBQVosQ0FBbEIsbUlBQXFDO0FBQUEsa0JBQTFCRyxHQUEwQjs7QUFDbkMsa0JBQUlDLFFBQVFKLEtBQUtHLEdBQUwsQ0FBWjs7QUFFQSxrQkFBSUMsU0FBUyxRQUFPQSxLQUFQLHlDQUFPQSxLQUFQLE9BQWlCLFFBQTlCLEVBQXdDO0FBQ3RDQSx3QkFBUUMsS0FBS0MsU0FBTCxDQUFlRixLQUFmLENBQVI7QUFDRDs7QUFFREwsb0JBQU1OLElBQU4sTUFBY1UsR0FBZCxHQUFvQkwsS0FBcEIsU0FBNkJTLFVBQVVILEtBQVYsQ0FBN0I7QUFDRDtBQVZ1QjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQVl4Qk4sbUJBQVMsQ0FBVDtBQUNEO0FBakJZO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBbUJiLGFBQU9DLE1BQU1TLElBQU4sQ0FBVyxHQUFYLENBQVA7QUFDRDs7OzJCQUVNOztBQUVMLFVBQUksQ0FBQyxLQUFLbEIsT0FBTCxDQUFhQyxHQUFsQixFQUF1QjtBQUNyQixjQUFNLElBQUlrQixLQUFKLENBQVUsOENBQVYsQ0FBTjtBQUNEOztBQUVELFVBQU1sQixNQUFTLEtBQUtELE9BQUwsQ0FBYUMsR0FBdEIsU0FBNkIsS0FBS21CLE9BQUwsQ0FBYSxLQUFLdEIsTUFBbEIsQ0FBbkM7O0FBRUEsVUFBSXVCLGFBQWFBLFVBQVVDLE9BQVYsS0FBc0IsYUFBdkMsRUFBc0Q7QUFDcERDLGNBQU10QixHQUFOLEVBQVd1QixLQUFYO0FBQ0QsT0FGRCxNQUVPO0FBQ0wsWUFBTUMsTUFBTSxJQUFJQyxLQUFKLEVBQVo7QUFDQUQsWUFBSUUsR0FBSixHQUFVMUIsR0FBVjtBQUNEO0FBQ0QsV0FBS0gsTUFBTCxHQUFjLEVBQWQ7QUFDRCIsImZpbGUiOiIxLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIEdhdGV3YXkge1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuYnVmZmVyID0gW107XG4gICAgdGhpcy50aW1lb3V0ID0gbnVsbDtcbiAgICB0aGlzLm9wdGlvbnMgPSB7fTtcbiAgfVxuXG4gIGluaXQoeyB1cmwsIHRpbWVvdXQgPSA1MDAwIH0pIHtcbiAgICB0aGlzLm9wdGlvbnMudXJsID0gdXJsO1xuICAgIHRoaXMub3B0aW9ucy50aW1lb3V0ID0gdGltZW91dDtcbiAgfVxuXG4gIHB1c2hFdmVudChldmVudCkge1xuICAgIHRoaXMuYnVmZmVyLnB1c2goZXZlbnQpO1xuXG4gICAgaWYgKHRoaXMudGltZW91dCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMudGltZW91dCk7XG4gICAgfVxuXG4gICAgdGhpcy50aW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB0aGlzLnNlbmQoKSwgdGhpcy5vcHRpb25zLnRpbWVvdXQpO1xuICB9XG5cbiAgdG9RdWVyeShpdGVtcykge1xuICAgIGxldCBjb3VudCA9IDA7XG4gICAgY29uc3QgcXVlcnkgPSBbXTtcblxuICAgIGZvciAoY29uc3QgaXRlbSBvZiBpdGVtcykge1xuXG4gICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhpdGVtKSkge1xuICAgICAgICBsZXQgdmFsdWUgPSBpdGVtW2tleV07XG5cbiAgICAgICAgaWYgKHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICB2YWx1ZSA9IEpTT04uc3RyaW5naWZ5KHZhbHVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHF1ZXJ5LnB1c2goYCR7a2V5fSR7Y291bnR9PSR7ZW5jb2RlVVJJKHZhbHVlKX1gKTtcbiAgICAgIH1cblxuICAgICAgY291bnQgKz0gMTtcbiAgICB9XG5cbiAgICByZXR1cm4gcXVlcnkuam9pbignJicpO1xuICB9XG5cbiAgc2VuZCgpIHtcblxuICAgIGlmICghdGhpcy5vcHRpb25zLnVybCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCfQndGD0LbQvdC+INC40L3QuNGG0LjQsNC70LjQt9C40YDQvtCy0LDRgtGMINCw0L3QsNC70LjRgtC40YfQtdGB0LrQuNC5INC80L7QtNGD0LvRjCEnKTtcbiAgICB9XG5cbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLm9wdGlvbnMudXJsfT8ke3RoaXMudG9RdWVyeSh0aGlzLmJ1ZmZlcil9YDtcblxuICAgIGlmIChuYXZpZ2F0b3IgJiYgbmF2aWdhdG9yLnByb2R1Y3QgPT09ICdSZWFjdE5hdGl2ZScpIHtcbiAgICAgIGZldGNoKHVybCkuY2F0Y2goKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgaW1nID0gbmV3IEltYWdlKCk7XG4gICAgICBpbWcuc3JjID0gdXJsO1xuICAgIH1cbiAgICB0aGlzLmJ1ZmZlciA9IFtdO1xuICB9XG5cbn0iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///1\n")}]);
!function(t){var n={};function Q(r){if(n[r])return n[r].exports;var e=n[r]={i:r,l:!1,exports:{}};return t[r].call(e.exports,e,e.exports,Q),e.l=!0,e.exports}Q.m=t,Q.c=n,Q.d=function(t,n,r){Q.o(t,n)||Object.defineProperty(t,n,{enumerable:!0,get:r})},Q.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},Q.t=function(t,n){if(1&n&&(t=Q(t)),8&n)return t;if(4&n&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(Q.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&n&&"string"!=typeof t)for(var e in t)Q.d(r,e,function(n){return t[n]}.bind(null,e));return r},Q.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return Q.d(n,"a",n),n},Q.o=function(t,n){return Object.prototype.hasOwnProperty.call(t,n)},Q.p="",Q(Q.s=0)}([function(module,exports,__webpack_require__){"use strict";eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Qat = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _gateway = __webpack_require__(1);\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar gateway = new _gateway.Gateway();\n\nvar PROP = {\n 'eventId': 'eid',\n 'eventAction': 'ea',\n 'eventCategory': 'ec',\n 'eventLabel': 'el',\n 'phone': 'ph',\n 'user_id': 'uid',\n 'device_id': 'dvid',\n 'url': 'dl'\n};\n\nvar wrapHref = Symbol('wrapHref');\n\nvar Qat = exports.Qat = function () {\n function Qat(_ref) {\n var _this = this;\n\n var buffer = _ref.buffer,\n options = _ref.options;\n\n _classCallCheck(this, Qat);\n\n this.options = options;\n\n gateway.init(options);\n\n this.emit({\n eventCategory: 'system',\n eventAction: 'init'\n });\n\n if (buffer.length) {\n buffer.forEach(function (event) {\n return _this.emit(event);\n });\n }\n\n if (!options.wrapLink) {\n return;\n }\n\n if (document.readyState === 'complete') {\n this[wrapHref]();\n } else {\n window.addEventListener('load', function () {\n return _this[wrapHref]();\n });\n }\n }\n\n _createClass(Qat, [{\n key: wrapHref,\n value: function value() {\n var els = document.getElementsByTagName('a');\n var pattern = null;\n\n if (_typeof(this.options.wrapLink) === 'object') {\n pattern = this.options.wrapLink.pattern;\n }\n\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = els[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var a = _step.value;\n\n\n if (pattern && !pattern.test(a.href)) {\n continue;\n }\n\n var oldhref = a.href;\n a.href = this.options.url + '?rul=' + encodeURIComponent(oldhref);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n }\n }, {\n key: 'emit',\n value: function emit(event) {\n var item = {\n tstamp: Date.now(),\n dl: encodeURIComponent(location.href),\n prp: {}\n };\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = Object.keys(event)[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var key = _step2.value;\n\n\n if (typeof this.options.normalize === 'function') {\n key = this.options.normalize(key);\n }\n\n if (PROP[key]) {\n item[PROP[key]] = event[key];\n } else {\n item.prp[key] = event[key];\n }\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n\n gateway.pushEvent(item);\n }\n }]);\n\n return Qat;\n}();\n\n/**\n * Данное условие проверяет, что библиотека\n * подключена на обычную страницу и не\n * используется как модуль в приложении\n */\n\n\nif (window && window.$qat) {\n window.$qat = new Qat({\n buffer: window.$qat.buffer || [],\n options: window.$qat.options || {}\n });\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvaW5kZXguanM/YjYzNSJdLCJuYW1lcyI6WyJnYXRld2F5IiwiR2F0ZXdheSIsIlBST1AiLCJ3cmFwSHJlZiIsIlN5bWJvbCIsIlFhdCIsImJ1ZmZlciIsIm9wdGlvbnMiLCJpbml0IiwiZW1pdCIsImV2ZW50Q2F0ZWdvcnkiLCJldmVudEFjdGlvbiIsImxlbmd0aCIsImZvckVhY2giLCJldmVudCIsIndyYXBMaW5rIiwiZG9jdW1lbnQiLCJyZWFkeVN0YXRlIiwid2luZG93IiwiYWRkRXZlbnRMaXN0ZW5lciIsImVscyIsImdldEVsZW1lbnRzQnlUYWdOYW1lIiwicGF0dGVybiIsImEiLCJ0ZXN0IiwiaHJlZiIsIm9sZGhyZWYiLCJ1cmwiLCJlbmNvZGVVUklDb21wb25lbnQiLCJpdGVtIiwidHN0YW1wIiwiRGF0ZSIsIm5vdyIsImRsIiwibG9jYXRpb24iLCJwcnAiLCJPYmplY3QiLCJrZXlzIiwia2V5Iiwibm9ybWFsaXplIiwicHVzaEV2ZW50IiwiJHFhdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7OztBQUVBLElBQU1BLFVBQVUsSUFBSUMsZ0JBQUosRUFBaEI7O0FBRUEsSUFBTUMsT0FBTztBQUNYLGFBQVcsS0FEQTtBQUVYLGlCQUFlLElBRko7QUFHWCxtQkFBaUIsSUFITjtBQUlYLGdCQUFjLElBSkg7QUFLWCxXQUFTLElBTEU7QUFNWCxhQUFXLEtBTkE7QUFPWCxlQUFhLE1BUEY7QUFRWCxTQUFPO0FBUkksQ0FBYjs7QUFXQSxJQUFNQyxXQUFXQyxPQUFPLFVBQVAsQ0FBakI7O0lBRWFDLEcsV0FBQUEsRztBQUVYLHFCQUFpQztBQUFBOztBQUFBLFFBQW5CQyxNQUFtQixRQUFuQkEsTUFBbUI7QUFBQSxRQUFYQyxPQUFXLFFBQVhBLE9BQVc7O0FBQUE7O0FBQy9CLFNBQUtBLE9BQUwsR0FBZUEsT0FBZjs7QUFFQVAsWUFBUVEsSUFBUixDQUFhRCxPQUFiOztBQUVBLFNBQUtFLElBQUwsQ0FBVTtBQUNSQyxxQkFBZSxRQURQO0FBRVJDLG1CQUFhO0FBRkwsS0FBVjs7QUFLQSxRQUFJTCxPQUFPTSxNQUFYLEVBQW1CO0FBQ2pCTixhQUFPTyxPQUFQLENBQWU7QUFBQSxlQUFTLE1BQUtKLElBQUwsQ0FBVUssS0FBVixDQUFUO0FBQUEsT0FBZjtBQUNEOztBQUVELFFBQUksQ0FBQ1AsUUFBUVEsUUFBYixFQUF1QjtBQUNyQjtBQUNEOztBQUVELFFBQUlDLFNBQVNDLFVBQVQsS0FBd0IsVUFBNUIsRUFBd0M7QUFDdEMsV0FBS2QsUUFBTDtBQUNELEtBRkQsTUFFTztBQUNMZSxhQUFPQyxnQkFBUCxDQUF3QixNQUF4QixFQUFnQztBQUFBLGVBQU0sTUFBS2hCLFFBQUwsR0FBTjtBQUFBLE9BQWhDO0FBQ0Q7QUFFRjs7O1NBRUFBLFE7NEJBQVk7QUFDWCxVQUFNaUIsTUFBTUosU0FBU0ssb0JBQVQsQ0FBOEIsR0FBOUIsQ0FBWjtBQUNBLFVBQUlDLFVBQVUsSUFBZDs7QUFFQSxVQUFJLFFBQU8sS0FBS2YsT0FBTCxDQUFhUSxRQUFwQixNQUFpQyxRQUFyQyxFQUErQztBQUM1Q08sa0JBQVUsS0FBS2YsT0FBTCxDQUFhUSxRQUFiLENBQXNCTyxPQUFoQztBQUNGOztBQU5VO0FBQUE7QUFBQTs7QUFBQTtBQVFYLDZCQUFnQkYsR0FBaEIsOEhBQXFCO0FBQUEsY0FBVkcsQ0FBVTs7O0FBRW5CLGNBQUlELFdBQVcsQ0FBQ0EsUUFBUUUsSUFBUixDQUFhRCxFQUFFRSxJQUFmLENBQWhCLEVBQXNDO0FBQ3BDO0FBQ0Q7O0FBRUQsY0FBTUMsVUFBVUgsRUFBRUUsSUFBbEI7QUFDQUYsWUFBRUUsSUFBRixHQUFZLEtBQUtsQixPQUFMLENBQWFvQixHQUF6QixhQUFvQ0MsbUJBQW1CRixPQUFuQixDQUFwQztBQUNEO0FBaEJVO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFpQlo7Ozt5QkFFSVosSyxFQUFPO0FBQ1YsVUFBTWUsT0FBTztBQUNYQyxnQkFBUUMsS0FBS0MsR0FBTCxFQURHO0FBRVhDLFlBQUlMLG1CQUFtQk0sU0FBU1QsSUFBNUIsQ0FGTztBQUdYVSxhQUFLO0FBSE0sT0FBYjs7QUFEVTtBQUFBO0FBQUE7O0FBQUE7QUFPViw4QkFBZ0JDLE9BQU9DLElBQVAsQ0FBWXZCLEtBQVosQ0FBaEIsbUlBQW9DO0FBQUEsY0FBM0J3QixHQUEyQjs7O0FBRWxDLGNBQUksT0FBTyxLQUFLL0IsT0FBTCxDQUFhZ0MsU0FBcEIsS0FBa0MsVUFBdEMsRUFBa0Q7QUFDaERELGtCQUFNLEtBQUsvQixPQUFMLENBQWFnQyxTQUFiLENBQXVCRCxHQUF2QixDQUFOO0FBQ0Q7O0FBRUQsY0FBSXBDLEtBQUtvQyxHQUFMLENBQUosRUFBZTtBQUNiVCxpQkFBSzNCLEtBQUtvQyxHQUFMLENBQUwsSUFBa0J4QixNQUFNd0IsR0FBTixDQUFsQjtBQUNELFdBRkQsTUFFTztBQUNMVCxpQkFBS00sR0FBTCxDQUFTRyxHQUFULElBQWdCeEIsTUFBTXdCLEdBQU4sQ0FBaEI7QUFDRDtBQUNGO0FBbEJTO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBb0JWdEMsY0FBUXdDLFNBQVIsQ0FBa0JYLElBQWxCO0FBQ0Q7Ozs7OztBQUlIOzs7Ozs7O0FBS0EsSUFBSVgsVUFBVUEsT0FBT3VCLElBQXJCLEVBQTJCO0FBQ3pCdkIsU0FBT3VCLElBQVAsR0FBYyxJQUFJcEMsR0FBSixDQUFRO0FBQ3BCQyxZQUFRWSxPQUFPdUIsSUFBUCxDQUFZbkMsTUFBWixJQUFzQixFQURWO0FBRXBCQyxhQUFTVyxPQUFPdUIsSUFBUCxDQUFZbEMsT0FBWixJQUF1QjtBQUZaLEdBQVIsQ0FBZDtBQUlEIiwiZmlsZSI6IjAuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBHYXRld2F5IH0gZnJvbSAnLi9nYXRld2F5JztcblxuY29uc3QgZ2F0ZXdheSA9IG5ldyBHYXRld2F5KCk7XG5cbmNvbnN0IFBST1AgPSB7XG4gICdldmVudElkJzogJ2VpZCcsXG4gICdldmVudEFjdGlvbic6ICdlYScsXG4gICdldmVudENhdGVnb3J5JzogJ2VjJyxcbiAgJ2V2ZW50TGFiZWwnOiAnZWwnLFxuICAncGhvbmUnOiAncGgnLFxuICAndXNlcl9pZCc6ICd1aWQnLFxuICAnZGV2aWNlX2lkJzogJ2R2aWQnLFxuICAndXJsJzogJ2RsJyxcbn07XG5cbmNvbnN0IHdyYXBIcmVmID0gU3ltYm9sKCd3cmFwSHJlZicpO1xuXG5leHBvcnQgY2xhc3MgUWF0IHtcblxuICBjb25zdHJ1Y3Rvcih7IGJ1ZmZlciwgb3B0aW9ucyB9KSB7XG4gICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcblxuICAgIGdhdGV3YXkuaW5pdChvcHRpb25zKTtcblxuICAgIHRoaXMuZW1pdCh7XG4gICAgICBldmVudENhdGVnb3J5OiAnc3lzdGVtJyxcbiAgICAgIGV2ZW50QWN0aW9uOiAnaW5pdCdcbiAgICB9KTsgXG5cbiAgICBpZiAoYnVmZmVyLmxlbmd0aCkge1xuICAgICAgYnVmZmVyLmZvckVhY2goZXZlbnQgPT4gdGhpcy5lbWl0KGV2ZW50KSk7XG4gICAgfVxuXG4gICAgaWYgKCFvcHRpb25zLndyYXBMaW5rKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGRvY3VtZW50LnJlYWR5U3RhdGUgPT09ICdjb21wbGV0ZScpIHtcbiAgICAgIHRoaXNbd3JhcEhyZWZdKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgKCkgPT4gdGhpc1t3cmFwSHJlZl0oKSlcbiAgICB9XG5cbiAgfVxuXG4gIFt3cmFwSHJlZl0oKSB7XG4gICAgY29uc3QgZWxzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2EnKTtcbiAgICBsZXQgcGF0dGVybiA9IG51bGw7XG5cbiAgICBpZiAodHlwZW9mIHRoaXMub3B0aW9ucy53cmFwTGluayA9PT0gJ29iamVjdCcpIHtcbiAgICAgICBwYXR0ZXJuID0gdGhpcy5vcHRpb25zLndyYXBMaW5rLnBhdHRlcm47XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBhIG9mIGVscykge1xuXG4gICAgICBpZiAocGF0dGVybiAmJiAhcGF0dGVybi50ZXN0KGEuaHJlZikpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG9sZGhyZWYgPSBhLmhyZWY7XG4gICAgICBhLmhyZWYgPSBgJHt0aGlzLm9wdGlvbnMudXJsfT9ydWw9JHtlbmNvZGVVUklDb21wb25lbnQob2xkaHJlZil9YDtcbiAgICB9XG4gIH1cblxuICBlbWl0KGV2ZW50KSB7XG4gICAgY29uc3QgaXRlbSA9IHtcbiAgICAgIHRzdGFtcDogRGF0ZS5ub3coKSxcbiAgICAgIGRsOiBlbmNvZGVVUklDb21wb25lbnQobG9jYXRpb24uaHJlZiksXG4gICAgICBwcnA6IHt9XG4gICAgfTtcblxuICAgIGZvciAobGV0IGtleSBvZiBPYmplY3Qua2V5cyhldmVudCkpIHtcblxuICAgICAgaWYgKHR5cGVvZiB0aGlzLm9wdGlvbnMubm9ybWFsaXplID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIGtleSA9IHRoaXMub3B0aW9ucy5ub3JtYWxpemUoa2V5KTtcbiAgICAgIH1cblxuICAgICAgaWYgKFBST1Bba2V5XSkge1xuICAgICAgICBpdGVtW1BST1Bba2V5XV0gPSBldmVudFtrZXldO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaXRlbS5wcnBba2V5XSA9IGV2ZW50W2tleV07XG4gICAgICB9XG4gICAgfVxuXG4gICAgZ2F0ZXdheS5wdXNoRXZlbnQoaXRlbSk7XG4gIH1cblxufVxuXG4vKipcbiAqINCU0LDQvdC90L7QtSDRg9GB0LvQvtCy0LjQtSDQv9GA0L7QstC10YDRj9C10YIsINGH0YLQviDQsdC40LHQu9C40L7RgtC10LrQsFxuICog0L/QvtC00LrQu9GO0YfQtdC90LAg0L3QsCDQvtCx0YvRh9C90YPRjiDRgdGC0YDQsNC90LjRhtGDINC4INC90LVcbiAqINC40YHQv9C+0LvRjNC30YPQtdGC0YHRjyDQutCw0Log0LzQvtC00YPQu9GMINCyINC/0YDQuNC70L7QttC10L3QuNC4XG4gKi9cbmlmICh3aW5kb3cgJiYgd2luZG93LiRxYXQpIHtcbiAgd2luZG93LiRxYXQgPSBuZXcgUWF0KHtcbiAgICBidWZmZXI6IHdpbmRvdy4kcWF0LmJ1ZmZlciB8fCBbXSxcbiAgICBvcHRpb25zOiB3aW5kb3cuJHFhdC5vcHRpb25zIHx8IHt9LFxuICB9KTtcbn1cblxuXG5cblxuXG5cblxuXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///0\n")},function(module,exports,__webpack_require__){"use strict";eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Gateway = exports.Gateway = function () {\n function Gateway() {\n _classCallCheck(this, Gateway);\n\n this.buffer = [];\n this.timeout = null;\n this.options = {};\n }\n\n _createClass(Gateway, [{\n key: 'init',\n value: function init(_ref) {\n var url = _ref.url,\n _ref$timeout = _ref.timeout,\n timeout = _ref$timeout === undefined ? 5000 : _ref$timeout;\n\n this.options.url = url;\n this.options.timeout = timeout;\n }\n }, {\n key: 'pushEvent',\n value: function pushEvent(event) {\n var _this = this;\n\n this.buffer.push(event);\n\n if (this.timeout) {\n clearTimeout(this.timeout);\n }\n\n this.timeout = setTimeout(function () {\n return _this.send();\n }, this.options.timeout);\n }\n }, {\n key: 'toQuery',\n value: function toQuery(items) {\n var count = 0;\n var query = [];\n\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = items[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var item = _step.value;\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n\n for (var _iterator2 = Object.keys(item)[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var key = _step2.value;\n\n var value = item[key];\n\n if (value && (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object') {\n value = JSON.stringify(value);\n }\n\n query.push('' + key + count + '=' + encodeURI(value));\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n\n count += 1;\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return query.join('&');\n }\n }, {\n key: 'send',\n value: function send() {\n\n if (!this.options.url) {\n throw new Error('Нужно инициализировать аналитический модуль!');\n }\n\n var url = this.options.url + '?' + this.toQuery(this.buffer);\n\n if (navigator && navigator.product === 'ReactNative') {\n fetch(url).catch();\n } else {\n var img = new Image();\n img.src = url;\n }\n this.buffer = [];\n }\n }]);\n\n return Gateway;\n}();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvZ2F0ZXdheS5qcz81NmFmIl0sIm5hbWVzIjpbIkdhdGV3YXkiLCJidWZmZXIiLCJ0aW1lb3V0Iiwib3B0aW9ucyIsInVybCIsImV2ZW50IiwicHVzaCIsImNsZWFyVGltZW91dCIsInNldFRpbWVvdXQiLCJzZW5kIiwiaXRlbXMiLCJjb3VudCIsInF1ZXJ5IiwiaXRlbSIsIk9iamVjdCIsImtleXMiLCJrZXkiLCJ2YWx1ZSIsIkpTT04iLCJzdHJpbmdpZnkiLCJlbmNvZGVVUkkiLCJqb2luIiwiRXJyb3IiLCJ0b1F1ZXJ5IiwibmF2aWdhdG9yIiwicHJvZHVjdCIsImZldGNoIiwiY2F0Y2giLCJpbWciLCJJbWFnZSIsInNyYyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBQWFBLE8sV0FBQUEsTztBQUVYLHFCQUFjO0FBQUE7O0FBQ1osU0FBS0MsTUFBTCxHQUFjLEVBQWQ7QUFDQSxTQUFLQyxPQUFMLEdBQWUsSUFBZjtBQUNBLFNBQUtDLE9BQUwsR0FBZSxFQUFmO0FBQ0Q7Ozs7K0JBRTZCO0FBQUEsVUFBdkJDLEdBQXVCLFFBQXZCQSxHQUF1QjtBQUFBLDhCQUFsQkYsT0FBa0I7QUFBQSxVQUFsQkEsT0FBa0IsZ0NBQVIsSUFBUTs7QUFDNUIsV0FBS0MsT0FBTCxDQUFhQyxHQUFiLEdBQW1CQSxHQUFuQjtBQUNBLFdBQUtELE9BQUwsQ0FBYUQsT0FBYixHQUF1QkEsT0FBdkI7QUFDRDs7OzhCQUVTRyxLLEVBQU87QUFBQTs7QUFDZixXQUFLSixNQUFMLENBQVlLLElBQVosQ0FBaUJELEtBQWpCOztBQUVBLFVBQUksS0FBS0gsT0FBVCxFQUFrQjtBQUNoQksscUJBQWEsS0FBS0wsT0FBbEI7QUFDRDs7QUFFRCxXQUFLQSxPQUFMLEdBQWVNLFdBQVc7QUFBQSxlQUFNLE1BQUtDLElBQUwsRUFBTjtBQUFBLE9BQVgsRUFBOEIsS0FBS04sT0FBTCxDQUFhRCxPQUEzQyxDQUFmO0FBQ0Q7Ozs0QkFFT1EsSyxFQUFPO0FBQ2IsVUFBSUMsUUFBUSxDQUFaO0FBQ0EsVUFBTUMsUUFBUSxFQUFkOztBQUZhO0FBQUE7QUFBQTs7QUFBQTtBQUliLDZCQUFtQkYsS0FBbkIsOEhBQTBCO0FBQUEsY0FBZkcsSUFBZTtBQUFBO0FBQUE7QUFBQTs7QUFBQTs7QUFFeEIsa0NBQWtCQyxPQUFPQyxJQUFQLENBQVlGLElBQVosQ0FBbEIsbUlBQXFDO0FBQUEsa0JBQTFCRyxHQUEwQjs7QUFDbkMsa0JBQUlDLFFBQVFKLEtBQUtHLEdBQUwsQ0FBWjs7QUFFQSxrQkFBSUMsU0FBUyxRQUFPQSxLQUFQLHlDQUFPQSxLQUFQLE9BQWlCLFFBQTlCLEVBQXdDO0FBQ3RDQSx3QkFBUUMsS0FBS0MsU0FBTCxDQUFlRixLQUFmLENBQVI7QUFDRDs7QUFFREwsb0JBQU1OLElBQU4sTUFBY1UsR0FBZCxHQUFvQkwsS0FBcEIsU0FBNkJTLFVBQVVILEtBQVYsQ0FBN0I7QUFDRDtBQVZ1QjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQVl4Qk4sbUJBQVMsQ0FBVDtBQUNEO0FBakJZO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBbUJiLGFBQU9DLE1BQU1TLElBQU4sQ0FBVyxHQUFYLENBQVA7QUFDRDs7OzJCQUVNOztBQUVMLFVBQUksQ0FBQyxLQUFLbEIsT0FBTCxDQUFhQyxHQUFsQixFQUF1QjtBQUNyQixjQUFNLElBQUlrQixLQUFKLENBQVUsOENBQVYsQ0FBTjtBQUNEOztBQUVELFVBQU1sQixNQUFTLEtBQUtELE9BQUwsQ0FBYUMsR0FBdEIsU0FBNkIsS0FBS21CLE9BQUwsQ0FBYSxLQUFLdEIsTUFBbEIsQ0FBbkM7O0FBRUEsVUFBSXVCLGFBQWFBLFVBQVVDLE9BQVYsS0FBc0IsYUFBdkMsRUFBc0Q7QUFDcERDLGNBQU10QixHQUFOLEVBQVd1QixLQUFYO0FBQ0QsT0FGRCxNQUVPO0FBQ0wsWUFBTUMsTUFBTSxJQUFJQyxLQUFKLEVBQVo7QUFDQUQsWUFBSUUsR0FBSixHQUFVMUIsR0FBVjtBQUNEO0FBQ0QsV0FBS0gsTUFBTCxHQUFjLEVBQWQ7QUFDRCIsImZpbGUiOiIxLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIEdhdGV3YXkge1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuYnVmZmVyID0gW107XG4gICAgdGhpcy50aW1lb3V0ID0gbnVsbDtcbiAgICB0aGlzLm9wdGlvbnMgPSB7fTtcbiAgfVxuXG4gIGluaXQoeyB1cmwsIHRpbWVvdXQgPSA1MDAwIH0pIHtcbiAgICB0aGlzLm9wdGlvbnMudXJsID0gdXJsO1xuICAgIHRoaXMub3B0aW9ucy50aW1lb3V0ID0gdGltZW91dDtcbiAgfVxuXG4gIHB1c2hFdmVudChldmVudCkge1xuICAgIHRoaXMuYnVmZmVyLnB1c2goZXZlbnQpO1xuXG4gICAgaWYgKHRoaXMudGltZW91dCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMudGltZW91dCk7XG4gICAgfVxuXG4gICAgdGhpcy50aW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB0aGlzLnNlbmQoKSwgdGhpcy5vcHRpb25zLnRpbWVvdXQpO1xuICB9XG5cbiAgdG9RdWVyeShpdGVtcykge1xuICAgIGxldCBjb3VudCA9IDA7XG4gICAgY29uc3QgcXVlcnkgPSBbXTtcblxuICAgIGZvciAoY29uc3QgaXRlbSBvZiBpdGVtcykge1xuXG4gICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhpdGVtKSkge1xuICAgICAgICBsZXQgdmFsdWUgPSBpdGVtW2tleV07XG5cbiAgICAgICAgaWYgKHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICB2YWx1ZSA9IEpTT04uc3RyaW5naWZ5KHZhbHVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHF1ZXJ5LnB1c2goYCR7a2V5fSR7Y291bnR9PSR7ZW5jb2RlVVJJKHZhbHVlKX1gKTtcbiAgICAgIH1cblxuICAgICAgY291bnQgKz0gMTtcbiAgICB9XG5cbiAgICByZXR1cm4gcXVlcnkuam9pbignJicpO1xuICB9XG5cbiAgc2VuZCgpIHtcblxuICAgIGlmICghdGhpcy5vcHRpb25zLnVybCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCfQndGD0LbQvdC+INC40L3QuNGG0LjQsNC70LjQt9C40YDQvtCy0LDRgtGMINCw0L3QsNC70LjRgtC40YfQtdGB0LrQuNC5INC80L7QtNGD0LvRjCEnKTtcbiAgICB9XG5cbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLm9wdGlvbnMudXJsfT8ke3RoaXMudG9RdWVyeSh0aGlzLmJ1ZmZlcil9YDtcblxuICAgIGlmIChuYXZpZ2F0b3IgJiYgbmF2aWdhdG9yLnByb2R1Y3QgPT09ICdSZWFjdE5hdGl2ZScpIHtcbiAgICAgIGZldGNoKHVybCkuY2F0Y2goKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgaW1nID0gbmV3IEltYWdlKCk7XG4gICAgICBpbWcuc3JjID0gdXJsO1xuICAgIH1cbiAgICB0aGlzLmJ1ZmZlciA9IFtdO1xuICB9XG5cbn0iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///1\n")}]);
{
"name": "@qlean/analytics-client",
"version": "0.4.2",
"version": "0.5.0",
"description": "Клиент для платформы аналитики",
"main": "./src/index.js",
"scripts": {
"build": "webpack"
"build": "webpack",
"serv": "static"
},

@@ -19,3 +20,5 @@ "repository": {

"homepage": "https://gitlab.qleanlabs.ru/cloud-platform/modules/browser-logger",
"dependencies": {},
"dependencies": {
"static": "^2.0.0"
},
"devDependencies": {

@@ -22,0 +25,0 @@ "babel-preset-latest": "^6.24.1",

@@ -18,3 +18,3 @@ ## Qlean аналитика

script: 'https://storage.googleapis.com/pltf-analytics-dp-clfn-storage/public/bundle.js',
url: 'https://anlt.cloud.qlean.ru/сollect',
url: 'https://anlt.cloud.qlean.ru/collect',
timeout: 5000,

@@ -72,2 +72,3 @@ wrapLink: true

Для отправки события в clickstream нужно выполнить следующий код.
```html

@@ -87,2 +88,13 @@ <script>

Следующие поля будут разложены по колонкам в clickstream:
- eventId
- eventAction
- eventCategory
- eventLabel
- phone
- user_id
- device_id
Все остальные поля будут упакованы в виде *json* объекта в поле *eventProperties*.
## Использование библиотеки как модуля

@@ -143,6 +155,2 @@

// трекинг переходов
<a href="//anlt.cloud.qlean.ru/collect?eid=123&ea0=page_view&ec0=load&el0=ok&rul=%2F%2Fgoogle.com"/>
```

@@ -162,2 +170,12 @@ Все параметры события передаются в качестве параметров querystring:

Обратите вниманание, в одном пикселе может быть передано одно или более событие. Для их идексации используется цифра после имени параметра,
например `eid0` - это идентификатор первого события
например `eid0` - это идентификатор первого события
## Трекинг переходов
Для отслеживания переходов пользователя, необходимо заменить существуюущую ссылку на следующу
```html
// трекинг переходов
<a href="http://anlt.cloud.qlean.ru/collect?rul=https%3A%2F%2Fqlean.ru%2F%3Futm_source%3D1%26utm_medium%3D2%26utm_campaign%3D3"/>
```
Где в параметре *rul* передается ссылка куда нужно перейти в заэкножена через encodeURIComponent.

@@ -25,2 +25,7 @@ import { Gateway } from './gateway';

this.emit({
eventCategory: 'system',
eventAction: 'init'
});
if (buffer.length) {

@@ -57,11 +62,3 @@ buffer.forEach(event => this.emit(event));

const oldhref = a.href;
a.href = `${this.options.url}?${gateway.toQuery([
{
[PROP.eventCategory]: 'redirect',
[PROP.eventAction]: 'link',
tstamp: Date.now(),
dl: encodeURIComponent(a.href)
}
])}&rul=${encodeURIComponent(oldhref)}`
a.href = `${this.options.url}?rul=${encodeURIComponent(oldhref)}`;
}

@@ -68,0 +65,0 @@ }

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc