UNPKG

@binance/fingerprint

Version:

binance web fingerprint

141 lines (140 loc) 4.56 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "saveCurrentDeviceId", { enumerable: true, get: function() { return _device.saveCurrentDeviceId; } }); Object.defineProperty(exports, "getFpInfo", { enumerable: true, get: function() { return _fingerprint.default; } }); exports.default = exports.getFPInfo = exports.getFpInfoPromise = exports.getInfoNew = exports.saveCurrentDeviceIdNew = exports.getUserEmail = exports.setUserEmail = exports.getInfoPromise = exports.getInfo = void 0; var _regeneratorRuntime = _interopRequireDefault(require("regenerator-runtime")); var _device = require("./device"); var _fingerprint = _interopRequireDefault(require("./fingerprint")); var _is = require("./utils/is"); function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } function _asyncToGenerator(fn) { return function() { var self = this, args = arguments; return new Promise(function(resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var _fpInfo = {}; var getInfo = function(id) { return (0, _device).withDeviceInfo(id, _fpInfo); }; exports.getInfo = getInfo; var getInfoPromise = function() { var _ref = _asyncToGenerator(_regeneratorRuntime.default.mark(function _callee(id) { var infoIsEmpty; return _regeneratorRuntime.default.wrap(function _callee$(_ctx) { while(1)switch(_ctx.prev = _ctx.next){ case 0: infoIsEmpty = !Object.keys(_fpInfo).length; if (!(_is.isClient && infoIsEmpty)) { _ctx.next = 5; break; } _ctx.next = 4; return (0, _fingerprint).default(); case 4: _fpInfo = _ctx.sent; case 5: return _ctx.abrupt("return", (0, _device).withDeviceInfo(id, _fpInfo)); case 6: case "end": return _ctx.stop(); } }, _callee); })); return function getInfoPromise(id) { return _ref.apply(this, arguments); }; }(); exports.getInfoPromise = getInfoPromise; // Preload fingerprint info if (typeof window !== "undefined") { if ("requestIdleCallback" in window) { // @ts-ignore requestIdleCallback not defined window.requestIdleCallback(function() { /** * @note * Please preload when idle, as it can help * avoid performance issues related to TBT. */ getInfoPromise(); }); } } var userEmail = ""; var setUserEmail = function(data) { userEmail = data; }; exports.setUserEmail = setUserEmail; var getUserEmail = function() { return userEmail; }; exports.getUserEmail = getUserEmail; var saveCurrentDeviceIdNew = function(email) { var deviceId = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : ""; setUserEmail(email); (0, _device).saveCurrentDeviceId(email, deviceId); }; exports.saveCurrentDeviceIdNew = saveCurrentDeviceIdNew; var getInfoNew = function(email) { var rawEmail = email || userEmail; return getInfo(rawEmail.trim().toLowerCase()); }; exports.getInfoNew = getInfoNew; var getFpInfoPromise = function(email) { var rawEmail = email || userEmail; return getInfoPromise(rawEmail.trim().toLowerCase()); }; exports.getFpInfoPromise = getFpInfoPromise; var getFPInfo = function() { if (typeof window === "undefined") return {}; var info = {}; try { info = JSON.parse(atob(getInfo())); } catch (e) { // eslint-disable-next-line no-console console.error("getFPInfo error", e); } return info; }; exports.getFPInfo = getFPInfo; var _default = getInfo; exports.default = _default;