lms/Scriptcat/src/background.js

1 line
187 KiB
JavaScript
Executable File

(()=>{var e,t={23771:(e,t,r)=>{"use strict";var n=r(15671),a=r(43144),s=r(97326),o=r(60136),i=r(27121),c=r(61120),u=r(4942),l=r(92826),p=r(71002);function f(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}var d=function(){function e(){(0,n.Z)(this,e),(0,u.Z)(this,"hookMap",{})}return(0,a.Z)(e,[{key:"trigger",value:function(e){if(this.hookMap[e]){for(var t=[],r=arguments.length,n=new Array(r>1?r-1:0),a=1;a<r;a++)n[a-1]=arguments[a];n.forEach((function(e){"object"===(0,p.Z)(e)?t.push(function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?f(Object(r),!0).forEach((function(t){(0,u.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):f(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}({},e)):t.push(e)})),this.hookMap[e].forEach((function(e){e.apply(void 0,t)}))}}},{key:"addListener",value:function(e,t){this.hookMap[e]||(this.hookMap[e]=[]),this.hookMap[e].push(t)}},{key:"removeListener",value:function(e,t){if(this.hookMap[e]){var r=this.hookMap[e].indexOf(t);r>-1&&this.hookMap[e].splice(r,1)}}}]),e}(),h=r(42982),m=r(27484),v=r.n(m),g={debug:10,info:100,warn:1e3,error:1e4};function y(){for(var e={},t=arguments.length,r=new Array(t),n=0;n<t;n++)r[n]=arguments[n];return r.forEach((function(t){t.forEach((function(t){Object.keys(t).forEach((function(r){e[r]=t[r]}))}))})),e}var b=function(){function e(t){(0,n.Z)(this,e),this.core=t;for(var r=arguments.length,a=new Array(r>1?r-1:0),s=1;s<r;s++)a[s-1]=arguments[s];this.label=a}return(0,a.Z)(e,[{key:"log",value:function(e,t){for(var r=arguments.length,n=new Array(r>2?r-2:0),a=2;a<r;a++)n[a-2]=arguments[a];if(g[e]>=g[this.core.level]&&this.core.writer.write(e,t,y(this.label,n)),this.core.debug){"object"===(0,p.Z)(t)&&(t=JSON.stringify(t));var s="".concat(v()(new Date).format("YYYY-MM-DD HH:mm:ss")," [").concat(e,"] msg=").concat(t," label=").concat(JSON.stringify(y(this.label,n)));switch(e){case"error":console.error(s);break;case"warn":console.warn(s);break;default:console.info(s)}}k.hook.trigger("log",{level:e,message:t,label:n})}},{key:"with",value:function(){for(var t=arguments.length,r=new Array(t),n=0;n<t;n++)r[n]=arguments[n];return(0,l.Z)(e,[this.core].concat((0,h.Z)(this.label),r))}},{key:"debug",value:function(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];this.log.apply(this,["debug",e].concat(r))}},{key:"info",value:function(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];this.log.apply(this,["info",e].concat(r))}},{key:"warn",value:function(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];this.log.apply(this,["warn",e].concat(r))}},{key:"error",value:function(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];this.log.apply(this,["error",e].concat(r))}}],[{key:"E",value:function(e){return"string"==typeof e?{error:e}:e instanceof Error?{error:e.message}:"object"===(0,p.Z)(e)?e:{}}}]),e}(),k=function(){function e(t){(0,n.Z)(this,e),(0,u.Z)(this,"level","info"),(0,u.Z)(this,"debug",!1),this.writer=t.writer,this.level=t.level||this.level,this.debug=t.debug||this.debug,this.labels=t.labels||{},e.instance||(e.instance=this)}return(0,a.Z)(e,[{key:"logger",value:function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return(0,l.Z)(b,[this,this.labels].concat(t))}}],[{key:"getInstance",value:function(){return e.instance}},{key:"getLogger",value:function(){var t;return(t=e.getInstance()).logger.apply(t,arguments)}}]),e}();(0,u.Z)(k,"hook",new d);var w=r(15861),x=r(64687),O=r.n(x),Z=r(43528),P=function(){function e(t,r){var a=this;(0,n.Z)(this,e),(0,u.Z)(this,"disChannelHandlerArray",[]),"function"==typeof t?(this.setHandler(t),this.setCatch(r)):(this.manager=t,this.flag=r,this.setCatch((function(e){k.getInstance().logger(b.E(e)).error("channel error",{flag:a.flag})})),this.setHandler((function(){k.getInstance().logger().warn("channel handler is null")})))}return(0,a.Z)(e,[{key:"channel",value:function(e,t){this.manager.nativeSend({action:e,data:t,stream:this.flag,channel:!0})}},{key:"send",value:function(e){this.manager.nativeSend({data:e,stream:this.flag,channel:!0})}},{key:"throw",value:function(e){this.manager.nativeSend({stream:this.flag,error:e,channel:!0}),this.manager.disChannel(this)}},{key:"syncSend",value:function(e,t){var r=this;return this.manager.nativeSend({action:e,data:t,stream:this.flag,channel:!1}),new Promise((function(e,t){r.handler=function(t){e(t)},r.catch=function(e){t(e)}}))}},{key:"setHandler",value:function(e){this.handler=function(t){if("dischannel"===t)return this.manager.disChannel(this),void this.disChannelHandlerArray.forEach((function(e){e("dischannel")}));e(t)}}},{key:"setCatch",value:function(e){this.catch=function(t){e(t),this.manager.disChannel(this),this.disChannelHandlerArray.forEach((function(e){e("dischannel")}))}}},{key:"setDisChannelHandler",value:function(e){this.disChannelHandlerArray.push(e)}},{key:"disChannel",value:function(){this.send("dischannel"),this.manager.disChannel(this)}}]),e}(),M=Symbol("MessageBroadcast"),_=function(){function e(t){(0,n.Z)(this,e),(0,u.Z)(this,"channelMap",new Map),this.nativeSend=t}return(0,a.Z)(e,[{key:"channel",value:function(e){e||(e=(0,Z.Z)());var t=new P(this,e);return this.channelMap.set(e,t),t}},{key:"getChannel",value:function(e){return this.channelMap.get(e)}},{key:"disChannel",value:function(e){this.channelMap.delete(e.flag)}},{key:"free",value:function(){this.channelMap.forEach((function(e){e.disChannelHandlerArray.forEach((function(e){e("free")}))})),this.channelMap.clear()}}]),e}(),S=function(){function e(){(0,n.Z)(this,e),(0,u.Z)(this,"handlerMap",new Map),(0,u.Z)(this,"channelHandlerMap",new Map)}var t;return(0,a.Z)(e,[{key:"handler",value:(t=(0,w.Z)(O().mark((function e(t,r,n){var a,s,o,i,c,u;return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!t.channel){e.next=4;break}return(a=r.getChannel(t.stream))?t.error?a.catch(t.error):a.handler(t.data):(s=this.channelHandlerMap.get(t.action))&&(a=r.channel(t.stream),s(a,t.action,t.data,n)),e.abrupt("return");case 4:if(!t.stream){e.next=7;break}return t.action?(o=this.handlerMap.get(t.action))&&((i=o(t.action,t.data,n))?i instanceof Promise?i.then((function(e){r.nativeSend({stream:t.stream,data:e})})).catch((function(e){r.nativeSend({error:e.message,stream:t.stream})})):r.nativeSend({stream:t.stream,data:i}):k.getLogger({component:"message"}).warn("handler return is null")):(c=r.getChannel(t.stream))&&(t.error?c.catch(t.error):c.handler(t.data)),e.abrupt("return");case 7:(u=this.handlerMap.get(t.action))&&u(t.action,t.data,n);case 9:case"end":return e.stop()}}),e,this)}))),function(e,r,n){return t.apply(this,arguments)})},{key:"setHandler",value:function(e,t){this.handlerMap.set(e,t)}},{key:"setHandlerWithChannel",value:function(e,t){this.channelHandlerMap.set(e,t)}}]),e}();function I(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=(0,c.Z)(e);if(t){var a=(0,c.Z)(this).constructor;r=Reflect.construct(n,arguments,a)}else r=n.apply(this,arguments);return(0,i.Z)(this,r)}}var C=function(e){(0,o.Z)(r,e);var t=I(r);function r(){var e;return(0,n.Z)(this,r),e=t.call(this),(0,u.Z)((0,s.Z)(e),"connectMap",new Map),(0,u.Z)((0,s.Z)(e),"streamMap",new Map),e.logger=k.getInstance().logger({component:"messageCenter"}),e}return(0,a.Z)(r,[{key:"setSandbox",value:function(e){this.sandbox=e}},{key:"start",value:function(){var e=this;chrome.runtime.onConnect.addListener((function(t){var r=e.connectMap.get(t.name);r||(r=new Map,e.connectMap.set(t.name,r));var n,a={targetTag:t.name},s=0;t.sender&&t.sender.tab&&(t.sender.frameId?(s=t.sender.tab.id+t.sender.frameId,a.frameId=t.sender.frameId):s=t.sender.tab.id,a.tabId=null===(n=t.sender.tab)||void 0===n?void 0:n.id,a.url=t.sender.url);r.set(s,t);var o=new _((function(e){t.postMessage(e)}));t.onDisconnect.addListener((function(){r.delete(s),o.free()})),t.onMessage.addListener((function(t){if(!0!==t.broadcast)e.handler(t,o,a);else{var r=t.target;t.action?e.send(r,t.action,t.data):e.sendNative(r,t.data)}}))}));var t=new _((function(t){var r;null===(r=e.sandbox)||void 0===r||r.postMessage(t,"*")}));window.addEventListener("message",(function(r){var n=r.data;if(!0===n.broadcast){var a=n.target;n.action?e.send(a,n.action,n.data):e.sendNative(a,n.data)}e.handler(n,t,{targetTag:"sandbox"})}))}},{key:"broadcast",value:function(e,t,r){return this.send(e,t,r)}},{key:"send",value:function(e,t,r){this.sendNative(e,{action:t,data:r})}},{key:"sendNative",value:function(e,t){var r=this;if("all"===e.tag)return this.connectMap.forEach((function(e,n){r.sendNative({tag:n},t)})),void this.sendNative({tag:"sandbox"},t);if("sandbox"!==e.tag){var n=this.connectMap.get(e.tag);n&&(e.id?e.id.forEach((function(e){var r;null===(r=n.get(e))||void 0===r||r.postMessage(t)})):n.forEach((function(e){e.postMessage(t)})))}else{var a;null===(a=this.sandbox)||void 0===a||a.postMessage(t,"*")}}}]),r}(S);function R(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=(0,c.Z)(e);if(t){var a=(0,c.Z)(this).constructor;r=Reflect.construct(n,arguments,a)}else r=n.apply(this,arguments);return(0,i.Z)(this,r)}}var j=function(e){(0,o.Z)(r,e);var t=R(r);function r(e){var a;return(0,n.Z)(this,r),a=t.call(this),(0,u.Z)((0,s.Z)(a),"stream",new Map),a.window=e,a.channelManager=new _((function(e){a.nativeSend(e)})),window.addEventListener("message",(function(e){a.handler(e.data,a.channelManager,{targetTag:"sandbox"})})),a}return(0,a.Z)(r,[{key:"nativeSend",value:function(e){this.window.postMessage(e,"*")}},{key:"getChannel",value:function(e){return this.channelManager.getChannel(e)}},{key:"channel",value:function(e){return this.channelManager.channel(e)}},{key:"disChannel",value:function(e){return this.channelManager.disChannel(e)}},{key:"free",value:function(){return this.channelManager.free()}},{key:"syncSend",value:function(e,t){return this.channelManager.channel().syncSend(e,t)}},{key:"send",value:function(e,t){this.nativeSend({action:e,data:t})}}]),r}(S),D=function(){function e(t){(0,n.Z)(this,e),this.dao=t}return(0,a.Z)(e,[{key:"write",value:function(e,t,r){this.dao.save({id:0,level:e,message:t,label:r,createtime:(new Date).getTime()})}}]),e}();var E=new(r(49520).ZP)("ScriptCat"),T=new Error("数据保存失败"),A=function(){function e(){(0,n.Z)(this,e),(0,u.Z)(this,"tableName","")}var t,r;return(0,a.Z)(e,[{key:"list",value:function(e,t){if(!t)return this.table.where(e).toArray();var r=this.table.where(e).offset((t.page()-1)*t.count()).limit(t.count());return"id"!==t.order()&&r.sortBy(t.order()),"desc"===t.sort()&&(r=r.reverse()),r.toArray()}},{key:"find",value:function(){return this.table}},{key:"findOne",value:function(e){return this.table.where(e).first()}},{key:"save",value:(r=(0,w.Z)(O().mark((function e(t){var r;return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=t.id){e.next=4;break}return delete t.id,e.abrupt("return",this.table.add(t));case 4:return e.next=6,this.table.update(r,t);case 6:if(!e.sent){e.next=9;break}return e.abrupt("return",Promise.resolve(r));case 9:return e.abrupt("return",Promise.reject(T));case 10:case"end":return e.stop()}}),e,this)}))),function(e){return r.apply(this,arguments)})},{key:"findById",value:function(e){return this.table.get(e)}},{key:"clear",value:function(){return this.table.clear()}},{key:"delete",value:(t=(0,w.Z)(O().mark((function e(t){return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if("number"!=typeof t){e.next=2;break}return e.abrupt("return",this.table.where({id:t}).delete());case 2:return e.abrupt("return",this.table.where(t).delete());case 3:case"end":return e.stop()}}),e,this)}))),function(e){return t.apply(this,arguments)})},{key:"update",value:function(e,t){return this.table.update(e,t)}},{key:"count",value:function(){return this.table.count()}}]),e}();function U(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=(0,c.Z)(e);if(t){var a=(0,c.Z)(this).constructor;r=Reflect.construct(n,arguments,a)}else r=n.apply(this,arguments);return(0,i.Z)(this,r)}}var G=function(e){(0,o.Z)(i,e);var t,r=U(i);function i(){var e;return(0,n.Z)(this,i),e=r.call(this),(0,u.Z)((0,s.Z)(e),"tableName","logger"),e.table=E.table(e.tableName),e}return(0,a.Z)(i,[{key:"queryLogs",value:(t=(0,w.Z)(O().mark((function e(t,r){var n;return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.table.where("createtime").between(t,r).toArray();case 2:return n=e.sent,e.abrupt("return",n.sort((function(e,t){return t.createtime-e.createtime})));case 4:case"end":return e.stop()}}),e,this)}))),function(e,r){return t.apply(this,arguments)})},{key:"deleteBefore",value:function(e){return this.table.where("createtime").below(e).delete()}}]),i}(A);function L(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}var B=function(){function e(){(0,n.Z)(this,e)}return(0,a.Z)(e,null,[{key:"Options",value:function(t){var r=t||{};return{Singleton:function(){return r.isSingleton=!0,this.Register()},Depend:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return r.depend=t,this},Nolazy:function(){return r.nolazy=!0,this},Alias:function(e){return r.alias=e,this},Register:function(){return function(t){var n,a=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?L(Object(r),!0).forEach((function(t){(0,u.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):L(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}({},r);(a.object=t,e.objectParams.set(t,a),r.nolazy&&e.instance(t),r.isSingleton)||(null===(n=r.alias)||void 0===n||n.forEach((function(t){e.objectParams.set(t,a)})))}}}}},{key:"Register",value:function(){var t;return(t=e.Options()).Depend.apply(t,arguments).Register()}},{key:"Singleton",value:function(){var t;return(t=e.Options()).Depend.apply(t,arguments).Singleton()}},{key:"registerInstance",value:function(t,r){if(e.instances.has(t))throw new Error("".concat(t.name," has been registered"));return e.instances.set(t,r),{alias:function(r){return r?(r instanceof Array?r.forEach((function(r){e.registerInstanceAlias(t,r)})):e.registerInstanceAlias(t,r),this):this}}}},{key:"registerInstanceAlias",value:function(t,r){if(!e.instances.has(t))throw new Error("".concat(t.name," not registered"));return e.instances.set(r,e.instances.get(t)),e}},{key:"instance",value:function(t){var r;if(e.instances.has(t))return e.instances.get(t);if(!e.objectParams.has(t))throw new Error("".concat(t.name," not registered"));var n=e.objectParams.get(t),a=[];null===(r=n.depend)||void 0===r||r.forEach((function(t){switch((0,p.Z)(t)){case"function":case"object":case"symbol":a.push(e.instance(t));break;default:a.push(t)}}));var s=(0,l.Z)(n.object,a);return n.isSingleton&&e.registerInstance(n.object,s).alias(n.alias),s}}]),e}();(0,u.Z)(B,"instances",new Map),(0,u.Z)(B,"objectParams",new Map);var H=r(81354),q=r.n(H);function N(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=(0,c.Z)(e);if(t){var a=(0,c.Z)(this).constructor;r=Reflect.construct(n,arguments,a)}else r=n.apply(this,arguments);return(0,i.Z)(this,r)}}var V=function(e){(0,o.Z)(r,e);var t=N(r);function r(){var e;return(0,n.Z)(this,r),e=t.call(this),(0,u.Z)((0,s.Z)(e),"tableName","resource"),e.table=E.table(e.tableName),e}return(0,a.Z)(r)}(A);function F(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=(0,c.Z)(e);if(t){var a=(0,c.Z)(this).constructor;r=Reflect.construct(n,arguments,a)}else r=n.apply(this,arguments);return(0,i.Z)(this,r)}}var z=function(e){(0,o.Z)(r,e);var t=F(r);function r(){var e;return(0,n.Z)(this,r),e=t.call(this),(0,u.Z)((0,s.Z)(e),"tableName","resourceLink"),e.table=E.table(e.tableName),e}return(0,a.Z)(r)}(A),J=r(51120),W=function(){function e(){(0,n.Z)(this,e),this.map=new Map}var t;return(0,a.Z)(e,[{key:"get",value:function(e){return this.map.get(e)}},{key:"getOrSet",value:(t=(0,w.Z)(O().mark((function e(t,r){var n;return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=this.get(t)){e.next=6;break}return e.next=4,r();case 4:n=e.sent,this.set(t,n);case 6:return e.abrupt("return",Promise.resolve(n));case 7:case"end":return e.stop()}}),e,this)}))),function(e,r){return t.apply(this,arguments)})},{key:"set",value:function(e,t){this.map.set(e,t)}},{key:"has",value:function(e){return this.map.has(e)}},{key:"del",value:function(e){this.map.delete(e)}}],[{key:"getInstance",value:function(){return e.instance}}]),e}();(0,u.Z)(W,"instance",new W);var Y=r(70885);function Q(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=(0,c.Z)(e);if(t){var a=(0,c.Z)(this).constructor;r=Reflect.construct(n,arguments,a)}else r=n.apply(this,arguments);return(0,i.Z)(this,r)}}var X=1,$=1,K=function(e){(0,o.Z)(r,e);var t=Q(r);function r(){var e;return(0,n.Z)(this,r),e=t.call(this),(0,u.Z)((0,s.Z)(e),"tableName","scripts"),e.table=E.table(e.tableName),e}return(0,a.Z)(r,[{key:"findByName",value:function(e){return this.findOne({name:e})}},{key:"findByNameAndNamespace",value:function(e,t){return t?this.findOne({name:e,namespace:t}):this.findOne({name:e})}},{key:"findByUUID",value:function(e){return this.findOne({uuid:e})}},{key:"findByUUIDAndSubscribeUrl",value:function(e,t){return this.findOne({subscribeUrl:t,uuid:e})}},{key:"findByOriginAndSubscribeUrl",value:function(e,t){return this.findOne({subscribeUrl:t,origin:e})}}]),r}(A),ee=r(16956);function te(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=(0,c.Z)(e);if(t){var a=(0,c.Z)(this).constructor;r=Reflect.construct(n,arguments,a)}else r=n.apply(this,arguments);return(0,i.Z)(this,r)}}var re=1,ne=function(e){(0,o.Z)(r,e);var t=te(r);function r(){var e;return(0,n.Z)(this,r),e=t.call(this),(0,u.Z)((0,s.Z)(e),"tableName","subscribe"),e.table=E.table(e.tableName),e}return(0,a.Z)(r,[{key:"findByUrl",value:function(e){return this.findOne({url:e})}}]),r}(A),ae=r(41976),se=(r(33852),r(84110)),oe=r.n(se),ie=r(81249),ce=r.n(ie);function ue(e){e=e||32;for(var t="ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz",r="",n=0;n<e;n+=1)r+=t.charAt(Math.floor(41*Math.random()));return r}function le(e){return function(e){return(e=e.replace(/("|\\)/g,"\\$1")).replace(/(\r\n|\n)/g,"\\n")}(e)}function pe(){return navigator.userAgent.indexOf("Firefox")>=0}function fe(e,t){chrome.notifications.create({type:"basic",title:e,message:t,iconUrl:chrome.runtime.getURL("assets/logo.png")})}function de(e){switch((0,p.Z)(e)){case"string":return"s".concat(e);case"number":return"n".concat(e.toString());case"boolean":return"b".concat(e?"true":"false");default:try{return"o".concat(JSON.stringify(e))}catch(e){return""}}}function he(e,t,r){try{return ce().lte(e,t)}catch(e){null==r||r.warn("does not conform to the Semantic Versioning specification",b.E(e))}for(var n=e.split("."),a=t.split("."),s=0;s<n.length;s+=1){if(Number(n[s])>Number(a[s]))return!1;if(Number(n[s])<Number(a[s]))return!0}return!0}function me(e,t){var r={},n={};e.connect&&e.connect.forEach((function(e){r[e]=!0})),t.connect&&t.connect.forEach((function(e){n[e]=!0}));for(var a=Object.keys(n),s=0;s<a.length;s+=1){var o=a[s];if(!r[o])return!1}return!0}function ve(e){var t=new FileReader;return t.readAsBinaryString(e),new Promise((function(e){t.onloadend=function(){var r=(0,H.MD5)(H.enc.Latin1.parse(t.result)).toString();e(r)}}))}function ge(e){return"string"==typeof e?e:e instanceof Error?e.message:"object"===(0,p.Z)(e)?JSON.stringify(e):""}function ye(e){var t=!1,r=/\/\/\s*==UserScript==([\s\S]+?)\/\/\s*==\/UserScript==/m,n=r.exec(e);if(!n){if(!(n=(r=/\/\/\s*==UserSubscribe==([\s\S]+?)\/\/\s*==\/UserSubscribe==/m).exec(e)))return null;t=!0}for(var a={},s=(r=/\/\/\s*@([\S]+)((.+?)$|$)/gm).exec(n[1]);null!==s;){var o=[s[1].toLowerCase().trim(),s[2].trim()],i=o[0],c=o[1],u=a[i];null==u&&(u=[]),u.push(c),a[i]=u,s=r.exec(n[1])}return void 0===a.name?null:(a.namespace||(a.namespace=[""]),t&&(a.usersubscribe=[]),a)}function be(e){var t=/\/\*\s*==UserConfig==([\s\S]+?)\s*==\/UserConfig==\s*\*\//m.exec(e);if(t){var r=t[1].trim().split(/[-]{3,}/),n={};return r.forEach((function(e){var t=ee.ZP.parse(e);Object.keys(t).forEach((function(e){n[e]=t[e]}))})),n}}function ke(e,t,r,n){return we.apply(this,arguments)}function we(){return(we=(0,w.Z)(O().mark((function e(t,r,n,a){var s,o,i,c,u;return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,fetch(t,{headers:{"Cache-Control":"no-cache"}});case 2:if(200===(o=e.sent).status){e.next=5;break}throw new Error("fetch script info failed");case 5:if(-1===(null===(s=o.headers.get("content-type"))||void 0===s?void 0:s.indexOf("text/html"))){e.next=7;break}throw new Error("url is html");case 7:return e.next=9,o.text();case 9:if(i=e.sent,c=ye(i)){e.next=13;break}throw new Error("parse script info failed");case 13:return u={url:t,code:i,uuid:a,isSubscribe:!1,isUpdate:n,metadata:c,source:r},c.usersubscribe&&(u.isSubscribe=!0),e.abrupt("return",u);case 16:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function xe(e,t){var r=e;return r.id=t.id,r.uuid=t.uuid,r.createtime=t.createtime,r.lastruntime=t.lastruntime,r.error=t.error,r.sort=t.sort,r.selfMetadata||(r.selfMetadata=t.selfMetadata||{}),r.subscribeUrl=t.subscribeUrl,r.status=t.status,r}function Oe(e,t){var r=e;return r.id=t.id,r.createtime=t.createtime,r.status=t.status,r}function Ze(e){return new Promise((function(t){var r=new FileReader;r.onloadend=function(){return t(r.result)},r.readAsDataURL(e)}))}function Pe(e){for(var t=e.split(",")[0].split(":")[1].split(";")[0],r=atob(e.split(",")[1]),n=new ArrayBuffer(r.length),a=new Uint8Array(n),s=0;s<r.length;s+=1)a[s]=r.charCodeAt(s);return new Blob([a],{type:t})}function Me(e,t,r){var n=new K;return new Promise((function(a,s){var o=ye(e);if(null==o)throw new Error("MetaData信息错误");if(void 0===o.name)throw new Error("脚本名不能为空");if(void 0===o.version)throw new Error("脚本@version版本不能为空");if(void 0===o.namespace)throw new Error("脚本@namespace命名空间不能为空");var i,c=X;if(void 0!==o.crontab){c=2;try{!function(e){var t,r=0;if(-1!==e.indexOf("once")){var n=e.split(" ");n.forEach((function(e,t){"once"===e&&(r=t)})),5===n.length&&(r+=1)}try{t=new ae.CronTime(e.replace(/once/g,"*"))}catch(e){throw new Error("错误的定时表达式")}if(r){switch(r){case 1:return t.sendAt().toFormat("yyyy-MM-dd HH:mm 每分钟运行一次");case 2:return t.sendAt().plus({hour:1}).toFormat("yyyy-MM-dd HH 每小时运行一次");case 3:return t.sendAt().plus({day:1}).toFormat("yyyy-MM-dd 每天运行一次");case 4:return t.sendAt().plus({month:1}).toFormat("yyyy-MM 每月运行一次");case 5:return t.sendAt().plus({week:1}).toFormat("yyyy-MM-dd 每星期运行一次")}throw new Error("错误表达式")}t.sendAt().toFormat("yyyy-MM-dd HH:mm:ss")}(o.crontab[0])}catch(e){throw new Error("错误的定时表达式,请检查: ".concat(o.crontab[0]))}}else void 0!==o.background&&(c=3);var u="",l="",p=t;o.updateurl&&o.downloadurl?(l=(0,Y.Z)(o.updateurl,1)[0],p=(0,Y.Z)(o.downloadurl,1)[0]):l=t.replace("user.js","meta.js");if(-1!==t.indexOf("/")&&(i=t.split("/"))[2]){var f=i;u=(0,Y.Z)(f,2)[1]}var d={id:0,uuid:r||(0,Z.Z)(),name:o.name[0],code:e,author:o.author&&o.author[0],namespace:o.namespace&&o.namespace[0],originDomain:u,origin:t,checkUpdateUrl:l,downloadUrl:p,config:be(e),metadata:o,selfMetadata:{},sort:-1,type:c,status:2,runStatus:"complete",createtime:Date.now(),updatetime:Date.now(),checktime:Date.now()},h=function(){var e=(0,w.Z)(O().mark((function e(){var o;return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!r){e.next=10;break}return e.next=3,n.findByUUID(r);case 3:if((o=e.sent)||!t){e.next=8;break}return e.next=7,n.findByNameAndNamespace(d.name,d.namespace);case 7:o=e.sent;case 8:e.next=17;break;case 10:return e.next=12,n.findByNameAndNamespace(d.name,d.namespace);case 12:if(o=e.sent){e.next=17;break}return e.next=16,n.findByUUID(d.uuid);case 16:o=e.sent;case 17:if(!o){e.next=25;break}if(!(o.type===X&&d.type!==X||d.type===X&&o.type!==X)){e.next=21;break}return s(new Error("脚本类型不匹配,普通脚本与后台脚本不能互相转变")),e.abrupt("return");case 21:d.oldScript=o,d=xe(d,o),e.next=27;break;case 25:d.type===X&&(d.status=$),d.checktime=(new Date).getTime();case 27:a(d);case 28:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}();h()}))}function _e(e,t){return Se.apply(this,arguments)}function Se(){return(Se=(0,w.Z)(O().mark((function e(t,r){var n,a,s,o;return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=new ne,null!=(a=ye(t))){e.next=4;break}throw new Error("MetaData信息错误");case 4:if(void 0!==a.name){e.next=6;break}throw new Error("订阅名不能为空");case 6:return s={id:0,url:r,name:a.name[0],code:t,author:a.author&&a.author[0],scripts:{},metadata:a,status:re,createtime:Date.now(),updatetime:Date.now(),checktime:Date.now()},e.next=9,n.findByUrl(r);case 9:return(o=e.sent)&&(s.oldSubscribe=o,s=Oe(s,o)),e.abrupt("return",Promise.resolve(s));case 12:case"end":return e.stop()}}),e)})))).apply(this,arguments)}v().locale("zh-cn"),v().extend(oe());var Ie=function(){function e(){(0,n.Z)(this,e)}return(0,a.Z)(e,null,[{key:"Trigger",value:function(){return function(e,t,r){r.value()}}},{key:"script",value:function(e){return"script:".concat(e.toString())}},{key:"scriptInfo",value:function(e){return"scriptInfo:".concat(e)}},{key:"resourceByUrl",value:function(e){return"resource:".concat(e)}},{key:"scriptValue",value:function(e,t){return t?"value:storagename:".concat(t[0]):"value:id:".concat(e.toString())}},{key:"permissionConfirm",value:function(e,t){return"permission:".concat(e.toString(),":").concat(t.permissionValue||"",":").concat(t.permission||"")}},{key:"importInfo",value:function(e){return"import:".concat(e)}}]),e}();function Ce(e){return"utf8"===Re(e)}function Re(e,t){var r,n;if(!e)return null;var a="utf8",s="binary",o=null!==(r=null==t?void 0:t.chunkLength)&&void 0!==r?r:24,i=null!==(n=null==t?void 0:t.chunkBegin)&&void 0!==n?n:0;if(null==(null==t?void 0:t.chunkBegin)){var c=Re(e,{chunkLength:o,chunkBegin:i});return c===a&&(c=Re(e,{chunkLength:o,chunkBegin:i=Math.max(0,Math.floor(e.length/2)-o)}))===a&&(c=Re(e,{chunkLength:o,chunkBegin:i=Math.max(0,e.length-o)})),c}if(-1===(i=function(e,t){if(0===t)return 0;if(r=e[t],r>>6!=2)return t;var r;var n=t-3;if(n>=0&&je(e[n]))return n;if(n=t-2,n>=0&&(je(e[n])||De(e[n])))return n;if(n=t-1,n>=0&&(je(e[n])||De(e[n])||Ee(e[n])))return n;return-1}(e,i)))return s;var u=function(e,t){if(t===e.length)return t;var r=t-3;if(r>=0&&je(e[r]))return t+1;if(r=t-2,r>=0){if(je(e[r]))return t+2;if(De(e[r]))return t+1}if(r=t-1,r>=0){if(je(e[r]))return t+3;if(De(e[r]))return t+2;if(Ee(e[r]))return t+1}return t}(e,Math.min(e.length,i+o));if(u>e.length)return s;for(var l=e.slice(i,u),p=0;p<l.length;++p){var f=l[p];if(65533===f||f<=8)return s}return a}function je(e){return e>>3==30}function De(e){return e>>4==14}function Ee(e){return e>>5==6}var Te,Ae=function(){function e(t,r){(0,n.Z)(this,e),this.message=t,this.name=r,this.logger=k.getLogger({component:this.name,manager:!0})}return(0,a.Z)(e,[{key:"listenEvent",value:function(e,t){this.message.setHandler("".concat(this.name,"-").concat(e),(function(e,r,n){return new Promise((function(e){e(t(r,n))}))}))}}]),e}();function Ue(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Ge(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Ue(Object(r),!0).forEach((function(t){(0,u.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Ue(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function Le(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=(0,c.Z)(e);if(t){var a=(0,c.Z)(this).constructor;r=Reflect.construct(n,arguments,a)}else r=n.apply(this,arguments);return(0,i.Z)(this,r)}}function Be(e){return new Promise((function(t){var r=new FileReader;r.readAsBinaryString(e),r.onloadend=function(){r.result?t({md5:q().MD5(r.result).toString(),sha1:q().SHA1(r.result).toString(),sha256:q().SHA256(r.result).toString(),sha384:q().SHA384(r.result).toString(),sha512:q().SHA512(r.result).toString()}):t({md5:"",sha1:"",sha256:"",sha384:"",sha512:""})}}))}new Error("资源未找到"),new Error("资源加载失败");var He=B.Singleton(S)(Te=function(e){(0,o.Z)(y,e);var t,r,s,i,c,u,l,p,f,d,h,m,v,g=Le(y);function y(e){var t;return(0,n.Z)(this,y),(t=g.call(this,e,"resource")).resourceDAO=new V,t.resourceLinkDAO=new z,t.logger=k.getInstance().logger({component:"resource"}),t}return(0,a.Z)(y,[{key:"start",value:function(){var e=this;this.listenEvent("getScriptResources",(function(t){return e.getScriptResources(t)})),this.listenEvent("deleteResource",(function(t){return e.resourceDAO.delete(t)}))}},{key:"getResource",value:(v=(0,w.Z)(O().mark((function e(t,r,n){var a;return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.getResourceModel(r);case 2:if(!(a=e.sent)){e.next=5;break}return e.abrupt("return",Promise.resolve(a));case 5:return e.prev=5,e.next=8,this.addResource(r,t,n);case 8:if(!(a=e.sent)){e.next=11;break}return e.abrupt("return",Promise.resolve(a));case 11:e.next=15;break;case 13:e.prev=13,e.t0=e.catch(5);case 15:return e.abrupt("return",Promise.resolve(void 0));case 16:case"end":return e.stop()}}),e,this,[[5,13]])}))),function(e,t,r){return v.apply(this,arguments)})},{key:"getScriptResources",value:(m=(0,w.Z)(O().mark((function e(t){return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.t0=Promise,e.t1=Ge,e.t2=Ge,e.t3=Ge,e.t4={},e.next=7,this.getRequireResource(t);case 7:if(e.t5=e.sent,e.t5){e.next=10;break}e.t5={};case 10:return e.t6=e.t5,e.t7=(0,e.t3)(e.t4,e.t6),e.next=14,this.getRequireCssResource(t);case 14:if(e.t8=e.sent,e.t8){e.next=17;break}e.t8={};case 17:return e.t9=e.t8,e.t10=(0,e.t2)(e.t7,e.t9),e.next=21,this.getResourceResource(t);case 21:if(e.t11=e.sent,e.t11){e.next=24;break}e.t11={};case 24:return e.t12=e.t11,e.t13=(0,e.t1)(e.t10,e.t12),e.abrupt("return",e.t0.resolve.call(e.t0,e.t13));case 27:case"end":return e.stop()}}),e,this)}))),function(e){return m.apply(this,arguments)})},{key:"getRequireResource",value:(h=(0,w.Z)(O().mark((function e(t){var r,n=this;return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t.metadata.require){e.next=2;break}return e.abrupt("return",Promise.resolve({}));case 2:return r={},e.next=5,Promise.allSettled(t.metadata.require.map(function(){var e=(0,w.Z)(O().mark((function e(a){var s;return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,n.getResource(t.id,a,"require");case 2:(s=e.sent)&&(r[a]=s);case 4:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()));case 5:return e.abrupt("return",Promise.resolve(r));case 6:case"end":return e.stop()}}),e)}))),function(e){return h.apply(this,arguments)})},{key:"getRequireCssResource",value:(d=(0,w.Z)(O().mark((function e(t){var r,n=this;return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t.metadata["require-css"]){e.next=2;break}return e.abrupt("return",Promise.resolve({}));case 2:return r={},e.next=5,Promise.allSettled(t.metadata.require.map(function(){var e=(0,w.Z)(O().mark((function e(a){var s;return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,n.getResource(t.id,a,"require-css");case 2:(s=e.sent)&&(r[a]=s);case 4:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()));case 5:return e.abrupt("return",Promise.resolve(r));case 6:case"end":return e.stop()}}),e)}))),function(e){return d.apply(this,arguments)})},{key:"getResourceResource",value:(f=(0,w.Z)(O().mark((function e(t){var r,n=this;return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t.metadata.resource){e.next=2;break}return e.abrupt("return",Promise.resolve({}));case 2:return r={},e.next=5,Promise.allSettled(t.metadata.resource.map(function(){var e=(0,w.Z)(O().mark((function e(a){var s,o;return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(2!==(s=a.split(/\s+/)).length){e.next=6;break}return e.next=4,n.getResource(t.id,s[1],"resource");case 4:(o=e.sent)&&(r[s[0]]=o);case 6:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()));case 5:return e.abrupt("return",Promise.resolve(r));case 6:case"end":return e.stop()}}),e)}))),function(e){return f.apply(this,arguments)})},{key:"checkScriptResource",value:(p=(0,w.Z)(O().mark((function e(t){return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.t0=Promise,e.t1=Ge,e.t2=Ge,e.t3=Ge,e.t4={},e.next=7,this.checkRequireResource(t);case 7:if(e.t5=e.sent,e.t5){e.next=10;break}e.t5={};case 10:return e.t6=e.t5,e.t7=(0,e.t3)(e.t4,e.t6),e.next=14,this.checkRequireCssResource(t);case 14:if(e.t8=e.sent,e.t8){e.next=17;break}e.t8={};case 17:return e.t9=e.t8,e.t10=(0,e.t2)(e.t7,e.t9),e.next=21,this.checkResourceResource(t);case 21:if(e.t11=e.sent,e.t11){e.next=24;break}e.t11={};case 24:return e.t12=e.t11,e.t13=(0,e.t1)(e.t10,e.t12),e.abrupt("return",e.t0.resolve.call(e.t0,e.t13));case 27:case"end":return e.stop()}}),e,this)}))),function(e){return p.apply(this,arguments)})},{key:"checkRequireResource",value:(l=(0,w.Z)(O().mark((function e(t){var r,n=this;return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t.metadata.require){e.next=2;break}return e.abrupt("return",Promise.resolve({}));case 2:return r={},e.next=5,Promise.allSettled(t.metadata.require.map(function(){var e=(0,w.Z)(O().mark((function e(a){var s;return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,n.checkResource(t.id,a,"require");case 2:(s=e.sent)&&(r[a]=s);case 4:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()));case 5:return e.abrupt("return",Promise.resolve(r));case 6:case"end":return e.stop()}}),e)}))),function(e){return l.apply(this,arguments)})},{key:"checkRequireCssResource",value:(u=(0,w.Z)(O().mark((function e(t){var r,n=this;return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t.metadata["require-css"]){e.next=2;break}return e.abrupt("return",Promise.resolve({}));case 2:return r={},e.next=5,Promise.allSettled(t.metadata.require.map(function(){var e=(0,w.Z)(O().mark((function e(a){var s;return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,n.checkResource(t.id,a,"require-css");case 2:(s=e.sent)&&(r[a]=s);case 4:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()));case 5:return e.abrupt("return",Promise.resolve(r));case 6:case"end":return e.stop()}}),e)}))),function(e){return u.apply(this,arguments)})},{key:"checkResourceResource",value:(c=(0,w.Z)(O().mark((function e(t){var r,n=this;return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t.metadata.resource){e.next=2;break}return e.abrupt("return",Promise.resolve({}));case 2:return r={},e.next=5,Promise.allSettled(t.metadata.resource.map(function(){var e=(0,w.Z)(O().mark((function e(a){var s,o;return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(2!==(s=a.split(/\s+/)).length){e.next=6;break}return e.next=4,n.checkResource(t.id,s[1],"resource");case 4:(o=e.sent)&&(r[s[0]]=o);case 6:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()));case 5:return e.abrupt("return",Promise.resolve(r));case 6:case"end":return e.stop()}}),e)}))),function(e){return c.apply(this,arguments)})},{key:"checkResource",value:(i=(0,w.Z)(O().mark((function e(t,r,n){var a;return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.getResourceModel(r);case 2:if(!(a=e.sent)){e.next=6;break}if(!((a.updatetime||0)>(new Date).getTime()-6e4)){e.next=6;break}return e.abrupt("return",Promise.resolve(a));case 6:return e.prev=6,e.next=9,this.updateResource(r,t,n);case 9:if(!(a=e.sent)){e.next=12;break}return e.abrupt("return",Promise.resolve(a));case 12:e.next=16;break;case 14:e.prev=14,e.t0=e.catch(6);case 16:return e.abrupt("return",Promise.resolve(void 0));case 17:case"end":return e.stop()}}),e,this,[[6,14]])}))),function(e,t,r){return i.apply(this,arguments)})},{key:"updateResource",value:(s=(0,w.Z)(O().mark((function e(t,r,n){var a,s,o,i,c;return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a=this.parseUrl(t),e.next=3,this.getResourceModel(a.url);case 3:return s=e.sent,e.prev=4,e.next=7,this.loadByUrl(a.url,n);case 7:if((o=e.sent).updatetime=(new Date).getTime(),W.getInstance().set(Ie.resourceByUrl(a.url),o),s){e.next=19;break}return o.createtime=(new Date).getTime(),e.next=14,this.resourceDAO.save(o);case 14:i=e.sent,s=o,this.logger.info("reload new resource success",{url:a.url,id:i}),e.next=27;break;case 19:return s.base64=o.base64,s.content=o.content,s.contentType=o.contentType,s.hash=o.hash,s.updatetime=o.updatetime,e.next=26,this.resourceDAO.update(s.id,s);case 26:this.logger.info("reload resource success",{url:a.url,id:s.id});case 27:e.next=33;break;case 29:throw e.prev=29,e.t0=e.catch(4),this.logger.error("load resource error",{url:a.url},b.E(e.t0)),e.t0;case 33:return e.next=35,this.resourceLinkDAO.findOne({url:a.url,scriptId:r});case 35:if(!e.sent){e.next=38;break}return e.abrupt("return",Promise.resolve(s));case 38:return e.next=40,this.resourceLinkDAO.save({id:0,url:a.url,scriptId:r,createtime:(new Date).getTime()});case 40:return c=e.sent,this.logger.debug("resource link",{url:a.url,resourceID:s.id,id:c}),e.abrupt("return",Promise.resolve(s));case 43:case"end":return e.stop()}}),e,this,[[4,29]])}))),function(e,t,r){return s.apply(this,arguments)})},{key:"addResource",value:(r=(0,w.Z)(O().mark((function e(t,r,n){var a,s,o,i,c;return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a=this.parseUrl(t),e.next=3,this.getResourceModel(a.url);case 3:if(s=e.sent){e.next=23;break}return e.prev=5,e.next=8,this.loadByUrl(a.url,n);case 8:return(o=e.sent).createtime=(new Date).getTime(),o.updatetime=(new Date).getTime(),W.getInstance().set(Ie.resourceByUrl(a.url),o),e.next=14,this.resourceDAO.save(o);case 14:i=e.sent,s=o,this.logger.info("load resource success",{url:a.url,id:i}),e.next=23;break;case 19:throw e.prev=19,e.t0=e.catch(5),this.logger.error("load resource error",{url:a.url},b.E(e.t0)),e.t0;case 23:return e.next=25,this.resourceLinkDAO.findOne({url:a.url,scriptId:r});case 25:if(!e.sent){e.next=28;break}return e.abrupt("return",Promise.resolve(s));case 28:return e.next=30,this.resourceLinkDAO.save({id:0,url:a.url,scriptId:r,createtime:(new Date).getTime()});case 30:return c=e.sent,this.logger.debug("resource link",{url:a.url,resourceID:s.id,id:c}),e.abrupt("return",Promise.resolve(s));case 33:case"end":return e.stop()}}),e,this,[[5,19]])}))),function(e,t,n){return r.apply(this,arguments)})},{key:"getResourceModel",value:(t=(0,w.Z)(O().mark((function e(t){var r,n;return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=this.parseUrl(t),e.next=3,this.resourceDAO.findOne({url:r.url});case 3:if(!(n=e.sent)){e.next=7;break}return r.hash&&(r.hash.md5&&r.hash.md5!==n.hash.md5||r.hash.sha1&&r.hash.sha1!==n.hash.sha1||r.hash.sha256&&r.hash.sha256!==n.hash.sha256||r.hash.sha384&&r.hash.sha384!==n.hash.sha384||r.hash.sha512&&r.hash.sha512!==n.hash.sha512)&&(n.content="console.warn(\"ScriptCat: couldn't load resource from URL ".concat(t,' due to a SRI error ");')),e.abrupt("return",Promise.resolve(n));case 7:return e.abrupt("return",Promise.resolve(void 0));case 8:case"end":return e.stop()}}),e,this)}))),function(e){return t.apply(this,arguments)})},{key:"loadByUrl",value:function(e,t){var r=this;return new Promise((function(n,a){var s=r.parseUrl(e);J.Z.get(s.url,{responseType:"blob"}).then(function(){var e=(0,w.Z)(O().mark((function e(r){var o,i;return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(200===r.status){e.next=2;break}return e.abrupt("return",a(new Error("resource response status not 200:".concat(r.status))));case 2:return e.t0=s.url,e.t1=(r.headers["content-type"]||"application/octet-stream").split(";")[0],e.next=6,Be(r.data);case 6:return e.t2=e.sent,e.t3=t,e.t4=(new Date).getTime(),o={id:0,url:e.t0,content:"",contentType:e.t1,hash:e.t2,base64:"",type:e.t3,createtime:e.t4},e.next=12,r.data.arrayBuffer();case 12:if(i=e.sent,!Ce(new Uint8Array(i))){e.next=18;break}return e.next=17,r.data.text();case 17:o.content=e.sent;case 18:return e.next=20,Ze(r.data);case 20:if(e.t5=e.sent,e.t5){e.next=23;break}e.t5="";case 23:return o.base64=e.t5,e.abrupt("return",n(o));case 25:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()).catch((function(e){return a(e)}))}))}},{key:"parseUrl",value:function(e){var t=e.split("#");if(t.length<2)return{url:t[0],hash:void 0};var r=t[1].split(/[,;]/),n={};return r.forEach((function(e){var t=e.split("=");t.length<2||(n[t[0]]=t[1].toLocaleLowerCase())})),{url:t[0],hash:n}}}]),y}(Ae))||Te;const qe=He;var Ne=r(53229);function Ve(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=(0,c.Z)(e);if(t){var a=(0,c.Z)(this).constructor;r=Reflect.construct(n,arguments,a)}else r=n.apply(this,arguments);return(0,i.Z)(this,r)}}var Fe=function(e){(0,o.Z)(r,e);var t=Ve(r);function r(e){var a;return(0,n.Z)(this,r),(a=t.call(this)).tag=e,a.reconnect(),a}return(0,a.Z)(r,[{key:"reconnect",value:function(){var e=this;this.port=chrome.runtime.connect({name:this.tag}),this.channelManager=new _((function(t){e.nativeSend(t)})),this.port.onMessage.addListener((function(t){e.handler(t,e.channelManager,{targetTag:"content"})})),this.port.onDisconnect.addListener((function(){var t;e.channelManager.free(),null===(t=e.onDisconnect)||void 0===t||t.call(e)}))}},{key:"getChannel",value:function(e){return this.channelManager.getChannel(e)}},{key:"channel",value:function(e){return this.channelManager.channel(e)}},{key:"disChannel",value:function(e){this.channelManager.disChannel(e)}},{key:"free",value:function(){this.channelManager.free()}},{key:"nativeSend",value:function(e){this.port.postMessage(e)}},{key:"send",value:function(e,t){this.port.postMessage({action:e,data:t})}},{key:"syncSend",value:function(e,t){return this.channelManager.channel().syncSend(e,t)}},{key:"broadcast",value:function(e,t,r){this.nativeSend({target:e,action:t,data:r,broadcast:!0})}},{key:"broadcastChannel",value:function(e,t,r){this.nativeSend({target:e,data:{stream:t,channel:!0,data:r},broadcast:!0})}}]),r}(S),ze=r(3067),Je=function(){function e(t,r){(0,n.Z)(this,e),this.prefix="".concat(t,"_"),this.storage=r?chrome.storage.sync:chrome.storage.local}return(0,a.Z)(e,[{key:"buildKey",value:function(e){return this.prefix+e}},{key:"get",value:function(e){var t=this;return new Promise((function(r){e=t.buildKey(e),t.storage.get(e,(function(t){r(t[e])}))}))}},{key:"set",value:function(e,t){var r=this;return new Promise((function(n){var a={};a[r.buildKey(e)]=t,r.storage.set(a,(function(){return n()}))}))}},{key:"remove",value:function(e){var t=this;return new Promise((function(r){t.storage.remove(t.buildKey(e),(function(){return r()}))}))}},{key:"removeAll",value:function(){var e=this;return new Promise((function(t){e.storage.clear((function(){return t()}))}))}},{key:"keys",value:function(){var e=this;return new Promise((function(t){var r={},n=e.buildKey("");e.storage.get((function(e){Object.keys(e).forEach((function(t){t.startsWith(n)&&(r[t.substring(n.length)]=e[t])})),t(r)}))}))}}]),e}();function We(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Ye(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?We(Object(r),!0).forEach((function(t){(0,u.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):We(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var Qe,Xe,$e,Ke,et,tt,rt,nt,at,st,ot,it={"userscripts/filename-user":["error","always"],"userscripts/no-invalid-metadata":["error",{top:"required"}],"userscripts/require-name":["error","required"],"userscripts/require-description":["error","required"],"userscripts/require-version":["error","required"],"userscripts/require-attribute-space-prefix":"error","userscripts/use-homepage-and-url":"error","userscripts/use-download-and-update-url":"error","userscripts/align-attributes":["error",2],"userscripts/metadata-spacing":["error","always"],"userscripts/no-invalid-headers":"error","userscripts/no-invalid-grant":"error","userscripts/compat-grant":"off","userscripts/compat-headers":"off","userscripts/better-use-match":"warn"},ct=(Object.fromEntries(Object.keys(it).map((function(e){var t=e.split("/")[1],n=r(43914)("./".concat(t,".js"));return[e,Ye(Ye({},n),{},{meta:Ye(Ye({},n.meta),{},{docs:Ye(Ye({},n.meta.docs),{},{url:"https://yash-singh1.github.io/eslint-plugin-userscripts/#/rules/".concat(t)})})})]}))),{parserOptions:{ecmaVersion:"latest",sourceType:"script",ecmaFeatures:{globalReturn:!0}},rules:Ye({"constructor-super":["error"],"for-direction":["error"],"getter-return":["error"],"no-async-promise-executor":["error"],"no-case-declarations":["error"],"no-class-assign":["error"],"no-compare-neg-zero":["error"],"no-cond-assign":["error"],"no-const-assign":["error"],"no-constant-condition":["error"],"no-control-regex":["error"],"no-debugger":["error"],"no-delete-var":["error"],"no-dupe-args":["error"],"no-dupe-class-members":["error"],"no-dupe-else-if":["error"],"no-dupe-keys":["error"],"no-duplicate-case":["error"],"no-empty":["error"],"no-empty-character-class":["error"],"no-empty-pattern":["error"],"no-ex-assign":["error"],"no-extra-boolean-cast":["error"],"no-extra-semi":["error"],"no-fallthrough":["error"],"no-func-assign":["error"],"no-global-assign":["error"],"no-import-assign":["error"],"no-inner-declarations":["error"],"no-invalid-regexp":["error"],"no-irregular-whitespace":["error"],"no-loss-of-precision":["error"],"no-misleading-character-class":["error"],"no-mixed-spaces-and-tabs":["error"],"no-new-symbol":["error"],"no-nonoctal-decimal-escape":["error"],"no-obj-calls":["error"],"no-octal":["error"],"no-prototype-builtins":["error"],"no-redeclare":["error"],"no-regex-spaces":["error"],"no-self-assign":["error"],"no-setter-return":["error"],"no-shadow-restricted-names":["error"],"no-sparse-arrays":["error"],"no-this-before-super":["error"],"no-undef":["warn"],"no-unexpected-multiline":["error"],"no-unreachable":["error"],"no-unsafe-finally":["error"],"no-unsafe-negation":["error"],"no-unsafe-optional-chaining":["error"],"no-unused-labels":["error"],"no-unused-vars":["error"],"no-useless-backreference":["error"],"no-useless-catch":["error"],"no-useless-escape":["error"],"no-with":["error"],"require-yield":["error"],"use-isnan":["error"],"valid-typeof":["error"]},it),env:{es6:!0,browser:!0,greasemonkey:!0}}),ut=JSON.stringify(ct),lt="systemConfigChange",pt=B.Singleton(S)((Xe=function(){function e(t){(0,n.Z)(this,e),(0,u.Z)(this,"cache",new Map),(0,u.Z)(this,"storage",new Je("system",!0)),t instanceof C&&(this.message=t),t instanceof Fe&&(this.internal=t),this.syncConfig()}var t,r;return(0,a.Z)(e,[{key:"syncConfig",value:(r=(0,w.Z)(O().mark((function e(){var t,r=this;return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.storage.keys();case 2:t=e.sent,Object.keys(t).forEach((function(e){r.cache.has(e)||r.cache.set(e,t[e])}));case 4:case"end":return e.stop()}}),e,this)}))),function(){return r.apply(this,arguments)})},{key:"init",value:(t=(0,w.Z)(O().mark((function t(){var r,n=this;return O().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:null===(r=this.message)||void 0===r||r.setHandler(lt,(function(t,r){n.storage.set(r.key,r.val),n.cache.set(r.key,r.val),e.hook.trigger("update",r.key,r.val)}));case 1:case"end":return t.stop()}}),t,this)}))),function(){return t.apply(this,arguments)})},{key:"set",value:function(e,t){this.cache.set(e,t),this.internal?this.internal.send(lt,{key:e,val:t}):this.storage.set(e,t)}},{key:"list",value:function(){var e={};return this.cache.forEach((function(t,r){e[r]=t})),e}},{key:"changetime",get:function(){return this.cache.get("changetime")||0},set:function(e){this.set("changetime",0)}},{key:"checkScriptUpdateCycle",get:function(){return void 0===this.cache.get("check_script_update_cycle")?86400:this.cache.get("check_script_update_cycle")},set:function(e){this.set("check_script_update_cycle",e)}},{key:"silenceUpdateScript",get:function(){return this.cache.get("silence_update_script")||!1},set:function(e){this.set("silence_update_script",e)}},{key:"enableAutoSync",get:function(){return!this.cache.has("enable_auto_sync")||this.cache.get("enable_auto_sync")},set:function(e){this.set("enable_auto_sync",e)}},{key:"updateDisableScript",get:function(){var e=this.cache.get("update_disable_script");return void 0===e||e},set:function(e){this.set("update_disable_script",e)}},{key:"vscodeUrl",get:function(){return this.cache.get("vscode_url")||"ws://localhost:8642"},set:function(e){this.set("vscode_url",e)}},{key:"vscodeReconnect",get:function(){return this.cache.get("vscode_reconnect")||!1},set:function(e){this.set("vscode_reconnect",e)}},{key:"backup",get:function(){return this.cache.get("backup")||{filesystem:"webdav",params:{}}},set:function(e){this.set("backup",e)}},{key:"cloudSync",get:function(){return this.cache.get("cloud_sync")||{enable:!1,syncDelete:!0,filesystem:"webdav",params:{}}},set:function(e){this.set("cloud_sync",e)}},{key:"scriptCatFlag",get:function(){return this.cache.get("script_cat_flag")},set:function(e){this.set("script_cat_flag",e)}},{key:"enableEslint",get:function(){return this.cache.get("enable_eslint")},set:function(e){this.set("enable_eslint",e)}},{key:"eslintConfig",get:function(){return this.cache.get("eslint_config")||ut},set:function(e){if(""===e)return this.set("eslint_config",e),void ze.Z.success("ESLint规则已重置");try{JSON.parse(e),this.set("eslint_config",e),ze.Z.success("ESLint规则已保存")}catch(e){ze.Z.error(e.toString())}}},{key:"logCleanCycle",get:function(){return this.cache.get("log_clean_cycle")||7},set:function(e){this.set("log_clean_cycle",e)}}]),e}(),(0,u.Z)(Xe,"hook",new d),Qe=Xe))||Qe,ft={};function dt(e){return function(t,r){ft[e]=t[r]}}var ht,mt,vt,gt,yt,bt=($e=dt("upsert"),Ke=dt("fetch"),et=dt("enable"),tt=dt("disable"),rt=dt("delete"),nt=dt("checkUpdate"),at=dt("importByUrl"),st=dt("exclude"),ot=function(){function e(t,r){var a=this;(0,n.Z)(this,e),this.manager=t,this.dao=r,this.cache=W.getInstance(),this.logger=k.getInstance().logger({component:"script"}),Object.keys(ft).forEach((function(e){a.manager.listenEvent(e,ft[e].bind(a))}))}var t;return(0,a.Z)(e,[{key:"upsertHandler",value:(t=(0,w.Z)(O().mark((function e(t){var r,n,a,s=this,o=arguments;return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=o.length>1&&void 0!==o[1]?o[1]:"user",n=this.logger.with({scriptId:t.id,name:t.name,uuid:t.uuid,version:t.metadata.version[0],upsertBy:r}),!t.id){e.next=7;break}return e.next=5,this.dao.findById(t.id);case 5:(a=e.sent)&&(t.selfMetadata=a.selfMetadata);case 7:return e.abrupt("return",new Promise((function(e,a){s.dao.save(t).then((function(){n.info("script upsert success"),xt.hook.trigger("upsert",t,r),e({id:t.id})}),(function(e){n.error("script upsert failed",b.E(e)),a(e)}))})));case 8:case"end":return e.stop()}}),e,this)}))),function(e){return t.apply(this,arguments)})},{key:"fetchInfoHandler",value:function(e){var t=this;return new Promise((function(r){r(t.cache.get(Ie.scriptInfo(e)))}))}},{key:"enableHandler",value:function(e){var t=this,r=this.logger.with({scriptId:e});return new Promise((function(n,a){t.dao.findById(e).then((function(e){return e?(e.status!==$&&(e.status=$,e.updatetime=(new Date).getTime(),t.dao.save(e),r.info("enable script"),xt.hook.trigger("enable",e)),n(1)):a(new Error("脚本不存在"))})).catch((function(e){r.error("enable error",b.E(e)),a(e)}))}))}},{key:"disableHandler",value:function(e){var t=this,r=this.logger.with({scriptId:e});return new Promise((function(n,a){t.dao.findById(e).then((function(e){return e?(e.status===$&&(e.status=2,e.updatetime=(new Date).getTime(),t.dao.save(e),r.info("disable script"),xt.hook.trigger("disable",e)),n(1)):a(new Error("脚本不存在"))})).catch((function(e){r.error("disable error",b.E(e)),a(e)}))}))}},{key:"deleteHandler",value:function(e){var t=this,r=this.logger.with({scriptId:e});return new Promise((function(n,a){t.dao.findById(e).then((function(e){return e?(r=r.with({name:e.name,uuid:e.uuid,version:e.metadata.version[0]}),t.dao.delete(e.id).then((function(){return r.info("script delete success"),xt.hook.trigger("delete",e),n(1)})).catch((function(e){return r.error("script delete failed",b.E(e)),a(e)}))):Promise.reject(new Error("脚本不存在"))}))}))}},{key:"checkUpdateHandler",value:function(e){return this.manager.checkUpdate(e,"user")}},{key:"importByUrlHandler",value:function(e){return this.manager.openInstallPageByUrl(e)}},{key:"excludeHandler",value:function(e){var t=this,r=e.id,n=e.exclude,a=e.remove,s=this.logger.with({scriptId:r});return new Promise((function(e,o){t.dao.findById(r).then((function(r){if(!r)return o(new Error("脚本不存在"));r.selfMetadata=r.selfMetadata||{};var i=r.selfMetadata.exclude||[];if(a)for(var c=0;c<i.length;c+=1)i[c]===n&&i.splice(c,1);else i.push(n);return r.selfMetadata.exclude=i,t.dao.save(r).then((function(){s.info("script exclude success"),xt.hook.trigger("upsert",r,"system"),e({id:r.id})}),(function(e){s.error("script exclude failed",b.E(e)),o(e)})),e(1)})).catch((function(e){s.error("exclude error",b.E(e)),o(e)}))}))}}]),e}(),(0,Ne.Z)(ot.prototype,"upsertHandler",[$e],Object.getOwnPropertyDescriptor(ot.prototype,"upsertHandler"),ot.prototype),(0,Ne.Z)(ot.prototype,"fetchInfoHandler",[Ke],Object.getOwnPropertyDescriptor(ot.prototype,"fetchInfoHandler"),ot.prototype),(0,Ne.Z)(ot.prototype,"enableHandler",[et],Object.getOwnPropertyDescriptor(ot.prototype,"enableHandler"),ot.prototype),(0,Ne.Z)(ot.prototype,"disableHandler",[tt],Object.getOwnPropertyDescriptor(ot.prototype,"disableHandler"),ot.prototype),(0,Ne.Z)(ot.prototype,"deleteHandler",[rt],Object.getOwnPropertyDescriptor(ot.prototype,"deleteHandler"),ot.prototype),(0,Ne.Z)(ot.prototype,"checkUpdateHandler",[nt],Object.getOwnPropertyDescriptor(ot.prototype,"checkUpdateHandler"),ot.prototype),(0,Ne.Z)(ot.prototype,"importByUrlHandler",[at],Object.getOwnPropertyDescriptor(ot.prototype,"importByUrlHandler"),ot.prototype),(0,Ne.Z)(ot.prototype,"excludeHandler",[st],Object.getOwnPropertyDescriptor(ot.prototype,"excludeHandler"),ot.prototype),ot);function kt(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=(0,c.Z)(e);if(t){var a=(0,c.Z)(this).constructor;r=Reflect.construct(n,arguments,a)}else r=n.apply(this,arguments);return(0,i.Z)(this,r)}}var wt=(ht=B.Singleton(S,pt),mt=Ie.Trigger(),ht((yt=function(e){(0,o.Z)(c,e);var t,r,i=kt(c);function c(e,t){var r;return(0,n.Z)(this,c),(r=i.call(this,e,"script")).event=new bt((0,s.Z)(r),new K),r.scriptDAO=new K,r.systemConfig=t,r.logger=k.getLogger({component:"scriptManager"}),r}return(0,a.Z)(c,[{key:"start",value:function(){var e=this;this.listenInstallRequest(),setInterval((function(){e.systemConfig.checkScriptUpdateCycle&&(e.logger.debug("start check update"),e.scriptDAO.table.where("checktime").belowOrEqual((new Date).getTime()-1e3*e.systemConfig.checkScriptUpdateCycle).toArray().then((function(t){t.forEach((function(t){(e.systemConfig.updateDisableScript||2!==t.status)&&e.checkUpdate(t.id,"system")}))})))}),6e5)}},{key:"listenInstallRequest",value:function(){var e=this;chrome.webRequest.onBeforeRequest.addListener((function(t){return"GET"!==t.method||-1!==t.url.split("#").splice(1).join("#").indexOf("bypass=true")?{}:(e.openInstallPage(t),{redirectUrl:"javascript:void 0"})}),{urls:["*://*/*.user.js","*://*/*.user.js?*","https://*/*.user.sub.js","https://*/*.user.sub.js?*","https://*/*.user.bg.js","https://*/*.user.bg.js?*","file:///*/*.user.js"],types:["main_frame"]},["blocking"])}},{key:"openInstallPage",value:function(e){this.openInstallPageByUrl(e.url).catch((function(){chrome.tabs.update(e.tabId,{url:"".concat(e.url,"#bypass=true")})}))}},{key:"openInstallPageByUrl",value:function(e){return ke(e,"user",!1,(0,Z.Z)()).then((function(e){W.getInstance().set(Ie.scriptInfo(e.uuid),e),setTimeout((function(){W.getInstance().del(Ie.scriptInfo(e.uuid))}),6e4),function(e){chrome.tabs.query({active:!0},(function(t){t.length?chrome.tabs.create({url:e,index:t[0].index+1}):chrome.tabs.create({url:e})}))}("/src/install.html?uuid=".concat(e.uuid))}))}},{key:"checkUpdate",value:(r=(0,w.Z)(O().mark((function e(t,r){var n,a,s,o,i,c;return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.scriptDAO.findById(t);case 2:if(n=e.sent){e.next=5;break}return e.abrupt("return",Promise.resolve(!1));case 5:if(this.scriptDAO.update(t,{checktime:(new Date).getTime()}),n.checkUpdateUrl){e.next=8;break}return e.abrupt("return",Promise.resolve(!1));case 8:return a=k.getLogger({scriptId:t,name:n.name}),e.prev=9,e.next=12,ke(n.checkUpdateUrl,r,!1,n.uuid);case 12:if(s=e.sent,o=s.metadata){e.next=17;break}return a.error("parse metadata failed"),e.abrupt("return",Promise.resolve(!1));case 17:if(i=o.version&&o.version[0]){e.next=21;break}return a.error("parse version failed",{version:o.version[0]}),e.abrupt("return",Promise.resolve(!1));case 21:if((c=n.metadata.version&&n.metadata.version[0])||(c="0.0.0"),!he(i,c,a)){e.next=25;break}return e.abrupt("return",Promise.resolve(!1));case 25:this.openUpdatePage(n,r),e.next=32;break;case 28:return e.prev=28,e.t0=e.catch(9),a.error("check update failed",b.E(e.t0)),e.abrupt("return",Promise.resolve(!1));case 32:return e.abrupt("return",Promise.resolve(!0));case 33:case"end":return e.stop()}}),e,this,[[9,28]])}))),function(e,t){return r.apply(this,arguments)})},{key:"openUpdatePage",value:function(e,t){var r=this,n=this.logger.with({scriptId:e.id,name:e.name,downloadUrl:e.downloadUrl,checkUpdateUrl:e.checkUpdateUrl});ke(e.downloadUrl||e.checkUpdateUrl,t,!0,e.uuid).then(function(){var t=(0,w.Z)(O().mark((function t(a){var s;return O().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!r.systemConfig.silenceUpdateScript){t.next=14;break}return t.prev=1,t.next=4,Me(a.code,e.downloadUrl||e.checkUpdateUrl,e.uuid);case 4:if(!me((s=t.sent).oldScript.metadata,s.metadata)){t.next=9;break}return n.info("silence update script"),r.event.upsertHandler(s),t.abrupt("return");case 9:t.next=14;break;case 11:t.prev=11,t.t0=t.catch(1),n.error("prepare script failed",b.E(t.t0));case 14:W.getInstance().set(Ie.scriptInfo(a.uuid),a),chrome.tabs.create({url:"/src/install.html?uuid=".concat(a.uuid)});case 16:case"end":return t.stop()}}),t,null,[[1,11]])})));return function(e){return t.apply(this,arguments)}}()).catch((function(e){n.error("fetch script info failed",b.E(e))}))}},{key:"installByUrl",value:(t=(0,w.Z)(O().mark((function e(t,r,n){var a,s;return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,ke(t,"system",!1,(0,Z.Z)());case 2:return a=e.sent,e.next=5,Me(a.code,t,a.uuid);case 5:return(s=e.sent).subscribeUrl=n,e.next=9,this.event.upsertHandler(s,"system");case 9:return e.abrupt("return",Promise.resolve(s));case 10:case"end":return e.stop()}}),e,this)}))),function(e,r,n){return t.apply(this,arguments)})}],[{key:"CacheManager",value:function(){c.hook.addListener("upsert",(function(e){return W.getInstance().del(Ie.script(e.id)),Promise.resolve(!0)})),c.hook.addListener("delete",(function(e){return W.getInstance().del(Ie.script(e.id)),Promise.resolve(!0)}))}}]),c}(Ae),(0,u.Z)(yt,"hook",new d),gt=yt,(0,Ne.Z)(gt,"CacheManager",[mt],Object.getOwnPropertyDescriptor(gt,"CacheManager"),gt),vt=gt))||vt);const xt=wt;function Ot(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=(0,c.Z)(e);if(t){var a=(0,c.Z)(this).constructor;r=Reflect.construct(n,arguments,a)}else r=n.apply(this,arguments);return(0,i.Z)(this,r)}}var Zt,Pt,Mt=function(e){(0,o.Z)(r,e);var t=Ot(r);function r(){var e;return(0,n.Z)(this,r),e=t.call(this),(0,u.Z)((0,s.Z)(e),"tableName","value"),e.table=E.table(e.tableName),e}return(0,a.Z)(r)}(A),_t=r(96486);function St(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=(0,c.Z)(e);if(t){var a=(0,c.Z)(this).constructor;r=Reflect.construct(n,arguments,a)}else r=n.apply(this,arguments);return(0,i.Z)(this,r)}}var It=B.Singleton(S,M)((Pt=function(e){(0,o.Z)(c,e);var t,r,s,i=St(c);function c(e,t){var r;return(0,n.Z)(this,c),(r=i.call(this,e,"value")).broadcast=t,r.scriptDAO=new K,r.valueDAO=new Mt,r}return(0,a.Z)(c,[{key:"start",value:function(){var e=this;this.listenEvent("upsert",function(){var t=(0,w.Z)(O().mark((function t(r,n){var a,s,o,i;return O().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return a=r.scriptId,s=r.key,o=r.value,t.next=3,e.scriptDAO.findById(a);case 3:if(i=t.sent){t.next=6;break}return t.abrupt("return",Promise.reject(new Error("script not found")));case 6:return t.abrupt("return",e.setValue(i,s,o,n));case 7:case"end":return t.stop()}}),t)})));return function(e,r){return t.apply(this,arguments)}}()),this.message.setHandlerWithChannel("watchValue",function(){var e=(0,w.Z)(O().mark((function e(t,r,n){var a;return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:a=function(e){if(n.metadata.storagename){if(e.storageName!==n.metadata.storagename[0])return}else if(e.scriptId!==n.id)return;t.send(e)},c.hook.addListener("upsert",a),t.setDisChannelHandler((function(){c.hook.removeListener("upsert",a)}));case 3:case"end":return e.stop()}}),e)})));return function(t,r,n){return e.apply(this,arguments)}}()),xt.hook.addListener("delete",(function(){}))}},{key:"getScriptValues",value:(s=(0,w.Z)(O().mark((function e(t){var r=this;return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",W.getInstance().getOrSet(Ie.scriptValue(t.id,t.metadata.storagename),(function(){return r.getValues(t)})));case 1:case"end":return e.stop()}}),e)}))),function(e){return s.apply(this,arguments)})},{key:"getValues",value:(r=(0,w.Z)(O().mark((function e(t){var r,n,a,s;return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r={},t.metadata.storagename?(n=(0,Y.Z)(t.metadata.storagename,1),r.storageName=n[0]):r.scriptId=t.id,e.next=4,this.valueDAO.list(r);case 4:return a=e.sent,s={},a.forEach((function(e){s[e.key]=e})),e.abrupt("return",Promise.resolve(s));case 8:case"end":return e.stop()}}),e,this)}))),function(e){return r.apply(this,arguments)})},{key:"setValue",value:(t=(0,w.Z)(O().mark((function e(t,r,n,a){var s,o,i,u,l;return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!t.metadata.storagename){e.next=6;break}return e.next=3,this.valueDAO.findOne({storageName:t.metadata.storagename[0],key:r});case 3:s=e.sent,e.next=9;break;case 6:return e.next=8,this.valueDAO.findOne({scriptId:null==t?void 0:t.id,key:r});case 8:s=e.sent;case 9:if(s){e.next=13;break}s={id:0,scriptId:(null==t?void 0:t.id)||0,storageName:(null==t?void 0:t.metadata.storagename)&&(null==t?void 0:t.metadata.storagename[0])||"",key:r,value:n,createtime:(new Date).getTime(),updatetime:0},e.next=18;break;case 13:if(!(0,_t.isEqual)(s.value,n)){e.next=15;break}return e.abrupt("return",Promise.resolve(!0));case 15:o=s.value,s.value=n,s.updatetime=(new Date).getTime();case 18:if(i=0,u=W.getInstance().get(Ie.scriptValue(t.id,t.metadata.storagename)),null!=n){e.next=28;break}return s.value=void 0,e.next=24,this.valueDAO.delete(s.id);case 24:i=e.sent,u&&delete u[r],e.next=32;break;case 28:return e.next=30,this.valueDAO.save(s);case 30:i=e.sent,u&&(u[r]=s);case 32:if(!(i<=0)){e.next=34;break}return e.abrupt("return",Promise.reject(new Error("value no change")));case 34:return l={oldValue:o,sender:a,value:s},this.broadcast.broadcast({tag:"all"},"valueUpdate",l),c.hook.trigger("upsert",s),e.abrupt("return",Promise.resolve(!0));case 38:case"end":return e.stop()}}),e,this)}))),function(e,r,n,a){return t.apply(this,arguments)})}]),c}(Ae),(0,u.Z)(Pt,"hook",new d),Zt=Pt))||Zt;const Ct=It;var Rt=r(88301);function jt(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=(0,c.Z)(e);if(t){var a=(0,c.Z)(this).constructor;r=Reflect.construct(n,arguments,a)}else r=n.apply(this,arguments);return(0,i.Z)(this,r)}}var Dt,Et,Tt,At,Ut,Gt,Lt,Bt,Ht,qt,Nt,Vt,Ft,zt,Jt,Wt,Yt,Qt,Xt,$t,Kt,er,tr,rr,nr,ar,sr,or,ir,cr,ur,lr=function(){function e(){(0,n.Z)(this,e),(0,u.Z)(this,"cache",new Map),(0,u.Z)(this,"rule",new Map)}return(0,a.Z)(e,[{key:"parseURL",value:function(e){0===e.indexOf("*http")&&(e=e.substring(1));var t=/^(.+?):\/\/(.*?)((\/.*?)(\?.*?|)|)$/.exec(e);return t?{scheme:t[1],host:t[2],path:t[4]||("*"===e[e.length-1]?"*":"/"),search:t[5]}:"*"===e?{scheme:"*",host:"*",path:"*",search:"*"}:void 0}},{key:"compileRe",value:function(e){var t=this.parseURL(e);if(!t)return"";switch(t.scheme){case"*":t.scheme=".+?";break;case"http*":t.scheme="http[s]?"}var r=t.host.indexOf("*");if("*"===t.host||"**"===t.host)r=-1;else if(t.host.endsWith("*"))t.host=t.host.substring(0,t.host.length-1);else if(-1!==r&&0!==r)return"";if(t.host=t.host.replace(/\*/g,"[^/]*?"),t.host.startsWith("[^/]*?."))t.host="([^/]*?\\.?)".concat(t.host.substring(7));else if(-1!==r&&-1===t.host.indexOf("."))return"";t.host.endsWith("tld")&&(t.host="".concat(t.host.substr(0,t.host.length-3),".*?"));var n=t.host.indexOf(":");t.host="".concat(-1===n?t.host:t.host.substring(0,n),"(:\\d+)?");var a="^".concat(t.scheme,"://").concat(t.host);return"/"===t.path?a+="[/]?":a+=t.path.replace(/\*/g,".*?"),t.search&&(a+=t.search.replace(/([\\?])/g,"\\$1").replace(/\*/g,".*?")),"".concat(a.replace(/\//g,"/"),"$")}},{key:"add",value:function(e,t){var r=this.compileRe(e);if(!r)throw new Error("invalid url: ".concat(e));var n=this.rule.get(r);n||(n=[],this.rule.set(r,n)),n.push(t),this.delCache()}},{key:"match",value:function(e){var t=this.cache.get(e);if(t)return t;t=[];try{this.rule.forEach((function(r,n){var a;new RegExp(n).test(e)&&t&&(a=t).push.apply(a,(0,h.Z)(r))}))}catch(e){console.warn("bad match rule",b.E(e))}return this.cache.set(e,t),t}},{key:"del",value:function(t){var r=this,n=e.getId(t);this.rule.forEach((function(t,a){var s=[];t.forEach((function(t){e.getId(t)!==n&&s.push(t)})),s?r.rule.set(a,s):r.rule.delete(a)})),this.delCache()}},{key:"delCache",value:function(){this.cache.clear()}}],[{key:"getId",value:function(e){return"object"===(0,p.Z)(e)?e.id:e}}]),e}(),pr=function(e){(0,o.Z)(r,e);var t=jt(r);function r(){var e;(0,n.Z)(this,r);for(var a=arguments.length,o=new Array(a),i=0;i<a;i++)o[i]=arguments[i];return e=t.call.apply(t,[this].concat(o)),(0,u.Z)((0,s.Z)(e),"excludeMatch",new lr),e}return(0,a.Z)(r,[{key:"exclude",value:function(e,t){this.excludeMatch.add(e,t)}},{key:"del",value:function(e){(0,Rt.Z)((0,c.Z)(r.prototype),"del",this).call(this,e),this.excludeMatch.del(e),this.cache.clear()}},{key:"match",value:function(e){var t=this.cache.get(e);if(t)return t;var n=(0,Rt.Z)((0,c.Z)(r.prototype),"match",this).call(this,e),a=new Map;n.forEach((function(e){a.set(lr.getId(e),e)}));var s=this.excludeMatch.match(e),o=new Map;return s.forEach((function(e){o.set(lr.getId(e),1)})),n=[],a.forEach((function(e,t){o.has(t)||n.push(e)})),this.cache.set(e,n),n}}]),r}(lr),fr=function(e){(0,o.Z)(r,e);var t=jt(r);function r(){return(0,n.Z)(this,r),t.apply(this,arguments)}return(0,a.Z)(r,[{key:"parseURL",value:function(e){var t=(0,Rt.Z)((0,c.Z)(r.prototype),"parseURL",this).call(this,e);if(t)return t;if("http*"===e)return{scheme:"*",host:"*",path:"*",search:"*"};var n=/^(.*?)((\/.*?)(\?.*?|)|)$/.exec(e);return n?{scheme:"*",host:n[1],path:n[3]||("*"===e[e.length-1]?"*":"/"),search:n[4]}:void 0}},{key:"compileRe",value:function(e){var t=this.parseURL(e);if(!t)return"";switch(t.scheme){case"*":t.scheme=".+?";break;case"http*":t.scheme="http[s]?"}t.host=t.host.replace(/\*/g,"[^/]*?"),t.host.startsWith("[^/]*?.")&&(t.host="([^/]*?.?)".concat(t.host.substring(7))),t.host.endsWith("tld")&&(t.host="".concat(t.host.substring(0,t.host.length-3),".*?"));var r="^".concat(t.scheme,"://").concat(t.host);return"/"===t.path?r+="[/]?":r+=t.path.replace(/\*/g,".*?"),t.search&&(r+=t.search.replace(/([\\?])/g,"\\$1").replace(/\*/g,".*?")),"".concat(r.replace(/\//g,"/"),"$")}}]),r}(pr),dr="0.13.1",hr="https://ext.scriptcat.org/";function mr(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function vr(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?mr(Object(r),!0).forEach((function(t){(0,u.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):mr(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var gr=function(){function e(){(0,n.Z)(this,e)}return(0,a.Z)(e,null,[{key:"API",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return function(r,n,a){var s=n;t.listener&&t.listener(),e.apis.set(s,{api:a.value,param:t});var o=s.replace("_",".");o!==s&&("GM.xmlhttpRequest"===o&&(o="GM.xmlHttpRequest"),e.apis.set(o,{api:a.value,param:t}))}}}]),e}();(0,u.Z)(gr,"apis",new Map);Dt=gr.API(),Et=gr.API(),Tt=gr.API({depend:["GM_setValue"]}),At=gr.API(),Ut=gr.API(),Gt=gr.API(),Lt=gr.API(),Bt=gr.API(),Ht=gr.API(),qt=gr.API({depend:["CAT_fetchBlob","CAT_createBlobUrl","CAT_fetchDocument"]}),Nt=gr.API(),Vt=gr.API(),Ft=gr.API(),zt=gr.API(),Jt=gr.API({depend:["GM_closeInTab"]}),Wt=gr.API(),Yt=gr.API(),Qt=gr.API(),Xt=gr.API(),$t=gr.API(),Kt=gr.API(),er=gr.API(),tr=gr.API(),rr=gr.API(),nr=gr.API(),ar=gr.API(),sr=gr.API(),or=gr.API(),ir=gr.API(),cr=gr.API({depend:["CAT_fetchBlob","CAT_createBlobUrl"]}),ur=function(){function e(){(0,n.Z)(this,e),(0,u.Z)(this,"valueChangeListener",new Map)}var t,r,s,o;return(0,a.Z)(e,[{key:"sendMessage",value:function(e,t){return this.message.syncSend("gmApi",{api:e,scriptId:this.scriptRes.id,params:t,runFlag:this.runFlag})}},{key:"connect",value:function(e,t,r){var n=(0,Z.Z)(),a=this.message.channel(n);return a.setHandler(r),a.channel("gmApiChannel",{api:e,scriptId:this.scriptRes.id,params:t,runFlag:this.runFlag}),a}},{key:"valueUpdate",value:function(e){var t=this,r=this.scriptRes.metadata.storagename;(e.value.scriptId===this.scriptRes.id||r&&e.value.storageName&&r[0]===e.value.storageName)&&(void 0===e.value.value?delete this.scriptRes.value[e.value.key]:this.scriptRes.value[e.value.key]=e.value,this.valueChangeListener.forEach((function(r){r.name===e.value.key&&r.listener(e.value.key,e.oldValue,e.value.value,e.sender.runFlag!==t.runFlag,e.sender.tabId)})))}},{key:"GM_getValue",value:function(e,t){var r=this.scriptRes.value[e];return r?r.value:t}},{key:"GM_setValue",value:function(e,t){"object"===(0,p.Z)(t)&&(t=JSON.parse(JSON.stringify(t)));var r=this.scriptRes.value[e];return r?r.value=t:r={id:0,scriptId:this.scriptRes.id,storageName:this.scriptRes.metadata.storagename&&this.scriptRes.metadata.storagename[0]||"",key:e,value:t,createtime:(new Date).getTime(),updatetime:0},void 0===t?delete this.scriptRes.value[e]:this.scriptRes.value[e]=r,this.sendMessage("GM_setValue",[e,t])}},{key:"GM_deleteValue",value:function(e){this.GM_setValue(e,void 0)}},{key:"GM_listValues",value:function(){return Object.keys(this.scriptRes.value)}},{key:"GM_addValueChangeListener",value:function(e,t){var r=1e7*Math.random();return this.valueChangeListener.set(r,{name:e,listener:t}),r}},{key:"GM_removeValueChangeListener",value:function(e){this.valueChangeListener.delete(e)}},{key:"CAT_fetchBlob",value:function(e){return this.message.syncSend("CAT_fetchBlob",e)}},{key:"CAT_fetchDocument",value:function(e){var t=this;return new Promise((function(r){var n;t.message.sendCallback("CAT_fetchDocument",e,(function(e){n=t.message.getAndDelRelatedTarget(e.relatedTarget),r(n)}))}))}},{key:"CAT_createBlobUrl",value:function(e){return this.message.syncSend("CAT_createBlobUrl",e)}},{key:"GM_xmlhttpRequest",value:function(e){var t,r=this,n=new URL(e.url,window.location.href);e.headers&&Object.keys(e.headers).forEach((function(t){"cookie"===t.toLowerCase()&&(e.cookie=e.headers[t],delete e.headers[t])}));var a={method:e.method,timeout:e.timeout,url:n.href,headers:e.headers,cookie:e.cookie,context:e.context,responseType:e.responseType,overrideMimeType:e.overrideMimeType,anonymous:e.anonymous,user:e.user,password:e.password,maxRedirects:e.maxRedirects};a.headers||(a.headers={}),e.nocache&&(a.headers["Cache-Control"]="no-cache");var s=function(){var n=(0,w.Z)(O().mark((function n(){var s,o,i,c,u,l,p,f;return O().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(!e.data){n.next=20;break}if(!(e.data instanceof FormData)){n.next=12;break}return a.dataType="FormData",o=[],i={},e.data.forEach((function(e,t){i[t]=!0})),c=Object.keys(i).map((function(t){var r=e.data.getAll(t).map((function(e){return new Promise((function(r){e instanceof File?Ze(e).then((function(n){o.push({key:t,type:"file",val:n||"",filename:e.name}),r()})):(o.push({key:t,type:"text",val:e}),r())}))}));return Promise.all(r)})),n.next=9,Promise.all(c);case 9:a.data=o,n.next=20;break;case 12:if(!(e.data instanceof Blob)){n.next=19;break}return a.dataType="Blob",n.next=16,r.CAT_createBlobUrl(e.data);case 16:a.data=n.sent,n.next=20;break;case 19:a.data=e.data;case 20:p=null===(s=e.responseType)||void 0===s?void 0:s.toLocaleLowerCase(),f=function(e){return"stream"===p&&(u=new ReadableStream({start:function(e){l=e}})),function(){var t=(0,w.Z)(O().mark((function t(n){var a;return O().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!n.response){t.next=19;break}if("document"!==p){t.next=9;break}return t.next=4,r.CAT_fetchDocument(n.response);case 4:n.response=t.sent,n.responseXML=n.response,n.responseType="document",t.next=19;break;case 9:return t.next=11,r.CAT_fetchBlob(n.response);case 11:if(a=t.sent,"arraybuffer"!==p){t.next=18;break}return t.next=15,a.arrayBuffer();case 15:n.response=t.sent,t.next=19;break;case 18:n.response=a;case 19:"stream"===p&&(n.response=u),e(n);case 21:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}()},"arraybuffer"!==p&&"blob"!==p&&"document"!==p&&"stream"!==p||(e.onload&&(e.onload=f(e.onload)),e.onreadystatechange&&(e.onreadystatechange=f(e.onreadystatechange)),e.onloadend&&(e.onloadend=f(e.onloadend)),"document"===p&&(a.responseType="blob"),"stream"===p&&e.onloadstart&&(e.onloadstart=f(e.onloadstart))),(t=r.connect("GM_xmlhttpRequest",[a],(function(t){var r,n=t.data||{};switch(t.event){case"onload":e.onload&&e.onload(n);break;case"onloadend":var a;if(e.onloadend&&e.onloadend(n),u)null===(a=l)||void 0===a||a.close();break;case"onloadstart":e.onloadstart&&e.onloadstart(n);break;case"onprogress":e.onprogress&&e.onprogress(n);break;case"onreadystatechange":e.onreadystatechange&&e.onreadystatechange(n);break;case"ontimeout":e.ontimeout&&e.ontimeout();break;case"onerror":e.onerror&&e.onerror("");break;case"onabort":e.onabort&&e.onabort();break;case"onstream":null===(r=l)||void 0===r||r.enqueue(new Uint8Array(t.data));break;default:k.getLogger().warn("GM_xmlhttpRequest resp is error",{resp:t})}}))).setCatch((function(t){e.onerror&&e.onerror(t)}));case 25:case"end":return n.stop()}}),n)})));return function(){return n.apply(this,arguments)}}();return s(),{abort:function(){t&&t.disChannel()}}}},{key:"GM_notification",value:(o=(0,w.Z)(O().mark((function e(t,r,n,a){var s,o,i,c,u=arguments;return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(s={},"string"!=typeof t){e.next=12;break}s.text=t,e.t0=u.length,e.next=4===e.t0?6:3===e.t0?7:2===e.t0?8:9;break;case 6:s.onclick=a;case 7:s.image=n;case 8:s.title=r;case 9:return e.abrupt("break",10);case 10:e.next=14;break;case 12:(s=t).ondone=s.ondone||r;case 14:s.onclick&&(o=s.onclick,delete s.onclick),s.ondone&&(i=s.ondone,delete s.ondone),s.oncreate&&(c=s.oncreate,delete s.oncreate),this.connect("GM_notification",[s],(function(e){switch(e.event){case"click":o&&o.apply({id:e.id},[e.id,e.index]);break;case"done":i&&i.apply({id:e.id},[e.user]);break;case"create":c&&c.apply({id:e.id},[e.id]);break;default:k.getLogger().warn("GM_notification resp is error",{resp:e})}}));case 18:case"end":return e.stop()}}),e,this)}))),function(e,t,r,n){return o.apply(this,arguments)})},{key:"GM_closeNotification",value:function(e){this.sendMessage("GM_closeNotification",[e])}},{key:"GM_updateNotification",value:function(e,t){this.sendMessage("GM_updateNotification",[e,t])}},{key:"GM_log",value:function(e,t,r){return this.sendMessage("GM_log",[e,t,r])}},{key:"GM_openInTab",value:function(e,t){var r,n=this,a={};1===arguments.length?a.active=!0:"boolean"==typeof t?a.active=t:a=t;var s={close:function(){n.GM_closeInTab(r)}},o=this.connect("GM_openInTab",[e,a],(function(e){switch(e.event){case"oncreate":r=e.tabId;break;case"onclose":s.onclose&&s.onclose(),s.closed=!0,o.disChannel()}}));return s}},{key:"GM_closeInTab",value:function(e){return this.sendMessage("GM_closeInTab",[e])}},{key:"GM_getResourceText",value:function(e){if(this.scriptRes.resource){var t=this.scriptRes.resource[e];return t?t.content:void 0}}},{key:"GM_getResourceURL",value:function(e,t){if(this.scriptRes.resource){var r=this.scriptRes.resource[e];return r?t?URL.createObjectURL(Pe(r.base64)):r.base64:void 0}}},{key:"GM_addStyle",value:function(e){var t,r=this;return this.message.sendCallback("GM_addElement",{param:["style",{textContent:e}]},(function(e){t=r.message.getAndDelRelatedTarget(e.relatedTarget)})),t}},{key:"GM_getTab",value:(s=(0,w.Z)(O().mark((function e(t){var r;return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.sendMessage("GM_getTab",[]);case 2:r=e.sent,t(r);case 4:case"end":return e.stop()}}),e,this)}))),function(e){return s.apply(this,arguments)})},{key:"GM_saveTab",value:function(e){return"object"===(0,p.Z)(e)&&(e=JSON.parse(JSON.stringify(e))),this.sendMessage("GM_saveTab",[e])}},{key:"GM_getTabs",value:(r=(0,w.Z)(O().mark((function e(t){var r;return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.sendMessage("GM_getTabs",[]);case 2:r=e.sent,t(r);case 4:case"end":return e.stop()}}),e,this)}))),function(e){return r.apply(this,arguments)})},{key:"GM_download",value:function(e,t){var r;r="string"==typeof e?{name:t||"",url:e}:e;var n=this.connect("GM_download",[{method:r.method,url:r.url,name:r.name,headers:r.headers,saveAs:r.saveAs,timeout:r.timeout,cookie:r.cookie,anonymous:r.anonymous}],(function(e){var t=e.data||{};switch(e.event){case"onload":r.onload&&r.onload(t);break;case"onprogress":r.onprogress&&r.onprogress(t);break;case"ontimeout":r.ontimeout&&r.ontimeout();break;case"onerror":r.onerror&&r.onerror({error:"unknown"});break;default:k.getLogger().warn("GM_download resp is error",{resp:e})}}));return{abort:function(){n.disChannel()}}}},{key:"GM_setClipboard",value:function(e,t){return this.sendMessage("GM_setClipboard",[e,t])}},{key:"GM_cookie",value:function(e,t,r){this.sendMessage("GM_cookie",[e,t]).then((function(e){r&&r(e,void 0)})).catch((function(e){r&&r(void 0,e)}))}},{key:"GM_registerMenuCommand",value:function(e,t,r){this.menuMap||(this.menuMap=new Map);var n=0;if(this.menuMap.forEach((function(t,r){t===e&&(n=r)})),n)return n;this.menuId?this.menuId+=1:this.menuId=1;var a=this.menuId;return this.connect("GM_registerMenuCommand",[a,e,r],(function(){t()})),this.menuMap.set(a,e),a}},{key:"GM_unregisterMenuCommand",value:function(e){this.menuMap||(this.menuMap=new Map),this.menuMap.delete(e),this.sendMessage("GM_unregisterMenuCommand",[e])}},{key:"CAT_userConfig",value:function(){return this.sendMessage("CAT_userConfig",[])}},{key:"GM_addElement",value:function(e,t,r){var n,a=this;return this.message.sendCallback("GM_addElement",{param:["string"==typeof e?e:t,"string"==typeof e?t:r],relatedTarget:"string"==typeof e?null:e},(function(e){n=a.message.getAndDelRelatedTarget(e.relatedTarget)})),n}},{key:"CAT_fileStorage",value:(t=(0,w.Z)(O().mark((function e(t,r){var n,a,s,o=this;return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n={path:r.path||"",filename:r.filename,file:r.file},"upload"!==t){e.next=6;break}return e.next=4,this.CAT_createBlobUrl(r.data);case 4:a=e.sent,n.data=a;case 6:s=this.connect("CAT_fileStorage",[t,n],function(){var e=(0,w.Z)(O().mark((function e(n){var a;return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if("download"!==t){e.next=7;break}return e.next=3,o.CAT_fetchBlob(n.data);case 3:a=e.sent,r.onload&&r.onload(a),e.next=8;break;case 7:r.onload&&r.onload(n.data);case 8:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()),s.setCatch((function(e){void 0!==e.code?r.onerror&&r.onerror(e):r.onerror&&r.onerror({code:-1,message:e.message})}));case 8:case"end":return e.stop()}}),e,this)}))),function(e,r){return t.apply(this,arguments)})}],[{key:"GM_info",value:function(e){var t,r,n,a=(t=e.sourceCode,r=t.indexOf("==UserScript=="),n=t.indexOf("==/UserScript=="),-1===r||-1===n?null:"// ".concat(t.substring(r,n+14))),s={description:e.metadata.description&&e.metadata.description[0]||null,matches:e.metadata.match||[],includes:e.metadata.include||[],"run-at":e.metadata["run-at"]&&e.metadata["run-at"][0]||"document-idle",icon:e.metadata.icon&&e.metadata.icon[0]||null,icon64:e.metadata.icon64&&e.metadata.icon64[0]||null,header:a,grant:e.metadata.grant||[]};return{scriptWillUpdate:!0,scriptHandler:"ScriptCat",scriptUpdateURL:e.downloadUrl,scriptMetaStr:a,version:dr,script:vr({name:e.name,namespace:e.namespace,version:e.metadata.version&&e.metadata.version[0],author:e.author},s)}}}]),e}(),(0,Ne.Z)(ur.prototype,"GM_getValue",[Dt],Object.getOwnPropertyDescriptor(ur.prototype,"GM_getValue"),ur.prototype),(0,Ne.Z)(ur.prototype,"GM_setValue",[Et],Object.getOwnPropertyDescriptor(ur.prototype,"GM_setValue"),ur.prototype),(0,Ne.Z)(ur.prototype,"GM_deleteValue",[Tt],Object.getOwnPropertyDescriptor(ur.prototype,"GM_deleteValue"),ur.prototype),(0,Ne.Z)(ur.prototype,"GM_listValues",[At],Object.getOwnPropertyDescriptor(ur.prototype,"GM_listValues"),ur.prototype),(0,Ne.Z)(ur.prototype,"GM_addValueChangeListener",[Ut],Object.getOwnPropertyDescriptor(ur.prototype,"GM_addValueChangeListener"),ur.prototype),(0,Ne.Z)(ur.prototype,"GM_removeValueChangeListener",[Gt],Object.getOwnPropertyDescriptor(ur.prototype,"GM_removeValueChangeListener"),ur.prototype),(0,Ne.Z)(ur.prototype,"CAT_fetchBlob",[Lt],Object.getOwnPropertyDescriptor(ur.prototype,"CAT_fetchBlob"),ur.prototype),(0,Ne.Z)(ur.prototype,"CAT_fetchDocument",[Bt],Object.getOwnPropertyDescriptor(ur.prototype,"CAT_fetchDocument"),ur.prototype),(0,Ne.Z)(ur.prototype,"CAT_createBlobUrl",[Ht],Object.getOwnPropertyDescriptor(ur.prototype,"CAT_createBlobUrl"),ur.prototype),(0,Ne.Z)(ur.prototype,"GM_xmlhttpRequest",[qt],Object.getOwnPropertyDescriptor(ur.prototype,"GM_xmlhttpRequest"),ur.prototype),(0,Ne.Z)(ur.prototype,"GM_notification",[Nt],Object.getOwnPropertyDescriptor(ur.prototype,"GM_notification"),ur.prototype),(0,Ne.Z)(ur.prototype,"GM_closeNotification",[Vt],Object.getOwnPropertyDescriptor(ur.prototype,"GM_closeNotification"),ur.prototype),(0,Ne.Z)(ur.prototype,"GM_updateNotification",[Ft],Object.getOwnPropertyDescriptor(ur.prototype,"GM_updateNotification"),ur.prototype),(0,Ne.Z)(ur.prototype,"GM_log",[zt],Object.getOwnPropertyDescriptor(ur.prototype,"GM_log"),ur.prototype),(0,Ne.Z)(ur.prototype,"GM_openInTab",[Jt],Object.getOwnPropertyDescriptor(ur.prototype,"GM_openInTab"),ur.prototype),(0,Ne.Z)(ur.prototype,"GM_closeInTab",[Wt],Object.getOwnPropertyDescriptor(ur.prototype,"GM_closeInTab"),ur.prototype),(0,Ne.Z)(ur.prototype,"GM_getResourceText",[Yt],Object.getOwnPropertyDescriptor(ur.prototype,"GM_getResourceText"),ur.prototype),(0,Ne.Z)(ur.prototype,"GM_getResourceURL",[Qt],Object.getOwnPropertyDescriptor(ur.prototype,"GM_getResourceURL"),ur.prototype),(0,Ne.Z)(ur.prototype,"GM_addStyle",[Xt],Object.getOwnPropertyDescriptor(ur.prototype,"GM_addStyle"),ur.prototype),(0,Ne.Z)(ur.prototype,"GM_getTab",[$t],Object.getOwnPropertyDescriptor(ur.prototype,"GM_getTab"),ur.prototype),(0,Ne.Z)(ur.prototype,"GM_saveTab",[Kt],Object.getOwnPropertyDescriptor(ur.prototype,"GM_saveTab"),ur.prototype),(0,Ne.Z)(ur.prototype,"GM_getTabs",[er],Object.getOwnPropertyDescriptor(ur.prototype,"GM_getTabs"),ur.prototype),(0,Ne.Z)(ur.prototype,"GM_download",[tr],Object.getOwnPropertyDescriptor(ur.prototype,"GM_download"),ur.prototype),(0,Ne.Z)(ur.prototype,"GM_setClipboard",[rr],Object.getOwnPropertyDescriptor(ur.prototype,"GM_setClipboard"),ur.prototype),(0,Ne.Z)(ur.prototype,"GM_cookie",[nr],Object.getOwnPropertyDescriptor(ur.prototype,"GM_cookie"),ur.prototype),(0,Ne.Z)(ur.prototype,"GM_registerMenuCommand",[ar],Object.getOwnPropertyDescriptor(ur.prototype,"GM_registerMenuCommand"),ur.prototype),(0,Ne.Z)(ur.prototype,"GM_unregisterMenuCommand",[sr],Object.getOwnPropertyDescriptor(ur.prototype,"GM_unregisterMenuCommand"),ur.prototype),(0,Ne.Z)(ur.prototype,"CAT_userConfig",[or],Object.getOwnPropertyDescriptor(ur.prototype,"CAT_userConfig"),ur.prototype),(0,Ne.Z)(ur.prototype,"GM_addElement",[ir],Object.getOwnPropertyDescriptor(ur.prototype,"GM_addElement"),ur.prototype),(0,Ne.Z)(ur.prototype,"CAT_fileStorage",[cr],Object.getOwnPropertyDescriptor(ur.prototype,"CAT_fileStorage"),ur.prototype);function yr(e){var t=e.code,r="";return e.metadata.require&&e.metadata.require.forEach((function(t){var n=e.resource[t];n&&(r="".concat(r,"\n").concat(n.content))})),"with (context) return (()=>{\n".concat(t=r+t,"\n//# sourceURL=").concat(chrome.runtime.getURL("/".concat(encodeURI(e.name),".user.js")),"\n})()")}var br={addEventListener:r.g.addEventListener.bind(r.g),removeEventListener:r.g.removeEventListener.bind(r.g),dispatchEvent:r.g.dispatchEvent.bind(r.g)},kr=new Map,wr=Object.getOwnPropertyDescriptors(r.g);Object.keys(wr).forEach((function(e){var t=wr[e];t&&t.writable&&!br[e]?"function"==typeof t.value?t.value.prototype?br[e]=t.value:br[e]=t.value.bind(r.g):br[e]=t.value:kr.set(e,!0)}));var xr=J.Z.create({baseURL:"".concat(hr,"api/v1"),validateStatus:function(e){return e<500}});function Or(e){return xr.get("/auth/net-disk/token?netDiskType=".concat(e)).then((function(e){return e.data}))}function Zr(e,t){return xr.post("/auth/net-disk/token/refresh?netDiskType=".concat(e),{netDiskType:e,refreshToken:t}).then((function(e){return e.data}))}function Pr(e){return new Promise((function(t){var r=window.open("".concat(hr,"api/v1/auth/net-disk?netDiskType=").concat(e)),n=setInterval((function(){try{r.closed&&(clearInterval(n),t())}catch(e){clearInterval(n),t()}}),1e3)}))}function Mr(e,t){return _r.apply(this,arguments)}function _r(){return(_r=(0,w.Z)(O().mark((function e(t,r){var n,a,s;return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:try{n=JSON.parse(localStorage["netdisk:token:".concat(t)])}catch(e){}if(!r&&n&&n.accessToken){e.next=11;break}return e.next=4,Pr(t);case 4:return e.next=6,Or(t);case 6:if(0===(a=e.sent).code){e.next=9;break}return e.abrupt("return",Promise.reject(new Error(a.msg)));case 9:n={accessToken:a.data.token.access_token,refreshToken:a.data.token.refresh_token,createtime:Date.now()},localStorage["netdisk:token:".concat(t)]=JSON.stringify(n);case 11:if(!(Date.now()>=n.createtime+36e5)){e.next=28;break}return e.prev=12,e.next=15,Zr(t,n.refreshToken);case 15:if(0===(s=e.sent).code){e.next=19;break}return localStorage.removeItem("netdisk:token:".concat(t)),e.abrupt("return",Promise.reject(new Error(s.msg)));case 19:n={accessToken:s.data.token.access_token,refreshToken:s.data.token.refresh_token,createtime:Date.now()},localStorage["netdisk:token:".concat(t)]=JSON.stringify(n),e.next=26;break;case 23:return e.prev=23,e.t0=e.catch(12),e.abrupt("return",Promise.resolve(n.accessToken));case 26:e.next=29;break;case 28:case 29:return e.abrupt("return",Promise.resolve(n.accessToken));case 30:case"end":return e.stop()}}),e,null,[[12,23]])})))).apply(this,arguments)}function Sr(){for(var e="",t=arguments.length,r=new Array(t),n=0;n<t;n++)r[n]=arguments[n];return r.forEach((function(t){t&&(t.startsWith("/")||(t="/".concat(t)),t.endsWith("/")&&(t=t.substring(0,t.length-1)),e+=t)})),e}var Ir=function(){function e(t,r){(0,n.Z)(this,e),this.fs=t,this.file=r}var t;return(0,a.Z)(e,[{key:"read",value:(t=(0,w.Z)(O().mark((function e(t){var r;return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.fs.request("https://pan.baidu.com/rest/2.0/xpan/multimedia?method=filemetas&access_token=".concat(this.fs.accessToken,"&fsids=[").concat(this.file.fsid,"]&dlink=1"));case 2:if((r=e.sent).list.length){e.next=5;break}return e.abrupt("return",Promise.reject(new Error("file not found")));case 5:e.t0=t,e.next="string"===e.t0?8:9;break;case 8:return e.abrupt("return",fetch("".concat(r.list[0].dlink,"&access_token=").concat(this.fs.accessToken)).then((function(e){return e.text()})));case 9:return e.abrupt("return",fetch("".concat(r.list[0].dlink,"&access_token=").concat(this.fs.accessToken)).then((function(e){return e.blob()})));case 10:case"end":return e.stop()}}),e,this)}))),function(e){return t.apply(this,arguments)})}]),e}(),Cr=function(){function e(t,r){(0,n.Z)(this,e),this.fs=t,this.path=r}var t,r;return(0,a.Z)(e,[{key:"size",value:function(e){return e instanceof Blob?e.size:new Blob([e]).size}},{key:"md5",value:(r=(0,w.Z)(O().mark((function e(t){return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!(t instanceof Blob)){e.next=2;break}return e.abrupt("return",ve(t));case 2:return e.abrupt("return",(0,H.MD5)(t).toString());case 3:case"end":return e.stop()}}),e)}))),function(e){return r.apply(this,arguments)})},{key:"write",value:(t=(0,w.Z)(O().mark((function e(t){var r,n,a,s,o,i,c;return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=this.size(t).toString(),e.next=3,this.md5(t);case 3:return n=e.sent,a=[n],(s=new URLSearchParams).append("path",this.path),s.append("size",r),s.append("isdir","0"),s.append("autoinit","1"),s.append("rtype","3"),s.append("block_list",JSON.stringify(a)),(o=new Headers).append("Content-Type","application/x-www-form-urlencoded"),e.next=16,this.fs.request("http://pan.baidu.com/rest/2.0/xpan/file?method=precreate&access_token=".concat(this.fs.accessToken),{method:"POST",headers:o,body:s}).then((function(e){if(e.errno)throw new Error(JSON.stringify(e));return e.uploadid}));case 16:return i=e.sent,c=new FormData,t instanceof Blob?c.append("file",t):c.append("file",new Blob([t])),e.next=21,this.fs.request("".concat("https://d.pcs.baidu.com/rest/2.0/pcs/superfile2?method=upload&access_token=".concat(this.fs.accessToken)+"&type=tmpfile&path=").concat(encodeURIComponent(this.path),"&uploadid=").concat(i,"&partseq=0"),{method:"POST",body:c}).then((function(e){if(e.errno)throw new Error(JSON.stringify(e));return e}));case 21:return(s=new URLSearchParams).append("path",this.path),s.append("size",r),s.append("isdir","0"),s.append("block_list",JSON.stringify(a)),s.append("uploadid",i),s.append("rtype","3"),e.abrupt("return",this.fs.request("https://pan.baidu.com/rest/2.0/xpan/file?method=create&access_token=".concat(this.fs.accessToken),{method:"POST",headers:o,body:s}).then((function(e){if(e.errno)throw new Error(JSON.stringify(e));return Promise.resolve()})));case 29:case"end":return e.stop()}}),e,this)}))),function(e){return t.apply(this,arguments)})}]),e}(),Rr=function(){function e(t,r){(0,n.Z)(this,e),this.path=t||"/apps",this.accessToken=r,this.systemConfig=B.instance(pt)}var t;return(0,a.Z)(e,[{key:"verify",value:(t=(0,w.Z)(O().mark((function e(){var t;return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Mr("baidu");case 2:return t=e.sent,this.accessToken=t,e.abrupt("return",Promise.resolve());case 5:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})},{key:"open",value:function(e){return Promise.resolve(new Ir(this,e))}},{key:"openDir",value:function(t){return Promise.resolve(new e(Sr(this.path,t),this.accessToken))}},{key:"create",value:function(e){return Promise.resolve(new Cr(this,Sr(this.path,e)))}},{key:"createDir",value:function(e){e=Sr(this.path,e);var t=new URLSearchParams;t.append("path",e),t.append("size","0"),t.append("isdir","1"),t.append("rtype","3");var r=new Headers;return r.append("Content-Type","application/x-www-form-urlencoded"),this.request("https://pan.baidu.com/rest/2.0/xpan/file?method=create&access_token=".concat(this.accessToken),{method:"POST",headers:r,body:t,redirect:"follow"}).then((function(e){if(e.errno)throw new Error(JSON.stringify(e));return Promise.resolve()}))}},{key:"request",value:function(e,t){var r=this,n=(t=t||{}).headers||new Headers;return n.append("".concat(this.systemConfig.scriptCatFlag,"-gm-xhr"),"true"),n.append("".concat(this.systemConfig.scriptCatFlag,"-anonymous"),"true"),t.headers=n,fetch(e,t).then((function(e){return e.json()})).then(function(){var n=(0,w.Z)(O().mark((function n(a){return O().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(111!==a.errno){n.next=4;break}return n.next=3,r.verify();case 3:return n.abrupt("return",fetch(e,t).then((function(e){return e.json()})).then((function(e){if(111===e.errno)throw new Error(JSON.stringify(e));return e})));case 4:return n.abrupt("return",a);case 5:case"end":return n.stop()}}),n)})));return function(e){return n.apply(this,arguments)}}())}},{key:"delete",value:function(e){var t=[Sr(this.path,e)];return this.request("https://pan.baidu.com/rest/2.0/xpan/file?method=filemanager&access_token=".concat(this.accessToken,"&opera=delete"),{method:"POST",body:"async=0&filelist=".concat(encodeURIComponent(JSON.stringify(t)))}).then((function(e){if(e.errno)throw new Error(JSON.stringify(e));return e}))}},{key:"list",value:function(){var e=this;return this.request("https://pan.baidu.com/rest/2.0/xpan/file?method=list&dir=".concat(encodeURIComponent(this.path),"&order=time&access_token=").concat(this.accessToken)).then((function(t){if(t.errno){if(-9===t.errno)return[];throw new Error(JSON.stringify(t))}var r=[];return t.list.forEach((function(t){r.push({fsid:t.fs_id,name:t.server_filename,path:e.path,size:t.size,digest:t.md5,createtime:1e3*t.server_ctime,updatetime:1e3*t.server_mtime})})),r}))}},{key:"getDirUrl",value:function(){return Promise.resolve("https://pan.baidu.com/disk/main#/index?category=all&path=".concat(encodeURIComponent(this.path)))}}]),e}(),jr=function(){function e(t,r){(0,n.Z)(this,e),this.fs=t,this.file=r}var t;return(0,a.Z)(e,[{key:"read",value:(t=(0,w.Z)(O().mark((function e(t){var r;return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.fs.request("https://graph.microsoft.com/v1.0/me/drive/special/approot:".concat(Sr(this.file.path,this.file.name),":/content"),{},!0);case 2:if(200===(r=e.sent).status){e.next=9;break}return e.t0=Promise,e.next=7,r.text();case 7:return e.t1=e.sent,e.abrupt("return",e.t0.reject.call(e.t0,e.t1));case 9:e.t2=t,e.next="string"===e.t2?12:13;break;case 12:return e.abrupt("return",r.text());case 13:return e.abrupt("return",r.blob());case 14:case"end":return e.stop()}}),e,this)}))),function(e){return t.apply(this,arguments)})}]),e}(),Dr=function(){function e(t,r){(0,n.Z)(this,e),this.fs=t,this.path=r}var t,r;return(0,a.Z)(e,[{key:"size",value:function(e){return e instanceof Blob?e.size:new Blob([e]).size}},{key:"md5",value:(r=(0,w.Z)(O().mark((function e(t){return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!(t instanceof Blob)){e.next=2;break}return e.abrupt("return",ve(t));case 2:return e.abrupt("return",(0,H.MD5)(t).toString());case 3:case"end":return e.stop()}}),e)}))),function(e){return r.apply(this,arguments)})},{key:"write",value:(t=(0,w.Z)(O().mark((function e(t){var r,n,a;return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=this.size(t).toString(),(n=new Headers).append("Content-Type","application/json"),e.next=5,this.fs.request("https://graph.microsoft.com/v1.0/me/drive/special/approot:".concat(this.path,":/createUploadSession"),{method:"POST",headers:n,body:JSON.stringify({item:{"@microsoft.graph.conflictBehavior":"replace",description:"description",fileSystemInfo:{"@odata.type":"microsoft.graph.fileSystemInfo"},name:this.path.substring(this.path.lastIndexOf("/")+1)}})}).then((function(e){if(e.error)throw new Error(JSON.stringify(e));return e.uploadUrl}));case 5:return a=e.sent,(n=new Headers).append("Content-Range","bytes 0-".concat(parseInt(r,10)-1,"/").concat(r)),e.abrupt("return",this.fs.request(a,{method:"PUT",body:t,headers:n}));case 9:case"end":return e.stop()}}),e,this)}))),function(e){return t.apply(this,arguments)})}]),e}(),Er=function(){function e(t,r){(0,n.Z)(this,e),this.path=t||"/",this.accessToken=r,this.systemConfig=B.instance(pt)}var t;return(0,a.Z)(e,[{key:"verify",value:(t=(0,w.Z)(O().mark((function e(){var t;return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Mr("onedrive");case 2:return t=e.sent,this.accessToken=t,e.abrupt("return",Promise.resolve());case 5:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})},{key:"open",value:function(e){return Promise.resolve(new jr(this,e))}},{key:"openDir",value:function(t){return t.startsWith("ScriptCat")&&(t=t.substring(9)),Promise.resolve(new e(Sr(this.path,t),this.accessToken))}},{key:"create",value:function(e){return Promise.resolve(new Dr(this,Sr(this.path,e)))}},{key:"createDir",value:function(e){if(e&&e.startsWith("ScriptCat")&&(e=e.substring(9)).startsWith("/")&&(e=e.substring(1)),!e)return Promise.resolve();var t=(e=Sr(this.path,e)).split("/"),r="";t.length>2&&(r=t.slice(0,t.length-1).join("/"));var n=new Headers;return n.append("Content-Type","application/json"),this.request("https://graph.microsoft.com/v1.0/me/drive/special/approot:".concat(r,":/children"),{method:"POST",headers:n,body:JSON.stringify({name:t[t.length-1],folder:{},"@microsoft.graph.conflictBehavior":"replace"})}).then((function(e){if(e.errno)throw new Error(JSON.stringify(e));return Promise.resolve()}))}},{key:"request",value:function(e,t,r){var n=(t=t||{}).headers||new Headers;n.append("Authorization","Bearer ".concat(this.accessToken)),t.headers=n;var a=fetch(e,t);return r?a:a.then((function(e){return e.json()})).then(function(){var e=(0,w.Z)(O().mark((function e(t){return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!t.error){e.next=2;break}throw new Error(JSON.stringify(t));case 2:return e.abrupt("return",t);case 3:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}())}},{key:"delete",value:function(e){return this.request("https://graph.microsoft.com/v1.0/me/drive/special/approot:".concat(Sr(this.path,e)),{method:"DELETE"},!0).then(function(){var e=(0,w.Z)(O().mark((function e(t){return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(204===t.status){e.next=6;break}return e.t0=Error,e.next=4,t.text();case 4:throw e.t1=e.sent,new e.t0(e.t1);case 6:return e.abrupt("return",t);case 7:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}())}},{key:"list",value:function(){var e=this,t=this.path;return"/"===t&&(t=""),this.request("https://graph.microsoft.com/v1.0/me/drive/special/approot:".concat(t,":/children")).then((function(t){var r=[];return t.value.forEach((function(t){r.push({name:t.name,path:e.path,size:t.size,digest:t.eTag,createtime:new Date(t.createdDateTime).getTime(),updatetime:new Date(t.lastModifiedDateTime).getTime()})})),r}))}},{key:"getDirUrl",value:function(){throw new Error("Method not implemented.")}}]),e}(),Tr=r(79478),Ar=function(){function e(t,r){(0,n.Z)(this,e),this.client=t,this.path=r}var t;return(0,a.Z)(e,[{key:"read",value:(t=(0,w.Z)(O().mark((function e(t){var r;return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:e.t0=t,e.next="string"===e.t0?3:4;break;case 3:return e.abrupt("return",this.client.getFileContents(this.path,{format:"text"}));case 4:return e.next=6,this.client.getFileContents(this.path,{format:"binary"});case 6:return r=e.sent,e.abrupt("return",Promise.resolve(new Blob([r])));case 8:case"end":return e.stop()}}),e,this)}))),function(e){return t.apply(this,arguments)})}]),e}(),Ur=function(){function e(t,r){(0,n.Z)(this,e),this.client=t,this.path=r}var t;return(0,a.Z)(e,[{key:"write",value:(t=(0,w.Z)(O().mark((function e(t){var r;return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!(t instanceof Blob)){e.next=11;break}return e.t0=this.client,e.t1=this.path,e.next=5,t.arrayBuffer();case 5:return e.t2=e.sent,e.next=8,e.t0.putFileContents.call(e.t0,e.t1,e.t2);case 8:r=e.sent,e.next=14;break;case 11:return e.next=13,this.client.putFileContents(this.path,t);case 13:r=e.sent;case 14:if(!r){e.next=16;break}return e.abrupt("return",Promise.resolve());case 16:return e.abrupt("return",Promise.reject(new Error("write error")));case 17:case"end":return e.stop()}}),e,this)}))),function(e){return t.apply(this,arguments)})}]),e}(),Gr=function(){function e(t,r,a,s){(0,n.Z)(this,e),(0,u.Z)(this,"basePath","/"),"object"===(0,p.Z)(t)?(this.client=t,this.basePath=Sr(r||""),this.url=a):(this.url=r,this.client=(0,Tr.createClient)(r,{authType:t,username:a,password:s}))}var t,r,s;return(0,a.Z)(e,[{key:"verify",value:(s=(0,w.Z)(O().mark((function e(){return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.client.getQuota();case 2:return e.abrupt("return",Promise.resolve());case 3:case"end":return e.stop()}}),e,this)}))),function(){return s.apply(this,arguments)})},{key:"open",value:function(e){return Promise.resolve(new Ar(this.client,Sr(e.path,e.name)))}},{key:"openDir",value:function(t){return Promise.resolve(new e(this.client,Sr(this.basePath,t),this.url))}},{key:"create",value:function(e){return Promise.resolve(new Ur(this.client,Sr(this.basePath,e)))}},{key:"createDir",value:function(e){return this.client.createDirectory(Sr(this.basePath,e))}},{key:"delete",value:(r=(0,w.Z)(O().mark((function e(t){return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.client.deleteFile(Sr(this.basePath,t)));case 1:case"end":return e.stop()}}),e,this)}))),function(e){return r.apply(this,arguments)})},{key:"list",value:(t=(0,w.Z)(O().mark((function e(){var t,r,n=this;return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.client.getDirectoryContents(this.basePath);case 2:return t=e.sent,r=[],t.forEach((function(e){"file"===e.type&&r.push({name:e.basename,path:n.basePath,digest:e.etag||"",size:e.size,createtime:new Date(e.lastmod).getTime(),updatetime:new Date(e.lastmod).getTime()})})),e.abrupt("return",Promise.resolve(r));case 6:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})},{key:"getDirUrl",value:function(){return Promise.resolve(this.url+this.basePath)}}]),e}(),Lr=r(55733),Br=r.n(Lr),Hr=function(){function e(t){(0,n.Z)(this,e),this.zipObject=t}return(0,a.Z)(e,[{key:"read",value:function(e){return this.zipObject.async(e||"string")}}]),e}(),qr=function(){function e(t,r){(0,n.Z)(this,e),this.zip=t,this.path=r}return(0,a.Z)(e,[{key:"write",value:function(e){return this.zip.file(this.path,e),Promise.resolve()}}]),e}(),Nr=function(){function e(t,r){(0,n.Z)(this,e),this.zip=t||new(Br()),this.basePath=r||""}return(0,a.Z)(e,[{key:"verify",value:function(){return Promise.resolve()}},{key:"open",value:function(e){var t=e.name,r=this.zip.file(t);return r?Promise.resolve(new Hr(r)):Promise.reject(new Error("File not found"))}},{key:"openDir",value:function(t){return Promise.resolve(new e(this.zip,t))}},{key:"create",value:function(e){return Promise.resolve(new qr(this.zip,e))}},{key:"createDir",value:function(){return Promise.resolve()}},{key:"delete",value:function(e){return this.zip.remove(e),Promise.resolve()}},{key:"list",value:function(){var e=this,t=[];return Object.keys(this.zip.files).forEach((function(r){t.push({name:r,path:r,size:0,digest:"",createtime:e.zip.files[r].date.getTime(),updatetime:e.zip.files[r].date.getTime()})})),Promise.resolve(t)}},{key:"getDirUrl",value:function(){throw new Error("Method not implemented.")}}]),e}(),Vr=function(){function e(){(0,n.Z)(this,e)}var t;return(0,a.Z)(e,null,[{key:"create",value:function(e,t){var r;switch(e){case"zip":r=new Nr(t);break;case"webdav":r=new Gr(t.authType,t.url,t.username,t.password);break;case"baidu-netdsik":r=new Rr;break;case"onedrive":r=new Er;break;default:throw new Error("not found filesystem")}return r.verify().then((function(){return r}))}},{key:"params",value:function(){return{webdav:{authType:{title:"鉴权类型",type:"select",options:["password","digest","none","token"]},url:{title:"URL"},username:{title:"用户名"},password:{title:"密码"}},"baidu-netdsik":{},onedrive:{}}}},{key:"mkdirAll",value:(t=(0,w.Z)(O().mark((function e(t,r){return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",new Promise((function(e,n){var a=r.split("/"),s=0;!function r(){if(s>=a.length)e();else{var o=a.slice(0,s+1).join("/");t.createDir(o).then((function(){s+=1,r()})).catch((function(){n()}))}}()})));case 1:case"end":return e.stop()}}),e)}))),function(e,r){return t.apply(this,arguments)})}]),e}();function Fr(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=(0,c.Z)(e);if(t){var a=(0,c.Z)(this).constructor;r=Reflect.construct(n,arguments,a)}else r=n.apply(this,arguments);return(0,i.Z)(this,r)}}var zr=function(e){(0,o.Z)(r,e);var t=Fr(r);function r(){var e;return(0,n.Z)(this,r),e=t.call(this),(0,u.Z)((0,s.Z)(e),"tableName","permission"),e.table=E.table(e.tableName),e}return(0,a.Z)(r)}(A),Jr=function(){function e(){(0,n.Z)(this,e),(0,u.Z)(this,"list",[])}return(0,a.Z)(e,[{key:"push",value:function(e){this.resolve?(this.resolve(e),this.resolve=void 0):this.list.push(e)}},{key:"pop",value:function(){var e=this;return new Promise((function(t){e.list.length>0?t(e.list.shift()):e.resolve=t}))}}]),e}(),Wr=function(){function e(){var t=this;(0,n.Z)(this,e),(0,u.Z)(this,"confirmQueue",new Jr),(0,u.Z)(this,"confirmMap",new Map),this.permissionDAO=new zr;var r=B.instance(S);r.setHandler("permissionConfirm",(function(e,r){var n=t.confirmMap.get(r.uuid);return n?(t.confirmMap.delete(r.uuid),n.resolve(r.userConfirm),Promise.resolve(!0)):0===r.userConfirm.type?Promise.resolve(void 0):Promise.reject(new Error("confirm not found"))})),r.setHandler("getConfirm",(function(e,r){var n=t.confirmMap.get(r);if(!n)return Promise.reject(new Error("uuid not found"));var a=0;return n.confirm.wildcard&&t.confirmQueue.list.forEach((function(e){var t=e.confirm;t.wildcard&&e.request.scriptId===n.script.id&&t.permission===n.confirm.permission&&(a+=1)})),Promise.resolve({script:n.script,confirm:n.confirm,likeNum:a})})),r.setHandler("deletePermission",function(){var e=(0,w.Z)(O().mark((function e(r,n){var a,s;return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a=Ie.permissionConfirm(n.scriptId,n.confirm),e.next=3,W.getInstance().del(a);case 3:return e.next=5,t.permissionDAO.findOne({scriptId:n.scriptId,permission:n.confirm.permission,permissionValue:n.confirm.permissionValue||""});case 5:if(s=e.sent){e.next=8;break}return e.abrupt("return",Promise.resolve(!0));case 8:return e.next=10,t.permissionDAO.delete(s.id);case 10:return e.abrupt("return",Promise.resolve(!0));case 11:case"end":return e.stop()}}),e)})));return function(t,r){return e.apply(this,arguments)}}()),this.dealConfirmQueue()}var t,r,s,o;return(0,a.Z)(e,[{key:"verify",value:function(e,t){if(t.param.default)return Promise.resolve(!0);var r=e.script.metadata.grant;if(!r)return Promise.reject(new Error("grant is undefined"));for(var n=0;n<r.length;n+=1)if(r[n]===e.api||r[n]===t.param.link)return t.param.confirm?this.pushConfirmQueue(e,t):Promise.resolve(!0);return Promise.reject(new Error("permission not requested"))}},{key:"dealConfirmQueue",value:(o=(0,w.Z)(O().mark((function e(){var t,r;return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.confirmQueue.pop();case 2:if(t=e.sent){e.next=6;break}return this.dealConfirmQueue(),e.abrupt("return");case 6:return e.prev=6,e.next=9,this.confirm(t.request,t.confirm);case 9:r=e.sent,t.resolve(r),e.next=16;break;case 13:e.prev=13,e.t0=e.catch(6),t.reject(e.t0);case 16:this.dealConfirmQueue();case 17:case"end":return e.stop()}}),e,this,[[6,13]])}))),function(){return o.apply(this,arguments)})},{key:"pushConfirmQueue",value:(s=(0,w.Z)(O().mark((function e(t,r){var n,a=this;return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,r.param.confirm(t);case 2:if(!0!==(n=e.sent)){e.next=5;break}return e.abrupt("return",Promise.resolve(!0));case 5:return e.abrupt("return",new Promise((function(e,r){a.confirmQueue.push({request:t,confirm:n,resolve:e,reject:r})})));case 6:case"end":return e.stop()}}),e)}))),function(e,t){return s.apply(this,arguments)})},{key:"confirm",value:(r=(0,w.Z)(O().mark((function e(t,r){var n,a,s,o,i,c=this;return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if("boolean"!=typeof r){e.next=2;break}return e.abrupt("return",r);case 2:return n=Ie.permissionConfirm(t.script.id,r),e.next=5,W.getInstance().getOrSet(n,(0,w.Z)(O().mark((function e(){var n;return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,c.permissionDAO.findOne({scriptId:t.scriptId,permission:r.permission,permissionValue:r.permissionValue||""});case 2:if(n=e.sent){e.next=8;break}if(!r.wildcard){e.next=8;break}return e.next=7,c.permissionDAO.findOne({scriptId:t.scriptId,permission:r.permission,permissionValue:"*"});case 7:n=e.sent;case 8:return e.abrupt("return",Promise.resolve(n));case 9:case"end":return e.stop()}}),e)}))));case 5:if(!(a=e.sent)){e.next=10;break}if(!a.allow){e.next=9;break}return e.abrupt("return",Promise.resolve(!0));case 9:return e.abrupt("return",Promise.reject(new Error("permission denied")));case 10:return e.next=12,this.confirmWindow(t.script,r);case 12:s=e.sent,o={id:0,scriptId:t.scriptId,permission:r.permission,permissionValue:"",allow:s.allow,createtime:(new Date).getTime(),updatetime:0},e.t0=s.type,e.next=4===e.t0||2===e.t0?17:5===e.t0||3===e.t0?19:21;break;case 17:return o.permissionValue="*",e.abrupt("break",22);case 19:return o.permissionValue=r.permissionValue||"",e.abrupt("break",22);case 21:return e.abrupt("break",22);case 22:if(s.type>=2&&W.getInstance().set(n,o),!(s.type>=4)){e.next=34;break}return e.next=26,this.permissionDAO.findOne({scriptId:t.scriptId,permission:o.permission,permissionValue:o.permissionValue});case 26:if(i=e.sent){e.next=32;break}return e.next=30,this.permissionDAO.save(o);case 30:e.next=34;break;case 32:return e.next=34,this.permissionDAO.update(i.id,o);case 34:if(!s.allow){e.next=36;break}return e.abrupt("return",Promise.resolve(!0));case 36:return e.abrupt("return",Promise.reject(new Error("permission not allowed")));case 37:case"end":return e.stop()}}),e,this)}))),function(e,t){return r.apply(this,arguments)})},{key:"confirmWindow",value:(t=(0,w.Z)(O().mark((function e(t,r){var n=this;return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",new Promise((function(e,a){var s=(0,Z.Z)(),o=setTimeout((function(){n.confirmMap.delete(s),a(new Error("permission confirm timeout"))}),4e4);n.confirmMap.set(s,{confirm:r,script:t,resolve:function(t){clearTimeout(o),e(t)},reject:a}),chrome.tabs.create({url:chrome.runtime.getURL("src/confirm.html?uuid=".concat(s))})})));case 1:case"end":return e.stop()}}),e)}))),function(e,r){return t.apply(this,arguments)})}],[{key:"API",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return function(r,n,a){var s=n;t.listener&&t.listener(),e.apis.set(s,{api:a.value,param:t}),t.alias&&t.alias.forEach((function(r){e.apis.set(r,{api:a.value,param:t})}));var o=s.replace("_",".");o!==s&&e.apis.set(o,{api:a.value,param:t})}}}]),e}();function Yr(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}(0,u.Z)(Wr,"apis",new Map),(0,u.Z)(Wr,"textarea",document.createElement("textarea"));var Qr,Xr,$r,Kr,en,tn,rn,nn,an,sn,on,cn,un,ln,pn,fn,dn,hn,mn,vn,gn={"user-agent":!0,"proxy-":!0,"sec-":!0,cookie:!0,"accept-charset":!0,"accept-encoding":!0,"access-control-request-headers":!0,"access-control-request-method":!0,connection:!0,"content-length":!0,date:!0,dnt:!0,expect:!0,"feature-policy":!0,host:!0,"keep-alive":!0,origin:!0,referer:!0,te:!0,trailer:!0,"transfer-encoding":!0,upgrade:!0,via:!0},yn={"set-cookie":!0};function bn(e){return!!(e.initiator&&chrome.runtime.getURL("").startsWith(e.initiator)||e.originUrl&&e.originUrl.startsWith(chrome.runtime.getURL("")))}function kn(e){var t=["blocking","requestHeaders"],r=["blocking","responseHeaders"];pe()||(t.push("extraHeaders"),r.push("extraHeaders"));var n=new Map;chrome.webRequest.onBeforeSendHeaders.addListener((function(t){var r;if(!bn(t))return{};var a="",s="",o=!1,i=!1,c=[],u={};return null===(r=t.requestHeaders)||void 0===r||r.forEach((function(r){var l=r.name.toLowerCase();if(l.startsWith("".concat(e,"-"))){var p=l.substring(e.length+1);switch(p){case"cookie":s=r.value||"";break;case"max-redirects":n.set(t.requestId,[0,parseInt(r.value||"",10)]);break;case"anonymous":o=!0;break;case"gm-xhr":i=!0;break;default:u[p]=r.value||null}}else if("cookie"===l)a=r.value||"";else gn[l]||l.startsWith("sec-")||l.startsWith("proxy-")?null!==u[l]&&(u[l]=u[l]||r.value||""):c.push(r)})),i?(o&&(a=""),s&&(!a||a.endsWith(";")?a+=s:a+=";".concat(s)),a&&c.push({name:"Cookie",value:a}),Object.keys(u).forEach((function(e){null!==u[e]&&c.push({name:e,value:u[e]})})),{requestHeaders:c}):{}}),{urls:["<all_urls>"]},t),chrome.webRequest.onHeadersReceived.addListener((function(t){var r,a;if(!bn(t)){if("main_frame"!==t.type&&"sub_frame"!==t.type||!pe())return{};if(B.instance(Tn).matchUrl(t.url,(function(e){return"sub_frame"===t.type&&!!e.metadata.noframes||e.status!==$})).length>0&&t.responseHeaders){for(var s=0;s<t.responseHeaders.length;s+=1)"content-security-policy"===t.responseHeaders[s].name.toLowerCase()&&(t.responseHeaders[s].value="");return{responseHeaders:t.responseHeaders}}return{}}var o=[];return null===(r=t.responseHeaders)||void 0===r||r.forEach((function(r){var a=r.name.toLowerCase();if(yn[a]){var s=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Yr(Object(r),!0).forEach((function(t){(0,u.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Yr(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}({},r);s.name="".concat(e,"-").concat(r.name),o.push(s)}if("location"===a){var i=n.get(t.requestId);i&&(i[0]+=1,i[0]>i[1]&&(r.name="".concat(e,"-").concat(r.name)))}})),null===(a=t.responseHeaders)||void 0===a||a.push.apply(a,o),{responseHeaders:t.responseHeaders}}),{urls:["<all_urls>"]},r),chrome.webRequest.onCompleted.addListener((function(e){bn(e)&&n.delete(e.requestId)}),{urls:["<all_urls>"]})}function wn(e,t,r){r.setRequestHeader("".concat(e,"-gm-xhr"),"true"),t.headers&&Object.keys(t.headers).forEach((function(n){var a=n.toLowerCase();if(gn[a]||a.startsWith("sec-")||a.startsWith("proxy-"))try{r.setRequestHeader("".concat(e,"-").concat(a),t.headers[n])}catch(e){k.getLogger(b.E(e)).error("GM XHR setRequestHeader error")}else r.setRequestHeader(n,t.headers[n])})),void 0!==t.maxRedirects&&r.setRequestHeader("".concat(e,"-max-redirects"),t.maxRedirects.toString()),t.cookie&&r.setRequestHeader("".concat(e,"-cookie"),t.cookie),t.anonymous&&r.setRequestHeader("".concat(e,"-anonymous"),"true")}function xn(e,t){var r={};return r["".concat(e,"-gm-xhr")]="true",t.headers&&Object.keys(t.headers).forEach((function(n){var a=n.toLowerCase();gn[a]||a.startsWith("sec-")||a.startsWith("proxy-")?r["".concat(e,"-").concat(a)]=t.headers[n]:r[n]=t.headers[n]})),void 0!==t.maxRedirects&&(r["".concat(e,"-max-redirects")]=t.maxRedirects.toString()),t.cookie&&(r["".concat(e,"-cookie")]=t.cookie),t.anonymous&&(r["".concat(e,"-anonymous")]="true"),r}function On(e,t,r){return Zn.apply(this,arguments)}function Zn(){return Zn=(0,w.Z)(O().mark((function e(t,r,n){var a,s,o,i,c,u;return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(a=new RegExp("".concat(t,"-"),"g"),s={finalUrl:n.responseURL||r.url,readyState:n.readyState,status:n.status,statusText:n.statusText,responseHeaders:n.getAllResponseHeaders().replace(a,""),responseType:r.responseType},4!==n.readyState){e.next=19;break}if("arraybuffer"!==(null===(o=r.responseType)||void 0===o?void 0:o.toLowerCase())&&"blob"!==(null===(i=r.responseType)||void 0===i?void 0:i.toLowerCase())){e.next=18;break}if(n.response instanceof ArrayBuffer?(c=new Blob([n.response]),s.response=URL.createObjectURL(c)):(c=n.response,s.response=URL.createObjectURL(c)),e.prev=5,-1===(null===(u=n.getResponseHeader("Content-Type"))||void 0===u?void 0:u.indexOf("text"))){e.next=10;break}return e.next=9,c.text();case 9:s.responseText=e.sent;case 10:e.next=15;break;case 12:e.prev=12,e.t0=e.catch(5),k.getLogger(b.E(e.t0)).error("GM XHR getResponseHeader error");case 15:setTimeout((function(){URL.revokeObjectURL(s.response)}),6e4),e.next=19;break;case 18:if("json"===r.responseType){try{s.response=JSON.parse(n.responseText)}catch(e){k.getLogger(b.E(e)).error("GM XHR JSON parse error")}try{s.responseText=n.responseText}catch(e){k.getLogger(b.E(e)).error("GM XHR getResponseText error")}}else{try{s.response=n.response}catch(e){k.getLogger(b.E(e)).error("GM XHR response error")}try{s.responseText=n.responseText}catch(e){k.getLogger(b.E(e)).error("GM XHR getResponseText error")}}case 19:return e.abrupt("return",Promise.resolve(s));case 20:case"end":return e.stop()}}),e,null,[[5,12]])}))),Zn.apply(this,arguments)}function Pn(e,t,r,n){var a=new RegExp("".concat(e,"-"),"g"),s="";return r.headers&&r.headers.forEach((function(e,t){s+="".concat(t.replace(a,""),": ").concat(e,"\n")})),{finalUrl:r.url||t.url,readyState:n,status:r.status,statusText:r.statusText,responseHeaders:s,responseType:t.responseType}}function Mn(e){e.forEach((function(e,t){chrome.contextMenus.create({id:"scriptMenu_".concat(t),title:e[0].request.script.name,contexts:["all"],parentId:"scriptMenu"}),e.forEach((function(e){chrome.contextMenus.create({id:"scriptMenu_menu_".concat(t,"_").concat(e.request.params[0]),title:e.request.params[1],contexts:["all"],parentId:"scriptMenu_".concat(t),onclick:function(){B.instance(C).sendNative({tag:e.request.sender.targetTag,id:[e.request.sender.frameId||e.request.sender.tabId||0]},{stream:e.channel.flag,channel:!0,data:"click"})}})}))}))}function _n(e,t){chrome.contextMenus.removeAll();var r=t.get(e),n=t.get("sandbox");(r||n)&&(chrome.contextMenus.create({id:"scriptMenu",title:"ScriptCat",contexts:["all"]}),r&&Mn(r),"sandbox"!==e&&n&&Mn(n))}var Sn,In,Cn=(Qr=Wr.API(),Xr=Wr.API({confirm:function(e){var t=e.params[0],r=new URL(t.url);if(e.script.metadata.connect)for(var n=e.script.metadata.connect,a=0;a<n.length;a+=1)if(r.hostname.endsWith(n[a]))return Promise.resolve(!0);return Promise.resolve({permission:"cors",permissionValue:r.hostname,title:"脚本正在试图访问跨域资源",metadata:{脚本名称:e.script.name,请求域名:r.hostname,请求地址:t.url},describe:"请您确认是否允许脚本进行此操作,脚本也可增加@connect标签跳过此选项",wildcard:!0,permissionContent:"域名"})},alias:["GM.xmlHttpRequest"]}),$r=Wr.API({listener:function(){chrome.notifications.onClosed.addListener((function(e,t){var r=W.getInstance().get("GM_notification:".concat(e));if(r){var n=r;n.send({event:"done",id:e,user:t}),n.disChannel(),W.getInstance().del("GM_notification:".concat(e))}})),chrome.notifications.onClicked.addListener((function(e){var t=W.getInstance().get("GM_notification:".concat(e));if(t){var r=t;r.send({event:"click",id:e,index:void 0}),r.send({event:"done",id:e,user:!0}),r.disChannel(),W.getInstance().del("GM_notification:".concat(e))}})),chrome.notifications.onButtonClicked.addListener((function(e,t){var r=W.getInstance().get("GM_notification:".concat(e));if(r){var n=r;n.send({event:"click",id:e,index:t}),n.send({event:"done",id:e,user:!0}),n.disChannel(),W.getInstance().del("GM_notification:".concat(e))}}))}}),Kr=Wr.API(),en=Wr.API(),tn=Wr.API(),rn=Wr.API({listener:function(){chrome.tabs.onRemoved.addListener((function(e){var t=W.getInstance().get("GM_openInTab:".concat(e));t&&(t.send({event:"onclose"}),t.disChannel(),W.getInstance().del("GM_openInTab:".concat(e)))}))}}),nn=Wr.API({link:"GM_openInTab"}),an=Wr.API({listener:function(){chrome.tabs.onRemoved.addListener((function(e){Cn.tabData.forEach((function(t){t.forEach((function(r,n){n===e&&t.delete(n)}))}))}))}}),sn=Wr.API(),on=Wr.API(),cn=Wr.API(),un=Wr.API({listener:function(){Wr.textarea.style.display="none",document.documentElement.appendChild(Wr.textarea),document.addEventListener("copy",(function(e){if(Cn.clipboardData&&e.clipboardData){e.preventDefault();var t=Cn.clipboardData,r=t.type,n=t.data;e.clipboardData.setData(r||"text/plain",n),Cn.clipboardData=void 0}}))}}),ln=Wr.API({confirm:function(e){if("store"===e.params[0])return Promise.resolve(!0);var t=e.params[1];if(!t.url&&!t.domain)return Promise.reject(new Error("there must be one of url or domain"));var r={};t.url?r=new URL(t.url):(r.host=t.domain||"",r.hostname=t.domain||"");var n=!1;if(e.script.metadata.connect)for(var a=e.script.metadata.connect,s=0;s<a.length;s+=1)if(r.hostname.endsWith(a[s])){n=!0;break}return n?Promise.resolve({permission:"cookie",permissionValue:r.host,title:"脚本正在试图访问网站cookie内容",metadata:{脚本名称:e.script.name,请求域名:r.host},describe:"请您确认是否允许脚本进行此操作,cookie是一项重要的用户数据,请务必只给信任的脚本授权.",permissionContent:"Cookie域",uuid:""}):Promise.reject(new Error("hostname must be in the definition of connect"))}}),pn=Wr.API(),fn=Wr.API(),dn=Wr.API(),hn=Wr.API({confirm:function(e){return Promise.resolve({permission:"file_storage",permissionValue:"*",title:"脚本正在试图操作脚本同步储存空间",metadata:{脚本名称:e.script.name},describe:"请您确认是否允许脚本进行此操作,允许后将允许脚本操作你的脚本同步储存空间,会在储存空间下创建一个app/".concat(e.script.uuid,"的目录供给脚本使用"),wildcard:!0,permissionContent:"脚本"})},alias:["GM.xmlHttpRequest"]}),vn=function(){function e(t,r){(0,n.Z)(this,e),(0,u.Z)(this,"logger",k.getLogger({component:"GMApi"})),this.message=t,this.script=new K,this.permissionVerify=r,this.systemConfig=B.instance(pt),r instanceof Wr&&(this.systemConfig.scriptCatFlag="x-cat-".concat((0,Z.Z)())),this.valueManager=B.instance(Ct)}var t,r,s,o;return(0,a.Z)(e,[{key:"start",value:function(){var e=this;this.message.setHandler("gmApi",function(){var t=(0,w.Z)(O().mark((function t(r,n,a){var s,o;return O().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(s=Wr.apis.get(n.api)){t.next=3;break}return t.abrupt("return",Promise.reject(new Error("api is not found")));case 3:return t.next=5,e.parseRequest(n,a);case 5:return o=t.sent,t.prev=6,t.next=9,e.permissionVerify.verify(o,s);case 9:t.next=15;break;case 11:return t.prev=11,t.t0=t.catch(6),e.logger.error("verify error",{api:n.api},b.E(t.t0)),t.abrupt("return",Promise.reject(t.t0));case 15:return t.abrupt("return",s.api.call(e,o));case 16:case"end":return t.stop()}}),t,null,[[6,11]])})));return function(e,r,n){return t.apply(this,arguments)}}()),this.message.setHandlerWithChannel("gmApiChannel",function(){var t=(0,w.Z)(O().mark((function t(r,n,a,s){var o,i;return O().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(o=Wr.apis.get(a.api)){t.next=3;break}return t.abrupt("return",r.throw("api is not found"));case 3:return t.next=5,e.parseRequest(a,s);case 5:return i=t.sent,t.prev=6,t.next=9,e.permissionVerify.verify(i,o);case 9:t.next=15;break;case 11:return t.prev=11,t.t0=t.catch(6),e.logger.error("verify error",{api:a.api},b.E(t.t0)),t.abrupt("return",r.throw(t.t0.message));case 15:return t.abrupt("return",o.api.call(e,i,r));case 16:case"end":return t.stop()}}),t,null,[[6,11]])})));return function(e,r,n,a){return t.apply(this,arguments)}}()),this.permissionVerify instanceof Wr&&kn(this.systemConfig.scriptCatFlag),this.message.setHandler("CAT_createBlobUrl",(function(e,t){var r=URL.createObjectURL(t);return setTimeout((function(){URL.revokeObjectURL(r)}),6e4),Promise.resolve(r)})),this.message.setHandler("CAT_fetchBlob",(function(e,t){return fetch(t).then((function(e){return e.blob()}))}))}},{key:"parseRequest",value:(o=(0,w.Z)(O().mark((function e(t,r){var n,a,s=this;return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,W.getInstance().getOrSet(Ie.script(t.scriptId),(function(){return s.script.findById(t.scriptId)}));case 2:if(n=e.sent){e.next=5;break}return e.abrupt("return",Promise.reject(new Error("script is not found")));case 5:return(a=t).script=n,a.sender=r,e.abrupt("return",Promise.resolve(a));case 9:case"end":return e.stop()}}),e)}))),function(e,t){return o.apply(this,arguments)})},{key:"GM_setValue",value:function(e){if(!e.params||2!==e.params.length)return Promise.reject(new Error("param is failed"));var t=(0,Y.Z)(e.params,2),r=t[0],n=t[1],a=e.sender;return a.runFlag=e.runFlag,this.valueManager.setValue(e.script,r,n,a)}},{key:"CAT_fetch",value:function(e,t){var r=this,n=e.params[0],a=n.url;return fetch(a,{method:n.method||"GET",body:n.data,headers:xn(this.systemConfig.scriptCatFlag,n)}).then((function(e){var a,s=Pn(r.systemConfig.scriptCatFlag,n,e,1),o=null===(a=e.body)||void 0===a?void 0:a.getReader();if(!o)throw new Error("read is not found");var i=r.systemConfig.scriptCatFlag;o.read().then((function r(a){var s=a.done,c=a.value;if(s){var u=Pn(i,n,e,4);t.send({event:"onreadystatechange",data:u}),t.send({event:"onload",data:u}),t.send({event:"onloadend",data:u}),t.disChannel()}else t.send({event:"onstream",data:Array.from(c)}),o.read().then(r)})),t.send({event:"onloadstart",data:s}),s.readyState=2,t.send({event:"onreadystatechange",data:s})})).catch((function(e){t.throw(e)}))}},{key:"GM_xmlhttpRequest",value:(s=(0,w.Z)(O().mark((function e(t,r){var n,a,s,o,i,c=this;return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if("stream"!==(n=t.params[0]).responseType){e.next=3;break}return e.abrupt("return",this.CAT_fetch(t,r));case 3:if((a=new XMLHttpRequest).open(n.method||"GET",n.url,!0,n.user||"",n.password||""),n.overrideMimeType&&a.overrideMimeType(n.overrideMimeType),"json"!==n.responseType&&(a.responseType=n.responseType||""),s=function(){var e=(0,w.Z)(O().mark((function e(t,s){var o;return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,On(c.systemConfig.scriptCatFlag,n,a);case 2:o=e.sent,s&&Object.keys(s).forEach((function(e){o[e]=s[e]})),r.send({event:t,data:o}),"onload"===t&&r.disChannel();case 6:case"end":return e.stop()}}),e)})));return function(t,r){return e.apply(this,arguments)}}(),a.onload=function(){s("onload")},a.onloadstart=function(){s("onloadstart")},a.onloadend=function(){s("onloadstart")},a.onabort=function(){s("onabort")},a.onerror=function(){s("onerror")},a.onprogress=function(e){var t={done:a.DONE,lengthComputable:e.lengthComputable,loaded:e.loaded,total:e.total,totalSize:e.total};s("onprogress",t)},a.onreadystatechange=function(){s("onreadystatechange")},a.ontimeout=function(){r.send({event:"ontimeout"})},wn(this.systemConfig.scriptCatFlag,n,a),n.timeout&&(a.timeout=n.timeout),n.overrideMimeType&&a.overrideMimeType(n.overrideMimeType),"FormData"!==n.dataType){e.next=24;break}o=new FormData,n.data&&n.data instanceof Array&&(n.data.forEach((function(e){"file"===e.type?o.append(e.key,Pe(e.val),e.filename):o.append(e.key,e.val)})),a.send(o)),e.next=36;break;case 24:if("Blob"!==n.dataType){e.next=35;break}if(n.data){e.next=27;break}return e.abrupt("return",r.throw("data is null"));case 27:return e.next=29,fetch(n.data);case 29:return e.next=31,e.sent.blob();case 31:i=e.sent,a.send(i),e.next=36;break;case 35:a.send(n.data);case 36:return r.setDisChannelHandler((function(){a.abort()})),e.abrupt("return",Promise.resolve());case 38:case"end":return e.stop()}}),e,this)}))),function(e,t){return s.apply(this,arguments)})},{key:"GM_notification",value:function(e,t){if(0===e.params.length)return t.throw("param is failed");var r,n=e.params[0],a={title:n.title||"ScriptCat",message:n.text||"无消息内容",iconUrl:n.image||(r=e.script,r.metadata.icon&&r.metadata.icon[0]||r.metadata.iconurl&&r.metadata.iconurl[0]||r.metadata.defaulticon&&r.metadata.defaulticon[0]||r.metadata.icon64&&r.metadata.icon64[0]||r.metadata.icon64url&&r.metadata.icon64url[0])||chrome.runtime.getURL("assets/logo.png"),type:pe()||void 0===n.progress?"basic":"progress"};return pe()||(a.silent=n.silent,a.buttons=n.buttons),chrome.notifications.create(a,(function(e){W.getInstance().set("GM_notification:".concat(e),t),t.send({event:"create",id:e}),n.timeout&&setTimeout((function(){chrome.notifications.clear(e),t.send({event:"done",id:e,user:!1}),t.disChannel(),W.getInstance().del("GM_notification:".concat(e))}),n.timeout)})),!0}},{key:"GM_closeNotification",value:function(e){chrome.notifications.clear(e.params[0]);var t=W.getInstance().get("GM_notification:".concat(e.params[0]));t&&(t.send({event:"done",id:e.params[0],user:!1}),W.getInstance().del("GM_notification:".concat(e.params[0])));return Promise.resolve(!0)}},{key:"GM_updateNotification",value:function(e){if(pe())return Promise.reject(new Error("firefox does not support this method"));var t=e.params[0],r=e.params[1],n={title:r.title,message:r.text,iconUrl:r.image,type:void 0===r.progress?"basic":"progress",silent:r.silent,progress:r.progress};return chrome.notifications.update(t,n),Promise.resolve(!0)}},{key:"GM_log",value:function(e){var t=e.params[0],r=e.params[1]||"info",n=e.params[2]||{};return k.getLogger(n).log(r,t,{scriptId:e.scriptId,component:"GM_log"}),Promise.resolve(!0)}},{key:"GM_openInTab",value:function(e,t){var r=e.params[0],n=e.params[1]||{};!0===n.useOpen?window.open(r)?chrome.tabs.query({active:!0},(function(e){var r=(0,Y.Z)(e,1)[0];W.getInstance().set("GM_openInTab:".concat(r.id),t),t.send({event:"oncreate",tabId:r.id})})):(t.send({event:"onclose"}),t.disChannel()):chrome.tabs.create({url:r,active:n.active},(function(e){W.getInstance().set("GM_openInTab:".concat(e.id),t),t.send({event:"oncreate",tabId:e.id})}))}},{key:"GM_closeInTab",value:(r=(0,w.Z)(O().mark((function e(t){return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,chrome.tabs.remove(t.params[0]);case 3:e.next=8;break;case 5:e.prev=5,e.t0=e.catch(0),this.logger.error("GM_closeInTab",b.E(e.t0));case 8:return e.abrupt("return",Promise.resolve(!0));case 9:case"end":return e.stop()}}),e,this,[[0,5]])}))),function(e){return r.apply(this,arguments)})},{key:"GM_getTab",value:function(t){var r;return Promise.resolve(null===(r=e.tabData.get(t.scriptId))||void 0===r?void 0:r.get(t.sender.tabId||t.sender.targetTag))}},{key:"GM_saveTab",value:function(t){var r,n=t.params[0],a=t.sender.tabId||t.sender.targetTag;return e.tabData.has(t.scriptId)||e.tabData.set(t.scriptId,new Map),null===(r=e.tabData.get(t.scriptId))||void 0===r||r.set(a,n),Promise.resolve(!0)}},{key:"GM_getTabs",value:function(t){var r;if(!e.tabData.has(t.scriptId))return Promise.resolve({});var n={};return null===(r=e.tabData.get(t.scriptId))||void 0===r||r.forEach((function(e,t){n[t]=e})),Promise.resolve(n)}},{key:"GM_download",value:function(e,t){var r=this,n=e.params[0];if(n.url.startsWith("blob:"))chrome.downloads.download({url:n.url,saveAs:n.saveAs,filename:n.name},(function(){t.send({event:"onload"})}));else{var a=new XMLHttpRequest;a.open(n.method||"GET",n.url,!0),a.responseType="blob";var s=function(e,s){var o=new RegExp("".concat(r.systemConfig.scriptCatFlag,"-"),"g"),i={finalUrl:a.responseURL||n.url,readyState:a.readyState,status:a.status,statusText:a.statusText,responseHeaders:a.getAllResponseHeaders().replace(o,"")};s&&Object.keys(s).forEach((function(e){i[e]=s[e]})),t.send({event:e,data:i})};a.onload=function(){s("onload");var e=URL.createObjectURL(a.response);setTimeout((function(){URL.revokeObjectURL(e)}),6e3),chrome.downloads.download({url:e,saveAs:n.saveAs,filename:n.name})},a.onerror=function(){s("onerror")},a.onprogress=function(e){var t={done:a.DONE,lengthComputable:e.lengthComputable,loaded:e.loaded,total:e.total,totalSize:e.total};s("onprogress",t)},a.ontimeout=function(){t.send({event:"ontimeout"})},wn(this.systemConfig.scriptCatFlag,n,a),n.timeout&&(a.timeout=n.timeout),a.send(),t.setDisChannelHandler((function(){a.abort()}))}}},{key:"GM_setClipboard",value:function(t){return new Promise((function(r){e.clipboardData={type:t.params[1],data:t.params[0]},Wr.textarea.focus(),document.execCommand("copy",!1,null),r(void 0)}))}},{key:"GM_cookie",value:function(e){return new Promise((function(t,r){var n=e.params;if(2===n.length){var a=e.params[1];if("store"!==n[0])if(a.url&&(a.url=a.url.trim()),a.domain&&(a.domain=a.domain.trim()),a.url||a.domain)switch(n[0]){case"list":chrome.cookies.getAll({domain:a.domain,name:a.name,path:a.path,secure:a.secure,session:a.session,url:a.url,storeId:a.storeId},(function(e){t(e)}));break;case"delete":if(!a.url||!a.name)return void r(new Error("delete operation must have url and name"));chrome.cookies.remove({name:a.name,url:a.url,storeId:a.storeId},(function(){t(void 0)}));break;case"set":if(!a.url||!a.name)return void r(new Error("set operation must have name and value"));chrome.cookies.set({url:a.url,name:a.name,domain:a.domain,value:a.value,expirationDate:a.expirationDate,path:a.path,httpOnly:a.httpOnly,secure:a.secure,storeId:a.storeId},(function(){t(void 0)}));break;default:r(new Error("action can only be: get, set, delete, store"))}else r(new Error("there must be one of url or domain"));else chrome.cookies.getAllCookieStores((function(e){var r=[];e.forEach((function(e){if(a.tabId){for(var t=0;t<e.tabIds.length;t+=1)if(e.tabIds[t]===a.tabId){r.push({storeId:e.id});break}}else r.push({storeId:e.id})})),t(r)}))}else r(new Error("there must be two parameters"))}))}},{key:"GM_registerMenuCommand",value:function(t,r){return e.hook.trigger("registerMenu",t,r),r.setDisChannelHandler((function(){e.hook.trigger("unregisterMenu",t.params[0],t)})),Promise.resolve()}},{key:"GM_unregisterMenuCommand",value:function(t){e.hook.trigger("unregisterMenu",t.params[0],t)}},{key:"CAT_userConfig",value:function(e){chrome.tabs.create({url:"/src/options.html#/?userConfig=".concat(e.scriptId),active:!0})}},{key:"CAT_fileStorage",value:(t=(0,w.Z)(O().mark((function e(t,r){var n,a,s,o,i,c,u,l;return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if((n=this.systemConfig.cloudSync).enable){e.next=3;break}return e.abrupt("return",r.throw({code:1,error:"is disable"}));case 3:return a=(0,Y.Z)(t.params,2),s=a[0],o=a[1],c="ScriptCat/app/".concat(t.script.uuid),e.prev=5,e.next=8,Vr.create(n.filesystem,n.params[n.filesystem]);case 8:return i=e.sent,e.next=11,Vr.mkdirAll(i,c);case 11:return e.next=13,i.openDir(c);case 13:i=e.sent,e.next=19;break;case 16:return e.prev=16,e.t0=e.catch(5),e.abrupt("return",r.throw({code:2,error:e.t0.message}));case 19:e.t1=s,e.next="list"===e.t1?22:"upload"===e.t1?24:"download"===e.t1?35:"delete"===e.t1?44:46;break;case 22:return i.list().then((function(e){e.forEach((function(e){e.absPath=e.path,e.path=Sr(e.path.substring(e.path.indexOf(c)+c.length))})),r.send({action:"onload",data:e}),r.disChannel()})).catch((function(e){r.throw({code:3,error:e.message})})),e.abrupt("break",48);case 24:return e.next=26,i.create(o.path);case 26:return u=e.sent,e.t2=u,e.next=30,fetch(o.data);case 30:return e.next=32,e.sent.blob();case 32:return e.t3=e.sent,e.t2.write.call(e.t2,e.t3).then((function(){r.send({action:"onload",data:!0}),r.disChannel()})).catch((function(e){r.throw({code:4,error:e.message})})),e.abrupt("break",48);case 35:return l=o.file,e.next=38,i.openDir("".concat(l.path));case 38:return i=e.sent,e.next=41,i.open({fsid:l.fsid,name:l.name,path:l.absPath,size:l.size,digest:l.digest,createtime:l.createtime,updatetime:l.updatetime});case 41:return e.sent.read("blob").then((function(e){var t=URL.createObjectURL(e);setTimeout((function(){URL.revokeObjectURL(t)}),6e3),r.send({action:"onload",data:t}),r.disChannel()})).catch((function(e){r.throw({code:5,error:e.message})})),e.abrupt("break",48);case 44:return i.delete("".concat(o.path)).then((function(){r.send({action:"onload",data:!0}),r.disChannel()})).catch((function(e){r.throw({code:6,error:e.message})})),e.abrupt("break",48);case 46:return r.disChannel(),e.abrupt("break",48);case 48:case"end":return e.stop()}}),e,this,[[5,16]])}))),function(e,r){return t.apply(this,arguments)})}]),e}(),(0,u.Z)(vn,"hook",new d),(0,u.Z)(vn,"tabData",new Map),mn=vn,(0,Ne.Z)(mn.prototype,"GM_setValue",[Qr],Object.getOwnPropertyDescriptor(mn.prototype,"GM_setValue"),mn.prototype),(0,Ne.Z)(mn.prototype,"GM_xmlhttpRequest",[Xr],Object.getOwnPropertyDescriptor(mn.prototype,"GM_xmlhttpRequest"),mn.prototype),(0,Ne.Z)(mn.prototype,"GM_notification",[$r],Object.getOwnPropertyDescriptor(mn.prototype,"GM_notification"),mn.prototype),(0,Ne.Z)(mn.prototype,"GM_closeNotification",[Kr],Object.getOwnPropertyDescriptor(mn.prototype,"GM_closeNotification"),mn.prototype),(0,Ne.Z)(mn.prototype,"GM_updateNotification",[en],Object.getOwnPropertyDescriptor(mn.prototype,"GM_updateNotification"),mn.prototype),(0,Ne.Z)(mn.prototype,"GM_log",[tn],Object.getOwnPropertyDescriptor(mn.prototype,"GM_log"),mn.prototype),(0,Ne.Z)(mn.prototype,"GM_openInTab",[rn],Object.getOwnPropertyDescriptor(mn.prototype,"GM_openInTab"),mn.prototype),(0,Ne.Z)(mn.prototype,"GM_closeInTab",[nn],Object.getOwnPropertyDescriptor(mn.prototype,"GM_closeInTab"),mn.prototype),(0,Ne.Z)(mn.prototype,"GM_getTab",[an],Object.getOwnPropertyDescriptor(mn.prototype,"GM_getTab"),mn.prototype),(0,Ne.Z)(mn.prototype,"GM_saveTab",[sn],Object.getOwnPropertyDescriptor(mn.prototype,"GM_saveTab"),mn.prototype),(0,Ne.Z)(mn.prototype,"GM_getTabs",[on],Object.getOwnPropertyDescriptor(mn.prototype,"GM_getTabs"),mn.prototype),(0,Ne.Z)(mn.prototype,"GM_download",[cn],Object.getOwnPropertyDescriptor(mn.prototype,"GM_download"),mn.prototype),(0,Ne.Z)(mn.prototype,"GM_setClipboard",[un],Object.getOwnPropertyDescriptor(mn.prototype,"GM_setClipboard"),mn.prototype),(0,Ne.Z)(mn.prototype,"GM_cookie",[ln],Object.getOwnPropertyDescriptor(mn.prototype,"GM_cookie"),mn.prototype),(0,Ne.Z)(mn.prototype,"GM_registerMenuCommand",[pn],Object.getOwnPropertyDescriptor(mn.prototype,"GM_registerMenuCommand"),mn.prototype),(0,Ne.Z)(mn.prototype,"GM_unregisterMenuCommand",[fn],Object.getOwnPropertyDescriptor(mn.prototype,"GM_unregisterMenuCommand"),mn.prototype),(0,Ne.Z)(mn.prototype,"CAT_userConfig",[dn],Object.getOwnPropertyDescriptor(mn.prototype,"CAT_userConfig"),mn.prototype),(0,Ne.Z)(mn.prototype,"CAT_fileStorage",[hn],Object.getOwnPropertyDescriptor(mn.prototype,"CAT_fileStorage"),mn.prototype),mn);function Rn(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function jn(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Rn(Object(r),!0).forEach((function(t){(0,u.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Rn(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function Dn(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=(0,c.Z)(e);if(t){var a=(0,c.Z)(this).constructor;r=Reflect.construct(n,arguments,a)}else r=n.apply(this,arguments);return(0,i.Z)(this,r)}}var En,Tn=B.Singleton(S,qe,Ct)((In=function(e){(0,o.Z)(f,e);var t,r,i,c,l,p=Dn(f);function f(e,t,r){var a;return(0,n.Z)(this,f),a=p.call(this,e,"runtime"),(0,u.Z)((0,s.Z)(a),"match",new pr),(0,u.Z)((0,s.Z)(a),"include",new fr),(0,u.Z)((0,s.Z)(a),"customizeExclude",new pr),(0,u.Z)((0,s.Z)(a),"runBackScript",new Map),a.scriptDAO=new K,a.resourceManager=t,a.valueManager=r,a.scriptFlag=ue(8),a.logger=k.getInstance().logger({component:"runtime"}),xt.hook.addListener("upsert",a.scriptUpdate.bind((0,s.Z)(a))),xt.hook.addListener("delete",a.scriptDelete.bind((0,s.Z)(a))),xt.hook.addListener("enable",a.scriptUpdate.bind((0,s.Z)(a))),xt.hook.addListener("disable",a.scriptUpdate.bind((0,s.Z)(a))),a}return(0,a.Z)(f,[{key:"start",value:function(){var e=this;this.listenEvent("start",(function(t){return e.scriptDAO.findById(t).then((function(t){if(!t)throw new Error("script not found");return e.startBackgroundScript(t)})).catch((function(t){throw e.logger.error("run error",b.E(t)),t}))})),this.listenEvent("stop",(function(t){return e.scriptDAO.findById(t).then((function(r){if(!r)throw new Error("script not found");return e.stopBackgroundScript(t)})).catch((function(t){throw e.logger.error("stop error",b.E(t)),t}))})),this.listenScriptRunStatus(),this.scriptDAO.table.toArray((function(t){t.forEach((function(t){t?t.type===X&&(t.status===$?e.enable(t):e.disable(t)):e.logger.error("script is null")}))}));var t=this.scriptFlag,r="";fetch(chrome.runtime.getURL("src/inject.js")).then((function(e){return e.text()})).then((function(e){r=le("(function (ScriptFlag) {\n".concat(e,"\n})('").concat(t,"')"))}));var n=new Map;Cn.hook.addListener("registerMenu",(function(e,t){var r;r=e.sender.tabId?e.sender.tabId:e.sender.targetTag;var a=n.get(r);a||(a=new Map,n.set(r,a));var s=a.get(e.scriptId);s||(s=[],a.set(e.scriptId,s));for(var o=0;o<s.length;o+=1)if(s[o].request.params[0]===e.params[0])return void t.disChannel();s.push({request:e,channel:t}),_n(r,n)})),Cn.hook.addListener("unregisterMenu",(function(e,t){var r;r=t.sender.tabId?t.sender.tabId:t.sender.targetTag;var a=n.get(r);if(a){var s=a.get(t.scriptId);if(s){for(var o=0;o<s.length;o+=1)if(s[o].request.params[0]===e){s.splice(o,1);break}0===s.length&&a.delete(t.scriptId)}a.size||n.delete(r)}_n(r,n)})),chrome.tabs.onActivated.addListener((function(e){_n(e.tabId,n)})),f.hook.addListener("runStatus",function(){var t=(0,w.Z)(O().mark((function t(r){var n;return O().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,e.scriptDAO.findById(r);case 2:if(n=t.sent){t.next=5;break}return t.abrupt("return");case 5:n.status!==$&&"running"!==n.runStatus?e.runBackScript.delete(r):e.runBackScript.set(r,n);case 6:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}());var a=new Map,s=function(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,s=a.get(e);s||(s=new Map,a.set(e,s));var o=s.get(t.id);o||(o={script:t,runNum:0,runNumByIframe:0},s.set(t.id,o)),t.status===$&&(o.runNum+=n,r&&(o.runNumByIframe+=n))};chrome.tabs.onRemoved.addListener((function(e){a.delete(e)})),this.message.setHandler("queryPageScript",function(){var t=(0,w.Z)(O().mark((function t(r,s){var o,i,c,u,l,p,f,d,h;return O().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return o=s.url,i=s.tabId,c=n.get(i),u=a.get(i),l=[],l=u?Array.from(u.values()):e.matchUrl(o).map((function(e){return{runNum:0,runNumByIframe:0,script:e}})),p=l.map(function(){var t=(0,w.Z)(O().mark((function t(r){var n,a,s;return O().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=[],c&&(null===(a=c.get(r.script.id))||void 0===a||a.forEach((function(e){n.push({name:e.request.params[1],accessKey:e.request.params[2],id:e.request.params[0],sender:e.request.sender,channelFlag:e.channel.flag})}))),t.next=4,e.scriptDAO.findById(r.script.id);case 4:if(s=t.sent){t.next=7;break}return t.abrupt("return",{id:r.script.id,name:r.script.name,enable:r.script.status===$,updatetime:r.script.updatetime||r.script.createtime,hasUserConfig:!!r.script.config,runNum:r.runNum,runNumByIframe:r.runNumByIframe,customExclude:r.script.selfMetadata&&r.script.selfMetadata.exclude,menus:n});case 7:return t.abrupt("return",{id:s.id,name:s.name,enable:s.status===$,updatetime:s.updatetime||s.createtime,hasUserConfig:!(null==s||!s.config),runNum:r.runNum,runNumByIframe:r.runNumByIframe,customExclude:s.selfMetadata&&s.selfMetadata.exclude,menus:n});case 8:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}()),t.next=8,Promise.all(p);case 8:return f=t.sent,d=[],h=n.get("sandbox"),e.runBackScript.forEach((function(e){var t,r=[];h&&(null==h||null===(t=h.get(e.id))||void 0===t||t.forEach((function(e){r.push({name:e.request.params[1],accessKey:e.request.params[2],id:e.request.params[0],sender:e.request.sender,channelFlag:e.channel.flag})})));d.push({id:e.id,name:e.name,enable:e.status===$,updatetime:e.updatetime||e.createtime,runStatus:e.runStatus,hasUserConfig:!!e.config,runNum:e.runStatus&&"running"!==e.runStatus?1:0,menus:r,runNumByIframe:0})})),t.abrupt("return",Promise.resolve({scriptList:f,backScriptList:d}));case 13:case"end":return t.stop()}}),t)})));return function(e,r){return t.apply(this,arguments)}}()),this.message.setHandler("pageLoad",(function(n,o,i){return new Promise((function(n){if(i&&i.url&&i.tabId&&(void 0===i.frameId&&a.delete(i.tabId),"false"!==localStorage.enable_script)){e.customizeExclude.match(i.url).forEach((function(e){s(i.tabId,e,!1,0)}));var o=e.matchUrl(i.url,(function(e){return void 0!==i.frameId?!!e.metadata.noframes||(s(i.tabId,e,!0),e.status!==$):(s(i.tabId,e,!1),e.status!==$)}));chrome.tabs.executeScript(i.tabId,{frameId:i.frameId,code:"(function(){\n let temp = document.createElement('script');\n temp.setAttribute('type', 'text/javascript');\n temp.innerHTML = \"".concat(r,'";\n temp.className = "injected-js";\n document.documentElement.appendChild(temp)\n temp.remove();\n }())'),runAt:"document_start"}),o.length?(n({flag:t,scripts:o}),o.forEach((function(e){var t="document_idle";e.metadata["run-at"]&&(t=(0,Y.Z)(e.metadata["run-at"],1)[0]);switch(t){case"document-body":case"document-start":t="document_start";break;case"document-end":t="document_end";break;default:t="document_idle"}chrome.tabs.executeScript(i.tabId,{frameId:i.frameId,code:"(function(){\n let temp = document.createElement('script');\n temp.setAttribute('type', 'text/javascript');\n temp.innerHTML = \"".concat(e.code,'";\n temp.className = "injected-js";\n document.documentElement.appendChild(temp)\n temp.remove();\n }())'),runAt:t})})),chrome.browserAction.getBadgeText({tabId:i.tabId},(function(e){chrome.browserAction.setBadgeText({text:(o.length+(parseInt(e,10)||0)).toString(),tabId:i.tabId})})),chrome.browserAction.setBadgeBackgroundColor({color:"#4594d5",tabId:i.tabId})):n({flag:t,scripts:[]})}}))}))}},{key:"setMessageSandbox",value:function(e){this.messageSandbox=e}},{key:"startSandbox",value:function(e){var t=this;this.messageSandbox=e,this.scriptDAO.table.toArray((function(e){e.forEach((function(e){e?e.type!==X&&e.status===$&&(t.enable(e),t.runBackScript.set(e.id,e)):t.logger.error("script is null")}))}))}},{key:"listenScriptRunStatus",value:function(){var e=this;this.message.setHandler("scriptRunStatus",(function(t,r){var n=(0,Y.Z)(r,2),a=n[0],s=n[1];e.scriptDAO.update(a,{runStatus:s,lastruntime:(new Date).getTime()}),f.hook.trigger("runStatus",a,s)})),this.message.setHandlerWithChannel("watchRunStatus",(function(e){var t=function(t,r){e.send([t,r])};f.hook.addListener("runStatus",t),e.setDisChannelHandler((function(){f.hook.removeListener("runStatus",t)}))}))}},{key:"scriptUpdate",value:(l=(0,w.Z)(O().mark((function e(t){return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.resourceManager.checkScriptResource(t);case 2:if(t.status!==$){e.next=4;break}return e.abrupt("return",this.enable(t));case 4:return e.abrupt("return",this.disable(t));case 5:case"end":return e.stop()}}),e,this)}))),function(e){return l.apply(this,arguments)})},{key:"matchUrl",value:function(e,t){var r=this.match.match(e);r.push.apply(r,(0,h.Z)(this.include.match(e)));var n={};return r.forEach((function(e){t&&t(e)||(n[e.id]=e)})),Object.keys(n).map((function(e){return n[e]}))}},{key:"scriptDelete",value:(c=(0,w.Z)(O().mark((function e(t){return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t.type===X?(this.match.del(t),this.include.del(t)):this.unloadBackgroundScript(t),e.abrupt("return",Promise.resolve(!0));case 2:case"end":return e.stop()}}),e,this)}))),function(e){return c.apply(this,arguments)})},{key:"enable",value:(i=(0,w.Z)(O().mark((function e(t){var r;return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.buildScriptRunResource(t);case 2:if(r=e.sent,t.type===X){e.next=5;break}return e.abrupt("return",this.loadBackgroundScript(r));case 5:return e.abrupt("return",this.loadPageScript(r));case 6:case"end":return e.stop()}}),e,this)}))),function(e){return i.apply(this,arguments)})},{key:"disable",value:function(e){return e.type!==X?this.unloadBackgroundScript(e):this.unloadPageScript(e)}},{key:"loadPageScript",value:function(e){var t=this,r=this.logger.with({scriptId:e.id,name:e.name});return e.code=le(function(e){return"window['".concat(e.flag,"']=function(context,GM_info){\n").concat(e.code,"\n}")}(e)),this.match.del(e),this.include.del(e),e.metadata.match&&e.metadata.match.forEach((function(n){try{t.match.add(n,e)}catch(e){r.error("url加载错误",b.E(e))}})),e.metadata.include&&e.metadata.include.forEach((function(n){try{t.include.add(n,e)}catch(e){r.error("url加载错误",b.E(e))}})),e.metadata.exclude&&e.metadata.exclude.forEach((function(n){try{t.include.exclude(n,e),t.match.exclude(n,e)}catch(e){r.error("url加载错误",b.E(e))}})),e.selfMetadata&&e.selfMetadata.exclude&&e.selfMetadata.exclude.forEach((function(n){try{t.customizeExclude.add(n,e)}catch(e){r.error("url加载错误",b.E(e))}})),Promise.resolve(!0)}},{key:"unloadPageScript",value:function(e){return this.loadPageScript(e)}},{key:"loadBackgroundScript",value:function(e){var t=this;return this.runBackScript.set(e.id,e),new Promise((function(r,n){var a;null===(a=t.messageSandbox)||void 0===a||a.syncSend("enable",e).then((function(){r(!0)})).catch((function(e){t.logger.error("backscript load error",b.E(e)),n(e)}))}))}},{key:"unloadBackgroundScript",value:function(e){var t=this;return this.runBackScript.delete(e.id),new Promise((function(r,n){var a;null===(a=t.messageSandbox)||void 0===a||a.syncSend("disable",e.id).then((function(){r(!0)})).catch((function(e){t.logger.error("backscript stop error",b.E(e)),n(e)}))}))}},{key:"startBackgroundScript",value:(r=(0,w.Z)(O().mark((function e(t){var r,n;return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.buildScriptRunResource(t);case 2:return n=e.sent,null===(r=this.messageSandbox)||void 0===r||r.syncSend("start",n),e.abrupt("return",Promise.resolve(!0));case 5:case"end":return e.stop()}}),e,this)}))),function(e){return r.apply(this,arguments)})},{key:"stopBackgroundScript",value:function(e){var t=this;return new Promise((function(r,n){var a;null===(a=t.messageSandbox)||void 0===a||a.syncSend("stop",e).then((function(e){r(e)})).catch((function(e){t.logger.error("backscript stop error",b.E(e)),n(e)}))}))}},{key:"buildScriptRunResource",value:(t=(0,w.Z)(O().mark((function e(t){var r,n;return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return(n=Object.assign(t)).selfMetadata&&(n.metadata=jn({},n.metadata),Object.keys(n.selfMetadata).forEach((function(e){n.metadata[e]=n.selfMetadata[e]}))),e.next=4,this.valueManager.getScriptValues(n);case 4:return n.value=e.sent,e.next=7,this.resourceManager.getScriptResources(n);case 7:return n.resource=e.sent,n.flag=ue(16),n.sourceCode=n.code,n.code=yr(n),n.grantMap={},null===(r=n.metadata.grant)||void 0===r||r.forEach((function(e){n.grantMap[e]="ok"})),e.abrupt("return",Promise.resolve(n));case 14:case"end":return e.stop()}}),e,this)}))),function(e){return t.apply(this,arguments)})}]),f}(Ae),(0,u.Z)(In,"hook",new d),Sn=In))||Sn,An=r(34605);function Un(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=(0,c.Z)(e);if(t){var a=(0,c.Z)(this).constructor;r=Reflect.construct(n,arguments,a)}else r=n.apply(this,arguments);return(0,i.Z)(this,r)}}const Gn=B.Singleton(S,pt)(En=function(e){(0,o.Z)(r,e);var t=Un(r);function r(e,a){var s;return(0,n.Z)(this,r),(s=t.call(this,e,"system")).scriptDAO=new K,s.systemConfig=a,s.scriptManager=B.instance(xt),s.loggerDAO=new G,s}return(0,a.Z)(r,[{key:"init",value:function(){var e=this,t=function(){fetch("".concat(hr,"api/v1/system/version?version=").concat(dr)).then((function(e){return e.json()})).then((function(e){chrome.storage.local.get(["notice"],(function(t){t.notice!==e.data.notice&&chrome.storage.local.set({notice:e.data.notice,setRead:!1}),chrome.storage.local.set({version:e.data.version})}))}))};t(),setInterval((function(){t()}),216e5),chrome.runtime.onInstalled.addListener((function(e){"install"===e.reason?chrome.tabs.create({url:"https://docs.scriptcat.org/"}):"update"===e.reason&&chrome.tabs.create({url:"https://docs.scriptcat.org/docs/change/#".concat(dr)})})),this.message.setHandler("ping",(function(){return Promise.resolve("pong")})),this.message.setHandler("externalMessage",function(){var t=(0,w.Z)(O().mark((function t(r,n){var a,s,o,i;return O().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(a=n.action,s=n.name,o=n.namespace,"isInstalled"!==a){t.next=8;break}return t.next=4,e.scriptDAO.findByNameAndNamespace(s,o);case 4:if(!(i=t.sent)){t.next=7;break}return t.abrupt("return",Promise.resolve({installed:!0,version:i.metadata.version&&i.metadata.version[0]}));case 7:return t.abrupt("return",Promise.resolve({installed:!1}));case 8:return t.abrupt("return",Promise.resolve(!1));case 9:case"end":return t.stop()}}),t)})));return function(e,r){return t.apply(this,arguments)}}()),this.listenEvent("connectVSCode",this.connectVSCode.bind(this)),this.reconnectVSCode(),this.clearLogger()}},{key:"reconnectVSCode",value:function(){var e,t=this,r=function(){t.wsVscode||t.connectVSCode()};this.systemConfig.vscodeReconnect&&(r(),e=setInterval((function(){r()}),3e4)),pt.hook.addListener("update",(function(t,n){"vscodeReconnect"===t&&(n?e=setInterval((function(){r()}),3e4):clearInterval(e))}))}},{key:"connectVSCode",value:function(){var e=this;this.wsVscode&&this.wsVscode.close();try{this.wsVscode=new WebSocket(this.systemConfig.vscodeUrl)}catch(e){return void this.logger.debug("vscode连接失败",b.E(e))}this.wsVscode.addEventListener("open",(function(){e.wsVscode.send('{"action":"hello"}')})),this.wsVscode.addEventListener("message",function(){var t=(0,w.Z)(O().mark((function t(r){var n,a,s;return O().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:n=JSON.parse(r.data),t.t0=n.action,t.next="onchange"===t.t0?4:10;break;case 4:return a=n.data.script,t.next=7,Me(a,"",(0,An.Z)(n.data.uri,An.Z.URL));case 7:return s=t.sent,e.scriptManager.event.upsertHandler(s,"vscode"),t.abrupt("break",10);case 10:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}()),this.wsVscode.addEventListener("error",(function(t){e.wsVscode=void 0,e.logger.debug("vscode连接失败",b.E(t))})),this.wsVscode.addEventListener("close",(function(){e.wsVscode=void 0,e.logger.debug("vscode连接关闭")}))}},{key:"getNotice",value:function(){return new Promise((function(e){chrome.storage.local.get(["notice","isRead"],(function(t){e({notice:t.notice,isRead:t.isRead})}))}))}},{key:"setRead",value:function(e){chrome.storage.local.set({isRead:e})}},{key:"getVersion",value:function(){return new Promise((function(e){chrome.storage.local.get(["version"],(function(t){e(t.version)}))}))}},{key:"clearLogger",value:function(){var e=this;setInterval((function(){chrome.storage.local.get(["lastClearLoggerTime"],(function(t){var r=t.lastClearLoggerTime||0,n=(new Date).getTime();n-r>36e5&&(chrome.storage.local.set({lastClearLoggerTime:n}),e.loggerDAO.deleteBefore(new Date(n-24*e.systemConfig.logCleanCycle*60*60*1e3).getTime()))}))}),6e4)}}]),r}(Ae))||En;function Ln(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Bn(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Ln(Object(r),!0).forEach((function(t){(0,u.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Ln(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var Hn,qn=function(){function e(t){(0,n.Z)(this,e),this.fs=t}var t,r,s;return(0,a.Z)(e,[{key:"export",value:function(e){var t=this,r=[];return e.script.forEach((function(e){r.push(t.writeScript(e))})),e.subscribe.forEach((function(e){r.push(t.writeSubscribe(e))})),Promise.all(r).then((function(){}))}},{key:"writeScript",value:(s=(0,w.Z)(O().mark((function e(t){var r,n;return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.options.meta.name,e.next=3,this.fs.create("".concat(r,".user.js"));case 3:return e.next=5,e.sent.write(t.code);case 5:return e.next=7,this.fs.create("".concat(r,".options.json"));case 7:return e.next=9,e.sent.write(JSON.stringify(t.options));case 9:return n=Bn({},t.storage),Object.keys(n.data).forEach((function(e){n.data[e]=de(n.data[e])})),e.next=13,this.fs.create("".concat(r,".storage.json"));case 13:return e.next=15,e.sent.write(JSON.stringify(n));case 15:return e.next=17,this.writeResource(r,t.resources,"resources");case 17:return e.next=19,this.writeResource(r,t.requires,"requires");case 19:return e.next=21,this.writeResource(r,t.requiresCss,"requires.css");case 21:return e.abrupt("return",Promise.resolve());case 22:case"end":return e.stop()}}),e,this)}))),function(e){return s.apply(this,arguments)})},{key:"writeResource",value:(r=(0,w.Z)(O().mark((function e(t,r,n){var a,s=this;return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a=r.map(function(){var e=(0,w.Z)(O().mark((function e(r){var a;return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(a=q().MD5("".concat(n,"{val.meta.url}")).toString(),!r.source){e.next=8;break}return e.next=4,s.fs.create("".concat(t,".user.js-").concat(a,"-").concat(r.meta.name));case 4:return e.next=6,e.sent.write(r.source);case 6:e.next=12;break;case 8:return e.next=10,s.fs.create("".concat(t,".user.js-").concat(a,"-").concat(r.meta.name));case 10:return e.next=12,e.sent.write(Pe(r.base64));case 12:return e.next=14,s.fs.create("".concat(t,".user.js-").concat(a,"-").concat(r.meta.name,".").concat(n,".json"));case 14:e.sent.write(JSON.stringify(r.meta));case 15:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()),e.abrupt("return",Promise.all(a));case 2:case"end":return e.stop()}}),e)}))),function(e,t,n){return r.apply(this,arguments)})},{key:"writeSubscribe",value:(t=(0,w.Z)(O().mark((function e(t){var r;return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.options.meta.name,e.next=3,this.fs.create("".concat(r,".user.sub.js"));case 3:return e.next=5,e.sent.write(t.source);case 5:return e.next=7,this.fs.create("".concat(r,".user.sub.options.json"));case 7:return e.next=9,e.sent.write(JSON.stringify(t.options));case 9:return e.abrupt("return",Promise.resolve());case 10:case"end":return e.stop()}}),e,this)}))),function(e){return t.apply(this,arguments)})}]),e}(),Nn=function(){function e(t){(0,n.Z)(this,e),this.manager=t,this.logger=k.getLogger({component:"SynchronizeEventListener"}),this.init()}var t,r;return(0,a.Z)(e,[{key:"listenEvent",value:function(e,t){this.manager.listenEvent(e,t)}},{key:"init",value:function(){this.listenEvent("openImportWindow",this.importHandler.bind(this)),this.listenEvent("fetchImportInfo",this.fetchImportInfoHandler.bind(this)),this.listenEvent("backup",this.backupHandler.bind(this)),this.listenEvent("backupToCloud",this.backupToCloudHandler.bind(this))}},{key:"importHandler",value:function(e){var t=(0,Z.Z)(),r=Ie.importInfo(t);return W.getInstance().set(r,e),setTimeout((function(){W.getInstance().del(r)}),6e6),chrome.tabs.create({url:"/src/import.html?uuid=".concat(t)}),Promise.resolve({uuid:t})}},{key:"fetchImportInfoHandler",value:function(e){return Promise.resolve(W.getInstance().get(Ie.importInfo(e)))}},{key:"backupHandler",value:(r=(0,w.Z)(O().mark((function e(){var t,r,n,a;return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=new(Br()),r=new Nr(t),e.next=4,this.manager.backup(r);case 4:return e.next=6,t.generateAsync({type:"blob",compression:"DEFLATE",compressionOptions:{level:9},comment:"Created by Scriptcat"});case 6:return n=e.sent,a=URL.createObjectURL(n),setTimeout((function(){URL.revokeObjectURL(a)}),6e4),chrome.downloads.download({url:a,saveAs:!0,filename:"scriptcat-backup-".concat(v()().format("YYYY-MM-DDTHH-mm-ss"),".zip")}),e.abrupt("return",Promise.resolve());case 11:case"end":return e.stop()}}),e,this)}))),function(){return r.apply(this,arguments)})},{key:"backupToCloudHandler",value:(t=(0,w.Z)(O().mark((function e(t){var r,n,a,s,o,i;return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.type,n=t.params,a=new(Br()),s=new Nr(a),e.next=5,this.manager.backup(s);case 5:return this.logger.info("backup to cloud"),e.next=8,Vr.create(r,n);case 8:return o=e.sent,e.prev=9,e.next=12,o.createDir("ScriptCat");case 12:return e.next=14,o.openDir("ScriptCat");case 14:return o=e.sent,e.next=17,o.create("scriptcat-backup-".concat(v()().format("YYYY-MM-DDTHH-mm-ss"),".zip"));case 17:return i=e.sent,e.t0=i,e.next=21,a.generateAsync({type:"blob",compression:"DEFLATE",compressionOptions:{level:9},comment:"Created by Scriptcat"});case 21:return e.t1=e.sent,e.next=24,e.t0.write.call(e.t0,e.t1);case 24:e.next=30;break;case 26:return e.prev=26,e.t2=e.catch(9),this.logger.error("backup to cloud error",b.E(e.t2)),e.abrupt("return",Promise.reject(e.t2));case 30:return e.abrupt("return",Promise.resolve());case 31:case"end":return e.stop()}}),e,this,[[9,26]])}))),function(e){return t.apply(this,arguments)})}]),e}();function Vn(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Fn(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Vn(Object(r),!0).forEach((function(t){(0,u.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Vn(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function zn(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=(0,c.Z)(e);if(t){var a=(0,c.Z)(this).constructor;r=Reflect.construct(n,arguments,a)}else r=n.apply(this,arguments);return(0,i.Z)(this,r)}}var Jn,Wn,Yn=B.Singleton(S,pt,Ct,qe,xt)(Hn=function(e){(0,o.Z)(g,e);var t,r,i,c,l,p,f,d,h,m,v=zn(g);function g(e,t,r,a,o){var i;return(0,n.Z)(this,g),i=v.call(this,e,"sync"),(0,u.Z)((0,s.Z)(i),"scriptDAO",new K),i.systemConfig=t,i.event=new Nn((0,s.Z)(i)),i.valueManager=r,i.resourceManager=a,i.scriptManager=o,i.storage=new Je("sync",!1),i.logger=k.getLogger({component:"SynchronizeManager"}),i}return(0,a.Z)(g,[{key:"start",value:(m=(0,w.Z)(O().mark((function e(){var t,r=this;return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!this.systemConfig.cloudSync.enable){e.next=4;break}return e.next=3,this.enableCloudSync(this.systemConfig.cloudSync);case 3:t=e.sent;case 4:pt.hook.addListener("update",function(){var e=(0,w.Z)(O().mark((function e(n,a){var s;return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if("cloud_sync"!==n){e.next=8;break}if(null===(s=t)||void 0===s||s(),!a.enable){e.next=8;break}return e.next=5,r.storage.set("file_digest",{});case 5:return e.next=7,r.enableCloudSync(a,!0);case 7:t=e.sent;case 8:case"end":return e.stop()}}),e)})));return function(t,r){return e.apply(this,arguments)}}());case 5:case"end":return e.stop()}}),e,this)}))),function(){return m.apply(this,arguments)})},{key:"enableCloudSync",value:(h=(0,w.Z)(O().mark((function e(t){var r,n,a,s,o,i,c,u=this,l=arguments;return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=l.length>1&&void 0!==l[1]&&l[1],(n=this.logger.with({syncDelete:t.syncDelete})).info("start cloud sync"),e.prev=3,e.next=6,Vr.create(t.filesystem,t.params[t.filesystem]);case 6:return a=e.sent,e.next=9,Vr.mkdirAll(a,"ScriptCat/sync");case 9:return e.next=11,a.openDir("ScriptCat/sync");case 11:a=e.sent,e.next=20;break;case 14:throw e.prev=14,e.t0=e.catch(3),n.error("create filesystem error",b.E(e.t0),{type:t.filesystem}),fe("同步系统连接失败",ge(e.t0)),r&&(this.systemConfig.cloudSync=Fn(Fn({},this.systemConfig.cloudSync),{},{enable:!1})),e.t0;case 20:return s=[],o=function(){var e=(0,w.Z)(O().mark((function e(t,r){return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if("sync"!==r){e.next=2;break}return e.abrupt("return");case 2:return e.next=4,u.pushScript(a,t);case 4:u.updateFileDigest(a);case 5:case"end":return e.stop()}}),e)})));return function(t,r){return e.apply(this,arguments)}}(),s.push((function(){return xt.hook.removeListener("upsert",o)})),xt.hook.addListener("upsert",o),t.syncDelete&&(i=function(e){u.deleteCloudScript(a,e)},xt.hook.addListener("delete",i),s.push((function(){return xt.hook.removeListener("delete",i)}))),c=setInterval((0,w.Z)(O().mark((function e(){return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,u.syncOnce(a);case 3:e.next=8;break;case 5:e.prev=5,e.t0=e.catch(0),fe("同步失败,请检查同步配置",ge(e.t0));case 8:case"end":return e.stop()}}),e,null,[[0,5]])}))),36e5),s.push((function(){clearInterval(c)})),e.prev=27,e.next=30,this.syncOnce(a);case 30:e.next=35;break;case 32:e.prev=32,e.t1=e.catch(27),fe("同步失败,请检查同步配置",ge(e.t1));case 35:return e.abrupt("return",Promise.resolve((function(){n.info("stop cloud sync"),s.forEach((function(e){return e()}))})));case 36:case"end":return e.stop()}}),e,this,[[3,14],[27,32]])}))),function(e){return h.apply(this,arguments)})},{key:"syncOnce",value:(d=(0,w.Z)(O().mark((function e(t){var r,n,a,s,o,i,c=this;return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return this.logger.info("start sync once"),e.next=3,t.list();case 3:return r=e.sent,n=new Map,e.next=7,this.storage.get("file_digest");case 7:if(e.t0=e.sent,e.t0){e.next=10;break}e.t0={};case 10:return a=e.t0,r.forEach((function(e){if(e.name.endsWith(".user.js")){var t=e.name.substring(0,e.name.length-8),r=n.get(t);r||(r={},n.set(t,r)),r.script=e}else if(e.name.endsWith(".meta.json")){var a=e.name.substring(0,e.name.length-10),s=n.get(a);s||(s={},n.set(a,s)),s.meta=e}})),e.next=14,this.scriptDAO.table.toArray();case 14:return s=e.sent,o=new Map,s.forEach((function(e){o.set(e.uuid,e)})),i=[],n.forEach((function(e,r){var n=o.get(r);if(n)return e.script?(a[e.script.name]===e.script.digest||((n.updatetime||n.createtime)>e.script.updatetime?i.push(c.pushScript(t,n)):i.push(c.pullScript(t,e,n))),void o.delete(r)):void i.push(new Promise((function(r){var a=function(){var a=(0,w.Z)(O().mark((function a(){var s,o;return O().wrap((function(a){for(;;)switch(a.prev=a.next){case 0:return a.next=2,t.open(e.meta);case 2:return s=a.sent,a.next=5,s.read("string");case 5:if(o=a.sent,!JSON.parse(o).isDeleted){a.next=11;break}n&&(c.scriptManager.event.deleteHandler(n.id),fe("脚本删除同步","脚本".concat(n.name,"已被删除"))),a.next=13;break;case 11:return a.next=13,t.delete(e.meta.path);case 13:r();case 14:case"end":return a.stop()}}),a)})));return function(){return a.apply(this,arguments)}}();a()})));e.script&&i.push(c.pullScript(t,e))})),o.forEach((function(e){i.push(c.pushScript(t,e))})),e.next=22,Promise.allSettled(i);case 22:return this.logger.info("sync complete"),e.next=25,this.updateFileDigest(t);case 25:return e.abrupt("return",Promise.resolve());case 26:case"end":return e.stop()}}),e,this)}))),function(e){return d.apply(this,arguments)})},{key:"updateFileDigest",value:(f=(0,w.Z)(O().mark((function e(t){var r,n;return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t.list();case 2:return r=e.sent,n={},r.forEach((function(e){n[e.name]=e.digest})),e.next=7,this.storage.set("file_digest",n);case 7:return e.abrupt("return",Promise.resolve());case 8:case"end":return e.stop()}}),e,this)}))),function(e){return f.apply(this,arguments)})},{key:"deleteCloudScript",value:(p=(0,w.Z)(O().mark((function e(t,r){var n,a,s;return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n="".concat(r.uuid,".user.js"),a=this.logger.with({scriptId:r.id,name:r.name,file:n}),e.prev=2,e.next=5,t.delete(n);case 5:return e.next=7,t.create("".concat(r.uuid,".meta.json"));case 7:return s=e.sent,e.next=10,s.write(JSON.stringify({uuid:r.uuid,origin:r.origin,downloadUrl:r.downloadUrl,checkUpdateUrl:r.checkUpdateUrl,isDeleted:!0}));case 10:a.info("delete success"),e.next=16;break;case 13:e.prev=13,e.t0=e.catch(2),a.error("delete file error",b.E(e.t0));case 16:return e.abrupt("return",Promise.resolve());case 17:case"end":return e.stop()}}),e,this,[[2,13]])}))),function(e,t){return p.apply(this,arguments)})},{key:"pushScript",value:(l=(0,w.Z)(O().mark((function e(t,r){var n,a,s,o;return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n="".concat(r.uuid,".user.js"),a=this.logger.with({scriptId:r.id,name:r.name,file:n}),e.prev=2,e.next=5,t.create(n);case 5:return s=e.sent,e.next=8,s.write(r.code);case 8:return e.next=10,t.create("".concat(r.uuid,".meta.json"));case 10:return o=e.sent,e.next=13,o.write(JSON.stringify({uuid:r.uuid,origin:r.origin,downloadUrl:r.downloadUrl,checkUpdateUrl:r.checkUpdateUrl}));case 13:a.info("push script success"),e.next=20;break;case 16:throw e.prev=16,e.t0=e.catch(2),a.error("push script error",b.E(e.t0)),e.t0;case 20:return e.abrupt("return",Promise.resolve());case 21:case"end":return e.stop()}}),e,this,[[2,16]])}))),function(e,t){return l.apply(this,arguments)})},{key:"pullScript",value:(c=(0,w.Z)(O().mark((function e(t,r,n){var a,s,o,i,c,u,l;return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a=this.logger.with({scriptId:(null==n?void 0:n.id)||-1,name:(null==n?void 0:n.name)||"",file:r.script.name}),e.prev=1,e.next=4,t.open(r.script);case 4:return s=e.sent,e.next=7,s.read("string");case 7:return o=e.sent,e.next=10,t.open(r.meta);case 10:return i=e.sent,e.next=13,i.read("string");case 13:return c=e.sent,u=JSON.parse(c),e.next=17,Me(o,(null==n?void 0:n.downloadUrl)||u.downloadUrl||"",(null==n?void 0:n.uuid)||u.uuid);case 17:(l=e.sent).origin=l.origin||u.origin,this.scriptManager.event.upsertHandler(l,"sync"),a.info("pull script success"),e.next=26;break;case 23:e.prev=23,e.t0=e.catch(1),a.error("pull script error",b.E(e.t0));case 26:return e.abrupt("return",Promise.resolve());case 27:case"end":return e.stop()}}),e,this,[[1,23]])}))),function(e,t,r){return c.apply(this,arguments)})},{key:"backup",value:(i=(0,w.Z)(O().mark((function e(t){var r;return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.getScriptBackupData();case 2:return e.t0=e.sent,e.t1=[],r={script:e.t0,subscribe:e.t1},e.next=7,new qn(t).export(r);case 7:case"end":return e.stop()}}),e,this)}))),function(e){return i.apply(this,arguments)})},{key:"getScriptBackupData",value:(r=(0,w.Z)(O().mark((function e(){var t,r,n=this;return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.scriptDAO.table.toArray();case 2:return t=e.sent,r=t.map(function(){var e=(0,w.Z)(O().mark((function e(t){return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",n.generateScriptBackupData(t));case 1:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()),e.abrupt("return",Promise.all(r));case 5:case"end":return e.stop()}}),e,this)}))),function(){return r.apply(this,arguments)})},{key:"generateScriptBackupData",value:(t=(0,w.Z)(O().mark((function e(t){var r,n,a,s,o,i;return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r={code:t.code,options:{options:this.scriptOption(t),settings:{enabled:t.status===$,position:t.sort},meta:{name:t.name,uuid:t.uuid,sc_uuid:t.uuid,modified:t.updatetime,file_url:t.downloadUrl,subscribe_url:t.subscribeUrl}},requires:[],requiresCss:[],resources:[]},n={data:{},ts:(new Date).getTime()},e.next=4,this.valueManager.getValues(t);case 4:return a=e.sent,Object.keys(a).forEach((function(e){n.data[e]=a[e].value})),e.next=8,this.resourceManager.getRequireResource(t);case 8:return s=e.sent,e.next=11,this.resourceManager.getRequireCssResource(t);case 11:return o=e.sent,e.next=14,this.resourceManager.getResourceResource(t);case 14:return i=e.sent,r.requires=this.resourceToBackdata(s),r.requiresCss=this.resourceToBackdata(o),r.resources=this.resourceToBackdata(i),r.storage=n,e.abrupt("return",Promise.resolve(r));case 20:case"end":return e.stop()}}),e,this)}))),function(e){return t.apply(this,arguments)})},{key:"resourceToBackdata",value:function(e){var t=this,r=[];return Object.keys(e).forEach((function(n){r.push({meta:{name:t.getUrlName(e[n].url),url:e[n].url,ts:e[n].updatetime||e[n].createtime,mimetype:e[n].contentType},source:e[n].content||void 0,base64:e[n].base64})})),r}},{key:"getUrlName",value:function(e){var t=e.indexOf("?");return-1!==t&&(e=e.substring(0,t)),-1!==(t=e.lastIndexOf("/"))&&(e=e.substring(t+1)),e}},{key:"scriptOption",value:function(e){return{check_for_updates:!1,comment:null,compat_foreach:!1,compat_metadata:!1,compat_prototypes:!1,compat_wrappedjsobject:!1,compatopts_for_requires:!0,noframes:null,override:{merge_connects:!0,merge_excludes:!0,merge_includes:!0,merge_matches:!0,orig_connects:e.metadata.connect||[],orig_excludes:e.metadata.exclude||[],orig_includes:e.metadata.include||[],orig_matches:e.metadata.match||[],orig_noframes:!!e.metadata.noframe||null,orig_run_at:e.metadata.run_at&&e.metadata.run_at[0]||"document-idle",use_blockers:[],use_connects:[],use_excludes:[],use_includes:[],use_matches:[]},run_at:null}}}]),g}(Ae))||Hn;function Qn(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=(0,c.Z)(e);if(t){var a=(0,c.Z)(this).constructor;r=Reflect.construct(n,arguments,a)}else r=n.apply(this,arguments);return(0,i.Z)(this,r)}}var Xn=B.Singleton(S,xt,pt)((Wn=function(e){(0,o.Z)(f,e);var t,r,i,c,l,p=Qn(f);function f(e,t,r){var a;return(0,n.Z)(this,f),a=p.call(this,e,"subscribe"),(0,u.Z)((0,s.Z)(a),"subscribeDAO",new ne),(0,u.Z)((0,s.Z)(a),"scriptDAO",new K),a.systemConfig=r,a.scriptManager=t,a}return(0,a.Z)(f,[{key:"start",value:function(){var e=this;this.listenEvent("upsert",this.upsertHandler.bind(this)),this.listenEvent("checkUpdate",(function(t){return e.checkUpdate(t,"user")})),this.listenEvent("delete",this.deleteHandler.bind(this)),f.hook.addListener("upsert",this.upsertScript.bind(this)),setInterval((function(){e.systemConfig.checkScriptUpdateCycle&&(e.logger.debug("start check update"),e.subscribeDAO.table.where("checktime").belowOrEqual((new Date).getTime()-1e3*e.systemConfig.checkScriptUpdateCycle).toArray().then((function(t){t.forEach((function(t){(e.systemConfig.updateDisableScript||t.status!==re)&&e.checkUpdate(t.id,"system")}))})))}),6e5)}},{key:"upsertHandler",value:(l=(0,w.Z)(O().mark((function e(t,r){var n;return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=this.logger.with({subscribeId:t.id,name:t.name}),e.prev=1,e.next=4,this.subscribeDAO.save(t);case 4:return n.info("upsert subscribe success"),f.hook.trigger("upsert",t,r),e.abrupt("return",Promise.resolve(t.id));case 9:return e.prev=9,e.t0=e.catch(1),n.error("upsert subscribe error",b.E(e.t0)),e.abrupt("return",Promise.reject(e.t0));case 13:case"end":return e.stop()}}),e,this,[[1,9]])}))),function(e,t){return l.apply(this,arguments)})},{key:"deleteHandler",value:(c=(0,w.Z)(O().mark((function e(t){var r,n,a=this;return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=this.logger.with({subscribeId:t}),e.next=3,this.subscribeDAO.findById(t);case 3:if(n=e.sent){e.next=7;break}return r.warn("subscribe not found"),e.abrupt("return",Promise.resolve(!1));case 7:return e.next=9,this.scriptDAO.table.where("subscribeUrl").equals(n.url).toArray();case 9:return e.sent.forEach((function(e){a.scriptManager.event.deleteHandler(e.id)})),e.next=13,this.subscribeDAO.delete(t);case 13:return r.info("delete subscribe success"),e.abrupt("return",Promise.resolve(!0));case 15:case"end":return e.stop()}}),e,this)}))),function(e){return c.apply(this,arguments)})},{key:"checkUpdate",value:(i=(0,w.Z)(O().mark((function e(t,r){var n,a,s,o,i,c;return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.subscribeDAO.findById(t);case 2:if(n=e.sent){e.next=5;break}return e.abrupt("return",Promise.resolve(!1));case 5:return a=this.logger.with({subscribeId:n.id,name:n.name}),this.subscribeDAO.update(t,{checktime:(new Date).getTime()}),e.prev=7,e.next=10,ke(n.url,r,!1,n.url);case 10:if(s=e.sent,o=s.metadata){e.next=15;break}return a.error("parse metadata failed"),e.abrupt("return",Promise.resolve(!1));case 15:if(i=o.version&&o.version[0]){e.next=19;break}return a.error("parse version failed",{version:o.version[0]}),e.abrupt("return",Promise.resolve(!1));case 19:if((c=n.metadata.version&&n.metadata.version[0])||(c="0.0.0"),!he(i,c,a)){e.next=23;break}return e.abrupt("return",Promise.resolve(!1));case 23:return this.openUpdatePage(s),e.abrupt("return",Promise.resolve(!0));case 27:return e.prev=27,e.t0=e.catch(7),a.error("check update failed",b.E(e.t0)),e.abrupt("return",Promise.resolve(!1));case 31:case"end":return e.stop()}}),e,this,[[7,27]])}))),function(e,t){return i.apply(this,arguments)})},{key:"openUpdatePage",value:(r=(0,w.Z)(O().mark((function e(t){var r,n;return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=this.logger.with({url:t.url}),!this.systemConfig.silenceUpdateScript){e.next=15;break}return e.prev=2,e.next=5,_e(t.code,t.url);case 5:if(!me((n=e.sent).oldSubscribe.metadata,n.metadata)){e.next=10;break}return r.info("silence update subscribe"),this.upsertHandler(n),e.abrupt("return");case 10:e.next=15;break;case 12:e.prev=12,e.t0=e.catch(2),r.error("prepare script failed",b.E(e.t0));case 15:W.getInstance().set(Ie.scriptInfo(t.uuid),t),chrome.tabs.create({url:"/src/install.html?uuid=".concat(t.uuid)});case 17:case"end":return e.stop()}}),e,this,[[2,12]])}))),function(e){return r.apply(this,arguments)})},{key:"upsertScript",value:(t=(0,w.Z)(O().mark((function e(t){var r,n,a,s,o,i,c,u=this;return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=this.logger.with({subscribeId:t.id,name:t.name}),n=[],a=[],s=t.metadata.scripturl||[],o=Object.keys(t.scripts),s.forEach((function(e){o.includes(e)||n.push(e)})),o.forEach((function(e){s.includes(e)||a.push(t.scripts[e])})),i=[[],[]],c=[],n.forEach((function(e){c.push((0,w.Z)(O().mark((function r(){var n;return O().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.next=2,u.scriptManager.installByUrl(e,"subscribe",t.url);case 2:return n=r.sent,t.scripts[e]={url:e,uuid:n.uuid},i[0].push(n.name),r.abrupt("return",Promise.resolve(!0));case 6:case"end":return r.stop()}}),r)})))())})),a.forEach((function(e){c.push((0,w.Z)(O().mark((function t(){var r;return O().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,u.scriptDAO.findByUUID(e.uuid);case 2:return(r=t.sent)&&(i[1].push(r.name),u.scriptManager.event.deleteHandler(r.id)),t.abrupt("return",Promise.resolve(!0));case 5:case"end":return t.stop()}}),t)})))())})),e.next=13,Promise.allSettled(c);case 13:return fe("订阅更新","安装了:".concat(i[0].join(","),"\n删除了:").concat(i[1].join("\n"))),r.info("subscribe update",{install:i[0],update:i[1]}),e.abrupt("return",Promise.resolve(!0));case 16:case"end":return e.stop()}}),e,this)}))),function(e){return t.apply(this,arguments)})}]),f}(Ae),(0,u.Z)(Wn,"hook",new d),Jn=Wn))||Jn;E.version(1).stores({scripts:"++id,&uuid,name,namespace,author,origin_domain,type,status,createtime,updatetime,checktime"}),E.version(2).stores({logger:"++id,level,origin,createtime",permission:"++id,[scriptId+permission+permissionValue],createtime,updatetime"}),E.version(3).stores({logger:"++id,level,title,origin,createtime"}),E.version(4).stores({value:"++id,scriptId,namespace,key,createtime"}),E.version(5).stores({logger:"++id,level,origin,createtime,title,[origin+title],[level+origin+title]"}),E.version(6).stores({scripts:"++id,&uuid,name,namespace,author,origin_domain,type,status,runStatus,createtime,updatetime,checktime"}),E.version(7).stores({resource:"++id,&url,content,type,createtime,updatetime",resourceLink:"++id,url,scriptId,createtime"}),E.version(8).stores({logger:"++id,level,origin,createtime"}),E.version(9).stores({logger:"++id,level,scriptId,origin,createtime"}),E.version(10).stores({scripts:"++id,&uuid,name,namespace,author,origin_domain,type,sort,status,runStatus,createtime,updatetime,checktime"}).upgrade((function(e){return e.table("scripts").toCollection().modify((function(e){e.sort=0}))})),E.version(11).stores({export:"++id,&uuid,scriptId"}),E.version(12).stores({value:"++id,scriptId,storageName,key,createtime"}).upgrade((function(e){e.table("value").toCollection().modify((function(e){e.namespace&&(e.storageName=e.namespace,delete e.namespace)}))})),E.version(13).stores({subscribe:"++id,&url,createtime,updatetime,checktime",scripts:"++id,&uuid,name,namespace,author,origin_domain,subscribeUrl,type,sort,status,runStatus,createtime,updatetime,checktime",sync:"++id,&key,[user+device+type],createtime"}),E.version(14).stores({value:"++id,[scriptId+key],[storageName+key]"}),E.version(15).stores({permission:"++id,scriptId,[scriptId+permission+permissionValue],createtime,updatetime"}),E.version(16).stores({scripts:"++id,&uuid,name,namespace,author,originDomain,subscribeUrl,type,sort,status,runStatus,createtime,updatetime,checktime",logger:"++id,level,createtime"}).upgrade(function(){var e=(0,w.Z)(O().mark((function e(t){return O().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t.table("export").clear();case 2:return e.abrupt("return",t.table("scripts").toCollection().modify((function(e){e.origin_domain&&(e.originDomain=e.origin_domain),e.checkupdate_url&&(e.checkUpdateUrl=e.checkupdate_url),e.download_url&&(e.downloadUrl=e.download_url)})));case 3:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()),E.version(17).stores({export:"++id,&scriptId"}),new k({debug:!1,writer:new D(new G),labels:{env:"background"}}).logger().debug("background start");var $n=new C;$n.start(),B.registerInstance(C,$n).alias([S,M]),function(e,t){t.setHandler("log",(function(t,r){e.save(r)}))}(new G,$n),B.instance(pt).init(),B.instance(Gn).init();var Kn=new He($n),ea=new It($n,$n),ta=new Tn($n,Kn,ea);B.registerInstance(Tn,ta),ta.start(),ea.start(),Kn.start(),B.instance(xt).start(),B.instance(Xn).start(),B.instance(Yn).start(),window.onload=function(){var e=new j(sandbox);ta.startSandbox(e),$n.setSandbox(sandbox)},$n.setHandler("sandboxOnload",(function(){return Promise.resolve(!0)})),new Cn($n,new Wr).start()},43914:(e,t,r)=>{var n={"./align-attributes.js":2672,"./better-use-match.js":82162,"./compat-grant.js":45644,"./compat-headers.js":73285,"./filename-user.js":18039,"./metadata-spacing.js":39877,"./no-invalid-grant.js":20070,"./no-invalid-headers.js":18754,"./no-invalid-metadata.js":91763,"./require-attribute-space-prefix.js":14350,"./require-description.js":70230,"./require-name.js":18295,"./require-version.js":43880,"./use-download-and-update-url.js":52215,"./use-homepage-and-url.js":11933};function a(e){var t=s(e);return r(t)}function s(e){if(!r.o(n,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return n[e]}a.keys=function(){return Object.keys(n)},a.resolve=s,e.exports=a,a.id=43914},42480:()=>{}},r={};function n(e){var a=r[e];if(void 0!==a)return a.exports;var s=r[e]={id:e,loaded:!1,exports:{}};return t[e].call(s.exports,s,s.exports,n),s.loaded=!0,s.exports}n.m=t,e=[],n.O=(t,r,a,s)=>{if(!r){var o=1/0;for(l=0;l<e.length;l++){for(var[r,a,s]=e[l],i=!0,c=0;c<r.length;c++)(!1&s||o>=s)&&Object.keys(n.O).every((e=>n.O[e](r[c])))?r.splice(c--,1):(i=!1,s<o&&(o=s));if(i){e.splice(l--,1);var u=a();void 0!==u&&(t=u)}}return t}s=s||0;for(var l=e.length;l>0&&e[l-1][2]>s;l--)e[l]=e[l-1];e[l]=[r,a,s]},n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),n.j=352,(()=>{var e={352:0};n.O.j=t=>0===e[t];var t=(t,r)=>{var a,s,[o,i,c]=r,u=0;if(o.some((t=>0!==e[t]))){for(a in i)n.o(i,a)&&(n.m[a]=i[a]);if(c)var l=c(n)}for(t&&t(r);u<o.length;u++)s=o[u],n.o(e,s)&&e[s]&&e[s][0](),e[s]=0;return n.O(l)},r=self.webpackChunkscriptcat=self.webpackChunkscriptcat||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})(),n.nc=void 0;var a=n.O(void 0,[79,127,30],(()=>n(23771)));a=n.O(a)})();