@hocgin/browser-addone-kit
Version:
472 lines (469 loc) • 34.9 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.serviceWorkerUpdate = exports.serviceWorkerInit = exports.reloadUserContextMenus = exports.ServiceWorkerOptions = void 0;
var _index = require("../index");
var _i18n = require("../i18n");
var _queryString = require("query-string");
var _tbk = _interopRequireDefault(require("../wws/service/tbk"));
var _storage = require("./storage");
var _lang = require("../lang");
var _types = require("../types");
var _hkit = require("@hocgin/hkit");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
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 _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, _toPropertyKey(descriptor.key), descriptor); } }
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
var defaultOptions = {
projectId: "unknown",
canLogin: true,
provider: _hkit.Provider.Rabbit,
getUpdateURL: function getUpdateURL(extensionId, projectId) {
var queryStr = (0, _queryString.stringify)({
extensionId: extensionId,
active: 'changelog',
update: true
});
return "https://logspot.hocgin.top/".concat(projectId, "?").concat(queryStr);
},
getInstallURL: function getInstallURL(extensionId, projectId) {
var queryStr = (0, _queryString.stringify)({
extensionId: extensionId,
install: true
});
return "https://logspot.hocgin.top/".concat(projectId, "?").concat(queryStr);
},
getUninstallURL: function getUninstallURL(extensionId, projectId) {
var queryStr = (0, _queryString.stringify)({
extensionId: extensionId,
projectId: projectId,
active: 'feedback',
uninstall: true
});
return "https://logspot.hocgin.top/".concat(projectId, "?").concat(queryStr);
},
getLoginURL: function getLoginURL(extensionId, projectId) {
var provider = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _hkit.Provider.Rabbit;
if (provider === _hkit.Provider.Rabbit) {
var queryStr = (0, _queryString.stringify)({
grantType: 'token',
extensionId: extensionId,
projectId: projectId,
forward: true,
delay: 0,
redirectUrl: "https://sso.hocgin.top/addone/".concat(projectId, "/redirect")
});
// https://sso.hocgin.top/login?grantType=token&delay=0&redirectUrl=https://sso.hocgin.top/addone/567gsvdbjb/redirect&forward=true
return "https://sso.hocgin.top/login?".concat(queryStr);
}
return "https://sso.hocgin.com/?redirectUrl=http://sso.hocgin.com/addone/".concat(projectId, "/redirect");
},
getProURL: function getProURL(extensionId, projectId) {
var queryStr = (0, _queryString.stringify)({
extensionId: extensionId,
active: 'pro'
});
return "https://logspot.hocgin.top/".concat(projectId, "?").concat(queryStr);
}
};
var ServiceWorkerOptions = exports.ServiceWorkerOptions = /*#__PURE__*/_createClass(function ServiceWorkerOptions() {
_classCallCheck(this, ServiceWorkerOptions);
_defineProperty(this, "projectId", void 0);
// 是否有登陆按钮
_defineProperty(this, "canLogin", void 0);
_defineProperty(this, "provider", void 0);
_defineProperty(this, "getUpdateURL", void 0);
_defineProperty(this, "getInstallURL", void 0);
_defineProperty(this, "getUninstallURL", void 0);
_defineProperty(this, "getLoginURL", void 0);
_defineProperty(this, "getProURL", void 0);
});
_defineProperty(ServiceWorkerOptions, "default", defaultOptions);
var serviceWorkerInit = exports.serviceWorkerInit = function serviceWorkerInit(browser, options) {
var _options$projectId, _options$provider, _browser$runtime$onMe, _browser$runtime$onIn, _browser$runtime$onIn2, _browser$contextMenus, _browser$contextMenus2, _browser$notification3, _browser$notification4;
updateContextMenus(browser, options === null || options === void 0 ? void 0 : options.canLogin);
// 更新项目编号
var projectId = (_options$projectId = options === null || options === void 0 ? void 0 : options.projectId) !== null && _options$projectId !== void 0 ? _options$projectId : 'unknown';
var provider = (_options$provider = options === null || options === void 0 ? void 0 : options.provider) !== null && _options$provider !== void 0 ? _options$provider : _hkit.Provider.Rabbit;
(_browser$runtime$onMe = browser.runtime.onMessage) === null || _browser$runtime$onMe === void 0 || _browser$runtime$onMe.addListener( /*#__PURE__*/function () {
var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(message, sender, sendResponse) {
var _sender$tab;
var tabId, _message$value;
return _regeneratorRuntime().wrap(function _callee$(_context) {
while (1) switch (_context.prev = _context.next) {
case 0:
tabId = sender === null || sender === void 0 || (_sender$tab = sender.tab) === null || _sender$tab === void 0 ? void 0 : _sender$tab.id;
if (!((message === null || message === void 0 ? void 0 : message.type) === _types.MessageType.RedirectUrl)) {
_context.next = 5;
break;
}
browser.kit.replaceTab(tabId, message === null || message === void 0 ? void 0 : message.value);
_context.next = 23;
break;
case 5:
if (!((message === null || message === void 0 ? void 0 : message.type) === _types.MessageType.TbkSync)) {
_context.next = 10;
break;
}
try {
// TODO.加数据缓存, 异常取消下一次请求
_tbk.default.batchAsUrl((_message$value = message === null || message === void 0 ? void 0 : message.value) !== null && _message$value !== void 0 ? _message$value : []).then(sendResponse);
} catch (e) {
console.info('ignore', e);
}
return _context.abrupt("return", true);
case 10:
if (!(message.type === _types.MessageType.Logged)) {
_context.next = 15;
break;
}
_context.next = 13;
return browser.kit.setUserToken(message === null || message === void 0 ? void 0 : message.value);
case 13:
_context.next = 23;
break;
case 15:
if (!(message.type === _types.MessageType.Logout)) {
_context.next = 20;
break;
}
_context.next = 18;
return browser.kit.logout();
case 18:
_context.next = 23;
break;
case 20:
if (!(message.type === _types.MessageType.CloseTab && browser !== null && browser !== void 0 && browser.tabs)) {
_context.next = 23;
break;
}
_context.next = 23;
return browser.tabs.remove(tabId);
case 23:
case "end":
return _context.stop();
}
}, _callee);
}));
return function (_x, _x2, _x3) {
return _ref.apply(this, arguments);
};
}());
(_browser$runtime$onIn = browser.runtime.onInstalled) === null || _browser$runtime$onIn === void 0 || (_browser$runtime$onIn2 = _browser$runtime$onIn.addListener) === null || _browser$runtime$onIn2 === void 0 || _browser$runtime$onIn2.call(_browser$runtime$onIn, /*#__PURE__*/function () {
var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(details) {
var manifest, extensionId, _options$getUninstall, uninstallURL, installURL, prevVersion, nextVersion, diffVersion, _browser$notification, _browser$notification2;
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
while (1) switch (_context2.prev = _context2.next) {
case 0:
manifest = _index.WebExtension.runtime.getManifest();
extensionId = browser.kit.getExtensionId();
_context2.next = 4;
return _storage.SysCloudKit.setProjectConfig({
projectId: projectId,
provider: provider,
proURL: options === null || options === void 0 ? void 0 : options.getProURL(extensionId, projectId),
loginURL: options === null || options === void 0 ? void 0 : options.getLoginURL(extensionId, projectId, provider)
});
case 4:
// 如果有卸载地址
if (options !== null && options !== void 0 && options.getUninstallURL) {
uninstallURL = options === null || options === void 0 || (_options$getUninstall = options.getUninstallURL) === null || _options$getUninstall === void 0 ? void 0 : _options$getUninstall.call(options, extensionId, projectId);
if (uninstallURL) {
browser.runtime.setUninstallURL(uninstallURL);
}
}
// 如果是安装
if (details.reason === 'install') {
// 第一次安装跳转到帮助界面
if (options !== null && options !== void 0 && options.getInstallURL) {
installURL = options === null || options === void 0 ? void 0 : options.getInstallURL(extensionId, projectId);
if (installURL) {
browser.kit.openURL(installURL);
}
}
}
// 如果是版本更新
else if (details.reason === 'update') {
prevVersion = details.previousVersion;
nextVersion = manifest === null || manifest === void 0 ? void 0 : manifest.version;
diffVersion = _lang.LangKit.diffVersion(prevVersion, nextVersion); // 大版本更新,弹窗询问是否查看更新内容
if (options !== null && options !== void 0 && options.getUpdateURL && (diffVersion.isLargeUpdate() || diffVersion.isMediumUpdate())) {
(_browser$notification = browser.notifications) === null || _browser$notification === void 0 || (_browser$notification2 = _browser$notification.create) === null || _browser$notification2 === void 0 || _browser$notification2.call(_browser$notification, _types.NotificationId.UpdateNotify, {
type: 'basic',
iconUrl: _index.WebExtension.runtime.getURL('/logo.png'),
title: _index.I18nKit.getMessageOrDefault(_i18n.LocaleKey.UpdateNotifyTitle, "版本更新"),
message: _index.I18nKit.getMessageOrDefault(_i18n.LocaleKey.UpdateNotifyMessage, '🎉 发生较大的版本更新,点击查看')
}, function (id) {
return setTimeout(function () {
return _index.WebExtension.notifications.clear(id, function () {});
}, 5000);
});
}
}
case 6:
case "end":
return _context2.stop();
}
}, _callee2);
}));
return function (_x4) {
return _ref2.apply(this, arguments);
};
}());
(_browser$contextMenus = browser.contextMenus) === null || _browser$contextMenus === void 0 || (_browser$contextMenus = _browser$contextMenus.onClicked) === null || _browser$contextMenus === void 0 || (_browser$contextMenus2 = _browser$contextMenus.addListener) === null || _browser$contextMenus2 === void 0 || _browser$contextMenus2.call(_browser$contextMenus, /*#__PURE__*/function () {
var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(info, tab) {
var extensionId, deviceId, querySearch, _querySearch, _querySearch2, _options$getLoginURL, loginURL;
return _regeneratorRuntime().wrap(function _callee3$(_context3) {
while (1) switch (_context3.prev = _context3.next) {
case 0:
extensionId = browser.kit.getExtensionId();
_context3.next = 3;
return browser.kit.getDeviceId();
case 3:
deviceId = _context3.sent;
if (!(info.menuItemId === _types.ContextMenusId.Feedback)) {
_context3.next = 9;
break;
}
querySearch = {
extensionId: extensionId,
projectId: projectId,
deviceId: deviceId,
active: 'feedback'
};
browser.kit.openURL("https://logspot.hocgin.top/".concat(projectId, "?").concat((0, _queryString.stringify)(querySearch)));
_context3.next = 34;
break;
case 9:
if (!(info.menuItemId === _types.ContextMenusId.Donate)) {
_context3.next = 14;
break;
}
_querySearch = {
extensionId: extensionId,
projectId: projectId,
deviceId: deviceId
};
browser.kit.openURL("https://logspot.hocgin.top/donate?".concat((0, _queryString.stringify)(_querySearch)));
_context3.next = 34;
break;
case 14:
if (!(info.menuItemId === _types.ContextMenusId.Help)) {
_context3.next = 19;
break;
}
_querySearch2 = {
extensionId: extensionId,
projectId: projectId,
deviceId: deviceId
};
browser.kit.openURL("https://logspot.hocgin.top/".concat(projectId, "?").concat((0, _queryString.stringify)(_querySearch2)));
_context3.next = 34;
break;
case 19:
if (!(info.menuItemId === _types.ContextMenusId.Recommend)) {
_context3.next = 23;
break;
}
browser.kit.openRecommendURL();
_context3.next = 34;
break;
case 23:
if (!(info.menuItemId === _types.ContextMenusId.UserLogged)) {
_context3.next = 26;
break;
}
_context3.next = 34;
break;
case 26:
if (!(info.menuItemId === _types.ContextMenusId.UserUnLogged && options !== null && options !== void 0 && options.getLoginURL)) {
_context3.next = 31;
break;
}
loginURL = options === null || options === void 0 || (_options$getLoginURL = options.getLoginURL) === null || _options$getLoginURL === void 0 ? void 0 : _options$getLoginURL.call(options, extensionId, projectId, provider);
if (loginURL) {
browser.kit.openURL(loginURL);
}
_context3.next = 34;
break;
case 31:
if (!(info.menuItemId === _types.ContextMenusId.Logout)) {
_context3.next = 34;
break;
}
_context3.next = 34;
return browser.kit.logout();
case 34:
case "end":
return _context3.stop();
}
}, _callee3);
}));
return function (_x5, _x6) {
return _ref3.apply(this, arguments);
};
}());
(_browser$notification3 = browser.notifications) === null || _browser$notification3 === void 0 || (_browser$notification3 = _browser$notification3.onClicked) === null || _browser$notification3 === void 0 || (_browser$notification4 = _browser$notification3.addListener) === null || _browser$notification4 === void 0 || _browser$notification4.call(_browser$notification3, /*#__PURE__*/function () {
var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(notificationId) {
var _options$getUpdateURL, _extensionId, updateURL;
return _regeneratorRuntime().wrap(function _callee4$(_context4) {
while (1) switch (_context4.prev = _context4.next) {
case 0:
if (notificationId === _types.NotificationId.UpdateNotify && options !== null && options !== void 0 && options.getUpdateURL) {
_extensionId = browser.kit.getExtensionId();
updateURL = (_options$getUpdateURL = options.getUpdateURL) === null || _options$getUpdateURL === void 0 ? void 0 : _options$getUpdateURL.call(options, _extensionId, projectId);
if (updateURL) browser.kit.openURL(updateURL);
}
case 1:
case "end":
return _context4.stop();
}
}, _callee4);
}));
return function (_x7) {
return _ref4.apply(this, arguments);
};
}());
};
var reloadUserContextMenus = exports.reloadUserContextMenus = /*#__PURE__*/function () {
var _ref5 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5(browser) {
var userInfo, isLogged;
return _regeneratorRuntime().wrap(function _callee5$(_context5) {
while (1) switch (_context5.prev = _context5.next) {
case 0:
_context5.next = 2;
return browser.kit.getUserInfo();
case 2:
userInfo = _context5.sent;
isLogged = !!userInfo;
try {
if (isLogged) {
browser.contextMenus.update(_types.ContextMenusId.UserUnLogged, {
visible: false
});
browser.contextMenus.update(_types.ContextMenusId.UserLogged, {
visible: true,
title: "\uD83D\uDE0A ".concat(userInfo === null || userInfo === void 0 ? void 0 : userInfo.nickname)
});
} else {
browser.contextMenus.update(_types.ContextMenusId.UserLogged, {
visible: false
});
browser.contextMenus.update(_types.ContextMenusId.UserUnLogged, {
visible: true
});
}
} catch (e) {
console.warn("reloadUserContextMenus \u5931\u8D25", e);
}
return _context5.abrupt("return", isLogged);
case 6:
case "end":
return _context5.stop();
}
}, _callee5);
}));
return function reloadUserContextMenus(_x8) {
return _ref5.apply(this, arguments);
};
}();
var serviceWorkerUpdate = exports.serviceWorkerUpdate = /*#__PURE__*/function () {
var _ref6 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6(browser, options) {
return _regeneratorRuntime().wrap(function _callee6$(_context6) {
while (1) switch (_context6.prev = _context6.next) {
case 0:
_context6.prev = 0;
if (!(options !== null && options !== void 0 && options.canLogin)) {
_context6.next = 4;
break;
}
_context6.next = 4;
return reloadUserContextMenus(browser);
case 4:
_context6.next = 9;
break;
case 6:
_context6.prev = 6;
_context6.t0 = _context6["catch"](0);
console.warn("serviceWorkerUpdate \u5931\u8D25", _context6.t0);
case 9:
case "end":
return _context6.stop();
}
}, _callee6, null, [[0, 6]]);
}));
return function serviceWorkerUpdate(_x9, _x10) {
return _ref6.apply(this, arguments);
};
}();
var updateContextMenus = function updateContextMenus(browser) {
var canLogin = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
try {
browser.contextMenus.removeAll();
// 登陆状态
{
var _browser$contextMenus3, _browser$contextMenus4, _browser$contextMenus5, _browser$contextMenus6, _browser$contextMenus7, _browser$contextMenus8;
(_browser$contextMenus3 = browser.contextMenus) === null || _browser$contextMenus3 === void 0 || (_browser$contextMenus4 = _browser$contextMenus3.create) === null || _browser$contextMenus4 === void 0 || _browser$contextMenus4.call(_browser$contextMenus3, {
id: _types.ContextMenusId.UserUnLogged,
visible: canLogin,
title: _index.I18nKit.getMessageOrDefault(_i18n.LocaleKey.UserUnLogged, "😑 未登录"),
contexts: ["action"]
});
(_browser$contextMenus5 = browser.contextMenus) === null || _browser$contextMenus5 === void 0 || (_browser$contextMenus6 = _browser$contextMenus5.create) === null || _browser$contextMenus6 === void 0 || _browser$contextMenus6.call(_browser$contextMenus5, {
id: _types.ContextMenusId.UserLogged,
visible: false,
title: _index.I18nKit.getMessageOrDefault(_i18n.LocaleKey.UserInfo, "😊 账户信息"),
contexts: ["action"]
});
(_browser$contextMenus7 = browser.contextMenus) === null || _browser$contextMenus7 === void 0 || (_browser$contextMenus8 = _browser$contextMenus7.create) === null || _browser$contextMenus8 === void 0 || _browser$contextMenus8.call(_browser$contextMenus7, {
id: _types.ContextMenusId.Logout,
parentId: _types.ContextMenusId.UserLogged,
title: _index.I18nKit.getMessageOrDefault(_i18n.LocaleKey.Logout, "退出登录"),
contexts: ["action"]
});
}
// 关于作者
{
var _browser$contextMenus9, _browser$contextMenus10, _browser$contextMenus11, _browser$contextMenus12, _browser$contextMenus13, _browser$contextMenus14, _browser$contextMenus15, _browser$contextMenus16, _browser$contextMenus17, _browser$contextMenus18;
(_browser$contextMenus9 = browser.contextMenus) === null || _browser$contextMenus9 === void 0 || (_browser$contextMenus10 = _browser$contextMenus9.create) === null || _browser$contextMenus10 === void 0 || _browser$contextMenus10.call(_browser$contextMenus9, {
id: _types.ContextMenusId.About,
title: _index.I18nKit.getMessageOrDefault(_i18n.LocaleKey.About, "🎉 关于作者"),
contexts: ["action"]
});
(_browser$contextMenus11 = browser.contextMenus) === null || _browser$contextMenus11 === void 0 || (_browser$contextMenus12 = _browser$contextMenus11.create) === null || _browser$contextMenus12 === void 0 || _browser$contextMenus12.call(_browser$contextMenus11, {
id: _types.ContextMenusId.Help,
parentId: _types.ContextMenusId.About,
title: _index.I18nKit.getMessageOrDefault(_i18n.LocaleKey.Help, "🎶 帮助文档"),
contexts: ["action"]
});
(_browser$contextMenus13 = browser.contextMenus) === null || _browser$contextMenus13 === void 0 || (_browser$contextMenus14 = _browser$contextMenus13.create) === null || _browser$contextMenus14 === void 0 || _browser$contextMenus14.call(_browser$contextMenus13, {
id: _types.ContextMenusId.Feedback,
parentId: _types.ContextMenusId.About,
title: _index.I18nKit.getMessageOrDefault(_i18n.LocaleKey.Feedback, "🤔 意见反馈"),
contexts: ["action"]
});
(_browser$contextMenus15 = browser.contextMenus) === null || _browser$contextMenus15 === void 0 || (_browser$contextMenus16 = _browser$contextMenus15.create) === null || _browser$contextMenus16 === void 0 || _browser$contextMenus16.call(_browser$contextMenus15, {
id: _types.ContextMenusId.Donate,
parentId: _types.ContextMenusId.About,
title: _index.I18nKit.getMessageOrDefault(_i18n.LocaleKey.Donate, "💕 鼓励作者"),
contexts: ["action"]
});
(_browser$contextMenus17 = browser.contextMenus) === null || _browser$contextMenus17 === void 0 || (_browser$contextMenus18 = _browser$contextMenus17.create) === null || _browser$contextMenus18 === void 0 || _browser$contextMenus18.call(_browser$contextMenus17, {
id: _types.ContextMenusId.Recommend,
parentId: _types.ContextMenusId.About,
title: _index.I18nKit.getMessageOrDefault(_i18n.LocaleKey.Recommend, "🧵 更多作品"),
contexts: ["action"]
});
}
} catch (e) {
console.warn("updateContextMenus \u5931\u8D25", e);
}
};