diff --git a/config-overrides.js b/config-overrides.js index 51727d3..dbefd65 100644 --- a/config-overrides.js +++ b/config-overrides.js @@ -28,7 +28,7 @@ const extWebpack = (config, env) => { ]; config.entry = { - popup: paths.appIndexJs, + popup: paths.appSrc + "/popup.js", options: paths.appSrc + "/options.js", background: paths.appSrc + "/background.js", content: paths.appSrc + "/content.js", @@ -51,13 +51,6 @@ const extWebpack = (config, env) => { filename: "options.html", minify, }), - new HtmlWebpackPlugin({ - inject: true, - chunks: ["content"], - template: paths.appPublic + "/content.html", - filename: "content.html", - minify, - }), new HtmlWebpackPlugin({ inject: true, chunks: ["popup"], @@ -107,40 +100,19 @@ const userscriptWebpack = (config, env) => { `; - config.entry = paths.appSrc + "/userscript.js"; - config.output.filename = "kiss-translator.user.js"; - config.optimization.splitChunks = { cacheGroups: { default: false } }; - config.optimization.runtimeChunk = false; - config.optimization.minimize = false; - - config.plugins.push( - new webpack.BannerPlugin({ - banner, - raw: true, - entryOnly: true, - }) - ); - - return config; -}; - -// 文档 -const webWebpack = (config, env) => { const names = ["HtmlWebpackPlugin"]; config.entry = { - main: paths.appSrc + "/userscriptIndex.js", - options: - paths.appSrc + - (env === "development" ? "/options.js" : "/userscriptOptions.js"), + main: paths.appIndexJs, + options: paths.appSrc + "/options.js", + "kiss-translator.user": paths.appSrc + "/userscript.js", }; - if (env === "development") { - config.entry.content = paths.appSrc + "/userscript.js"; - } - config.output.filename = "[name].js"; - config.output.publicPath = env === "development" ? "/" : "./"; + config.output.publicPath = "./"; + config.optimization.splitChunks = { cacheGroups: { default: false } }; + config.optimization.runtimeChunk = false; + config.optimization.minimize = false; config.plugins = config.plugins.filter( (plugin) => !names.includes(plugin.constructor.name) @@ -158,19 +130,55 @@ const webWebpack = (config, env) => { chunks: ["options"], template: paths.appHtml, filename: "options.html", + }), + new webpack.BannerPlugin({ + banner, + raw: true, + entryOnly: true, + include: "kiss-translator.user", }) ); - if (env === "development") { - config.plugins.push( - new HtmlWebpackPlugin({ - inject: true, - chunks: ["content"], - template: paths.appPublic + "/content.html", - filename: "content.html", - }) - ); - } + return config; +}; + +// 文档 +const webWebpack = (config, env) => { + const names = ["HtmlWebpackPlugin"]; + + config.entry = { + main: paths.appIndexJs, + options: paths.appSrc + "/options.js", + content: paths.appSrc + "/userscript.js", + }; + + config.output.filename = "[name].js"; + config.output.publicPath = "/"; + + config.plugins = config.plugins.filter( + (plugin) => !names.includes(plugin.constructor.name) + ); + + config.plugins.push( + new HtmlWebpackPlugin({ + inject: true, + chunks: ["main"], + template: paths.appHtml, + filename: "index.html", + }), + new HtmlWebpackPlugin({ + inject: true, + chunks: ["options"], + template: paths.appHtml, + filename: "options.html", + }), + new HtmlWebpackPlugin({ + inject: true, + chunks: ["content"], + template: paths.appPublic + "/content.html", + filename: "content.html", + }) + ); return config; }; diff --git a/dist/chrome/asset-manifest.json b/dist/chrome/asset-manifest.json index 44b0ff6..ce13962 100644 --- a/dist/chrome/asset-manifest.json +++ b/dist/chrome/asset-manifest.json @@ -3,7 +3,6 @@ "options.js": "/options.js", "background.js": "/background.js", "content.js": "/content.js", - "content.html": "/content.html", "options.html": "/options.html", "popup.html": "/popup.html" } \ No newline at end of file diff --git a/dist/chrome/background.js b/dist/chrome/background.js index b75616b..3c2e2ba 100644 --- a/dist/chrome/background.js +++ b/dist/chrome/background.js @@ -1,2 +1,2 @@ /*! For license information please see background.js.LICENSE.txt */ -!function(){var e={930:function(e,t,r){var n,o,a,s=r(861).default,i=r(6690).default,c=r(9728).default,u=r(1588).default,l=r(3808).default,p=r(1655).default,g=r(6389).default,f=r(3496).default;"undefined"!==typeof globalThis?globalThis:"undefined"!==typeof self&&self,o=[e],n=function(e){"use strict";var t,r;if(null===(t=globalThis.chrome)||void 0===t||null===(r=t.runtime)||void 0===r||!r.id)throw new Error("This script should only be loaded in a browser extension.");if("undefined"===typeof globalThis.browser||Object.getPrototypeOf(globalThis.browser)!==Object.prototype){var n="The message port closed before a response was received.",o=function(e){var t={alarms:{clear:{minArgs:0,maxArgs:1},clearAll:{minArgs:0,maxArgs:0},get:{minArgs:0,maxArgs:1},getAll:{minArgs:0,maxArgs:0}},bookmarks:{create:{minArgs:1,maxArgs:1},get:{minArgs:1,maxArgs:1},getChildren:{minArgs:1,maxArgs:1},getRecent:{minArgs:1,maxArgs:1},getSubTree:{minArgs:1,maxArgs:1},getTree:{minArgs:0,maxArgs:0},move:{minArgs:2,maxArgs:2},remove:{minArgs:1,maxArgs:1},removeTree:{minArgs:1,maxArgs:1},search:{minArgs:1,maxArgs:1},update:{minArgs:2,maxArgs:2}},browserAction:{disable:{minArgs:0,maxArgs:1,fallbackToNoCallback:!0},enable:{minArgs:0,maxArgs:1,fallbackToNoCallback:!0},getBadgeBackgroundColor:{minArgs:1,maxArgs:1},getBadgeText:{minArgs:1,maxArgs:1},getPopup:{minArgs:1,maxArgs:1},getTitle:{minArgs:1,maxArgs:1},openPopup:{minArgs:0,maxArgs:0},setBadgeBackgroundColor:{minArgs:1,maxArgs:1,fallbackToNoCallback:!0},setBadgeText:{minArgs:1,maxArgs:1,fallbackToNoCallback:!0},setIcon:{minArgs:1,maxArgs:1},setPopup:{minArgs:1,maxArgs:1,fallbackToNoCallback:!0},setTitle:{minArgs:1,maxArgs:1,fallbackToNoCallback:!0}},browsingData:{remove:{minArgs:2,maxArgs:2},removeCache:{minArgs:1,maxArgs:1},removeCookies:{minArgs:1,maxArgs:1},removeDownloads:{minArgs:1,maxArgs:1},removeFormData:{minArgs:1,maxArgs:1},removeHistory:{minArgs:1,maxArgs:1},removeLocalStorage:{minArgs:1,maxArgs:1},removePasswords:{minArgs:1,maxArgs:1},removePluginData:{minArgs:1,maxArgs:1},settings:{minArgs:0,maxArgs:0}},commands:{getAll:{minArgs:0,maxArgs:0}},contextMenus:{remove:{minArgs:1,maxArgs:1},removeAll:{minArgs:0,maxArgs:0},update:{minArgs:2,maxArgs:2}},cookies:{get:{minArgs:1,maxArgs:1},getAll:{minArgs:1,maxArgs:1},getAllCookieStores:{minArgs:0,maxArgs:0},remove:{minArgs:1,maxArgs:1},set:{minArgs:1,maxArgs:1}},devtools:{inspectedWindow:{eval:{minArgs:1,maxArgs:2,singleCallbackArg:!1}},panels:{create:{minArgs:3,maxArgs:3,singleCallbackArg:!0},elements:{createSidebarPane:{minArgs:1,maxArgs:1}}}},downloads:{cancel:{minArgs:1,maxArgs:1},download:{minArgs:1,maxArgs:1},erase:{minArgs:1,maxArgs:1},getFileIcon:{minArgs:1,maxArgs:2},open:{minArgs:1,maxArgs:1,fallbackToNoCallback:!0},pause:{minArgs:1,maxArgs:1},removeFile:{minArgs:1,maxArgs:1},resume:{minArgs:1,maxArgs:1},search:{minArgs:1,maxArgs:1},show:{minArgs:1,maxArgs:1,fallbackToNoCallback:!0}},extension:{isAllowedFileSchemeAccess:{minArgs:0,maxArgs:0},isAllowedIncognitoAccess:{minArgs:0,maxArgs:0}},history:{addUrl:{minArgs:1,maxArgs:1},deleteAll:{minArgs:0,maxArgs:0},deleteRange:{minArgs:1,maxArgs:1},deleteUrl:{minArgs:1,maxArgs:1},getVisits:{minArgs:1,maxArgs:1},search:{minArgs:1,maxArgs:1}},i18n:{detectLanguage:{minArgs:1,maxArgs:1},getAcceptLanguages:{minArgs:0,maxArgs:0}},identity:{launchWebAuthFlow:{minArgs:1,maxArgs:1}},idle:{queryState:{minArgs:1,maxArgs:1}},management:{get:{minArgs:1,maxArgs:1},getAll:{minArgs:0,maxArgs:0},getSelf:{minArgs:0,maxArgs:0},setEnabled:{minArgs:2,maxArgs:2},uninstallSelf:{minArgs:0,maxArgs:1}},notifications:{clear:{minArgs:1,maxArgs:1},create:{minArgs:1,maxArgs:2},getAll:{minArgs:0,maxArgs:0},getPermissionLevel:{minArgs:0,maxArgs:0},update:{minArgs:2,maxArgs:2}},pageAction:{getPopup:{minArgs:1,maxArgs:1},getTitle:{minArgs:1,maxArgs:1},hide:{minArgs:1,maxArgs:1,fallbackToNoCallback:!0},setIcon:{minArgs:1,maxArgs:1},setPopup:{minArgs:1,maxArgs:1,fallbackToNoCallback:!0},setTitle:{minArgs:1,maxArgs:1,fallbackToNoCallback:!0},show:{minArgs:1,maxArgs:1,fallbackToNoCallback:!0}},permissions:{contains:{minArgs:1,maxArgs:1},getAll:{minArgs:0,maxArgs:0},remove:{minArgs:1,maxArgs:1},request:{minArgs:1,maxArgs:1}},runtime:{getBackgroundPage:{minArgs:0,maxArgs:0},getPlatformInfo:{minArgs:0,maxArgs:0},openOptionsPage:{minArgs:0,maxArgs:0},requestUpdateCheck:{minArgs:0,maxArgs:0},sendMessage:{minArgs:1,maxArgs:3},sendNativeMessage:{minArgs:2,maxArgs:2},setUninstallURL:{minArgs:1,maxArgs:1}},sessions:{getDevices:{minArgs:0,maxArgs:1},getRecentlyClosed:{minArgs:0,maxArgs:1},restore:{minArgs:0,maxArgs:1}},storage:{local:{clear:{minArgs:0,maxArgs:0},get:{minArgs:0,maxArgs:1},getBytesInUse:{minArgs:0,maxArgs:1},remove:{minArgs:1,maxArgs:1},set:{minArgs:1,maxArgs:1}},managed:{get:{minArgs:0,maxArgs:1},getBytesInUse:{minArgs:0,maxArgs:1}},sync:{clear:{minArgs:0,maxArgs:0},get:{minArgs:0,maxArgs:1},getBytesInUse:{minArgs:0,maxArgs:1},remove:{minArgs:1,maxArgs:1},set:{minArgs:1,maxArgs:1}}},tabs:{captureVisibleTab:{minArgs:0,maxArgs:2},create:{minArgs:1,maxArgs:1},detectLanguage:{minArgs:0,maxArgs:1},discard:{minArgs:0,maxArgs:1},duplicate:{minArgs:1,maxArgs:1},executeScript:{minArgs:1,maxArgs:2},get:{minArgs:1,maxArgs:1},getCurrent:{minArgs:0,maxArgs:0},getZoom:{minArgs:0,maxArgs:1},getZoomSettings:{minArgs:0,maxArgs:1},goBack:{minArgs:0,maxArgs:1},goForward:{minArgs:0,maxArgs:1},highlight:{minArgs:1,maxArgs:1},insertCSS:{minArgs:1,maxArgs:2},move:{minArgs:2,maxArgs:2},query:{minArgs:1,maxArgs:1},reload:{minArgs:0,maxArgs:2},remove:{minArgs:1,maxArgs:1},removeCSS:{minArgs:1,maxArgs:2},sendMessage:{minArgs:2,maxArgs:3},setZoom:{minArgs:1,maxArgs:2},setZoomSettings:{minArgs:1,maxArgs:2},update:{minArgs:1,maxArgs:2}},topSites:{get:{minArgs:0,maxArgs:0}},webNavigation:{getAllFrames:{minArgs:1,maxArgs:1},getFrame:{minArgs:1,maxArgs:1}},webRequest:{handlerBehaviorChanged:{minArgs:0,maxArgs:0}},windows:{create:{minArgs:0,maxArgs:1},get:{minArgs:1,maxArgs:2},getAll:{minArgs:0,maxArgs:1},getCurrent:{minArgs:0,maxArgs:1},getLastFocused:{minArgs:0,maxArgs:1},remove:{minArgs:1,maxArgs:1},update:{minArgs:2,maxArgs:2}}};if(0===Object.keys(t).length)throw new Error("api-metadata.json has not been included in browser-polyfill");var r=function(e){p(r,e);var t=g(r);function r(e){var n,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0;return i(this,r),(n=t.call(this,o)).createItem=e,n}return c(r,[{key:"get",value:function(e){return this.has(e)||this.set(e,this.createItem(e)),u(l(r.prototype),"get",this).call(this,e)}}]),r}(f(WeakMap)),o=function(e){return e&&"object"===typeof e&&"function"===typeof e.then},a=function(t,r){return function(){for(var n=arguments.length,o=new Array(n),a=0;a1?n-1:0),s=1;st.maxArgs)throw new Error("Expected at most ".concat(t.maxArgs," ").concat(m(t.maxArgs)," for ").concat(e,"(), got ").concat(o.length));return new Promise((function(n,s){if(t.fallbackToNoCallback)try{r[e].apply(r,o.concat([a({resolve:n,reject:s},t)]))}catch(i){console.warn("".concat(e," API method doesn't seem to support the callback parameter, ")+"falling back to call it without a callback: ",i),r[e].apply(r,o),t.fallbackToNoCallback=!1,t.noCallback=!0,n()}else t.noCallback?(r[e].apply(r,o),n()):r[e].apply(r,o.concat([a({resolve:n,reject:s},t)]))}))}},x=function(e,t,r){return new Proxy(t,{apply:function(t,n,o){return r.call.apply(r,[n,e].concat(s(o)))}})},h=Function.call.bind(Object.prototype.hasOwnProperty),A=function e(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=Object.create(null),a={has:function(e,r){return r in t||r in o},get:function(a,s,i){if(s in o)return o[s];if(s in t){var c=t[s];if("function"===typeof c)if("function"===typeof r[s])c=x(t,t[s],r[s]);else if(h(n,s)){var u=d(s,n[s]);c=x(t,t[s],u)}else c=c.bind(t);else if("object"===typeof c&&null!==c&&(h(r,s)||h(n,s)))c=e(c,r[s],n[s]);else{if(!h(n,"*"))return Object.defineProperty(o,s,{configurable:!0,enumerable:!0,get:function(){return t[s]},set:function(e){t[s]=e}}),c;c=e(c,r[s],n["*"])}return o[s]=c,c}},set:function(e,r,n,a){return r in o?o[r]=n:t[r]=n,!0},defineProperty:function(e,t,r){return Reflect.defineProperty(o,t,r)},deleteProperty:function(e,t){return Reflect.deleteProperty(o,t)}},s=Object.create(t);return new Proxy(s,a)},y=function(e){return{addListener:function(t,r){for(var n=arguments.length,o=new Array(n>2?n-2:0),a=2;a3?n-3:0),a=3;at.maxArgs)throw new Error("Expected at most ".concat(t.maxArgs," ").concat(m(t.maxArgs)," for ").concat(e,"(), got ").concat(o.length));return new Promise((function(e,t){var n=w.bind(null,{resolve:e,reject:t});o.push(n),r.sendMessage.apply(r,o)}))},_={devtools:{network:{onRequestFinished:y(v)}},runtime:{onMessage:y(b),onMessageExternal:y(b),sendMessage:k.bind(null,"sendMessage",{minArgs:1,maxArgs:3})},tabs:{sendMessage:k.bind(null,"sendMessage",{minArgs:2,maxArgs:3})}},S={clear:{minArgs:1,maxArgs:1},get:{minArgs:1,maxArgs:1},set:{minArgs:1,maxArgs:1}};return t.privacy={network:{"*":S},services:{"*":S},websites:{"*":S}},A(e,_,t)};e.exports=o(chrome)}else e.exports=globalThis.browser},void 0===(a="function"===typeof n?n.apply(t,o):n)||(e.exports=a)},3897:function(e){e.exports=function(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r=0;--n){var a=this.tryEntries[n],s=a.completion;if("root"===a.tryLoc)return r("end");if(a.tryLoc<=this.prev){var i=o.call(a,"catchLoc"),c=o.call(a,"finallyLoc");if(i&&c){if(this.prev=0;--r){var n=this.tryEntries[r];if(n.tryLoc<=this.prev&&o.call(n,"finallyLoc")&&this.prev=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),j(r),f}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var o=n.arg;j(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,r){return this.delegate={iterator:E(e),resultName:t,nextLoc:r},"next"===this.method&&(this.arg=void 0),f}},r}function n(e,t,r,n,o,a,s){try{var i=e[a](s),c=i.value}catch(u){return void r(u)}i.done?t(c):Promise.resolve(c).then(n,o)}function o(e){return function(){var t=this,r=arguments;return new Promise((function(o,a){var s=e.apply(t,r);function i(e){n(s,o,a,i,c,"next",e)}function c(e){n(s,o,a,i,c,"throw",e)}i(void 0)}))}}var a=r(930),s=r.n(a);function i(t){var r=function(t,r){if("object"!==e(t)||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var o=n.call(t,r||"default");if("object"!==e(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===r?String:Number)(t)}(t,"string");return"symbol"===e(r)?r:String(r)}function c(e,t,r){return(t=i(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function u(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 l(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=new Array(t);rspan>span"},{pattern:"www.google.com",selector:'h3, .IsZvec, [data-sncf="1"]'}],y=("\u8bf7 [\u70b9\u51fb\u8fd9\u91cc](".concat("https://github.com/fishjar/kiss-translator",") \u67e5\u770b\u8be6\u60c5\u3002"),"Please [click here](".concat("https://github.com/fishjar/kiss-translator",") for details."),"KISS Translator".trim().split(/\s+/).join("-")),v=(y.toLowerCase(),"".concat(y,"_msauth"),"".concat(y,"_setting")),b="".concat(y,"_rules"),w="".concat(y,"_sync"),k="*",_=["chrome","edge","firefox"],S="".concat(y,"_cache"),j="fetch",O="Microsoft",E="OpenAI",M=[["auto","Auto-detect"]].concat([["en","English - English"],["zh-CN","Simplified Chinese - \u7b80\u4f53\u4e2d\u6587"],["zh-TW","Traditional Chinese - \u7e41\u9ad4\u4e2d\u6587"],["ar","Arabic - \u0627\u0644\u0639\u0631\u0628\u064a\u0629"],["bg","Bulgarian - \u0411\u044a\u043b\u0433\u0430\u0440\u0441\u043a\u0438"],["ca","Catalan - Catal\xe0"],["hr","Croatian - Hrvatski"],["cs","Czech - \u010ce\u0161tina"],["da","Danish - Dansk"],["nl","Dutch - Nederlands"],["fi","Finnish - Suomi"],["fr","French - Fran\xe7ais"],["de","German - Deutsch"],["el","Greek - \u0395\u03bb\u03bb\u03b7\u03bd\u03b9\u03ba\u03ac"],["hi","Hindi - \u0939\u093f\u0928\u094d\u0926\u0940"],["hu","Hungarian - Magyar"],["id","Indonesian - Indonesia"],["it","Italian - Italiano"],["ja","Japanese - \u65e5\u672c\u8a9e"],["ko","Korean - \ud55c\uad6d\uc5b4"],["ms","Malay - Melayu"],["mt","Maltese - Malti"],["nb","Norwegian - Norsk Bokm\xe5l"],["pl","Polish - Polski"],["pt","Portuguese - Portugu\xeas"],["ro","Romanian - Rom\xe2n\u0103"],["ru","Russian - \u0420\u0443\u0441\u0441\u043a\u0438\u0439"],["sk","Slovak - Sloven\u010dina"],["sl","Slovenian - Sloven\u0161\u010dina"],["es","Spanish - Espa\xf1ol"],["sv","Swedish - Svenska"],["ta","Tamil - \u0ba4\u0bae\u0bbf\u0bb4\u0bcd"],["te","Telugu - \u0c24\u0c46\u0c32\u0c41\u0c17\u0c41"],["th","Thai - \u0e44\u0e17\u0e22"],["tr","Turkish - T\xfcrk\xe7e"],["uk","Ukrainian - \u0423\u043a\u0440\u0430\u0457\u043d\u0441\u044c\u043a\u0430"],["vi","Vietnamese - Ti\u1ebfng Vi\u1ec7t"]]),P=(c(m={},O,new Map([["auto",""],["zh-CN","zh-Hans"],["zh-TW","zh-Hant"]])),c(m,E,new Map(M.map((function(e){var t=f(e,2);return[t[0],t[1].split(" - ")[0]]})))),"dash_line"),T={pattern:"*",selector:h,translator:O,fromLang:"auto",toLang:"zh-CN",textStyle:P,transOpen:"false",bgColor:""},C={pattern:"",selector:"",translator:k,fromLang:k,toLang:k,textStyle:k,transOpen:k,bgColor:""},L={darkMode:!1,uiLang:"zh",fetchLimit:10,fetchInterval:100,clearCache:!1,googleUrl:"https://translate.googleapis.com/translate_a/single",openaiUrl:"https://api.openai.com/v1/chat/completions",openaiKey:"",openaiModel:"gpt-4",openaiPrompt:"You will be provided with a sentence in ".concat("{{from}}",", and your task is to translate it into ").concat("{{to}}",".")},I=[].concat(function(e){if(Array.isArray(e))return p(e)}(d=A.map((function(e){return l(l(l({},C),e),{},{transOpen:"true"})})))||function(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(d)||g(d)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),[T]),N={syncUrl:"",syncKey:"",settingUpdateAt:0,settingSyncAt:0,rulesUpdateAt:0,rulesSyncAt:0};var R=function(){try{return r(930)}catch(e){}}(),G="chrome",U=_.includes(G),F=!1;function V(e,t){return B.apply(this,arguments)}function B(){return(B=o(t().mark((function e(r,n){var o,a;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!U){e.next=5;break}return e.next=3,R.storage.local.set(c({},r,n));case 3:e.next=17;break;case 5:if(!F){e.next=14;break}return e.next=8,(window.GM_getValue||window.GM.getValue)(r);case 8:return o=e.sent,e.next=11,(window.GM_setValue||window.GM.setValue)(r,n);case 11:window.dispatchEvent(new StorageEvent("storage",{key:r,oldValue:o,newValue:n})),e.next=17;break;case 14:a=window.localStorage.getItem(r),window.localStorage.setItem(r,n),window.dispatchEvent(new StorageEvent("storage",{key:r,oldValue:a,newValue:n}));case 17:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function D(e){return z.apply(this,arguments)}function z(){return(z=o(t().mark((function e(r){var n,o;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!U){e.next=7;break}return e.next=3,R.storage.local.get([r]);case 3:return n=e.sent,e.abrupt("return",n[r]);case 7:if(!F){e.next=12;break}return e.next=10,(window.GM_getValue||window.GM.getValue)(r);case 10:return o=e.sent,e.abrupt("return",o);case 12:return e.abrupt("return",window.localStorage.getItem(r));case 13:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function q(){return(q=o(t().mark((function e(r){var n,o;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!U){e.next=5;break}return e.next=3,R.storage.local.remove([r]);case 3:e.next=17;break;case 5:if(!F){e.next=14;break}return e.next=8,(window.GM_getValue||window.GM.getValue)(r);case 8:return n=e.sent,e.next=11,(window.GM_deleteValue||window.GM.deleteValue)(r);case 11:window.dispatchEvent(new StorageEvent("storage",{key:r,oldValue:n,newValue:null})),e.next=17;break;case 14:o=window.localStorage.getItem(r),window.localStorage.removeItem(r),window.dispatchEvent(new StorageEvent("storage",{key:r,oldValue:o,newValue:null}));case 17:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function K(e,t){return H.apply(this,arguments)}function H(){return(H=o(t().mark((function e(r,n){return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,V(r,JSON.stringify(n));case 2:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function W(){return(W=o(t().mark((function e(r,n){return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,D(r);case 2:if(e.sent){e.next=5;break}return e.next=5,K(r,n);case 5:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Z(e){return J.apply(this,arguments)}function J(){return(J=o(t().mark((function e(r){var n;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,D(r);case 2:return n=e.sent,e.abrupt("return",n&&JSON.parse(n));case 4:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Y(){return(Y=o(t().mark((function e(r,n){var o,a;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Z(r);case 2:if(e.t1=o=e.sent,e.t0=null!==e.t1,!e.t0){e.next=6;break}e.t0=void 0!==o;case 6:if(!e.t0){e.next=10;break}e.t2=o,e.next=11;break;case 10:e.t2={};case 11:return a=e.t2,e.next=14,K(r,l(l({},a),n));case 14:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var $={get:D,set:V,del:function(e){return q.apply(this,arguments)},setObj:K,trySetObj:function(e,t){return W.apply(this,arguments)},getObj:Z,putObj:function(e,t){return Y.apply(this,arguments)},onChanged:function(e){U?R.storage.onChanged.addListener(e):window.addEventListener("storage",e)}},X=$,Q=function(){var e=o(t().mark((function e(){return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.t0=l,e.t1=l({},L),e.next=4,X.getObj(v);case 4:if(e.t2=e.sent,e.t2){e.next=7;break}e.t2={};case 7:return e.t3=e.t2,e.abrupt("return",(0,e.t0)(e.t1,e.t3));case 9:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),ee=function(){var e=o(t().mark((function e(){return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,X.getObj(b);case 2:if(e.t0=e.sent,e.t0){e.next=5;break}e.t0=[];case 5:return e.abrupt("return",e.t0);case 6:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),te="%[a-f0-9]{2}";new RegExp("("+te+")|([^%]+?)","gi"),new RegExp("("+te+")+","gi");Symbol("encodeFragmentIdentifier");var re=function(e,t){var r;return null===R||void 0===R||null===(r=R.runtime)||void 0===r?void 0:r.sendMessage({action:e,args:t})},ne=function(){var e=o(t().mark((function e(r){var n,o,a,s,i,c=arguments;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o=(n=c.length>1&&void 0!==c[1]?c[1]:{}).method,a=void 0===o?"GET":o,s=n.headers,i=n.body,e.abrupt("return",new Promise((function(e,t){try{(window.GM_xmlhttpRequest||window.GM.xmlhttpRequest)({method:a,url:r,headers:s,data:i,onload:function(r){if(200===r.status){var n=new Headers;r.responseHeaders.split("\n").forEach((function(e){var t=f(e.split(":").map((function(e){return e.trim()})),2),r=t[0],o=t[1];r&&o&&n.append(r,o)})),e(new Response(r.response,{headers:n}))}else t(new Error("[".concat(r.status,"] ").concat(r.responseText)))},onerror:t})}catch(n){t(n)}})));case 2:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),oe=function(){var e=o(t().mark((function e(r,n){var o,a;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n===O?r.headers.delete("Authorization"):n===E&&(r.headers.delete("Authorization"),r.headers.delete("api-key")),"GET"===r.method){e.next=8;break}return e.next=4,r.text();case 4:o=e.sent,(a=new URL(r.url)).pathname+=o,r=new Request(a.toString(),{method:"GET"});case 8:return e.abrupt("return",r);case 9:case"end":return e.stop()}}),e)})));return function(t,r){return e.apply(this,arguments)}}(),ae=function(){var e=o(t().mark((function e(r,n){var o,a,s,i,c,u,l,p,g=arguments;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return s=(a=g.length>2&&void 0!==g[2]?g[2]:{}).useCache,i=a.translator,e.next=3,oe(new Request(r,n),i);case 3:return c=e.sent,e.next=6,caches.open(S);case 6:if(u=e.sent,!s){e.next=17;break}return e.prev=8,e.next=11,u.match(c);case 11:l=e.sent,e.next=17;break;case 14:e.prev=14,e.t0=e.catch(8),console.log("[cache match]",e.t0);case 17:if(l){e.next=27;break}if(!F){e.next=24;break}return e.next=21,ne(r,n);case 21:l=e.sent,e.next=27;break;case 24:return e.next=26,fetch(r,n);case 26:l=e.sent;case 27:if(null!==(o=l)&&void 0!==o&&o.ok){e.next=29;break}throw new Error("response: ".concat(l.statusText));case 29:if(!s){e.next=38;break}return e.prev=30,e.next=33,u.put(c,l.clone());case 33:e.next=38;break;case 35:e.prev=35,e.t1=e.catch(30),console.log("[cache put]",e.t1);case 38:if(null===(p=l.headers.get("Content-Type"))||void 0===p||!p.includes("json")){e.next=43;break}return e.next=42,l.json();case 42:return e.abrupt("return",e.sent);case 43:return e.next=45,l.text();case 45:return e.abrupt("return",e.sent);case 46:case"end":return e.stop()}}),e,null,[[8,14],[30,35]])})));return function(t,r){return e.apply(this,arguments)}}(),se=function(){var e=o(t().mark((function e(r,n,o){var a;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!U){e.next=7;break}return e.next=3,re(j,{input:r,init:n,opts:o});case 3:if(!(a=e.sent).error){e.next=6;break}throw new Error(a.error);case 6:return e.abrupt("return",a.data);case 7:return e.next=9,ae(r,n,o);case 9:return e.abrupt("return",e.sent);case 10:case"end":return e.stop()}}),e)})));return function(t,r,n){return e.apply(this,arguments)}}(),ie=function(){var e=o(t().mark((function e(r,n,o){return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",se(r,{headers:c({"Content-type":"application/json"},"X-KISS-PSK",n),method:"POST",body:JSON.stringify(o)}));case 1:case"end":return e.stop()}}),e)})));return function(t,r,n){return e.apply(this,arguments)}}(),ce=function(){var e=o(t().mark((function e(){return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,X.getObj(w);case 2:if(e.t0=e.sent,e.t0){e.next=5;break}e.t0=N;case 5:return e.abrupt("return",e.t0);case 6:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),ue=function(){var e=o(t().mark((function e(){var r,n,o,a,s,i;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,ce();case 2:if(r=e.sent,n=r.syncUrl,o=r.syncKey,a=r.settingUpdateAt,n&&o){e.next=8;break}return e.abrupt("return");case 8:return e.next=10,Q();case 10:return s=e.sent,e.next=13,ie(n,o,{key:"KT_SETTING",value:s,updateAt:a});case 13:if(!((i=e.sent)&&i.updateAt>a)){e.next=21;break}return e.next=17,X.putObj(w,{settingUpdateAt:i.updateAt,settingSyncAt:i.updateAt});case 17:return e.next=19,X.setObj(v,i.value);case 19:e.next=23;break;case 21:return e.next=23,X.putObj(w,{settingSyncAt:i.updateAt});case 23:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),le=function(){var e=o(t().mark((function e(){var r,n,o,a,s,i;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,ce();case 2:if(r=e.sent,n=r.syncUrl,o=r.syncKey,a=r.rulesUpdateAt,n&&o){e.next=8;break}return e.abrupt("return");case 8:return e.next=10,ee();case 10:return s=e.sent,e.next=13,ie(n,o,{key:"KT_RULES",value:s,updateAt:a});case 13:if(!((i=e.sent)&&i.updateAt>a)){e.next=21;break}return e.next=17,X.putObj(w,{rulesUpdateAt:i.updateAt,rulesSyncAt:i.updateAt});case 17:return e.next=19,X.setObj(b,i.value);case 19:e.next=23;break;case 21:return e.next=23,X.putObj(w,{rulesSyncAt:i.updateAt});case 23:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),pe=function(){var e=o(t().mark((function e(){return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,ue();case 3:return e.next=5,le();case 5:e.next=10;break;case 7:e.prev=7,e.t0=e.catch(0),console.log("[sync all]",e.t0);case 10:case"end":return e.stop()}}),e,null,[[0,7]])})));return function(){return e.apply(this,arguments)}}();s().runtime.onInstalled.addListener((function(){console.log("onInstalled"),X.trySetObj(v,L),X.trySetObj(b,I),X.trySetObj(w,N)})),s().runtime.onStartup.addListener(o(t().mark((function e(){var r;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return console.log("onStartup"),e.next=3,pe();case 3:return e.next=5,Q();case 5:r=e.sent,r.clearCache&&caches.delete(S);case 8:case"end":return e.stop()}}),e)})))),s().runtime.onMessage.addListener((function(e,t,r){var n=e.action,o=e.args;if(n===j)ae(o.input,o.init,o.opts).then((function(e){r({data:e})})).catch((function(e){r({error:e.message})}));else r({error:"message action is unavailable: ".concat(n)});return!0}))}()}(); \ No newline at end of file +!function(){var e={930:function(e,t,r){var n,o,a,s=r(861).default,i=r(6690).default,c=r(9728).default,u=r(1588).default,l=r(3808).default,p=r(1655).default,f=r(6389).default,g=r(3496).default;"undefined"!==typeof globalThis?globalThis:"undefined"!==typeof self&&self,o=[e],n=function(e){"use strict";var t,r;if(null===(t=globalThis.chrome)||void 0===t||null===(r=t.runtime)||void 0===r||!r.id)throw new Error("This script should only be loaded in a browser extension.");if("undefined"===typeof globalThis.browser||Object.getPrototypeOf(globalThis.browser)!==Object.prototype){var n="The message port closed before a response was received.",o=function(e){var t={alarms:{clear:{minArgs:0,maxArgs:1},clearAll:{minArgs:0,maxArgs:0},get:{minArgs:0,maxArgs:1},getAll:{minArgs:0,maxArgs:0}},bookmarks:{create:{minArgs:1,maxArgs:1},get:{minArgs:1,maxArgs:1},getChildren:{minArgs:1,maxArgs:1},getRecent:{minArgs:1,maxArgs:1},getSubTree:{minArgs:1,maxArgs:1},getTree:{minArgs:0,maxArgs:0},move:{minArgs:2,maxArgs:2},remove:{minArgs:1,maxArgs:1},removeTree:{minArgs:1,maxArgs:1},search:{minArgs:1,maxArgs:1},update:{minArgs:2,maxArgs:2}},browserAction:{disable:{minArgs:0,maxArgs:1,fallbackToNoCallback:!0},enable:{minArgs:0,maxArgs:1,fallbackToNoCallback:!0},getBadgeBackgroundColor:{minArgs:1,maxArgs:1},getBadgeText:{minArgs:1,maxArgs:1},getPopup:{minArgs:1,maxArgs:1},getTitle:{minArgs:1,maxArgs:1},openPopup:{minArgs:0,maxArgs:0},setBadgeBackgroundColor:{minArgs:1,maxArgs:1,fallbackToNoCallback:!0},setBadgeText:{minArgs:1,maxArgs:1,fallbackToNoCallback:!0},setIcon:{minArgs:1,maxArgs:1},setPopup:{minArgs:1,maxArgs:1,fallbackToNoCallback:!0},setTitle:{minArgs:1,maxArgs:1,fallbackToNoCallback:!0}},browsingData:{remove:{minArgs:2,maxArgs:2},removeCache:{minArgs:1,maxArgs:1},removeCookies:{minArgs:1,maxArgs:1},removeDownloads:{minArgs:1,maxArgs:1},removeFormData:{minArgs:1,maxArgs:1},removeHistory:{minArgs:1,maxArgs:1},removeLocalStorage:{minArgs:1,maxArgs:1},removePasswords:{minArgs:1,maxArgs:1},removePluginData:{minArgs:1,maxArgs:1},settings:{minArgs:0,maxArgs:0}},commands:{getAll:{minArgs:0,maxArgs:0}},contextMenus:{remove:{minArgs:1,maxArgs:1},removeAll:{minArgs:0,maxArgs:0},update:{minArgs:2,maxArgs:2}},cookies:{get:{minArgs:1,maxArgs:1},getAll:{minArgs:1,maxArgs:1},getAllCookieStores:{minArgs:0,maxArgs:0},remove:{minArgs:1,maxArgs:1},set:{minArgs:1,maxArgs:1}},devtools:{inspectedWindow:{eval:{minArgs:1,maxArgs:2,singleCallbackArg:!1}},panels:{create:{minArgs:3,maxArgs:3,singleCallbackArg:!0},elements:{createSidebarPane:{minArgs:1,maxArgs:1}}}},downloads:{cancel:{minArgs:1,maxArgs:1},download:{minArgs:1,maxArgs:1},erase:{minArgs:1,maxArgs:1},getFileIcon:{minArgs:1,maxArgs:2},open:{minArgs:1,maxArgs:1,fallbackToNoCallback:!0},pause:{minArgs:1,maxArgs:1},removeFile:{minArgs:1,maxArgs:1},resume:{minArgs:1,maxArgs:1},search:{minArgs:1,maxArgs:1},show:{minArgs:1,maxArgs:1,fallbackToNoCallback:!0}},extension:{isAllowedFileSchemeAccess:{minArgs:0,maxArgs:0},isAllowedIncognitoAccess:{minArgs:0,maxArgs:0}},history:{addUrl:{minArgs:1,maxArgs:1},deleteAll:{minArgs:0,maxArgs:0},deleteRange:{minArgs:1,maxArgs:1},deleteUrl:{minArgs:1,maxArgs:1},getVisits:{minArgs:1,maxArgs:1},search:{minArgs:1,maxArgs:1}},i18n:{detectLanguage:{minArgs:1,maxArgs:1},getAcceptLanguages:{minArgs:0,maxArgs:0}},identity:{launchWebAuthFlow:{minArgs:1,maxArgs:1}},idle:{queryState:{minArgs:1,maxArgs:1}},management:{get:{minArgs:1,maxArgs:1},getAll:{minArgs:0,maxArgs:0},getSelf:{minArgs:0,maxArgs:0},setEnabled:{minArgs:2,maxArgs:2},uninstallSelf:{minArgs:0,maxArgs:1}},notifications:{clear:{minArgs:1,maxArgs:1},create:{minArgs:1,maxArgs:2},getAll:{minArgs:0,maxArgs:0},getPermissionLevel:{minArgs:0,maxArgs:0},update:{minArgs:2,maxArgs:2}},pageAction:{getPopup:{minArgs:1,maxArgs:1},getTitle:{minArgs:1,maxArgs:1},hide:{minArgs:1,maxArgs:1,fallbackToNoCallback:!0},setIcon:{minArgs:1,maxArgs:1},setPopup:{minArgs:1,maxArgs:1,fallbackToNoCallback:!0},setTitle:{minArgs:1,maxArgs:1,fallbackToNoCallback:!0},show:{minArgs:1,maxArgs:1,fallbackToNoCallback:!0}},permissions:{contains:{minArgs:1,maxArgs:1},getAll:{minArgs:0,maxArgs:0},remove:{minArgs:1,maxArgs:1},request:{minArgs:1,maxArgs:1}},runtime:{getBackgroundPage:{minArgs:0,maxArgs:0},getPlatformInfo:{minArgs:0,maxArgs:0},openOptionsPage:{minArgs:0,maxArgs:0},requestUpdateCheck:{minArgs:0,maxArgs:0},sendMessage:{minArgs:1,maxArgs:3},sendNativeMessage:{minArgs:2,maxArgs:2},setUninstallURL:{minArgs:1,maxArgs:1}},sessions:{getDevices:{minArgs:0,maxArgs:1},getRecentlyClosed:{minArgs:0,maxArgs:1},restore:{minArgs:0,maxArgs:1}},storage:{local:{clear:{minArgs:0,maxArgs:0},get:{minArgs:0,maxArgs:1},getBytesInUse:{minArgs:0,maxArgs:1},remove:{minArgs:1,maxArgs:1},set:{minArgs:1,maxArgs:1}},managed:{get:{minArgs:0,maxArgs:1},getBytesInUse:{minArgs:0,maxArgs:1}},sync:{clear:{minArgs:0,maxArgs:0},get:{minArgs:0,maxArgs:1},getBytesInUse:{minArgs:0,maxArgs:1},remove:{minArgs:1,maxArgs:1},set:{minArgs:1,maxArgs:1}}},tabs:{captureVisibleTab:{minArgs:0,maxArgs:2},create:{minArgs:1,maxArgs:1},detectLanguage:{minArgs:0,maxArgs:1},discard:{minArgs:0,maxArgs:1},duplicate:{minArgs:1,maxArgs:1},executeScript:{minArgs:1,maxArgs:2},get:{minArgs:1,maxArgs:1},getCurrent:{minArgs:0,maxArgs:0},getZoom:{minArgs:0,maxArgs:1},getZoomSettings:{minArgs:0,maxArgs:1},goBack:{minArgs:0,maxArgs:1},goForward:{minArgs:0,maxArgs:1},highlight:{minArgs:1,maxArgs:1},insertCSS:{minArgs:1,maxArgs:2},move:{minArgs:2,maxArgs:2},query:{minArgs:1,maxArgs:1},reload:{minArgs:0,maxArgs:2},remove:{minArgs:1,maxArgs:1},removeCSS:{minArgs:1,maxArgs:2},sendMessage:{minArgs:2,maxArgs:3},setZoom:{minArgs:1,maxArgs:2},setZoomSettings:{minArgs:1,maxArgs:2},update:{minArgs:1,maxArgs:2}},topSites:{get:{minArgs:0,maxArgs:0}},webNavigation:{getAllFrames:{minArgs:1,maxArgs:1},getFrame:{minArgs:1,maxArgs:1}},webRequest:{handlerBehaviorChanged:{minArgs:0,maxArgs:0}},windows:{create:{minArgs:0,maxArgs:1},get:{minArgs:1,maxArgs:2},getAll:{minArgs:0,maxArgs:1},getCurrent:{minArgs:0,maxArgs:1},getLastFocused:{minArgs:0,maxArgs:1},remove:{minArgs:1,maxArgs:1},update:{minArgs:2,maxArgs:2}}};if(0===Object.keys(t).length)throw new Error("api-metadata.json has not been included in browser-polyfill");var r=function(e){p(r,e);var t=f(r);function r(e){var n,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0;return i(this,r),(n=t.call(this,o)).createItem=e,n}return c(r,[{key:"get",value:function(e){return this.has(e)||this.set(e,this.createItem(e)),u(l(r.prototype),"get",this).call(this,e)}}]),r}(g(WeakMap)),o=function(e){return e&&"object"===typeof e&&"function"===typeof e.then},a=function(t,r){return function(){for(var n=arguments.length,o=new Array(n),a=0;a1?n-1:0),s=1;st.maxArgs)throw new Error("Expected at most ".concat(t.maxArgs," ").concat(m(t.maxArgs)," for ").concat(e,"(), got ").concat(o.length));return new Promise((function(n,s){if(t.fallbackToNoCallback)try{r[e].apply(r,o.concat([a({resolve:n,reject:s},t)]))}catch(i){console.warn("".concat(e," API method doesn't seem to support the callback parameter, ")+"falling back to call it without a callback: ",i),r[e].apply(r,o),t.fallbackToNoCallback=!1,t.noCallback=!0,n()}else t.noCallback?(r[e].apply(r,o),n()):r[e].apply(r,o.concat([a({resolve:n,reject:s},t)]))}))}},x=function(e,t,r){return new Proxy(t,{apply:function(t,n,o){return r.call.apply(r,[n,e].concat(s(o)))}})},h=Function.call.bind(Object.prototype.hasOwnProperty),A=function e(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=Object.create(null),a={has:function(e,r){return r in t||r in o},get:function(a,s,i){if(s in o)return o[s];if(s in t){var c=t[s];if("function"===typeof c)if("function"===typeof r[s])c=x(t,t[s],r[s]);else if(h(n,s)){var u=d(s,n[s]);c=x(t,t[s],u)}else c=c.bind(t);else if("object"===typeof c&&null!==c&&(h(r,s)||h(n,s)))c=e(c,r[s],n[s]);else{if(!h(n,"*"))return Object.defineProperty(o,s,{configurable:!0,enumerable:!0,get:function(){return t[s]},set:function(e){t[s]=e}}),c;c=e(c,r[s],n["*"])}return o[s]=c,c}},set:function(e,r,n,a){return r in o?o[r]=n:t[r]=n,!0},defineProperty:function(e,t,r){return Reflect.defineProperty(o,t,r)},deleteProperty:function(e,t){return Reflect.deleteProperty(o,t)}},s=Object.create(t);return new Proxy(s,a)},y=function(e){return{addListener:function(t,r){for(var n=arguments.length,o=new Array(n>2?n-2:0),a=2;a3?n-3:0),a=3;at.maxArgs)throw new Error("Expected at most ".concat(t.maxArgs," ").concat(m(t.maxArgs)," for ").concat(e,"(), got ").concat(o.length));return new Promise((function(e,t){var n=w.bind(null,{resolve:e,reject:t});o.push(n),r.sendMessage.apply(r,o)}))},_={devtools:{network:{onRequestFinished:y(v)}},runtime:{onMessage:y(b),onMessageExternal:y(b),sendMessage:k.bind(null,"sendMessage",{minArgs:1,maxArgs:3})},tabs:{sendMessage:k.bind(null,"sendMessage",{minArgs:2,maxArgs:3})}},S={clear:{minArgs:1,maxArgs:1},get:{minArgs:1,maxArgs:1},set:{minArgs:1,maxArgs:1}};return t.privacy={network:{"*":S},services:{"*":S},websites:{"*":S}},A(e,_,t)};e.exports=o(chrome)}else e.exports=globalThis.browser},void 0===(a="function"===typeof n?n.apply(t,o):n)||(e.exports=a)},3897:function(e){e.exports=function(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r=0;--n){var a=this.tryEntries[n],s=a.completion;if("root"===a.tryLoc)return r("end");if(a.tryLoc<=this.prev){var i=o.call(a,"catchLoc"),c=o.call(a,"finallyLoc");if(i&&c){if(this.prev=0;--r){var n=this.tryEntries[r];if(n.tryLoc<=this.prev&&o.call(n,"finallyLoc")&&this.prev=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),j(r),g}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var o=n.arg;j(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,r){return this.delegate={iterator:E(e),resultName:t,nextLoc:r},"next"===this.method&&(this.arg=void 0),g}},r}function n(e,t,r,n,o,a,s){try{var i=e[a](s),c=i.value}catch(u){return void r(u)}i.done?t(c):Promise.resolve(c).then(n,o)}function o(e){return function(){var t=this,r=arguments;return new Promise((function(o,a){var s=e.apply(t,r);function i(e){n(s,o,a,i,c,"next",e)}function c(e){n(s,o,a,i,c,"throw",e)}i(void 0)}))}}var a=r(930),s=r.n(a);function i(t){var r=function(t,r){if("object"!==e(t)||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var o=n.call(t,r||"default");if("object"!==e(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===r?String:Number)(t)}(t,"string");return"symbol"===e(r)?r:String(r)}function c(e,t,r){return(t=i(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function u(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 l(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=new Array(t);rspan>span"},{pattern:"www.google.com",selector:'h3, .IsZvec, [data-sncf="1"]'}],A=("\u8bf7 [\u70b9\u51fb\u8fd9\u91cc](".concat("https://github.com/fishjar/kiss-translator",") \u67e5\u770b\u8be6\u60c5\u3002"),"Please [click here](".concat("https://github.com/fishjar/kiss-translator",") for details."),"KISS Translator".trim().split(/\s+/).join("-")),y=(A.toLowerCase(),"".concat(A,"_msauth"),"".concat(A,"_setting")),v="".concat(A,"_rules"),b="".concat(A,"_sync"),w="*",k=["chrome","edge","firefox"],_="".concat(A,"_cache"),S="fetch",j="Microsoft",O="OpenAI",E=[["auto","Auto-detect"]].concat([["en","English - English"],["zh-CN","Simplified Chinese - \u7b80\u4f53\u4e2d\u6587"],["zh-TW","Traditional Chinese - \u7e41\u9ad4\u4e2d\u6587"],["ar","Arabic - \u0627\u0644\u0639\u0631\u0628\u064a\u0629"],["bg","Bulgarian - \u0411\u044a\u043b\u0433\u0430\u0440\u0441\u043a\u0438"],["ca","Catalan - Catal\xe0"],["hr","Croatian - Hrvatski"],["cs","Czech - \u010ce\u0161tina"],["da","Danish - Dansk"],["nl","Dutch - Nederlands"],["fi","Finnish - Suomi"],["fr","French - Fran\xe7ais"],["de","German - Deutsch"],["el","Greek - \u0395\u03bb\u03bb\u03b7\u03bd\u03b9\u03ba\u03ac"],["hi","Hindi - \u0939\u093f\u0928\u094d\u0926\u0940"],["hu","Hungarian - Magyar"],["id","Indonesian - Indonesia"],["it","Italian - Italiano"],["ja","Japanese - \u65e5\u672c\u8a9e"],["ko","Korean - \ud55c\uad6d\uc5b4"],["ms","Malay - Melayu"],["mt","Maltese - Malti"],["nb","Norwegian - Norsk Bokm\xe5l"],["pl","Polish - Polski"],["pt","Portuguese - Portugu\xeas"],["ro","Romanian - Rom\xe2n\u0103"],["ru","Russian - \u0420\u0443\u0441\u0441\u043a\u0438\u0439"],["sk","Slovak - Sloven\u010dina"],["sl","Slovenian - Sloven\u0161\u010dina"],["es","Spanish - Espa\xf1ol"],["sv","Swedish - Svenska"],["ta","Tamil - \u0ba4\u0bae\u0bbf\u0bb4\u0bcd"],["te","Telugu - \u0c24\u0c46\u0c32\u0c41\u0c17\u0c41"],["th","Thai - \u0e44\u0e17\u0e22"],["tr","Turkish - T\xfcrk\xe7e"],["uk","Ukrainian - \u0423\u043a\u0440\u0430\u0457\u043d\u0441\u044c\u043a\u0430"],["vi","Vietnamese - Ti\u1ebfng Vi\u1ec7t"]]),M=(c(m={},j,new Map([["auto",""],["zh-CN","zh-Hans"],["zh-TW","zh-Hant"]])),c(m,O,new Map(E.map((function(e){var t=g(e,2);return[t[0],t[1].split(" - ")[0]]})))),"dash_line"),P={pattern:"*",selector:x,translator:j,fromLang:"auto",toLang:"zh-CN",textStyle:M,transOpen:"false",bgColor:""},T={pattern:"",selector:"",translator:w,fromLang:w,toLang:w,textStyle:w,transOpen:w,bgColor:""},C={darkMode:!1,uiLang:"zh",fetchLimit:10,fetchInterval:100,clearCache:!1,googleUrl:"https://translate.googleapis.com/translate_a/single",openaiUrl:"https://api.openai.com/v1/chat/completions",openaiKey:"",openaiModel:"gpt-4",openaiPrompt:"You will be provided with a sentence in ".concat("{{from}}",", and your task is to translate it into ").concat("{{to}}",".")},L=[].concat(function(e){if(Array.isArray(e))return p(e)}(d=h.map((function(e){return l(l(l({},T),e),{},{transOpen:"true"})})))||function(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(d)||f(d)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),[P]),I={syncUrl:"",syncKey:"",settingUpdateAt:0,settingSyncAt:0,rulesUpdateAt:0,rulesSyncAt:0};var N=function(){try{return r(930)}catch(e){}}(),R="chrome",G=k.includes(R),U=!1;function F(e,t){return V.apply(this,arguments)}function V(){return(V=o(t().mark((function e(r,n){var o,a;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!G){e.next=5;break}return e.next=3,N.storage.local.set(c({},r,n));case 3:e.next=17;break;case 5:if(!U){e.next=14;break}return e.next=8,(window.GM_getValue||window.GM.getValue)(r);case 8:return o=e.sent,e.next=11,(window.GM_setValue||window.GM.setValue)(r,n);case 11:window.dispatchEvent(new StorageEvent("storage",{key:r,oldValue:o,newValue:n})),e.next=17;break;case 14:a=window.localStorage.getItem(r),window.localStorage.setItem(r,n),window.dispatchEvent(new StorageEvent("storage",{key:r,oldValue:a,newValue:n}));case 17:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function B(e){return D.apply(this,arguments)}function D(){return(D=o(t().mark((function e(r){var n,o;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!G){e.next=7;break}return e.next=3,N.storage.local.get([r]);case 3:return n=e.sent,e.abrupt("return",n[r]);case 7:if(!U){e.next=12;break}return e.next=10,(window.GM_getValue||window.GM.getValue)(r);case 10:return o=e.sent,e.abrupt("return",o);case 12:return e.abrupt("return",window.localStorage.getItem(r));case 13:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function z(){return(z=o(t().mark((function e(r){var n,o;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!G){e.next=5;break}return e.next=3,N.storage.local.remove([r]);case 3:e.next=17;break;case 5:if(!U){e.next=14;break}return e.next=8,(window.GM_getValue||window.GM.getValue)(r);case 8:return n=e.sent,e.next=11,(window.GM_deleteValue||window.GM.deleteValue)(r);case 11:window.dispatchEvent(new StorageEvent("storage",{key:r,oldValue:n,newValue:null})),e.next=17;break;case 14:o=window.localStorage.getItem(r),window.localStorage.removeItem(r),window.dispatchEvent(new StorageEvent("storage",{key:r,oldValue:o,newValue:null}));case 17:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function q(e,t){return K.apply(this,arguments)}function K(){return(K=o(t().mark((function e(r,n){return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,F(r,JSON.stringify(n));case 2:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function H(){return(H=o(t().mark((function e(r,n){return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,B(r);case 2:if(e.sent){e.next=5;break}return e.next=5,q(r,n);case 5:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function W(e){return Z.apply(this,arguments)}function Z(){return(Z=o(t().mark((function e(r){var n;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,B(r);case 2:return n=e.sent,e.abrupt("return",n&&JSON.parse(n));case 4:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function J(){return(J=o(t().mark((function e(r,n){var o,a;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,W(r);case 2:if(e.t1=o=e.sent,e.t0=null!==e.t1,!e.t0){e.next=6;break}e.t0=void 0!==o;case 6:if(!e.t0){e.next=10;break}e.t2=o,e.next=11;break;case 10:e.t2={};case 11:return a=e.t2,e.next=14,q(r,l(l({},a),n));case 14:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var Y={get:B,set:F,del:function(e){return z.apply(this,arguments)},setObj:q,trySetObj:function(e,t){return H.apply(this,arguments)},getObj:W,putObj:function(e,t){return J.apply(this,arguments)},onChanged:function(e){G?N.storage.onChanged.addListener(e):window.addEventListener("storage",e)}},$=Y,X=function(){var e=o(t().mark((function e(){return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.t0=l,e.t1=l({},C),e.next=4,$.getObj(y);case 4:if(e.t2=e.sent,e.t2){e.next=7;break}e.t2={};case 7:return e.t3=e.t2,e.abrupt("return",(0,e.t0)(e.t1,e.t3));case 9:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),Q=function(){var e=o(t().mark((function e(){return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,$.getObj(v);case 2:if(e.t0=e.sent,e.t0){e.next=5;break}e.t0=[];case 5:return e.abrupt("return",e.t0);case 6:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),ee="%[a-f0-9]{2}";new RegExp("("+ee+")|([^%]+?)","gi"),new RegExp("("+ee+")+","gi");Symbol("encodeFragmentIdentifier");var te=function(e,t){var r;return null===N||void 0===N||null===(r=N.runtime)||void 0===r?void 0:r.sendMessage({action:e,args:t})},re=function(){var e=o(t().mark((function e(r){var n,o,a,s,i,c=arguments;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o=(n=c.length>1&&void 0!==c[1]?c[1]:{}).method,a=void 0===o?"GET":o,s=n.headers,i=n.body,e.abrupt("return",new Promise((function(e,t){try{(window.GM_xmlhttpRequest||window.GM.xmlhttpRequest)({method:a,url:r,headers:s,data:i,onload:function(r){if(200===r.status){var n=new Headers;r.responseHeaders.split("\n").forEach((function(e){var t=g(e.split(":").map((function(e){return e.trim()})),2),r=t[0],o=t[1];r&&o&&n.append(r,o)})),e(new Response(r.response,{headers:n}))}else t(new Error("[".concat(r.status,"] ").concat(r.responseText)))},onerror:t})}catch(n){t(n)}})));case 2:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),ne=function(){var e=o(t().mark((function e(r,n){var o,a;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n===j?r.headers.delete("Authorization"):n===O&&(r.headers.delete("Authorization"),r.headers.delete("api-key")),"GET"===r.method){e.next=8;break}return e.next=4,r.text();case 4:o=e.sent,(a=new URL(r.url)).pathname+=o,r=new Request(a.toString(),{method:"GET"});case 8:return e.abrupt("return",r);case 9:case"end":return e.stop()}}),e)})));return function(t,r){return e.apply(this,arguments)}}(),oe=function(){var e=o(t().mark((function e(r,n){var o,a,s,i,c,u,l,p,f,g=arguments;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return s=(a=g.length>2&&void 0!==g[2]?g[2]:{}).useCache,i=a.translator,c=a.useUnsafe,e.next=3,ne(new Request(r,n),i);case 3:return u=e.sent,e.next=6,caches.open(_);case 6:if(l=e.sent,!s){e.next=17;break}return e.prev=8,e.next=11,l.match(u);case 11:p=e.sent,e.next=17;break;case 14:e.prev=14,e.t0=e.catch(8),console.log("[cache match]",e.t0);case 17:if(p){e.next=27;break}if(!U||c){e.next=24;break}return e.next=21,re(r,n);case 21:p=e.sent,e.next=27;break;case 24:return e.next=26,fetch(r,n);case 26:p=e.sent;case 27:if(null!==(o=p)&&void 0!==o&&o.ok){e.next=29;break}throw new Error("response: ".concat(p.statusText));case 29:if(!s){e.next=38;break}return e.prev=30,e.next=33,l.put(u,p.clone());case 33:e.next=38;break;case 35:e.prev=35,e.t1=e.catch(30),console.log("[cache put]",e.t1);case 38:if(null===(f=p.headers.get("Content-Type"))||void 0===f||!f.includes("json")){e.next=43;break}return e.next=42,p.json();case 42:return e.abrupt("return",e.sent);case 43:return e.next=45,p.text();case 45:return e.abrupt("return",e.sent);case 46:case"end":return e.stop()}}),e,null,[[8,14],[30,35]])})));return function(t,r){return e.apply(this,arguments)}}(),ae=function(){var e=o(t().mark((function e(r,n,o){var a;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!G){e.next=7;break}return e.next=3,te(S,{input:r,init:n,opts:o});case 3:if(!(a=e.sent).error){e.next=6;break}throw new Error(a.error);case 6:return e.abrupt("return",a.data);case 7:return e.next=9,oe(r,n,o);case 9:return e.abrupt("return",e.sent);case 10:case"end":return e.stop()}}),e)})));return function(t,r,n){return e.apply(this,arguments)}}(),se=function(){var e=o(t().mark((function e(r,n,o){return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",ae(r,{headers:c({"Content-type":"application/json"},"X-KISS-PSK",n),method:"POST",body:JSON.stringify(o)},{useUnsafe:!0}));case 1:case"end":return e.stop()}}),e)})));return function(t,r,n){return e.apply(this,arguments)}}(),ie=function(){var e=o(t().mark((function e(){return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,$.getObj(b);case 2:if(e.t0=e.sent,e.t0){e.next=5;break}e.t0=I;case 5:return e.abrupt("return",e.t0);case 6:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),ce=function(){var e=o(t().mark((function e(){var r,n,o,a,s,i;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,ie();case 2:if(r=e.sent,n=r.syncUrl,o=r.syncKey,a=r.settingUpdateAt,n&&o){e.next=8;break}return e.abrupt("return");case 8:return e.next=10,X();case 10:return s=e.sent,e.next=13,se(n,o,{key:"KT_SETTING",value:s,updateAt:a});case 13:if(!((i=e.sent)&&i.updateAt>a)){e.next=21;break}return e.next=17,$.putObj(b,{settingUpdateAt:i.updateAt,settingSyncAt:i.updateAt});case 17:return e.next=19,$.setObj(y,i.value);case 19:e.next=23;break;case 21:return e.next=23,$.putObj(b,{settingSyncAt:i.updateAt});case 23:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),ue=function(){var e=o(t().mark((function e(){var r,n,o,a,s,i;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,ie();case 2:if(r=e.sent,n=r.syncUrl,o=r.syncKey,a=r.rulesUpdateAt,n&&o){e.next=8;break}return e.abrupt("return");case 8:return e.next=10,Q();case 10:return s=e.sent,e.next=13,se(n,o,{key:"KT_RULES",value:s,updateAt:a});case 13:if(!((i=e.sent)&&i.updateAt>a)){e.next=21;break}return e.next=17,$.putObj(b,{rulesUpdateAt:i.updateAt,rulesSyncAt:i.updateAt});case 17:return e.next=19,$.setObj(v,i.value);case 19:e.next=23;break;case 21:return e.next=23,$.putObj(b,{rulesSyncAt:i.updateAt});case 23:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),le=function(){var e=o(t().mark((function e(){return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,ce();case 3:return e.next=5,ue();case 5:e.next=10;break;case 7:e.prev=7,e.t0=e.catch(0),console.log("[sync all]",e.t0);case 10:case"end":return e.stop()}}),e,null,[[0,7]])})));return function(){return e.apply(this,arguments)}}();s().runtime.onInstalled.addListener((function(){console.log("onInstalled"),$.trySetObj(y,C),$.trySetObj(v,L),$.trySetObj(b,I)})),s().runtime.onStartup.addListener(o(t().mark((function e(){var r;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return console.log("onStartup"),e.next=3,le();case 3:return e.next=5,X();case 5:r=e.sent,r.clearCache&&caches.delete(_);case 8:case"end":return e.stop()}}),e)})))),s().runtime.onMessage.addListener((function(e,t,r){var n=e.action,o=e.args;if(n===S)oe(o.input,o.init,o.opts).then((function(e){r({data:e})})).catch((function(e){r({error:e.message})}));else r({error:"message action is unavailable: ".concat(n)});return!0}))}()}(); \ No newline at end of file diff --git a/dist/chrome/content.html b/dist/chrome/content.html index d2fdab8..c757f1c 100644 --- a/dist/chrome/content.html +++ b/dist/chrome/content.html @@ -1 +1,346 @@ -KISS Translator

React is a JavaScript library for building user interfaces.

































React is a JavaScript library for building user interfaces.

































React is a JavaScript library for building user interfaces.

































React is a JavaScript library for building user interfaces.

































React is a JavaScript library for building user interfaces.

  • Declarative: React makes it painless to create interactive UIs. Design simple views for each state in your application, and React will efficiently update and render just the right components when your data changes. Declarative views make your code more predictable, simpler to understand, and easier to debug.
  • Component-Based: Build encapsulated components that manage their own state, then compose them to make complex UIs. Since component logic is written in JavaScript instead of templates, you can easily pass rich data through your app and keep the state out of the DOM.
  • React 使创建交互式 UI 变得轻而易举。为你应用的每一个状态设计简洁的视图,当数据变动时 React 能高效更新并渲染合适的组件。
  • 以声明式编写 UI,可以让你的代码更加可靠,且方便调试。

React is a JavaScript library for building user interfaces.

  • Declarative: React makes it painless to create interactive UIs. Design simple views for each state in your application, and React will efficiently update and render just the right components when your data changes. Declarative views make your code more predictable, simpler to understand, and easier to debug.
  • Component-Based: Build encapsulated components that manage their own state, then compose them to make complex UIs. Since component logic is written in JavaScript instead of templates, you can easily pass rich data through your app and keep the state out of the DOM.
  • React 使创建交互式 UI 变得轻而易举。为你应用的每一个状态设计简洁的视图,当数据变动时 React 能高效更新并渲染合适的组件。
  • 以声明式编写 UI,可以让你的代码更加可靠,且方便调试。

React is a JavaScript library for building user interfaces.

  • Declarative: React makes it painless to create interactive UIs. Design simple views for each state in your application, and React will efficiently update and render just the right components when your data changes. Declarative views make your code more predictable, simpler to understand, and easier to debug.
  • Component-Based: Build encapsulated components that manage their own state, then compose them to make complex UIs. Since component logic is written in JavaScript instead of templates, you can easily pass rich data through your app and keep the state out of the DOM.
  • React 使创建交互式 UI 变得轻而易举。为你应用的每一个状态设计简洁的视图,当数据变动时 React 能高效更新并渲染合适的组件。
  • 以声明式编写 UI,可以让你的代码更加可靠,且方便调试。

React is a JavaScript library for building user interfaces.

  • Declarative: React makes it painless to create interactive UIs. Design simple views for each state in your application, and React will efficiently update and render just the right components when your data changes. Declarative views make your code more predictable, simpler to understand, and easier to debug.
  • Component-Based: Build encapsulated components that manage their own state, then compose them to make complex UIs. Since component logic is written in JavaScript instead of templates, you can easily pass rich data through your app and keep the state out of the DOM.
  • React 使创建交互式 UI 变得轻而易举。为你应用的每一个状态设计简洁的视图,当数据变动时 React 能高效更新并渲染合适的组件。
  • 以声明式编写 UI,可以让你的代码更加可靠,且方便调试。

React is a JavaScript library for building user interfaces.

  • Declarative: React makes it painless to create interactive UIs. Design simple views for each state in your application, and React will efficiently update and render just the right components when your data changes. Declarative views make your code more predictable, simpler to understand, and easier to debug.
  • Component-Based: Build encapsulated components that manage their own state, then compose them to make complex UIs. Since component logic is written in JavaScript instead of templates, you can easily pass rich data through your app and keep the state out of the DOM.
  • React 使创建交互式 UI 变得轻而易举。为你应用的每一个状态设计简洁的视图,当数据变动时 React 能高效更新并渲染合适的组件。
  • 以声明式编写 UI,可以让你的代码更加可靠,且方便调试。
\ No newline at end of file + + + + + + %REACT_APP_NAME% + + + + + +
+

React is a JavaScript library for building user interfaces.

+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

React is a JavaScript library for building user interfaces.

+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

React is a JavaScript library for building user interfaces.

+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

React is a JavaScript library for building user interfaces.

+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

React is a JavaScript library for building user interfaces.

+
    +
  • + Declarative: React makes it painless to create interactive UIs. + Design simple views for each state in your application, and React + will efficiently update and render just the right components when + your data changes. Declarative views make your code more + predictable, simpler to understand, and easier to debug. +
  • +
  • + Component-Based: Build encapsulated components that manage their own + state, then compose them to make complex UIs. Since component logic + is written in JavaScript instead of templates, you can easily pass + rich data through your app and keep the state out of the DOM. +
  • +
  • + React 使创建交互式 UI + 变得轻而易举。为你应用的每一个状态设计简洁的视图,当数据变动时 React + 能高效更新并渲染合适的组件。 +
  • +
  • 以声明式编写 UI,可以让你的代码更加可靠,且方便调试。
  • +
+
+

+

+

+

+

+

+

+

+

+

+

+

+
+

React is a JavaScript library for building user interfaces.

+
    +
  • + Declarative: React makes it painless to create interactive UIs. + Design simple views for each state in your application, and React + will efficiently update and render just the right components when + your data changes. Declarative views make your code more + predictable, simpler to understand, and easier to debug. +
  • +
  • + Component-Based: Build encapsulated components that manage their own + state, then compose them to make complex UIs. Since component logic + is written in JavaScript instead of templates, you can easily pass + rich data through your app and keep the state out of the DOM. +
  • +
  • + React 使创建交互式 UI + 变得轻而易举。为你应用的每一个状态设计简洁的视图,当数据变动时 React + 能高效更新并渲染合适的组件。 +
  • +
  • 以声明式编写 UI,可以让你的代码更加可靠,且方便调试。
  • +
+
+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+
+

React is a JavaScript library for building user interfaces.

+
    +
  • + Declarative: React makes it painless to create interactive UIs. + Design simple views for each state in your application, and React + will efficiently update and render just the right components when + your data changes. Declarative views make your code more + predictable, simpler to understand, and easier to debug. +
  • +
  • + Component-Based: Build encapsulated components that manage their own + state, then compose them to make complex UIs. Since component logic + is written in JavaScript instead of templates, you can easily pass + rich data through your app and keep the state out of the DOM. +
  • +
  • + React 使创建交互式 UI + 变得轻而易举。为你应用的每一个状态设计简洁的视图,当数据变动时 React + 能高效更新并渲染合适的组件。 +
  • +
  • 以声明式编写 UI,可以让你的代码更加可靠,且方便调试。
  • +
+
+

+

+

+

+

+

+

+

+

+

+

+

+

+

+
+

+ React is a JavaScript library for + building user interfaces. +

+
    +
  • + Declarative: React makes it painless to create interactive UIs. + Design simple views for each state in your application, and React + will efficiently update and render just the right components when + your data changes. Declarative views make your code more + predictable, simpler to understand, and easier to debug. +
  • +
  • + Component-Based: Build encapsulated components that manage their own + state, then compose them to make complex UIs. Since component logic + is written in JavaScript instead of templates, you can easily pass + rich data through your app and keep the state out of the DOM. +
  • +
  • + React 使创建交互式 UI + 变得轻而易举。为你应用的每一个状态设计简洁的视图,当数据变动时 React + 能高效更新并渲染合适的组件。 +
  • +
  • 以声明式编写 UI,可以让你的代码更加可靠,且方便调试。
  • +
+
+

+

+

+

+

+

+

+

+

+

+

+

+
+

React is a JavaScript library for building user interfaces.

+
    +
  • + Declarative: React makes it painless to create interactive UIs. + Design simple views for each state in your application, and React + will efficiently update and render just the right components when + your data changes. Declarative views make your code more + predictable, simpler to understand, and easier to debug. +
  • +
  • + Component-Based: Build encapsulated components that manage their own + state, then compose them to make complex UIs. Since component logic + is written in JavaScript instead of templates, you can easily pass + rich data through your app and keep the state out of the DOM. +
  • +
  • + React 使创建交互式 UI + 变得轻而易举。为你应用的每一个状态设计简洁的视图,当数据变动时 React + 能高效更新并渲染合适的组件。 +
  • +
  • 以声明式编写 UI,可以让你的代码更加可靠,且方便调试。
  • +
+
+
+ + + diff --git a/dist/chrome/content.js b/dist/chrome/content.js index 5a4d6d0..b3ebf58 100644 --- a/dist/chrome/content.js +++ b/dist/chrome/content.js @@ -1,2 +1,2 @@ /*! For license information please see content.js.LICENSE.txt */ -!function(){var e={534:function(e,t,n){"use strict";var r=n(7313),a=n(2224);function o(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n