extension-develop 2.0.0-rc.16 → 2.0.0-rc.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/deprecated-shadow-root.js +1 -1
- package/dist/ensure-hmr-for-scripts.js +2 -2
- package/dist/inject-chromium-client-loader.js +2 -2
- package/dist/inject-firefox-client-loader.js +1 -1
- package/dist/module.js +36 -34
- package/dist/run-chrome-profile/BrowserMetrics/BrowserMetrics-67F33F6F-B056.pma +0 -0
- package/dist/run-chrome-profile/BrowserMetrics/BrowserMetrics-67F33F8C-B272.pma +0 -0
- package/dist/run-chrome-profile/BrowserMetrics/BrowserMetrics-67F33FB3-B4E9.pma +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/0aec0caf66c01b86_0 +0 -0
- package/dist/run-chrome-profile/Default/Cache/Cache_Data/index-dir/the-real-index +0 -0
- package/dist/run-chrome-profile/Default/Code Cache/js/index-dir/the-real-index +0 -0
- package/dist/run-chrome-profile/Default/Cookies +0 -0
- package/dist/run-chrome-profile/Default/DawnGraphiteCache/data_1 +0 -0
- package/dist/run-chrome-profile/Default/DawnGraphiteCache/index +0 -0
- package/dist/run-chrome-profile/Default/DawnWebGPUCache/data_1 +0 -0
- package/dist/run-chrome-profile/Default/DawnWebGPUCache/index +0 -0
- package/dist/run-chrome-profile/Default/Extension Rules/000003.log +0 -0
- package/dist/run-chrome-profile/Default/Extension Rules/LOG +3 -3
- package/dist/run-chrome-profile/Default/Extension Rules/LOG.old +3 -3
- package/dist/run-chrome-profile/Default/Extension Scripts/000003.log +0 -0
- package/dist/run-chrome-profile/Default/Extension Scripts/LOG +3 -3
- package/dist/run-chrome-profile/Default/Extension Scripts/LOG.old +3 -3
- package/dist/run-chrome-profile/Default/Extension State/000003.log +0 -0
- package/dist/run-chrome-profile/Default/Extension State/LOG +3 -3
- package/dist/run-chrome-profile/Default/Extension State/LOG.old +3 -3
- package/dist/run-chrome-profile/Default/GPUCache/data_1 +0 -0
- package/dist/run-chrome-profile/Default/GPUCache/index +0 -0
- package/dist/run-chrome-profile/Default/History +0 -0
- package/dist/run-chrome-profile/Default/Local Extension Settings/lbffejbpcfhhlobfihahkjacidchbokb/LOG +3 -3
- package/dist/run-chrome-profile/Default/Local Extension Settings/lbffejbpcfhhlobfihahkjacidchbokb/LOG.old +3 -3
- package/dist/run-chrome-profile/Default/Local Storage/leveldb/LOG +3 -3
- package/dist/run-chrome-profile/Default/Local Storage/leveldb/LOG.old +3 -6
- package/dist/run-chrome-profile/Default/Network Persistent State +1 -1
- package/dist/run-chrome-profile/Default/Platform Notifications/LOG +3 -3
- package/dist/run-chrome-profile/Default/Platform Notifications/LOG.old +3 -3
- package/dist/run-chrome-profile/Default/Preferences +1 -1
- package/dist/run-chrome-profile/Default/Secure Preferences +1 -1
- package/dist/run-chrome-profile/Default/Service Worker/Database/000003.log +0 -0
- package/dist/run-chrome-profile/Default/Service Worker/Database/LOG +3 -3
- package/dist/run-chrome-profile/Default/Service Worker/Database/LOG.old +3 -3
- package/dist/run-chrome-profile/Default/Service Worker/ScriptCache/{244501fa4de4a6ef_0 → aa7ba8035c723e68_0} +0 -0
- package/dist/run-chrome-profile/Default/Service Worker/ScriptCache/{244501fa4de4a6ef_1 → aa7ba8035c723e68_1} +0 -0
- package/dist/run-chrome-profile/Default/Service Worker/ScriptCache/index-dir/the-real-index +0 -0
- package/dist/run-chrome-profile/Default/Session Storage/000003.log +0 -0
- package/dist/run-chrome-profile/Default/Session Storage/LOG +3 -3
- package/dist/run-chrome-profile/Default/Session Storage/LOG.old +3 -3
- package/dist/run-chrome-profile/Default/Sessions/Session_13388468367043291 +0 -0
- package/dist/run-chrome-profile/Default/Sessions/Session_13388468405722193 +0 -0
- package/dist/run-chrome-profile/Default/Sessions/{Tabs_13388467960690052 → Tabs_13388468367204368} +0 -0
- package/dist/run-chrome-profile/Default/Sessions/{Tabs_13388437918518098 → Tabs_13388468405899572} +0 -0
- package/dist/run-chrome-profile/Default/Site Characteristics Database/LOG +3 -3
- package/dist/run-chrome-profile/Default/Site Characteristics Database/LOG.old +3 -3
- package/dist/run-chrome-profile/Default/Sync Data/LevelDB/LOG +3 -3
- package/dist/run-chrome-profile/Default/Sync Data/LevelDB/LOG.old +3 -3
- package/dist/run-chrome-profile/Default/TransportSecurity +1 -1
- package/dist/run-chrome-profile/Default/WebStorage/QuotaManager +0 -0
- package/dist/run-chrome-profile/Default/shared_proto_db/000008.log +0 -0
- package/dist/run-chrome-profile/Default/shared_proto_db/LOG +3 -3
- package/dist/run-chrome-profile/Default/shared_proto_db/LOG.old +3 -3
- package/dist/run-chrome-profile/Default/shared_proto_db/metadata/000003.log +0 -0
- package/dist/run-chrome-profile/Default/shared_proto_db/metadata/LOG +3 -3
- package/dist/run-chrome-profile/Default/shared_proto_db/metadata/LOG.old +3 -3
- package/dist/run-chrome-profile/GrShaderCache/data_1 +0 -0
- package/dist/run-chrome-profile/GrShaderCache/index +0 -0
- package/dist/run-chrome-profile/GraphiteDawnCache/data_1 +0 -0
- package/dist/run-chrome-profile/GraphiteDawnCache/index +0 -0
- package/dist/run-chrome-profile/Local State +1 -1
- package/dist/run-chrome-profile/ShaderCache/data_1 +0 -0
- package/dist/run-chrome-profile/ShaderCache/index +0 -0
- package/dist/run-chrome-profile/first_party_sets.db +0 -0
- package/package.json +1 -1
- package/dist/run-chrome-profile/Default/Sessions/Session_13388437918151922 +0 -0
- package/dist/run-chrome-profile/Default/Sessions/Session_13388467960316491 +0 -0
package/dist/module.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var el=Object.create;var Ke=Object.defineProperty;var tl=Object.getOwnPropertyDescriptor;var rl=Object.getOwnPropertyNames;var sl=Object.getPrototypeOf,nl=Object.prototype.hasOwnProperty;var ol=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),il=(t,e)=>{for(var r in e)Ke(t,r,{get:e[r],enumerable:!0})},js=(t,e,r,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of rl(e))!nl.call(t,n)&&n!==r&&Ke(t,n,{get:()=>e[n],enumerable:!(s=tl(e,n))||s.enumerable});return t};var a=(t,e,r)=>(r=t!=null?el(sl(t)):{},js(e||!t||!t.__esModule?Ke(r,"default",{value:t,enumerable:!0}):r,t)),al=t=>js(Ke({},"__esModule",{value:!0}),t);var Or=ol((lp,ll)=>{ll.exports={license:"MIT",repository:{type:"git",url:"https://github.com/cezaraugusto/extension.git",directory:"programs/develop"},engines:{node:">=18"},name:"extension-develop",version:"2.0.0-rc.18",description:"The develop step of Extension.js",main:"./dist/module.js",types:"./dist/module.d.ts",files:["dist"],author:{name:"Cezar Augusto",email:"boss@cezaraugusto.net",url:"https://cezaraugusto.com"},scripts:{clean:"rm -rf dist",watch:"tsup-node ./module.ts --format cjs --dts --target=node18 --watch",compile:"tsup-node ./module.ts --format cjs --dts --target=node18 --minify && bash install_scripts.sh",test:"jest --no-cache --testPathPattern='webpack/.*/__spec__/.*\\.spec\\.*'","test:coverage":"jest --no-cache --testPathPattern='webpack/.*/__spec__/.*\\.spec\\.ts' --coverage","test:build":"jest ./build.spec.ts --no-cache --detectOpenHandles --forceExit"},dependencies:{"@colors/colors":"^1.6.0","@rspack/core":"^1.2.8","@rspack/dev-server":"^1.1.0","@swc/helpers":"^0.5.15","@types/firefox-webext-browser":"^120.0.4","@vue/compiler-sfc":"^3.5.13","adm-zip":"^0.5.16",axios:"^1.7.9","case-sensitive-paths-webpack-plugin":"^2.4.0",chokidar:"^4.0.1","chrome-location":"^1.2.1","content-security-policy-parser":"^0.6.0","cross-spawn":"^7.0.6","csv-loader":"^3.0.5",dotenv:"^16.4.7","dotenv-webpack":"^8.1.0","edge-location":"^1.0.0","firefox-profile":"^4.7.0","fx-runner":"^1.4.0","go-git-it":"2.0.4",ignore:"^6.0.2","loader-utils":"^3.3.1",micromatch:"^4.0.8","package-manager-detector":"^0.2.7",parse5:"^7.2.1","parse5-utils":"^2.0.0",postcss:"^8.4.49",preact:"^10.22.0",progress:"^2.0.3","schema-utils":"^4.2.0",slugify:"^1.6.6","tiny-glob":"^0.2.9","vue-template-compiler":"^2.7.16","webextension-polyfill":"^0.12.0","webpack-merge":"^6.0.1","webpack-target-webextension":"^2.1.3",which:"^5.0.0",ws:"^8.18.0"},devDependencies:{"@types/adm-zip":"^0.5.7","@types/case-sensitive-paths-webpack-plugin":"^2.1.9","@types/chrome":"^0.0.287","@types/cross-spawn":"^6.0.6","@types/dotenv-webpack":"^7.0.8","@types/jest":"^29.5.14","@types/loader-utils":"^2.0.6","@types/node":"^22.10.1","@types/webextension-polyfill":"^0.12.1","@types/ws":"^8.5.13",jest:"^29.7.0","ts-jest":"^29.2.5",tsup:"^8.3.5",typescript:"5.7.2"},optionalDependencies:{"@prefresh/core":"^1.5.2","@prefresh/utils":"^1.2.0","@prefresh/webpack":"^4.0.1","@rspack/plugin-preact-refresh":"^1.1.2","@rspack/plugin-react-refresh":"^1.0.1","babel-loader":"^9.2.1","less-loader":"^12.2.0","postcss-loader":"^8.1.1","postcss-preset-env":"^10.1.1","react-refresh":"^0.14.2","sass-loader":"^16.0.4","svelte-loader":"^3.2.4","svelte-preprocess":"^6.0.3","vue-loader":"^17.4.2","vue-style-loader":"^4.1.3","vue-template-compiler":"^2.7.16"}}});var rp={};il(rp,{extensionBuild:()=>kr,extensionDev:()=>Gc,extensionPreview:()=>Cr,extensionStart:()=>Qc});module.exports=al(rp);var Ic=a(require("fs")),Ps=a(require("path")),Mc=require("@rspack/core"),Ac=require("webpack-merge");var Xe=a(require("path"));var Qs=a(require("case-sensitive-paths-webpack-plugin"));var jr=a(require("fs")),Ye=a(require("path")),ne=require("@rspack/core"),Dr=a(require("dotenv")),Qe=class{manifestPath;browser;constructor(e){this.manifestPath=e.manifestPath,this.browser=e.browser||"chrome"}apply(e){let r=Ye.default.dirname(this.manifestPath),s=e.options.mode||"development",n=[`.env.${this.browser}.${s}`,`.env.${this.browser}`,`.env.${s}`,".env.local",".env",".env.example"],o="";for(let m of n){let g=Ye.default.join(r,m);if(jr.default.existsSync(g)){o=g;break}}let i=o?Dr.default.config({path:o}).parsed||{}:{},c=Ye.default.join(r,".env.defaults"),p={...jr.default.existsSync(c)?Dr.default.config({path:c}).parsed||{}:{},...i,...process.env},u=Object.keys(p).filter(m=>m.startsWith("EXTENSION_PUBLIC_")).reduce((m,g)=>(m[`process.env.${g}`]=JSON.stringify(p[g]),m[`import.meta.env.${g}`]=JSON.stringify(p[g]),m),{});u["process.env.EXTENSION_PUBLIC_BROWSER"]=JSON.stringify(this.browser),u["import.meta.env.EXTENSION_PUBLIC_BROWSER"]=JSON.stringify(this.browser),u["process.env.EXTENSION_PUBLIC_MODE"]=JSON.stringify(s),u["import.meta.env.EXTENSION_PUBLIC_MODE"]=JSON.stringify(s),u["process.env.EXTENSION_BROWSER"]=JSON.stringify(this.browser),u["import.meta.env.EXTENSION_BROWSER"]=JSON.stringify(this.browser),u["process.env.EXTENSION_MODE"]=JSON.stringify(s),u["import.meta.env.EXTENSION_MODE"]=JSON.stringify(s),new ne.DefinePlugin(u).apply(e),e.hooks.thisCompilation.tap("manifest:update-manifest",m=>{m.hooks.processAssets.tap({name:"env:module",stage:ne.Compilation.PROCESS_ASSETS_STAGE_SUMMARIZE},g=>{Object.keys(g).forEach(_=>{if(_.endsWith(".json")||_.endsWith(".html")){let S=m.assets[_].source().toString();S=S.replace(/\$EXTENSION_PUBLIC_[A-Z_]+/g,E=>{let A=E.slice(1);return p[A]||E}),S=S.replace(/\$EXTENSION_[A-Z_]+/g,E=>{let A=E.slice(1);return p[A]||E}),m.updateAsset(_,new ne.sources.RawSource(S))}})})})}};var Lr=a(require("fs")),Ds=a(require("path")),et=class{apply(e){let r=Ds.default.join(e.options.output.path||"");if(Lr.default.existsSync(r))try{Lr.default.rmSync(r,{recursive:!0,force:!0}),process.env.EXTENSION_ENV==="development"&&console.log("[CleanDistFolderPlugin] Removed old hot-update files before compilation.")}catch(s){console.error(`[CleanDistFolderPlugin] Failed to remove hot-update files: ${s.message}`)}}};var Ir=a(require("path")),f=require("@colors/colors/safe");var Ls=a(require("path")),tt=Ls.default.join(process.cwd(),"node_modules/extension-develop/dist/certs"),Z=["chrome","edge"],cl=["firefox"],ap=[...Z,...cl];var Os=require("console");function F(t,e){return e==="error"?`${(0,f.bold)((0,f.red)("ERROR"))} in ${t} ${(0,f.red)("\u2716\uFE0E\u2716\uFE0E\u2716\uFE0E")}`:e==="warn"?`${t} ${(0,f.brightYellow)("\u2716\uFE0E\u2716\uFE0E\u2716\uFE0E")}`:`${e==="info"?(0,f.cyan)("\u25BA\u25BA\u25BA"):(0,f.brightGreen)("\u25BA\u25BA\u25BA")} ${(0,f.cyan)(t)}`}function Is(t){return t.charAt(0).toUpperCase()+t.slice(1)}function Ms(t,e,r){if(!!1)return`${r.hasErrors()?(0,f.red)("\u2716\uFE0E\u2716\uFE0E\u2716\uFE0E"):(0,f.brightGreen)("\u25BA\u25BA\u25BA")} ${(0,f.cyan)(t)} compiled ${r.hasErrors()?(0,f.red)("with errors"):(0,f.brightGreen)("successfully")} in ${e} ms.`}function As(t,e){return`${(0,Os.info)("\u25BA\u25BA\u25BA")} Using ${(0,f.magenta)(t)}. Installing required dependencies via ${(0,f.brightYellow)(e)}...`}function v(t){return`${(0,f.cyan)("\u25BA\u25BA\u25BA")} Using ${(0,f.magenta)(t)}...`}function L(t){return`${F(t,"success")} installation completed. Run the program again and happy hacking.`}function Rs(t){return`${F(t,"info")} dependencies are being installed. This only happens for core contributors...`}function Ns(t){return`${F(t,"success")} dependencies installed ${(0,f.brightGreen)("successfully")}.`}function Ts(t,e){return`${F("Integration","error")} ${t} Installation Error
|
|
2
2
|
|
|
3
3
|
Failed to detect package manager or install ${t} dependencies:
|
|
4
|
-
${(0,f.red)(e?.toString()||"")}`}function rt(t,e){if(!t)throw new Error("This operation is impossible. Please report a bug.");switch(Ir.default.extname(e)){case".js":case".ts":case".jsx":case".tsx":return
|
|
4
|
+
${(0,f.red)(e?.toString()||"")}`}function rt(t,e){if(!t)throw new Error("This operation is impossible. Please report a bug.");switch(Ir.default.extname(e)){case".js":case".ts":case".jsx":case".tsx":return pl(t,e);case".css":case".scss":case".sass":case".less":return fl(t,e);default:return ul(t,e)}}function oe(t,e,r){let s=e.startsWith("content_scripts")?"content_scripts":e.replace("/","."),n=e.split("-")[1],o=e.startsWith("pages"),i=t.includes("content_scripts")?`(index ${n})
|
|
5
5
|
|
|
6
6
|
`:s;return`${F("manifest.json","error")} File Not Found
|
|
7
7
|
|
|
@@ -48,13 +48,13 @@ Check the ${(0,f.brightYellow)(t.replace("/","."))} field in your manifest.json
|
|
|
48
48
|
${(0,f.red)("NOT FOUND")} ${(0,f.underline)(e)}`}function Gs(t){return`${F("HTML","error")} Entry Point Modification
|
|
49
49
|
|
|
50
50
|
Changing the path of ${(0,f.brightYellow)("<script>")} or ${(0,f.brightYellow)('<link rel="stylesheet">')} files after compilation requires a server restart.
|
|
51
|
-
${(0,f.gray)("PATH")} ${(0,f.underline)(t)}`}function
|
|
51
|
+
${(0,f.gray)("PATH")} ${(0,f.underline)(t)}`}function pl(t,e){return`${F("HTML","error")} File Not Found
|
|
52
52
|
|
|
53
53
|
Check your ${(0,f.brightYellow)("<script>")} tags in ${(0,f.underline)(t)}.
|
|
54
|
-
${(0,f.red)("NOT FOUND")} ${(0,f.underline)(e)}`}function
|
|
54
|
+
${(0,f.red)("NOT FOUND")} ${(0,f.underline)(e)}`}function fl(t,e){return`${F("HTML","error")} File Not Found
|
|
55
55
|
|
|
56
56
|
Check your ${(0,f.brightYellow)("<link>")} tags in ${(0,f.underline)(t)}.
|
|
57
|
-
${(0,f.red)("NOT FOUND")} ${(0,f.underline)(e)}`}function
|
|
57
|
+
${(0,f.red)("NOT FOUND")} ${(0,f.underline)(e)}`}function ul(t,e){let r=Ir.default.extname(e);return`${F("HTML","warn")} File Not Found
|
|
58
58
|
|
|
59
59
|
Check your ${(0,f.brightYellow)("*"+r)} assets in ${(0,f.underline)(t)}.
|
|
60
60
|
${(0,f.red)("NOT FOUND")} ${(0,f.underline)(e)}`}function Xs(){return`${(0,f.brightYellow)("Note")}: Firefox requires a secure certificate for localhost connections, needed for the reloader to work.
|
|
@@ -71,57 +71,59 @@ Learn more about ${(0,f.bold)("mkcert")}: ${(0,f.underline)("https://github.com/
|
|
|
71
71
|
|
|
72
72
|
For MAIN world content_scripts, the extension ID must be specified.
|
|
73
73
|
Ensure your extension have a fixed ID and that the ${(0,f.brightYellow)("publicPath")}
|
|
74
|
-
of your ${(0,f.brightYellow)("extension.config.js")} is defined as your extension URL.`}var nt=class{static name="plugin-compilation";manifestPath;browser;constructor(e){this.manifestPath=e.manifestPath,this.browser=e.browser||"chrome"}apply(e){new Ys.default().apply(e),new Qe({manifestPath:this.manifestPath,browser:this.browser}).apply(e),new et().apply(e),e.hooks.done.tapAsync("develop:brand",(r,s)=>{r.compilation.name=void 0;let n=r.compilation.endTime-r.compilation.startTime,o=require(this.manifestPath).name;console.log(Ms(o,n,r)),s()})}};var En=a(require("path"));var on=a(require("path")),an=a(require("fs"));var ie=a(require("path")),ot=a(require("fs")),Ar=require("child_process"),en=require("package-manager-detector");function tn(t,e){return Object.values(e||{}).some(r=>r===t)}function h(t,e,r){let s=ie.default.extname(e),o=$(e,r)?ie.default.normalize(e):t;return[".js",".jsx",".tsx",".ts"].includes(s)&&(o=o.replace(s,".js")),[".html",".njk",".nunjucks"].includes(s)&&(o=o.replace(s,".html")),[".css",".scss",".sass",".less"].includes(s)&&(o=o.replace(s,".css")),Rr(o||"")}function Rr(t){return t.replace(/\\/g,"/")}function $(t,e={}){if(!e)return!1;let r=ie.default.normalize(Rr(t));return Object.values(e).some(n=>typeof n!="string"?!1:Rr(n).includes(r))}function W(t,e){if(t.getAsset("manifest.json")||t.assets["manifest.json"]){let r=t.assets["manifest.json"].source().toString();return JSON.parse(r||"{}")}return require(e)}function ae(){return process.env.npm_config_user_agent&&process.env.npm_config_user_agent.includes("pnpm")?"pnpm":!1}function Qs(){return process.env.npm_execpath?"npm":!1}async function j(t,e){try{let r=await(0,en.detect)();console.log(As(t,r?.name||"unknown"));let s="";r?.name==="yarn"?s=`yarn --silent add ${e.join(" ")} --cwd ${__dirname} --optional`:r?.name==="npm"||Qs()?s=`npm --silent install ${e.join(" ")} --prefix ${__dirname} --save-optional`:ae()?s=`pnpm --silent add ${e.join(" ")} --prefix ${__dirname} --save-optional`:s=`${r} --silent install ${e.join(" ")} --cwd ${__dirname} --optional`,(0,Ar.execSync)(s,{stdio:"inherit"}),await new Promise(n=>setTimeout(n,2e3)),process.env.EXTENSION_ENV==="development"&&(console.log(Rs(t)),r?.name==="yarn"?s="yarn install --silent > /dev/null 2>&1":r?.name==="npm"||Qs()?s="npm install --silent > /dev/null 2>&1":ae()?s="pnpm install --silent > /dev/null 2>&1":s=`${r} install --silent > /dev/null 2>&1`,(0,Ar.execSync)(s,{stdio:"inherit"})),console.log(Ns(t))}catch(r){console.error(Ts(t,r))}}function it(t){let e=ie.default.join(t,"package.json");if(!ot.default.existsSync(e))return!1;let r=JSON.parse(ot.default.readFileSync(e,"utf-8")),s=["react","vue","@angular/core","svelte","solid-js","preact"],n=r.dependencies||{},o=r.devDependencies||{};for(let i of s)if(n[i]||o[i])return!0;return!1}function rn(t){return!ot.default.existsSync(ie.default.resolve(__dirname,`run-${t}-profile`))}function sn(t){let e=t.name?.replace(/ /g,"-").toLowerCase();return{data:{id:`${e}@extension-js`,manifest:t,management:{id:`${e}@extension-js`,mayDisable:!0,optionsUrl:"",installType:"development",type:"extension",enabled:!0,name:t.name||"",description:t.description||"",version:t.version||"",hostPermissions:t.host_permissions||[],permissions:t.permissions||[],offlineEnabled:t.offline_enabled||!1,shortName:t.short_name||"",isApp:t.app&&t.app.background&&t.app.background.scripts}}}}function P(t,e){return JSON.parse(JSON.stringify(t),function(n,o){let i=n.indexOf(":");if(i===-1)return o;let c=n.substring(0,i);(c===e||c==="chromium"&&Z.includes(e)||c==="chromium"&&e.includes("chromium")||c==="gecko"&&e.includes("gecko"))&&(this[n.substring(i+1)]=o)})}var nn=!1;function Pe(t){let e=on.default.join(t,"package.json");if(!an.default.existsSync(e))return!1;let r=require(e),s=r.devDependencies&&r.devDependencies.sass,n=r.dependencies&&r.dependencies.sass;return s||n?(nn||(process.env.EXTENSION_ENV==="development"&&console.log(v("SASS")),nn=!0),!0):!1}async function cn(t){if(!Pe(t))return[];try{require.resolve("sass-loader")}catch{await j("PostCSS",["postcss-loader","postcss-scss","postcss-preset-env"]),await j("SASS",["sass","sass-loader"]),console.log(L("SASS")),process.exit(0)}return[{test:/\.(sass|scss)$/,exclude:/\.module\.(sass|scss)$/,type:"css",use:[{loader:require.resolve("sass-loader"),options:{sourceMap:!0,sassOptions:{outputStyle:"expanded"}}}]},{test:/\.module\.(sass|scss)$/,type:"css/module",use:[{loader:require.resolve("sass-loader"),options:{sourceMap:!0,sassOptions:{outputStyle:"expanded"}}}]}]}var pn=a(require("path")),fn=a(require("fs"));var ln=!1;function Ee(t){let e=pn.default.join(t,"package.json");if(!fn.default.existsSync(e))return!1;let r=require(e),s=r.devDependencies&&r.devDependencies.less,n=r.dependencies&&r.dependencies.less;return s||n?(ln||(process.env.EXTENSION_ENV==="development"&&console.log(v("LESS")),ln=!0),!0):!1}async function un(t){if(!Ee(t))return[];try{require.resolve("less-loader")}catch{await j("LESS",["less","less-loader"]),console.log(L("LESS")),process.exit(0)}return[{test:/\.less$/,exclude:/\.module\.less$/,type:"css",use:[{loader:require.resolve("less-loader"),options:{sourceMap:!0}}]},{test:/\.module\.less$/,type:"css/module",use:[{loader:require.resolve("less-loader"),options:{sourceMap:!0}}]}]}var R=a(require("path")),N=a(require("fs"));function ul(t){let e=R.default.join(t,"stylelint.config.json"),r=R.default.join(t,".stylelintrc.js file"),s=R.default.join(t,"stylelint.config.mjs"),n=R.default.join(t,".stylelintrc.mjs"),o=R.default.join(t,"stylelint.config.cjs"),i=R.default.join(t,".stylelintrc.cjs"),c=R.default.join(t,".stylelintrc.json"),l=R.default.join(t,".stylelintrc"),p=R.default.join(t,".stylelintrc.yml"),u=R.default.join(t,".stylelintrc.yaml");if(N.default.existsSync(e))return e;if(N.default.existsSync(r))return r;if(N.default.existsSync(s))return s;if(N.default.existsSync(n))return n;if(N.default.existsSync(o))return o;if(N.default.existsSync(i))return i;if(N.default.existsSync(c))return c;if(N.default.existsSync(l))return l;if(N.default.existsSync(p))return p;if(N.default.existsSync(u))return u}var mn=!1;function ml(t){let e=R.default.join(t,"package.json");if(!N.default.existsSync(e))return!1;let s=!!ul(t);return s&&(mn||(process.env.EXTENSION_ENV==="development"&&console.log(v("Stylelint")),mn=!0)),s}async function dn(t){return ml(t),[]}var vn=a(require("path"));var hn=a(require("path")),yn=a(require("fs"));var gn=!1;function at(t){let e=hn.default.join(t,"package.json");if(!yn.default.existsSync(e))return!1;let r=require(e),s=r.devDependencies&&r.devDependencies.tailwindcss,n=r.dependencies&&r.dependencies.tailwindcss,o=!!(s||n);return o&&(gn||(process.env.EXTENSION_ENV==="development"&&console.log(v("Tailwind")),gn=!0)),o}var Nr=a(require("path")),ct=a(require("fs"));var ce=!1,dl=[".postcssrc",".postcssrc.json",".postcssrc.yaml",".postcssrc.yml",".postcssrc.js",".postcssrc.cjs","postcss.config.js","postcss.config.cjs"];function bn(t){for(let e of dl){let r=Nr.default.join(t,e);if(ct.default.existsSync(r))return r}}function gl(t){let e=Nr.default.join(t,"package.json");if(!ct.default.existsSync(e))return!1;if(ct.default.existsSync(e)){let r=require(e);if(r.dependencies&&r.dependencies.postcss||r.devDependencies&&r.devDependencies.postcss)return ce||(process.env.EXTENSION_ENV==="development"&&console.log(v("PostCSS")),ce=!0),!0}return bn(t)?(ce||(process.env.EXTENSION_ENV==="development"&&console.log(v("PostCSS")),ce=!0),!0):at(t)?(ce||(process.env.EXTENSION_ENV==="development"&&console.log(v("PostCSS")),ce=!0),!0):!1}async function wn(t,e){if(!gl(t))return{};try{require.resolve("postcss-loader")}catch{!Pe(t)&&!Ee(t)&&await j("PostCSS",["postcss","postcss-loader","postcss-preset-env"]),console.log(L("PostCSS")),process.exit(0)}return{test:/\.css$/,type:"css",loader:require.resolve("postcss-loader"),options:{postcssOptions:{ident:"postcss",config:bn(t),plugins:[[require.resolve("postcss-preset-env"),{autoprefixer:{flexbox:"no-2009"},stage:3}]].filter(Boolean)},sourceMap:e.mode==="development"}}}async function lt(t,e){let r=[];if(at(t)||Pe(t)||Ee(t)){let s=await wn(t,e);s.loader&&r.push(s)}return e.loader&&r.push({loader:e.loader.startsWith("builtin:")?e.loader:require.resolve(e.loader),options:{...e.loaderOptions,sourceMap:e.mode==="development"}}),r.filter(Boolean)}var Tr=a(require("path")),xn=a(require("fs"));function pt(t,e){if(!t||!e)return!1;let r=JSON.parse(xn.default.readFileSync(e,"utf8"));for(let s of r.content_scripts||[])if(s.js?.length){for(let n of s.js)if(Tr.default.resolve(Tr.default.dirname(e),n)===t)return!0}return!1}async function Sn(t,e){let r=vn.default.join(t,"manifest.json");return[{test:/\.css$/,type:"asset",generator:{filename:"content_scripts/[name].[contenthash:8].css"},issuer:s=>pt(s,r),use:await lt(t,{mode:e})}]}var _n=a(require("path"));async function Pn(t,e){let r=_n.default.join(t,"manifest.json");return[{test:/\.css$/,type:"css",issuer:s=>!pt(s,r),use:await lt(t,{mode:e})}]}var ft=class t{static name="plugin-css";manifestPath;constructor(e){this.manifestPath=e.manifestPath}async configureOptions(e){let r=e.options.mode||"development",s=En.default.dirname(this.manifestPath),n=[],o=await dn(s);n.push(...o);let i=[...await Sn(s,r),...await Pn(s,r)],c=await cn(s),l=await un(s);c.length&&i.push(...c),l.length&&i.push(...l),e.options.plugins=[...e.options.plugins,...n].filter(Boolean),e.options.module.rules=[...e.options.module.rules,...i].filter(Boolean)}async apply(e){if((e.options.mode||"development")==="production"){e.hooks.beforeRun.tapPromise(t.name,async()=>await this.configureOptions(e));return}await this.configureOptions(e)}};var ut=class{static name="plugin-static-assets";manifestPath;mode;constructor(e){this.manifestPath=e.manifestPath,this.mode=e.mode}async apply(e){let r={test:/\.svg$/i,type:"asset",generator:{filename:"assets/[name][ext]"},parser:{dataUrlCondition:{maxSize:2048}}},n=[...e.options.module.rules.some(o=>o&&o.test instanceof RegExp&&o.test.test(".svg")&&o.use!==void 0)?[]:[r],{test:/\.(png|jpg|jpeg|gif|webp|avif|ico|bmp)$/i,type:"asset",generator:{filename:"assets/[name][ext]"},parser:{dataUrlCondition:{maxSize:2*1024}}},{test:/\.(woff|woff2|eot|ttf|otf)$/i,type:"asset",generator:{filename:"assets/[name][ext]"}},{test:/\.(txt|md|csv|tsv|xml|pdf|docx|doc|xls|xlsx|ppt|pptx|zip|gz|gzip|tgz)$/i,type:"asset",generator:{filename:"assets/[name][ext]"},parser:{dataUrlCondition:{maxSize:2*1024}}},{test:/\.(csv|tsv)$/i,use:[require.resolve("csv-loader")],generator:{filename:"assets/[name][ext]"}}];e.options.module.rules=[...e.options.module.rules,...n].filter(o=>!!o)}};var $e=a(require("path"));var Ur=a(require("path")),Br=a(require("fs"));var kn=!1,hl=[".babelrc",".babelrc.json",".babelrc.js",".babelrc.cjs","babel.config.json","babel.config.js","babel.config.cjs"];function yl(t){let e=Ur.default.join(t,"package.json");if(!Br.default.existsSync(e))return!1;let r=require(e),s=r.devDependencies&&r.devDependencies["babel-core"],n=r.dependencies&&r.dependencies["babel-core"],o=hl.some(i=>Br.default.existsSync(Ur.default.join(t,i)))||!!s||!!n;return o&&(kn||(process.env.EXTENSION_ENV==="development"&&process.env.EXTENSION_ENV==="development"&&console.log(v("Babel")),kn=!0)),o}async function $n(t,e){yl(e)}var Cn=a(require("path")),jn=a(require("fs"));var Fn=!1;function ke(t){let e=Cn.default.join(t,"package.json");if(!jn.default.existsSync(e))return!1;let r=require(e),s=r.devDependencies&&r.devDependencies.preact,n=r.dependencies&&r.dependencies.preact;return(s||n)&&(Fn||(process.env.EXTENSION_ENV==="development"&&console.log(v("Preact")),Fn=!0)),!!s||!!n}async function Dn(t){if(!ke(t))return;try{require.resolve("@rspack/plugin-preact-refresh")}catch{await j("Preact",["@prefresh/core","@prefresh/utils","@rspack/plugin-preact-refresh","preact"]),console.log(L("Preact")),process.exit(0)}return{plugins:[new(require("@rspack/plugin-preact-refresh"))],loaders:void 0,alias:{react:"preact/compat","react-dom/test-utils":"preact/test-utils","react-dom":"preact/compat","react/jsx-runtime":"preact/jsx-runtime"}}}var On=a(require("path")),In=a(require("fs"));var Ln=!1;function mt(t){let e=On.default.join(t,"package.json");if(!In.default.existsSync(e))return!1;let r=require(e),s=r.devDependencies&&r.devDependencies.react,n=r.dependencies&&r.dependencies.react;return(s||n)&&(Ln||(process.env.EXTENSION_ENV==="development"&&console.log(v("React")),Ln=!0)),!!s||!!n}async function Mn(t){if(!mt(t))return;try{require.resolve("react-refresh")}catch{await j("React",["react-refresh","@rspack/plugin-react-refresh"]),console.log(L("React")),process.exit(0)}return{plugins:[new(require("@rspack/plugin-react-refresh"))({overlay:!1})],loaders:void 0,alias:void 0}}var Rn=a(require("path")),Nn=a(require("fs")),Tn=require("vue-loader");var An=!1;function bl(t){let e=Rn.default.join(t,"package.json");if(!Nn.default.existsSync(e))return!1;let r=require(e),s=r.devDependencies&&r.devDependencies.vue,n=r.dependencies&&r.dependencies.vue;return(s||n)&&(An||(process.env.EXTENSION_ENV==="development"&&console.log(v("Vue")),An=!0)),!!s||!!n}async function Un(t){if(!bl(t))return;try{require.resolve("vue-loader")}catch{await j("Vue",["vue-loader","vue-template-compiler","@vue/compiler-sfc"]),console.log(L("Vue")),process.exit(0)}let e=[{test:/\.vue$/,loader:require.resolve("vue-loader"),options:{experimentalInlineMatchResource:!0},include:t,exclude:/node_modules/}];return{plugins:[new Tn.VueLoaderPlugin],loaders:e,alias:void 0}}var dt=a(require("path")),gt=a(require("fs"));var Bn=!1;function K(t){let e=dt.default.join(t,"package.json");if(!gt.default.existsSync(e))return!1;let r=xl(t),s=require(e),n=s.devDependencies&&s.devDependencies.typescript,o=s.dependencies&&s.dependencies.typescript;return Bn||((n||o)&&(r?process.env.EXTENSION_ENV==="development"&&console.log(v("TypeScript")):(console.log(Js()),vl(t))),Bn=!0),!!r&&!!(n||o)}function wl(t,e){return{compilerOptions:{allowJs:!0,allowSyntheticDefaultImports:!0,esModuleInterop:!0,forceConsistentCasingInFileNames:!0,jsx:it(t)?"react-jsx":"preserve",lib:["dom","dom.iterable","esnext"],moduleResolution:"node",module:"esnext",resolveJsonModule:!0,strict:!0,target:"esnext",isolatedModules:!1,skipLibCheck:!0},exclude:["node_modules","dist"]}}function xl(t){let e=dt.default.join(t,"tsconfig.json");if(gt.default.existsSync(e))return e}function vl(t){gt.default.writeFileSync(dt.default.join(t,"tsconfig.json"),JSON.stringify(wl(t,{mode:"development"}),null,2))}var Wn=a(require("path")),Jn=a(require("fs")),zn=require("svelte-preprocess");var qn=!1;function Sl(t){let e=Wn.default.join(t,"package.json");if(!Jn.default.existsSync(e))return!1;let r=require(e),s=r.devDependencies&&r.devDependencies?.svelte,n=r.dependencies&&r.dependencies.svelte;return(s||n)&&(qn||(process.env.EXTENSION_ENV==="development"&&console.log(v("Svelte")),qn=!0)),!!s||!!n}async function Hn(t,e){if(!Sl(t))return;try{require.resolve("svelte-loader")}catch{await j("TypeScript",["typescript"]),await j("Svelte",["svelte-loader","svelte-preprocess"]),console.log(L("Svelte")),process.exit(0)}return{plugins:void 0,loaders:[{test:/\.svelte\.ts$/,use:[require.resolve("svelte-loader")],include:t,exclude:/node_modules/},{test:/\.(svelte|svelte\.js)$/,use:{loader:require.resolve("svelte-loader"),options:{preprocess:(0,zn.sveltePreprocess)({typescript:!0}),emitCss:!0,compilerOptions:{dev:e==="development",css:"injected"},hotReload:e==="development"}},include:t,exclude:/node_modules/},{test:/node_modules\/svelte\/.*\.mjs$/,resolve:{fullySpecified:!1}}],alias:void 0}}var ht=class t{static name="plugin-js-frameworks";manifestPath;mode;constructor(e){this.manifestPath=e.manifestPath,this.mode=e.mode}async configureOptions(e){let r=e.options.mode||"development",s=$e.default.dirname(this.manifestPath),n=await $n(e,s),o=await Mn(s),i=await Dn(s),c=await Un(s),l=await Hn(s,r);e.options.resolve.alias={...n?.alias||{},...o?.alias||{},...i?.alias||{},...c?.alias||{},...l?.alias||{},...e.options.resolve.alias},e.options.module.rules=[{test:/\.(js|mjs|jsx|mjsx|ts|mts|tsx|mtsx)$/,include:[$e.default.dirname(this.manifestPath)],exclude:[/[\\/]node_modules[\\/]/],use:{loader:"builtin:swc-loader",options:{sync:!0,module:{type:"es6"},minify:r==="production",isModule:!0,sourceMap:this.mode==="development",env:{targets:["chrome >= 100"]},jsc:{parser:{syntax:K(s)?"typescript":"ecmascript",tsx:K(s)&&(mt(s)||ke(s)),jsx:!K(s)&&(mt(s)||ke(s)),dynamicImport:!0},transform:{react:{development:r==="development",refresh:r==="development",runtime:"automatic",importSource:"react",...ke(s)?{pragma:"h",pragmaFrag:"Fragment",throwIfNamespace:!0,useBuiltins:!1}:{}}}}}}},...n?.loaders||[],...o?.loaders||[],...i?.loaders||[],...c?.loaders||[],...l?.loaders||[],...e.options.module.rules].filter(Boolean),o?.plugins?.forEach(p=>p.apply(e)),i?.plugins?.forEach(p=>p.apply(e)),c?.plugins?.forEach(p=>p.apply(e)),l?.plugins?.forEach(p=>p.apply(e)),K(s)&&(e.options.resolve.tsConfig={configFile:$e.default.resolve($e.default.dirname(this.manifestPath),"tsconfig.json")})}async apply(e){if((e.options.mode||"development")==="production"){e.hooks.beforeRun.tapPromise(t.name,async()=>await this.configureOptions(e));return}await this.configureOptions(e)}};var Oo=a(require("path"));var Vn=a(require("path"));function Gn(t,e){if(!e||!e.action||!e.action.default_popup)return;let r=e.action.default_popup;return Vn.default.join(t,r)}var Xn=a(require("path"));function Zn(t,e){if(!e||!e.browser_action||!e.browser_action.default_popup)return;let r=e.browser_action.default_popup;return Xn.default.join(t,r)}var yt=a(require("path"));function Kn(t,e){let r={newtab:void 0};if(!e||!e.chrome_url_overrides)return{"chrome_url_overrides/newtab":void 0};if(e.chrome_url_overrides.history){let s=e.chrome_url_overrides.history;r={"chrome_url_overrides/history":yt.default.join(t,s)}}if(e.chrome_url_overrides.newtab){let s=e.chrome_url_overrides.newtab;r={"chrome_url_overrides/newtab":yt.default.join(t,s)}}if(e.chrome_url_overrides.bookmarks){let s=e.chrome_url_overrides.bookmarks;r={"chrome_url_overrides/bookmarks":yt.default.join(t,s)}}return r}var Yn=a(require("path"));function Qn(t,e){if(!e||!e.devtools_page)return;let r=e.devtools_page;return Yn.default.join(t,r)}var qr=a(require("path"));function eo(t,e){if(e.options_page){let s=e.options_page;return qr.default.join(t,s)}if(!e||!e.options_ui||!e.options_ui.page)return;let r=e.options_ui.page;return qr.default.join(t,r)}var to=a(require("path"));function ro(t,e){if(!e||!e.page_action||!e.page_action.default_popup)return;let r=e.page_action.default_popup;return to.default.join(t,r)}var so=a(require("path"));function no(t,e){if(!e||!e.sandbox||!e.sandbox.pages)return{"sandbox/page-0":void 0};let r=e.sandbox.pages,s={};for(let[n,o]of r.entries())s[`sandbox/page-${n}`]=so.default.join(t,o);return s}var oo=a(require("path"));function io(t,e){if(!e||!e.side_panel||!e.side_panel.default_path)return;let r=e.side_panel.default_path;return oo.default.join(t,r)}var ao=a(require("path"));function co(t,e){if(!e||!e.sidebar_action||!e.sidebar_action.default_panel)return;let r=e.sidebar_action.default_panel;return ao.default.join(t,r)}function Fe(t,e){return{"action/default_popup":Gn(t,e),"browser_action/default_popup":Zn(t,e),...Kn(t,e),devtools_page:Qn(t,e),"options_ui/page":eo(t,e),"page_action/default_popup":ro(t,e),...no(t,e),"side_panel/default_path":io(t,e),"sidebar_action/default_panel":co(t,e)}}var Wr=a(require("path"));function lo(t,e){if(!e||!e.action||!e.action.default_icon)return;if(typeof e.action.default_icon=="string")return Wr.default.join(t,e.action.default_icon);let r=[];for(let s in e.action.default_icon)r.push(Wr.default.join(t,e.action.default_icon[s]));return r}var Jr=a(require("path"));function po(t,e){if(!e||!e.browser_action||!e.browser_action.default_icon)return;let r=[];if(typeof e.browser_action.default_icon=="string")return Jr.default.join(t,e.browser_action.default_icon);for(let s in e.browser_action.default_icon){let n=e.browser_action.default_icon[s]=Jr.default.join(t,e.browser_action.default_icon[s]);r.push(n)}return r}var zr=a(require("path"));function fo(t,e){if(!(!e||!e.browser_action||!e.browser_action.theme_icons)){for(let r of e.browser_action.theme_icons)r.light&&(r.light=zr.default.join(t,r.light)),r.dark&&(r.dark=zr.default.join(t,r.dark)),r.size&&delete r.size;return e.browser_action.theme_icons}}var uo=a(require("path"));function mo(t,e){if(!e||!e.icons)return;let r=[];for(let s in e.icons){let n=uo.default.join(t,e.icons[s]);r.push(n)}return r}var Hr=a(require("path"));function go(t,e){if(!e||!e.page_action||!e.page_action.default_icon)return;if(typeof e.page_action.default_icon=="string")return Hr.default.join(t,e.page_action.default_icon);let r=[];for(let s in e.page_action.default_icon){let n=Hr.default.join(t,e.page_action.default_icon[s]);r.push(n)}return r}var ho=a(require("path"));function yo(t,e){return!e||!e.sidebar_action||!e.sidebar_action.default_icon?void 0:ho.default.join(t,e.sidebar_action.default_icon)}function bo(t,e){return{action:lo(t,e),browser_action:po(t,e),"browser_action/theme_icons":fo(t,e),icons:mo(t,e),page_action:go(t,e),sidebar_action:yo(t,e)}}var wo=a(require("path"));function xo(t,e){let r={};return!e||!e.declarative_net_request||!e.declarative_net_request.rule_resources?{"declarative_net_request/rule_resources-0":void 0}:(e.declarative_net_request.rule_resources.forEach(n=>{r[`declarative_net_request/${n.id}`]=wo.default.join(t,n.path)}),r)}var vo=a(require("path"));function So(t,e){if(!e||!e.storage||!e.storage.managed_schema)return;let r=e.storage.managed_schema;return vo.default.join(t,r)}function _o(t,e){return{...xo(t,e),"storage/managed_schema":So(t,e)}}var Ce=a(require("path")),je=a(require("fs"));function Po(t,e){let r=Ce.default.join(Ce.default.dirname(e),"_locales"),s=[];if(je.default.existsSync(r))for(let n of je.default.readdirSync(r)){let o=Ce.default.join(r,n);if(o&&je.default.statSync(o).isDirectory())for(let i of je.default.readdirSync(o))s.push(Ce.default.join(t,"_locales",n,i))}return s}var Eo=a(require("path"));function ko(t,e){if(!e||!e.background)return;let r=e.background.scripts;if(r)return r.map(s=>Eo.default.join(t,s))}var $o=a(require("path"));function Fo(t,e){if(!e||!e.background)return;let r=e.background.service_worker;if(r)return $o.default.join(t,r)}var Vr=a(require("path"));function Co(t,e){if(!e||!e.content_scripts)return{"content_scripts/content-0":void 0};let r=o=>{if(o.js?.length!==0)return o.js?.map(i=>Vr.default.join(t,i))},s=o=>{if(o.css?.length!==0)return o.css?.map(i=>Vr.default.join(t,i))},n={};for(let[o,i]of e.content_scripts.entries()){let c=r(i),l=s(i);n[`content_scripts/content-${o}`]=[...(c||[]).filter(p=>p!=null),...(l||[]).filter(p=>p!=null)]}return n}var jo=a(require("path"));function Do(t,e){if(!e||!e.user_scripts||!e.user_scripts.api_script)return;let r=e.user_scripts.api_script;return jo.default.join(t,r)}function De(t,e){return{"background/scripts":ko(t,e),"background/service_worker":Fo(t,e),...Co(t,e),"user_scripts/api_script":Do(t,e)}}function Lo(t){if(!(!t||!t.web_accessible_resources||!t.web_accessible_resources.length))return t.web_accessible_resources}function le({manifestPath:t,browser:e}){let r=Oo.default.dirname(t),s=require(t),n=P(s,e||"chrome");return{html:Fe(r,n),icons:bo(r,n),json:_o(r,n),locales:Po(r,t),scripts:De(r,n),web_accessible_resources:Lo(n)}}var pe=a(require("path"));var bt=a(require("fs")),Le=a(require("path"));function wt(t,e){if(!bt.default.existsSync(t)||!bt.default.statSync(t).isDirectory())return[];let r=[];function s(n){let o=bt.default.readdirSync(n,{withFileTypes:!0});for(let i of o){let c=Le.default.join(n,i.name);i.isDirectory()?s(c):i.isFile()&&e(i.name)&&r.push(c)}}return s(t),r}function xt(t,e,r=""){return!e||!e.length?{}:e.reduce((s,n)=>{let o=Le.default.extname(n),i=Le.default.basename(n,o),c=r?`${r}/${i}`:Le.default.relative(t,n);return{...s,[c]:n}},{})}function Io({manifestPath:t}){let e=pe.default.dirname(t),r={public:pe.default.join(e,"public"),pages:pe.default.join(e,"pages"),scripts:pe.default.join(e,"scripts")},s={public:wt(r.public,()=>!0),pages:wt(r.pages,o=>o.endsWith(".html")),scripts:wt(r.scripts,o=>[".js",".mjs",".jsx",".mjsx",".ts",".mts",".tsx",".mtsx"].includes(pe.default.extname(o)))};return{public:xt(e,s.public),pages:xt(e,s.pages,"pages"),scripts:xt(e,s.scripts,"scripts")}}var Mo=a(require("fs")),fe=a(require("@rspack/core"));var vt=class{manifestPath;constructor(e){this.manifestPath=e.manifestPath}apply(e){e.hooks.thisCompilation.tap("manifest:emit-manifest",r=>{r.hooks.processAssets.tap({name:"manifest:emit-manifest",stage:fe.Compilation.PROCESS_ASSETS_STAGE_PRE_PROCESS},()=>{let s=this.manifestPath,n;try{let c=Mo.default.readFileSync(s,"utf-8");n=JSON.parse(c),"$schema"in n&&delete n.$schema}catch(c){r.errors.push(new fe.default.WebpackError(Bs(c)));return}let o=JSON.stringify(n,null,2);r.emitAsset("manifest.json",new fe.sources.RawSource(o))})})}};var Oe=require("@rspack/core");function Ao(t,e){return t.background&&t.background.scripts&&{background:{...t.background,...t.background.scripts&&{scripts:[...t.background.scripts.map(r=>h("background/scripts.js",r,e))]}}}}var Ro=a(require("path"));var St=t=>Ro.default.basename(t);function No(t,e){return t.browser_action&&{browser_action:{...t.browser_action,...t.browser_action.default_popup&&{default_popup:h("browser_action/default_popup.html",t.browser_action.default_popup,e)},...t.browser_action.default_icon&&{default_icon:typeof t.browser_action.default_icon=="string"?h(`icons/${St(t.browser_action.default_icon)}`,t.browser_action.default_icon,e):Object.fromEntries(Object.entries(t.browser_action.default_icon).map(([r,s])=>[r,h(`icons/${St(s)}`,s,e)]))},...t.browser_action.theme_icons&&{theme_icons:t.browser_action.theme_icons.map(r=>({...r,...r.light&&{light:h(`browser_action/${St(r.light)}`,r.light,e)},...r.dark&&{dark:h(`browser_action/${St(r.dark)}`,r.dark,e)}}))}}}}function To(t,e){return t.declarative_net_request&&{declarative_net_request:{...t.declarative_net_request,rule_resources:t.declarative_net_request.rule_resources.map(r=>({...r,path:r.path&&h(`declarative_net_request/${r.id}.json`,r.path,e)}))}}}function Uo(t,e){return{...Ao(t,e),...No(t,e),...To(t,e)}}var qo=a(require("path"));var Bo=t=>qo.default.basename(t);function Wo(t,e){return t.action&&{action:{...t.action,...t.action.default_popup&&{default_popup:h("action/default_popup.html",t.action.default_popup,e)},...t.action.default_icon&&{default_icon:typeof t.action.default_icon=="string"?h(`action/${Bo(t.action.default_icon)}`,t.action.default_icon,e):Object.fromEntries(Object.entries(t.action.default_icon).map(([r,s])=>[r,h(`action/${Bo(s)}`,s,e)]))}}}}function Jo(t,e){return t.background&&t.background.service_worker&&{background:{...t.background,...t.background.service_worker&&{service_worker:h("background/service_worker.js",t.background.service_worker,e)}}}}function _t(t,e){return t.side_panel&&{side_panel:{...t.side_panel.default_path&&{default_path:h("side_panel/default_path.html",t.side_panel.default_path,e)}}}}function zo(t,e){return{...Wo(t,e),...Jo(t,e),..._t(t,e)}}function Ho(t,e){return t.background&&t.background.page&&{background:{...t.background,...t.background.page&&{page:h("background/page.html",t.background.page,e)}}}}function Vo(t,e){return t.chrome_url_overrides&&{chrome_url_overrides:{...t.chrome_url_overrides.bookmarks&&{bookmarks:h("chrome_url_overrides/bookmarks.html",t.chrome_url_overrides.bookmarks,e)},...t.chrome_url_overrides.history&&{history:h("chrome_url_overrides/history.html",t.chrome_url_overrides.history,e)},...t.chrome_url_overrides.newtab&&{newtab:h("chrome_url_overrides/newtab.html",t.chrome_url_overrides.newtab,e)}}}}function Go(t,e){return t.content_scripts&&{content_scripts:t.content_scripts.map((r,s)=>{let n=[...new Set(r.js)],o=[...new Set(r.css)];return{...r,js:[...n.map(i=>h(`content_scripts/content-${s}.js`,i,e))],css:[...o.map(i=>h(`content_scripts/content-${s}.css`,i,e))]}})}}function Xo(t,e){return t.devtools_page&&{devtools_page:h("devtools_page.html",t.devtools_page,e)}}var Zo=a(require("path"));var _l=t=>Zo.default.basename(t);function Ko(t,e){return t.icons&&{icons:Object.fromEntries(Object.entries(t.icons).map(([r,s])=>[r,h(`icons/${_l(s)}`,s,e)]))}}function Yo(t,e){return t.options_page&&{options_page:h("options_ui/page.html",t.options_page,e)}}function Qo(t,e){return t.options_ui&&{options_ui:{...t.options_ui,...t.options_ui.page&&{page:h("options_ui/page.html",t.options_ui.page,e)}}}}var ti=a(require("path"));var ei=t=>ti.default.basename(t);function ri(t,e){return t.page_action&&{page_action:{...t.page_action,...t.page_action.default_popup&&{default_popup:h("page_action/default_popup.html",t.page_action.default_popup,e)},...t.page_action.default_icon&&{default_icon:typeof t.page_action.default_icon=="string"?h(`icons/${ei(t.page_action.default_icon)}`,t.page_action.default_icon,e):Object.fromEntries(Object.entries(t.page_action.default_icon).map(([r,s])=>[r,h(`icons/${ei(s)}`,s,e)]))}}}}function si(t,e){return t.sandbox&&{sandbox:{...t.sandbox,...t.sandbox.pages&&{pages:t.sandbox.pages.map((r,s)=>h(`sandbox/page-${s}.html`,r,e))}}}}var ni=a(require("path"));var Pl=t=>ni.default.basename(t);function oi(t,e){return t.sidebar_action&&{sidebar_action:{...t.sidebar_action,...t.sidebar_action.default_panel&&{default_panel:h("sidebar_action/default_panel.html",t.sidebar_action.default_panel,e)},...t.sidebar_action.default_icon&&{default_icon:h(`icons/${Pl(t.sidebar_action.default_icon)}`,t.sidebar_action.default_icon,e)}}}}function ii(t,e){return t.storage&&{storage:{...t.storage.managed_schema&&{managed_schema:h("storage/managed_schema.json",t.storage.managed_schema,e)}}}}var ai=a(require("path"));var El=t=>ai.default.basename(t);function ci(t,e){return t.theme&&{theme:{...t.theme,...t.theme.images&&{images:{...t.theme.images,theme_frame:h(`theme/images/${El(t.theme.images.theme_frame)}`,t.theme.images.theme_frame,e)}}}}}function li(t,e){return t.user_scripts&&{user_scripts:{...t.user_scripts,...t.user_scripts.api_script&&{api_script:h("user_scripts/api_script.js",t.user_scripts.api_script,e)}}}}function pi(t){return t.web_accessible_resources&&t.web_accessible_resources.length&&{web_accessible_resources:t.web_accessible_resources}}function fi(t,e){return{...Ho(t,e),...Vo(t,e),...Go(t,e),...Xo(t,e),...Ko(t,e),...Yo(t,e),...Qo(t,e),...ri(t,e),...si(t,e),..._t(t,e),...oi(t,e),...ii(t,e),...ci(t,e),...li(t,e),...pi(t)}}function Gr(t,e,r){let s=e||require(t);return JSON.stringify({...s,...fi(s,r),...Uo(s,r),...zo(s,r)},null,2)}var Pt=class{manifestPath;excludeList;constructor(e){this.manifestPath=e.manifestPath,this.excludeList=e.excludeList}applyDevOverrides(e){return e.content_scripts?e.content_scripts.map((r,s)=>(r.css.length&&!r.js.length&&(r.js=[h(`content_scripts-${s}`,"dev.js",{})]),r)):{}}apply(e){e.hooks.thisCompilation.tap("manifest:update-manifest",r=>{r.hooks.processAssets.tap({name:"manifest:update-manifest",stage:Oe.Compilation.PROCESS_ASSETS_STAGE_SUMMARIZE},()=>{if(r.errors.length>0)return;let s=W(r,this.manifestPath),n=Gr(this.manifestPath,s,this.excludeList||{}),o={...s,...JSON.parse(n)};e.options.mode==="development"&&o.content_scripts&&(o.content_scripts=this.applyDevOverrides(o));let i=JSON.stringify(o,null,2),c=new Oe.sources.RawSource(i);r.updateAsset("manifest.json",c)}),e.options.mode==="production"&&r.hooks.processAssets.tap("manifest:update-manifest",()=>{if(r.errors.length>0)return;let s=W(r,this.manifestPath),n=Gr(this.manifestPath,s,this.excludeList||{}),o={...s,...JSON.parse(n)},i=JSON.stringify(o,null,2),c=new Oe.sources.RawSource(i);r.updateAsset("manifest.json",c)})})}};var ui=a(require("fs")),Et=class{dependencyList;constructor(e){this.dependencyList=e}apply(e){e.hooks.afterCompile.tap("manifest:add-dependency",r=>{if(r.errors?.length)return;let s=new Set(r.fileDependencies);this.dependencyList&&this.dependencyList.forEach(n=>{ui.default.existsSync(n)&&(s.has(n)||(s.add(n),r.fileDependencies.add(n)))})})}};var mi=a(require("fs")),di=a(require("path")),$t=a(require("@rspack/core"));var kt=class{manifestPath;includeList;excludeList;constructor(e){this.manifestPath=e.manifestPath,this.includeList=e.includeList,this.excludeList=e.excludeList}extractPaths(e){let r=Array.isArray(e)?e:[e];if(typeof r[0]=="string")return r;let s=[];if(typeof e=="object"&&!Array.isArray(e)){let n=e;n.light&&s.push(n.light),n.dark&&s.push(n.dark)}return s}handleErrors(e,r){let s=[".png",".jpg",".jpeg",".svg",".gif",".webp"],n=[".json"],o=[".js",".ts",".jsx",".tsx",".mjs",".cjs"],i=".html",c=Object.entries(this.includeList||{});for(let[l,p]of c)if(p){let u=this.extractPaths(p);for(let m of u){let g=di.default.extname(m),b=require(this.manifestPath),S=P(b,"chrome").name||"Extension.js";if(!mi.default.existsSync(m)){if(m.startsWith("/"))return;let E=oe(S,l,m);s.includes(g)?e.errors.push(new r(E)):n.includes(g)?e.errors.push(new r(E)):o.includes(g)?e.errors.push(new r(E)):g===i?e.errors.push(new r(E)):e.errors.push(new r(E))}}}}apply(e){e.hooks.compilation.tap("manifest:check-manifest-files",r=>{r.hooks.processAssets.tap({name:"compatibility:check-manifest-files",stage:$t.Compilation.PROCESS_ASSETS_STAGE_OPTIMIZE_COUNT},()=>{let s=$t.default.WebpackError;this.handleErrors(r,s)})})}};var gi=a(require("fs")),Ct=a(require("@rspack/core"));var Ft=class{manifestPath;browser;includeList;constructor(e){this.manifestPath=e.manifestPath,this.browser=e.browser||"chrome",this.includeList=e.includeList}flattenAndSort(e){return e.flat(1/0).sort()}apply(e){e.hooks.watchRun.tapAsync("manifest:throw-if-recompile-is-needed",(r,s)=>{if((r.modifiedFiles||new Set).has(this.manifestPath)){let o=r.options.context||"",i=`${o}/package.json`;if(!gi.default.existsSync(i)){s();return}let c=require(this.manifestPath),l=P(c,this.browser),p=this.flattenAndSort(Object.values(Fe(o,l))),u=this.flattenAndSort(Object.values(De(o,l)));r.hooks.thisCompilation.tap("manifest:throw-if-recompile-is-needed",m=>{m.hooks.processAssets.tap({name:"manifest:check-manifest-files",stage:Ct.Compilation.PROCESS_ASSETS_STAGE_OPTIMIZE_COMPATIBILITY},()=>{let b=m.getAsset("manifest.json")?.source.source().toString(),_=JSON.parse(b||"{}"),S=this.flattenAndSort(Object.values(Fe(o,_))),E=this.flattenAndSort(Object.values(De(o,_)));if(u.toString()!==E.toString()||p.toString()!==S.toString()){let A=p.filter(q=>!S.includes(q))[0],T=S.filter(q=>!p.includes(q))[0],_e=qs(T,A);m.errors.push(new Ct.default.WebpackError(_e))}})})}s()})}};var jt=class{manifestPath;browser;includeList;excludeList;constructor(e){this.manifestPath=e.manifestPath,this.browser=e.browser||"chrome",this.includeList=e.includeList,this.excludeList=e.excludeList}apply(e){new vt({manifestPath:this.manifestPath}).apply(e),new kt({manifestPath:this.manifestPath,includeList:this.includeList,excludeList:this.excludeList}).apply(e),new Pt({manifestPath:this.manifestPath,excludeList:this.excludeList}).apply(e),new Et([this.manifestPath]).apply(e),new Ft({manifestPath:this.manifestPath,browser:this.browser,includeList:this.includeList}).apply(e)}};var Qr=a(require("path"));var Zr=a(require("fs")),Ot=a(require("@rspack/core")),xi=require("@rspack/core");var hi=a(require("fs")),me=a(require("path")),yi=a(require("parse5-utils"));var ue=a(require("parse5-utils"));function Dt(t){try{return new URL(t),!0}catch{return!1}}function Ie(t,e){let{childNodes:r=[]}=t;for(let s of r)if(s.nodeName==="script"){let n=ue.default.getAttribute(s,"src");if(!n||Dt(n))continue;e({filePath:n,childNode:s,assetType:"script"})}else if(s.nodeName==="link"){let n=ue.default.getAttribute(s,"href"),o=ue.default.getAttribute(s,"rel");if(!n||Dt(n))continue;e(o==="dns-prefetch"||o==="icon"||o==="manifest"||o==="modulepreload"||o==="preconnect"||o==="prefetch"||o==="preload"||o==="prerender"?{filePath:n,childNode:s,assetType:"staticHref"}:{filePath:n,childNode:s,assetType:"css"})}else if(s.nodeName==="a"||s.nodeName==="area"){let n=ue.default.getAttribute(s,"href");if(!n||Dt(n))continue;e({filePath:n,childNode:s,assetType:"staticHref"})}else if(s.nodeName==="audio"||s.nodeName==="embed"||s.nodeName==="iframe"||s.nodeName==="img"||s.nodeName==="input"||s.nodeName==="source"||s.nodeName==="track"||s.nodeName==="video"){let n=ue.default.getAttribute(s,"src");if(!n||Dt(n))continue;e({filePath:n,childNode:s,assetType:"staticSrc"})}else Ie(s,e)}function D(t,e){let r={css:[],js:[],static:[]};if(!t)return r;let s=e||hi.default.readFileSync(t,{encoding:"utf8"}),n=yi.default.parse(s),o=(i,c)=>me.default.join(me.default.dirname(i),c.startsWith("/")?me.default.relative(me.default.dirname(i),c):c);for(let i of n.childNodes)if(i.nodeName==="html"){for(let c of i.childNodes)(c.nodeName==="head"||c.nodeName==="body")&&Ie(c,({filePath:l,assetType:p})=>{let u=o(t,l);switch(p){case"script":r.js?.push(u);break;case"css":r.css?.push(u);break;case"staticSrc":case"staticHref":if(l.startsWith("#"))break;r.static?.push(u);break;default:break}});return{css:r.css,js:r.js,static:r.static}}}function bi(t,e,r){let s=Object.keys(t).find(o=>{let i=t[o];return t[o]===e||D(i)?.js?.includes(e)||D(i)?.css?.includes(e)})||"",n=Xr(e);return s?`/${s.replace(n,"")}${r}`:`${e.replace(n,"")}${r}`}function Xr(t){switch(me.default.extname(t)){case".js":case".mjs":case".ts":case".tsx":return".js";case".css":case".scss":case".sass":case".less":return".css";case".html":return".html";default:return".js"}}function z(t,e,r){return r?`/${t}${e}`:`${t}${e}`}function wi(t,e){return Object.values(e||{}).some(r=>r===t)}var Lt=class{manifestPath;includeList;excludeList;constructor(e){this.manifestPath=e.manifestPath,this.includeList=e.includeList,this.excludeList=e.excludeList}apply(e){let r=require(this.manifestPath),n=P(r,"chrome").name||"Extension.js";e.hooks.thisCompilation.tap("html:emit-html-file",o=>{o.hooks.processAssets.tap({name:"AddAssetsToCompilationPlugin",stage:Ot.Compilation.PROCESS_ASSETS_STAGE_ADDITIONAL},()=>{let i=Object.entries(this.includeList||{});for(let c of i){let[l,p]=c;if(p){if(!Zr.default.existsSync(p)){let m=oe(n,l,p);o.warnings.push(new Ot.default.WebpackError(m));return}let u=Zr.default.readFileSync(p,"utf8");if(!$(p,this.excludeList)){let m=new xi.sources.RawSource(u),g=z(l,".html");o.emitAsset(g,m)}}}})})}};var It=a(require("fs")),de=a(require("path")),Y=a(require("@rspack/core"));var Mt=class{manifestPath;includeList;constructor(e){this.manifestPath=e.manifestPath,this.includeList=e.includeList}apply(e){e.hooks.thisCompilation.tap("html:add-assets-to-compilation",r=>{r.hooks.processAssets.tap({name:"html:add-assets-to-compilation",stage:Y.Compilation.PROCESS_ASSETS_STAGE_ADDITIONAL},()=>{if(r.errors.length>0)return;let s=Object.entries(this.includeList||{});for(let n of s){let[o,i]=n,c=o+".html";if(i){let l=r.getAsset(c);if(l){let p=l.source.source().toString(),u=D(i,p)?.static,m=[...new Set(u)];for(let g of m)if(!g.startsWith("/")){if(!It.default.existsSync(g)&&!wi(g,this.includeList)&&!de.default.basename(g).startsWith("#")){let A=rt(i,g);g.startsWith("/")||r.warnings.push(new Y.default.WebpackError(A));return}let b=It.default.readFileSync(g),_=new Y.sources.RawSource(b),S=de.default.join("assets",de.default.basename(g));if(!r.getAsset(S))if(g.endsWith(".html")){let E=D(g),A=[...E?.js||[],...E?.css||[],...E?.static||[]];r.emitAsset(S,_),A.forEach(T=>{let _e=It.default.readFileSync(T),q=new Y.sources.RawSource(_e),Cs=de.default.join("assets",de.default.basename(T));r.getAsset(Cs)||r.emitAsset(Cs,q)})}else r.emitAsset(S,_)}}}}})})}};var vi=a(require("path")),Kr=a(require("fs"));var At=class{manifestPath;includeList;excludeList;constructor(e){this.manifestPath=e.manifestPath,this.includeList=e.includeList,this.excludeList=e.excludeList}apply(e){let r=this.includeList||{};for(let s of Object.entries(r)){let[n,o]=s;if(o){if(!Kr.default.existsSync(o))return;let i=D(o),c=i?.js||[],l=i?.css||[],p=[...c,...l].filter(u=>!$(u,this.excludeList));if(e.options.mode==="development"){let u=vi.default.resolve(__dirname,"minimum-script-file.mjs");p.push(u)}Kr.default.existsSync(o)&&($(o,this.excludeList)||(e.options.entry={...e.options.entry,[n]:{import:p}}))}}}};var Nt=require("@rspack/core");var Yr=a(require("fs")),H=a(require("path")),O=a(require("parse5-utils"));function Si(t,e,r,s,n){let o=Yr.default.readFileSync(r,{encoding:"utf8"}),i=O.default.parse(o),c=!!t.getAsset(e+".css"),l=!1;for(let p of i.childNodes)if(p.nodeName==="html"){for(let u of p.childNodes){if((u.nodeName==="head"||u.nodeName==="body")&&Ie(u,({filePath:m,childNode:g,assetType:b})=>{let _=H.default.dirname(r),S=H.default.resolve(_,m),E=Xr(S),A=$(H.default.resolve(_,m),n),T=H.default.join("/",H.default.normalize(m)),_e=tn(S,s);switch(b){case"script":{A?p=O.default.setAttribute(g,"src",T):(p=O.default.remove(g),l=!0);break}case"css":{A?p=O.default.setAttribute(g,"href",T):(p=O.default.remove(g),c=!0);break}case"staticHref":case"staticSrc":{if(A)p=O.default.setAttribute(g,b==="staticSrc"?"src":"href",T);else if(_e){let q=bi(s,S,E);p=O.default.setAttribute(g,b==="staticSrc"?"src":"href",q)}else{let q=H.default.join("assets",H.default.basename(S,E));Yr.default.existsSync(S)&&(p=O.default.setAttribute(g,b==="staticSrc"?"src":"href",z(q,"",!0)))}break}default:break}}),u.nodeName==="head"&&c){let m=O.default.createNode("link");m.attrs=[{name:"rel",value:"stylesheet"},{name:"href",value:z(e,".css",!0)}],O.default.append(u,m)}if(u.nodeName==="body"&&(l||t.options.mode!=="production")){let m=O.default.createNode("script");m.attrs=[{name:"src",value:z(e,".js",!0)}],O.default.append(u,m)}}return O.default.serialize(i)}}var Rt=class{manifestPath;includeList;excludeList;constructor(e){this.manifestPath=e.manifestPath,this.includeList=e.includeList,this.excludeList=e.excludeList}apply(e){e.hooks.thisCompilation.tap("html:update-html-file",r=>{r.hooks.processAssets.tap({name:"html:update-html-file",stage:Nt.Compilation.PROCESS_ASSETS_STAGE_DERIVED},()=>{if(r.errors.length>0)return;let s=this.includeList||{};for(let n of Object.entries(s)){let[o,i]=n;if(i){let c=Si(r,o,i,s,this.excludeList||{});if(!$(i,this.excludeList)&&c){let l=new Nt.sources.RawSource(c),p=z(o,".html");r.updateAsset(p,l)}}}})})}};var _i=a(require("fs")),Pi=require("@rspack/core");var Tt=class{manifestPath;includeList;constructor(e){this.manifestPath=e.manifestPath,this.includeList=e.includeList}apply(e){e.hooks.thisCompilation.tap("html:add-to-file-dependencies",r=>{r.hooks.processAssets.tap({name:"html:add-to-file-dependencies",stage:Pi.Compilation.PROCESS_ASSETS_STAGE_ADDITIONS},()=>{if(r.errors?.length)return;let s=this.includeList||{};for(let n of Object.entries(s)){let[,o]=n;if(o){let i=D(o),c=new Set(r.fileDependencies);if(_i.default.existsSync(o)){let l=[o,...i?.static||[]];for(let p of l)c.has(p)||(c.add(p),p===o&&r.fileDependencies.add(p))}}}})})}};var Ei=a(require("fs"));var Ut=class{manifestPath;includeList;initialHtmlAssets={};constructor(e){this.manifestPath=e.manifestPath,this.includeList=e.includeList}hasEntriesChanged(e,r){if(!r||!e||e.length!==r.length)return!0;for(let s=0;s<e.length;s++)if(e[s]!==r[s])return!0;return!1}storeInitialHtmlAssets(e){Object.entries(e).forEach(([r,s])=>{let n=s;if(n){if(!Ei.default.existsSync(n)){let o=require(this.manifestPath),c=P(o,"chrome").name||"Extension.js";console.error(oe(c,r,n)),process.exit(1)}this.initialHtmlAssets[n]={js:D(n)?.js||[],css:D(n)?.css||[]}}})}apply(e){let r=this.includeList||{};this.storeInitialHtmlAssets(r),e.hooks.make.tapAsync("html:throw-if-recompile-is-needed",(s,n)=>{let o=e.modifiedFiles||new Set,i=Array.from(o)[0];if(i&&this.initialHtmlAssets[i]){let c=D(i)?.js||[],l=D(i)?.css||[],{js:p,css:u}=this.initialHtmlAssets[i];(this.hasEntriesChanged(l,u)||this.hasEntriesChanged(c,p))&&console.log(Gs(i))}n()})}};var ki=a(require("fs")),$i=require("@rspack/core");function $l(t,e){let r="Module not found: Error: Can't resolve ",n=e.message.replace(r,"").split("'")[1];if(e.message.includes(r))for(let o of Object.entries(t)){let[,i]=o;if(i){if(!ki.default.existsSync(i))return null;let c=D(i),l=c?.js?.filter(u=>!u.startsWith("/"))||[],p=c?.css?.filter(u=>!u.startsWith("/"))||[];if(l.includes(n)||p.includes(n)){let u=rt(i,n);return new $i.WebpackError(u)}}}return null}var Bt=class{manifestPath;includeList;constructor(e){this.manifestPath=e.manifestPath,this.includeList=e.includeList}apply(e){e.hooks.compilation.tap("html:handle-common-errors",r=>{r.hooks.afterSeal.tapPromise("html:handle-common-errors",async()=>{r.errors.forEach((s,n)=>{let o=$l(this.includeList||{},s);o&&(r.errors[n]=o)})})})}};var qt=class{manifestPath;includeList;excludeList;constructor(e){this.manifestPath=e.manifestPath,this.includeList=e.includeList,this.excludeList=e.excludeList}apply(e){new Lt({manifestPath:this.manifestPath,includeList:this.includeList,excludeList:this.excludeList}).apply(e),new Mt({manifestPath:this.manifestPath,includeList:this.includeList,excludeList:this.excludeList}).apply(e),new At({manifestPath:this.manifestPath,includeList:this.includeList,excludeList:this.excludeList}).apply(e),new Rt({manifestPath:this.manifestPath,includeList:this.includeList,excludeList:this.excludeList}).apply(e),e.options.module.rules.push({test:/\.(js|mjs|jsx|mjsx|ts|mts|tsx|mtsx)$/,include:[Qr.default.dirname(this.manifestPath)],exclude:[/[\\/]node_modules[\\/]/],use:[{loader:require.resolve(Qr.default.join(__dirname,"ensure-hmr-for-scripts.js")),options:{manifestPath:this.manifestPath,includeList:this.includeList,excludeList:this.excludeList}}]}),new Tt({manifestPath:this.manifestPath,includeList:this.includeList,excludeList:this.excludeList}).apply(e),new Ut({manifestPath:this.manifestPath,includeList:this.includeList,excludeList:this.excludeList}).apply(e),new Bt({manifestPath:this.manifestPath,includeList:this.includeList,excludeList:this.excludeList}).apply(e)}};var Me=a(require("path"));var es=a(require("fs")),Fi=a(require("path"));function Ci(t,e){return(Array.isArray(t)?t||[]:t?[t]:[]).filter(n=>{let o=es.default.existsSync(n)&&!$(n,e),i=Fi.default.extname(n);return o&&(i===".js"||i===".mjs"||i===".jsx"||i===".ts"||i===".tsx")})}function ji(t,e){return(Array.isArray(t)?t||[]:t?[t]:[]).filter(n=>es.default.existsSync(n)&&!$(n,e)&&(n.endsWith(".css")||n.endsWith(".scss")||n.endsWith(".sass")||n.endsWith(".less")))}var Wt=class{manifestPath;includeList;excludeList;constructor(e){this.manifestPath=e.manifestPath,this.includeList=e.includeList||{},this.excludeList=e.excludeList||{}}apply(e){let r=this.includeList||{},s={};for(let[n,o]of Object.entries(r)){let i=Ci(o,this.excludeList),c=ji(o,this.excludeList),l=[...i,...c];(c.length||i.length)&&(s[n]={import:l})}e.options.entry={...e.options.entry,...s}}};var Q=require("@rspack/core"),Fl=['var isBrowser = !!(() => { try { return browser.runtime.getURL("/") } catch(e) {} })()','var isChrome = !!(() => { try { return chrome.runtime.getURL("/") } catch(e) {} })()'],Cl=[...Fl,`var runtime = isBrowser ? browser : isChrome ? chrome : (typeof self === 'object' && self.addEventListener) ? { get runtime() { throw new Error("No chrome or browser runtime found") } } : { runtime: { getURL: x => x } }`],Jt=class t{apply(e){let{RuntimeGlobals:r}=e.webpack;e.hooks.compilation.tap("PublicPathRuntimeModule",s=>{s.hooks.runtimeRequirementInTree.for(r.publicPath).tap(t.name,n=>{let o=jl();return s.addRuntimeModule(n,o),!0})})}};function jl(){class t extends Q.RuntimeModule{constructor(){super("publicPath",Q.RuntimeModule.STAGE_BASIC)}generate(){let r=this.compilation?.outputOptions.publicPath;return Q.Template.asString([...Cl,`var path = ${JSON.stringify(this.compilation?.getPath(r||"",{hash:this.compilation.hash||"XXXX"}))}`,`${Q.RuntimeGlobals.publicPath} = typeof importScripts === 'function' || !(isBrowser || isChrome) ? path : runtime.runtime.getURL(path);`])}}return new t}var zt=class{manifestPath;browser;includeList;excludeList;constructor(e){this.manifestPath=e.manifestPath,this.browser=e.browser||"chrome",this.includeList=e.includeList||{},this.excludeList=e.excludeList||{}}apply(e){let r=require(this.manifestPath),s=P(r,this.browser);s.content_scripts?.some(n=>n.world&&n.world.toLowerCase()==="main")&&Z.includes(this.browser)&&!s.key&&(console.error(Ks()),process.exit(1))}};var Ht=class{manifestPath;browser;includeList;excludeList;constructor(e){this.manifestPath=e.manifestPath,this.browser=e.browser||"chrome",this.includeList=e.includeList,this.excludeList=e.excludeList}apply(e){new Wt({manifestPath:this.manifestPath,includeList:this.includeList||{},excludeList:this.excludeList||{}}).apply(e),e.options.module.rules.push({test:/\.(js|mjs|jsx|mjsx|ts|mts|tsx|mtsx)$/,include:[Me.default.dirname(this.manifestPath)],exclude:[/[\\/]node_modules[\\/]/],use:[{loader:require.resolve(Me.default.join(__dirname,"add-hmr-accept-code.js")),options:{manifestPath:this.manifestPath,mode:e.options.mode,includeList:this.includeList||{},excludeList:this.excludeList||{}}}]}),e.options.mode==="production"&&new Jt().apply(e),new zt({manifestPath:this.manifestPath,browser:this.browser||"chrome",includeList:this.includeList||{},excludeList:this.excludeList||{}}).apply(e),e.options.module.rules.push({test:/\.(js|mjs|jsx|mjsx|ts|mts|tsx|mtsx)$/,include:[Me.default.dirname(this.manifestPath)],exclude:[/[\\/]node_modules[\\/]/],use:[{loader:require.resolve(Me.default.join(__dirname,"deprecated-shadow-root.js")),options:{manifestPath:this.manifestPath,includeList:this.includeList||{},excludeList:this.excludeList||{}}}]})}};var Re=a(require("path")),Ne=a(require("fs")),V=a(require("@rspack/core"));var ge=a(require("path")),Ae=a(require("fs"));function ts(t){let e=ge.default.join(ge.default.dirname(t),"_locales"),r=[];if(Ae.default.existsSync(e))for(let s of Ae.default.readdirSync(e)){let n=ge.default.join(e,s);if(n&&Ae.default.statSync(n).isDirectory())for(let o of Ae.default.readdirSync(n))r.push(ge.default.join(ge.default.dirname(t),"_locales",s,o))}return r}var Vt=class{manifestPath;includeList;excludeList;constructor(e){this.manifestPath=e.manifestPath,this.includeList=e.includeList,this.excludeList=e.excludeList}apply(e){e.hooks.thisCompilation.tap("locales:module",r=>{r.hooks.processAssets.tap({name:"locales:module",stage:V.Compilation.PROCESS_ASSETS_STAGE_ADDITIONS},()=>{if(!Ne.default.existsSync(this.manifestPath)){let n=require(this.manifestPath),i=P(n,"chrome").name||"Extension.js";r.errors.push(new V.default.WebpackError(Us(i,this.manifestPath)));return}if(r.errors.length>0)return;let s=ts(this.manifestPath);for(let n of Object.entries(s||[])){let[o,i]=n,c=i;if(c){if(Re.default.extname(c)!==".json")continue;if(!Ne.default.existsSync(c)){r.warnings.push(new V.default.WebpackError(st(o,c)));return}let l=Ne.default.readFileSync(c),p=new V.sources.RawSource(l),u=e.options.context||Re.default.dirname(this.manifestPath);if(!$(c,this.excludeList)){let m=Re.default.relative(u,c);r.emitAsset(m,p)}}}})}),e.hooks.thisCompilation.tap("locales:module",r=>{r.hooks.processAssets.tap({name:"locales:module",stage:V.Compilation.PROCESS_ASSETS_STAGE_ADDITIONS},()=>{if(r.errors?.length)return;let s=ts(this.manifestPath);for(let n of Object.entries(s||[])){let[,o]=n;if(o){let i=new Set(r.fileDependencies),c=s||[];for(let l of c)Ne.default.existsSync(l)&&Re.default.extname(l)===".json"&&(i.has(l)||(i.add(l),r.fileDependencies.add(l)))}}})})}};var Gt=a(require("fs")),ee=a(require("@rspack/core"));var Xt=class{manifestPath;includeList;excludeList;constructor(e){this.manifestPath=e.manifestPath,this.includeList=e.includeList,this.excludeList=e.excludeList}apply(e){e.hooks.thisCompilation.tap("json:module",r=>{r.hooks.processAssets.tap({name:"json:module",stage:ee.Compilation.PROCESS_ASSETS_STAGE_ADDITIONS},()=>{if(r.errors.length>0)return;let s=this.includeList||{};for(let n of Object.entries(s)){let[o,i]=n,c=Array.isArray(i)?i:[i];for(let l of c)if(l&&!$(l,this.excludeList)){if(!Gt.default.existsSync(l)){r.warnings.push(new ee.default.WebpackError(st(o,l)));return}let p=Gt.default.readFileSync(l),u=new ee.sources.RawSource(p);r.emitAsset(o+".json",u)}}})}),e.hooks.thisCompilation.tap("json:module",r=>{r.hooks.processAssets.tap({name:"json:module",stage:ee.Compilation.PROCESS_ASSETS_STAGE_ADDITIONS},()=>{if(r.errors?.length)return;let s=this.includeList||{};for(let n of Object.entries(s)){let[,o]=n,i=Array.isArray(o)?o:[o];for(let c of i)if(c){let l=new Set(r.fileDependencies);$(c,this.excludeList)||Gt.default.existsSync(c)&&(l.has(c)||(l.add(c),r.fileDependencies.add(c)))}}})})}};var rs=a(require("fs")),Di=a(require("path")),Kt=require("@rspack/core");var Zt=class{manifestPath;includeList;excludeList;constructor(e){this.manifestPath=e.manifestPath,this.includeList=e.includeList,this.excludeList=e.excludeList}apply(e){e.hooks.thisCompilation.tap("icons:emit-file",r=>{r.hooks.processAssets.tap({name:"icons:emit-file",stage:Kt.Compilation.PROCESS_ASSETS_STAGE_OPTIMIZE_TRANSFER},()=>{if(r.errors.length>0)return;let s=this.includeList||{};for(let n of Object.entries(s)){let[o,i]=n;if(i===void 0)continue;let c=Array.isArray(i)?typeof i[0]=="string"?i:i.map(Object.values).flat():[i];for(let l of c)if(l){if(!rs.default.existsSync(l))continue;if(!$(l,this.excludeList)){let p=rs.default.readFileSync(l),u=new Kt.sources.RawSource(p),m=Di.default.basename(l),b=`${o.endsWith("theme_icons")?o.replace("theme_icons",""):o}/${m}`;r.emitAsset(b,u)}}}})})}};var Li=a(require("fs")),Oi=require("@rspack/core"),Yt=class{manifestPath;includeList;excludeList;constructor(e){this.manifestPath=e.manifestPath,this.includeList=e.includeList,this.excludeList=e.excludeList}apply(e){e.hooks.thisCompilation.tap("icons:add-to-file-dependencies",r=>{r.hooks.processAssets.tap({name:"icons:add-to-file-dependencies",stage:Oi.Compilation.PROCESS_ASSETS_STAGE_ADDITIONS},()=>{if(r.errors?.length)return;let s=this.includeList||{};for(let n of Object.entries(s)){let[,o]=n,i=Array.isArray(o)?typeof o[0]=="string"?o:o.map(Object.values).flat():[o];for(let c of i)if(c){let l=new Set(r.fileDependencies);Li.default.existsSync(c)&&(l.has(c)||(l.add(c),r.fileDependencies.add(c)))}}})})}};var Qt=class{manifestPath;includeList;excludeList;constructor(e){this.manifestPath=e.manifestPath,this.includeList=e.includeList,this.excludeList=e.excludeList}apply(e){new Zt({manifestPath:this.manifestPath,includeList:this.includeList,excludeList:this.excludeList}).apply(e),new Yt({manifestPath:this.manifestPath,includeList:this.includeList,excludeList:this.excludeList}).apply(e)}};var tr=require("@rspack/core");function Ii(t){return t.map(e=>{try{let r=new URL(e.replace(/^\*:\/\//,"https://"));return e.endsWith(r.pathname)?`${e.substring(0,e.length-r.pathname.length)}/*`:r.pathname==="/"?`${e}/*`:e}catch{return e}})}var er=class{manifestPath;includeList;excludeList;constructor(e){this.manifestPath=e.manifestPath,this.includeList=e.includeList,this.excludeList=e.excludeList}generateManifestPatches(e,r){let s=W(e,this.manifestPath),n=s.web_accessible_resources||[],o=s.web_accessible_resources||[];for(let[l,p]of Object.entries(r)){let u=s.content_scripts?.find(m=>m.js?.some(g=>g.includes(l)));if(u){let m=u.matches||[],g=p.filter(b=>!b.endsWith(".map")&&!b.endsWith(".js"));if(g.length===0)continue;if(s.manifest_version===3){let b=n.find(_=>_.matches.some(S=>m.includes(S)));b?g.forEach(_=>{b.resources.includes(_)||b.resources.push(_)}):n.push({resources:g,matches:Ii(m)})}else g.forEach(b=>{o.includes(b)||o.push(b)})}}s.manifest_version===3?n.length>0&&(s.web_accessible_resources=n):o.length>0&&(s.web_accessible_resources=Array.from(new Set(o)));let i=JSON.stringify(s,null,2),c=new tr.sources.RawSource(i);e.getAsset("manifest.json")&&e.updateAsset("manifest.json",c)}apply(e){e.hooks.thisCompilation.tap("plugin-extension:feature-web-resources",r=>{r.hooks.processAssets.tap({name:"plugin-extension:feature-web-resources",stage:tr.Compilation.PROCESS_ASSETS_STAGE_ANALYSE},()=>{let s=[],n=Object.keys(this.includeList||{});for(let c of n.filter(Boolean))c.startsWith("content_scripts")&&(Array.isArray(c)?s.push(...c):typeof c=="string"&&s.push(c));let o=r.chunkGraph,i={};r.entrypoints.forEach((c,l)=>{if(s.includes(l)){let p=[];c.chunks.forEach(u=>{Array.from(o.getChunkModulesIterable(u)).forEach(g=>{o.getModuleChunks(g).forEach(b=>{b.auxiliaryFiles.forEach(_=>{p.includes(_)||p.push(_)})})})}),i[l]=p}}),this.generateManifestPatches(r,i)})})}};var I=a(require("fs")),M=a(require("path")),Mi=a(require("chokidar")),rr=class{options;constructor(e){this.options=e}ensureDirectoryExistence(e){let r=M.default.dirname(e);if(I.default.existsSync(r))return!0;I.default.mkdirSync(r,{recursive:!0})}copyFile(e,r){this.ensureDirectoryExistence(r),I.default.copyFileSync(e,r)}copyFolder(e,r){I.default.existsSync(r)||I.default.mkdirSync(r,{recursive:!0}),I.default.readdirSync(e).forEach(n=>{let o=M.default.join(e,n),i=M.default.join(r,n);I.default.statSync(o).isDirectory()?this.copyFolder(o,i):this.copyFile(o,i)})}apply(e){let r=M.default.dirname(this.options.manifestPath),s=M.default.join(r,"public"),n=e.options.output?.path||"";I.default.existsSync(s)&&(e.hooks.afterEmit.tap("special-folders:copy-public-folder",()=>{let o=M.default.join(n,"/");I.default.existsSync(o)||I.default.mkdirSync(o,{recursive:!0}),I.default.existsSync(s)&&this.copyFolder(s,o)}),e.options.mode!=="production"&&e.hooks.afterPlugins.tap("special-folders:copy-public-folder",()=>{let o=M.default.join(r,"public"),i=Mi.default.watch(o,{ignoreInitial:!0});i.on("add",c=>{let l=M.default.join(n,M.default.relative(r,c));this.copyFile(c,l)}),i.on("change",c=>{let l=M.default.join(n,M.default.relative(r,c));this.copyFile(c,l)}),i.on("unlink",c=>{let l=M.default.join(n,M.default.relative(r,c));I.default.existsSync(l)&&I.default.unlinkSync(l)}),e.hooks.watchClose.tap("special-folders:copy-public-folder",()=>{i.close().catch(console.error)})}))}};var U=a(require("path")),ss=a(require("chokidar"));var sr=class{manifestPath;constructor(e){this.manifestPath=e}throwCompilationError(e,r,s){let n=U.relative(process.cwd(),r),c=Ws(s?"Adding":"Removing",e,e==="pages"?"HTML pages":"script files",n);if(s){console.warn(c);return}console.error(c),process.exit(1)}apply(e){e.hooks.afterPlugins.tap("special-folders:warn-upon-folder-changes",()=>{let r=U.dirname(this.manifestPath),s=U.join(r,"pages"),n=U.join(r,"scripts"),o=ss.watch(s,{ignoreInitial:!0}),i=ss.watch(n,{ignoreInitial:!0}),c=e.options.resolve?.extensions;o.on("add",l=>{l.endsWith(".html")&&this.throwCompilationError("pages",l,!0)}),o.on("unlink",l=>{l.endsWith(".html")&&this.throwCompilationError("pages",l)}),i.on("add",l=>{c?.includes(U.extname(l))&&this.throwCompilationError("scripts",l,!0)}),i.on("unlink",l=>{c?.includes(U.extname(l))&&this.throwCompilationError("scripts",l)}),e.hooks.watchClose.tap("WarnUponFolderChanges",()=>{o.close().catch(console.error),i.close().catch(console.error)})})}};var nr=class{static name="plugin-special-folders";options;constructor(e){this.options=e}apply(e){let{manifestPath:r}=this.options;new rr({manifestPath:r}).apply(e),e.options.mode==="development"&&e.options.watchOptions&&new sr(r).apply(e)}};var or=class{static name="plugin-extension";manifestPath;browser;constructor(e){this.manifestPath=e.manifestPath,this.browser=e.browser||"chrome"}apply(e){let r=this.manifestPath,s=le({manifestPath:r,browser:this.browser}),n=Io({manifestPath:r,browser:this.browser});new jt({browser:this.browser,manifestPath:r,includeList:{...s.html,...s.icons,...s.json,...s.scripts},excludeList:n.public}).apply(e),new qt({manifestPath:r,includeList:{...s.html,...n.pages},excludeList:{...n.public,...n.scripts}}).apply(e),new Ht({manifestPath:r,browser:this.browser,includeList:{...s.scripts,...n.scripts},excludeList:{...n.public,...n.pages}}).apply(e),new Vt({manifestPath:r}).apply(e),new Xt({manifestPath:r,includeList:s.json,excludeList:n.public}).apply(e),new Qt({manifestPath:r,includeList:s.icons,excludeList:n.public}).apply(e),new er({manifestPath:r,includeList:{...s.scripts,...n.scripts},excludeList:n.public}).apply(e),new nr({manifestPath:r}).apply(e)}};var Be=a(require("path"));var Ai=a(require("path")),Ri=a(require("ws"));function ir(t,e){t.clients.forEach(r=>{r.readyState===Ri.default.OPEN&&r.send(JSON.stringify(e))})}function Ni(t,e,r){if(!r||!e)return;let s=le({manifestPath:e}).locales,n=le({manifestPath:e}).scripts,o=le({manifestPath:e}).json;if(!t){process.env.EXTENSION_ENV==="development"&&console.error("WebSocket server is not running.");return}Ai.default.basename(r)==="manifest.json"&&ir(t,{changedFile:"manifest.json"}),s?.forEach(i=>{i.includes(r)&&ir(t,{changedFile:"_locales"})}),Object.entries(n).forEach(([i,c])=>{let l=Array.isArray(c)?c:[c];Object.values(l).flatMap(u=>u).includes(r)&&i==="background/service_worker"&&ir(t,{changedFile:"service_worker"})}),Object.entries(o).forEach(([i,c])=>{c?.includes(r)&&i==="declarative_net_request"&&ir(t,{changedFile:"declarative_net_request"})})}var os=a(require("path")),qi=a(require("fs")),Ue=a(require("ws"));var Te=a(require("path")),Dl=a(require("http")),Ui=a(require("https")),ns=a(require("fs"));var Ti=t=>{if(!ns.default.existsSync(t))return;let e=Te.default.basename(t);return ns.default.readFileSync(Te.default.join(__dirname,"certs",e))};function Bi(t){let e={key:Ti(Te.default.join(__dirname,"certs","localhost.key")),cert:Ti(Te.default.join(__dirname,"certs","localhost.cert"))},r=Ui.default.createServer(e,(s,n)=>{n.writeHead(200),n.end()});return r.on("error",s=>{throw console.error(Zs(t)),new Error(s.message)}),{server:r,port:t}}function Ll(t,e){switch(e){case"chrome":return new Ue.default.Server({host:"localhost",port:t});case"edge":return new Ue.default.Server({host:"localhost",port:t+1});case"firefox":return new Ue.default.Server({server:Bi(t+2).server});default:return new Ue.default.Server({host:"localhost",port:8888})}}async function Wi(t,e){let r=t.options.context||"",s=require(os.default.join(r,"manifest.json")),o=Ll(8e3,e.browser);if(o.on("connection",i=>{i.send(JSON.stringify({status:"serverReady"})),i.on("error",c=>{console.log(Hs(c))}),i.on("message",c=>{let l=JSON.parse(c.toString());if(l.status==="clientReady"){let p=require(os.default.join(r,"manifest.json"));setTimeout(()=>{console.log(Mr(p,e.browser,l)),console.log("")},2500),rn(e.browser)&&setTimeout(()=>{console.log(zs(e.browser))},5e3)}})}),e.browser==="firefox"||e.browser==="gecko-based"){let i=sn(s);console.log(Mr(s,e.browser,i)),console.log(""),qi.default.existsSync(tt)||(console.log(Xs()),console.log(""))}return o}var Ji=a(require("path")),is=a(require("fs"));function zi(t,e){let r=Ji.default.resolve(__dirname,`./extensions/${t}-manager-extension/reload-service.js`);try{let s=is.default.readFileSync(r,"utf8"),n=s.replace(/__RELOAD_PORT__/g,e.toString());n!==s&&is.default.writeFileSync(r,n,"utf8")}catch(s){console.error(`Error processing file: ${s.message}`)}}process.on("SIGINT",()=>{process.exit()});process.on("SIGTERM",()=>{process.exit()});var qe=class{manifestPath;port;browser;stats;constructor(e){this.manifestPath=e.manifestPath,this.port=e.port||8e3,this.browser=e.browser||"chrome",this.stats=e.stats}async apply(e){if(!this.manifestPath)return;zi(this.browser,this.port);let r=await Wi(e,{...this,mode:e.options.mode,browser:this.browser,stats:this.stats,port:this.port});e.hooks.watchRun.tapAsync("reload:create-web-socket-server",(s,n)=>{let i=(s.modifiedFiles||new Set).values().next().value;if(!i){n();return}let c=Be.default.relative(Be.default.dirname(this.manifestPath),i),l=Be.default.relative(process.cwd(),Be.default.dirname(i));process.env.EXTENSION_ENV==="development"&&console.info(`\u25BA\u25BA Updated file \`${c}\` (relative to ${l})`),this.manifestPath&&Ni(r,this.manifestPath,i),n()})}};var as=a(require("path"));function Hi(t,e,r){t.options.module.rules.push({test:/\.(js|mjs|jsx|mjsx|ts|mts|tsx|mtsx)$/,include:[as.default.dirname(r)],exclude:[/[\\/]node_modules[\\/]/],use:[{loader:as.default.resolve(__dirname,"./inject-chromium-client-loader"),options:{manifestPath:r,browser:e}}]})}var cs=a(require("path"));function Vi(t,e,r){t.options.module.rules.push({test:/\.(js|mjs|jsx|mjsx|ts|mts|tsx|mtsx)$/,include:[cs.default.dirname(r)],exclude:[/[\\/]node_modules[\\/]/],use:[{loader:cs.default.resolve(__dirname,"./inject-firefox-client-loader"),options:{manifestPath:r,browser:e}}]})}var cr=require("@rspack/core");var ls=a(require("content-security-policy-parser"));function Gi(t){let e="";for(let r in t)e+=`${r} ${t[r].join(" ")}; `;return e.trim()}function Xi(t){let e=t.content_security_policy;if(!e)return"script-src 'self' 'unsafe-eval' blob: filesystem:; object-src 'self' blob: filesystem:; ";let r=(0,ls.default)(e);if(!r.get("script-src"))r.set("script-src",["'self'","'unsafe-eval'","blob:","filesystem:"]);else{let n=r.get("script-src")||[];n.includes("'unsafe-eval'")||n.push("'unsafe-eval'"),n.includes("blob:")||n.push("blob:"),n.includes("filesystem:")||n.push("filesystem:"),r.set("script-src",n)}r.get("object-src")||r.set("object-src",["'self'","blob:","filesystem:"]);let s=Object.fromEntries(r.entries());return Gi(s)}function Zi(t){let e=t.content_security_policy;if(!e)return{extension_pages:"script-src 'self'; object-src 'self';"};let r=(0,ls.default)(e.extension_pages||""),s={};for(let i in s)r.get(i)||r.set(i,s[i]);let n=Object.fromEntries(r.entries());return{extension_pages:Gi(n)}}function Ki(t){let e=["/*.json","/*.js","/*.css"],r=t.web_accessible_resources;if(!r||r.length===0)return e;let s=new Set(r);for(let n of e)s.has(n)||s.add(n);return Array.from(s)}function Yi(t){let e=["/*.json","/*.js","/*.css"];return[...t.web_accessible_resources||[],{resources:e,matches:["<all_urls>"]}]}function ps(t,e){return t.background?{background:{...t.background}}:e==="firefox"||e==="gecko-based"?{background:{...t.background||{},scripts:["background/script.js"]}}:t.manifest_version===2?{background:{...t.background||{},scripts:["background/script.js"]}}:{background:{...t.background||{},service_worker:"background/service_worker.js"}}}function fs(t){return t.externally_connectable&&!t.externally_connectable.ids?{externally_connectable:{...t.externally_connectable,ids:[...new Set(t.externally_connectable.ids||[]),"*"]}}:t.externally_connectable&&!t.externally_connectable.ids?{externally_connectable:{...t.externally_connectable,ids:["*"]}}:{}}var ar=class{manifestPath;browser;constructor(e){this.manifestPath=e.manifestPath,this.browser=e.browser||"chrome"}generateManifestPatches(e){let r=W(e,this.manifestPath),s={...r,content_security_policy:r.manifest_version===3?Zi(r):Xi(r),...r.manifest_version===3?r.permissions?{permissions:[...new Set(["scripting",...r.permissions])]}:{permissions:["scripting"]}:{},...ps(r,this.browser),...fs(r),web_accessible_resources:r.manifest_version===3?Yi(r):Ki(r)},n=JSON.stringify(s,null,2),o=new cr.sources.RawSource(n);e.getAsset("manifest.json")&&e.updateAsset("manifest.json",o)}apply(e){e.hooks.thisCompilation.tap("run-chromium:apply-manifest-dev-defaults",r=>{r.hooks.processAssets.tap({name:"run-chromium:apply-manifest-dev-defaults",stage:cr.Compilation.PROCESS_ASSETS_STAGE_SUMMARIZE},s=>{if(!this.manifestPath){let n="No manifest.json found in your extension bundle. Unable to patch manifest.json.";r&&e.rspack.WebpackError&&r.errors.push(new e.rspack.WebpackError(`run-chromium: ${n}`));return}this.generateManifestPatches(r)})})}};var ms=a(require("fs")),he=a(require("path")),ea=a(require("webpack-target-webextension"));var us=a(require("fs"));function Qi(t){try{let e=us.default.readFileSync(t,"utf8");e=e.replace(/module\.exports\.RuntimeGlobal = ['"]__webpack_require__\.webExtRt['"]/,"module.exports.RuntimeGlobal = 'chrome'"),e=e.replace(/module\.exports\.RuntimeGlobalIsBrowser = ['"]__webpack_require__\.webExtRtModern['"]/,"module.exports.RuntimeGlobalIsBrowser = 'browser'"),us.default.writeFileSync(t,e)}catch(e){throw new Error(`Failed to rewrite runtime globals: ${e.message}`)}}var lr=class{manifestPath;browser;constructor(e){this.manifestPath=e.manifestPath,this.browser=e.browser||"chrome"}handleBackground(e,r,s){let n=he.default.resolve(__dirname,r==="firefox"||r==="gecko-based"?"minimum-firefox-file.mjs":"minimum-chromium-file.mjs"),o=he.default.dirname(this.manifestPath),i=P(s,r);if(r==="firefox"||r==="gecko-based"){i=s.background;let c=i?.scripts;if(c&&c.length>0){let l=he.default.join(o,c[0]);this.ensureFileExists(l)}else this.addDefaultEntry(e,"background/script",n)}else if(i=s.background,s.manifest_version===3){let c=i?.service_worker;if(c){let l=he.default.join(o,c);this.ensureFileExists(l)}else this.addDefaultEntry(e,"background/service_worker",n)}else if(s.manifest_version===2){let c=i?.scripts;if(c&&c.length>0){let l=he.default.join(o,c[0]);this.ensureFileExists(l)}else this.addDefaultEntry(e,"background/script",n)}}ensureFileExists(e){if(!ms.default.existsSync(e)&&this.manifestPath){let r=require(this.manifestPath),n=P(r,"chrome").name||"Extension.js",o=Vs(n,e);throw console.error(o),new Error(o)}}addDefaultEntry(e,r,s){e.options.entry={...e.options.entry,[r]:{import:[s]}}}getEntryName(e){if(e.background){if(this.browser==="firefox"||this.browser==="gecko-based")return{pageEntry:"background/script",tryCatchWrapper:!0,eagerChunkLoading:!1};if(e.manifest_version===3)return{serviceWorkerEntry:"background/service_worker",tryCatchWrapper:!0,eagerChunkLoading:!1};if(e.manifest_version===2)return{pageEntry:"background/script",tryCatchWrapper:!0,eagerChunkLoading:!1}}return{pageEntry:"background",tryCatchWrapper:!0,eagerChunkLoading:!1}}convertToWebpackCompiler(e){return{...e,options:{...e.options,mode:"development"}}}apply(e){if(!this.manifestPath||!ms.default.lstatSync(this.manifestPath).isFile())return;let r=require(this.manifestPath),s=P(r,this.browser);this.handleBackground(e,this.browser,s),new ea.default({background:this.getEntryName(s),weakRuntimeCheck:!0}).apply(this.convertToWebpackCompiler(e));try{let n=require.resolve("webpack-target-webextension/lib/webpack5/RuntimeModules/BrowserRuntime.js");Qi(n)}catch{console.warn("Could not find BrowserRuntime.js file to modify")}}};var ds=class{manifestPath;browser;constructor(e){this.manifestPath=e.manifestPath,this.browser=e.browser||"chrome"}apply(e){(Z.includes(this.browser)||this.browser==="chromium-based")&&Hi(e,this.browser,this.manifestPath),(this.browser==="firefox"||this.browser==="gecko-based")&&Vi(e,this.browser,this.manifestPath),new ar({manifestPath:this.manifestPath,browser:this.browser}).apply(e),new lr({manifestPath:this.manifestPath,browser:this.browser}).apply(e)}},ta=ds;var pr=class{static name="plugin-reload";manifestPath;browser;port;stats;autoReload;constructor(e){this.manifestPath=e.manifestPath,this.browser=e.browser||"chrome",this.port=e.port,this.stats=e.stats,this.autoReload=e.autoReload}apply(e){e.options.mode==="development"&&new qe({manifestPath:this.manifestPath,browser:this.browser,port:this.port,stats:this.stats}).apply(e),e.options.mode==="development"&&new ta({manifestPath:this.manifestPath,browser:this.browser,autoReload:this.autoReload,stats:this.stats}).apply(e)}};var ra=a(require("@rspack/core")),fr=class{manifestPath;browser;constructor(e){this.manifestPath=e.manifestPath,this.browser=e.browser}apply(e){new ra.default.ProvidePlugin({browser:require.resolve("webextension-polyfill")}).apply(e)}};var mr=require("@rspack/core");var ur=class{browser;manifestPath;constructor(e){this.manifestPath=e.manifestPath,this.browser=e.browser||"chrome"}patchManifest(e){let r=P(e,this.browser);return JSON.stringify(r,null,2)}apply(e){e.hooks.compilation.tap("compatibility:browser-specific-fields",r=>{r.hooks.processAssets.tap({name:"compatibility:browser-specific-fields",stage:mr.Compilation.PROCESS_ASSETS_STAGE_OPTIMIZE},()=>{let s=W(r,this.manifestPath),n=this.patchManifest(s),o=new mr.sources.RawSource(n);r.updateAsset("manifest.json",o)})})}};var dr=class{static name="plugin-compatibility";manifestPath;browser;polyfill;constructor(e){this.manifestPath=e.manifestPath,this.browser=e.browser||"chrome",this.polyfill=e.polyfill||!1}async apply(e){this.polyfill&&this.browser!=="firefox"&&new fr({manifestPath:this.manifestPath,browser:this.browser||"chrome"}).apply(e),new ur({manifestPath:this.manifestPath,browser:this.browser||"chrome"}).apply(e)}};var Sc=a(require("os")),vs=a(require("path"));var ja=a(require("fs")),Da=a(require("path")),La=require("child_process");var be=a(require("path")),Je=a(require("fs"));var sa={alternate_error_pages:{enabled:!1},autofill:{enabled:!1},browser:{check_default_browser:!1,default_browser_setting_enabled:!1},default_apps:"install",distribution:{alternate_shortcut_text:!1,auto_launch_chrome:!1,import_bookmarks:!1,import_history:!1,import_home_page:!1,import_search_engine:!1,suppress_first_run_bubble:!0,do_not_register_for_update_launch:!0,make_chrome_default:!1,make_chrome_default_for_user:!1,require_eula:!1,suppress_first_run_default_browser_prompt:!0},dns_prefetching:{enabled:!1},download:{default_directory:"/tmp/",directory_upgrade:!0,open_pdf_in_adobe_reader:!1,prompt_for_download:!0},enable_do_not_track:!0,extensions:{theme:{use_system:!1},toolbarsize:-1,ui:{developer_mode:!0}},plugins:{plugins_list:[{enabled:!1,name:"Java(TM)"}],show_details:!0},profile:{password_manager_enabled:!1},safebrowsing:{enabled:!1,safebrowsingextended_reporting_enabled:!1},savefile:{default_directory:"/tmp",type:0},search:{suggest_enabled:!1},session:{restore_on_startup:1},sync:{suppress_start:!0},sync_promo:{show_on_first_run_allowed:!1,show_ntp_bubble:!1},translate:{enabled:!1}},na={...sa},oa={...sa};var y=require("@colors/colors/safe");function x(t,e){let r=e==="warn"?(0,y.brightYellow)("\u25BA\u25BA\u25BA"):e==="info"?(0,y.cyan)("\u25BA\u25BA\u25BA"):e==="error"?`${(0,y.bold)((0,y.red)("ERROR"))} in ${ye(t)} ${(0,y.red)("\u2716\uFE0E\u2716\uFE0E\u2716\uFE0E")}`:(0,y.brightGreen)("\u25BA\u25BA\u25BA");return`${(0,y.gray)("")}${r}`}function ye(t){return t.charAt(0).toUpperCase()+t.slice(1)}function gr(t){let e=ye(t);return`${x(t,"info")} Creating new ${e} user profile...`}function ia(t){return`${x(t,"success")} Instance already running.`}function aa(t){return`${x(t,"info")} Instance exited.`}function hr(t,e){let r=t==="firefox"||t==="gecko-based"?"Add-on":"Extension";return`${x(t,"success")} ${ye(t)} ${r} running in ${(0,y.brightBlue)(e||"unknown")} mode.`}function We(t,e){let r=e=="null"?`Browser is not installed
|
|
74
|
+
of your ${(0,f.brightYellow)("extension.config.js")} is defined as your extension URL.`}function Ys(){return`${F("BrowserRuntime","error")} Could Not Find BrowserRuntime.js File
|
|
75
|
+
|
|
76
|
+
Please report a bug at https://github.com/extension-js/extension.js/issues`}var nt=class{static name="plugin-compilation";manifestPath;browser;constructor(e){this.manifestPath=e.manifestPath,this.browser=e.browser||"chrome"}apply(e){new Qs.default().apply(e),new Qe({manifestPath:this.manifestPath,browser:this.browser}).apply(e),new et().apply(e),e.hooks.done.tapAsync("develop:brand",(r,s)=>{r.compilation.name=void 0;let n=r.compilation.endTime-r.compilation.startTime,o=require(this.manifestPath).name;console.log(Ms(o,n,r)),s()})}};var kn=a(require("path"));var an=a(require("path")),cn=a(require("fs"));var ie=a(require("path")),ot=a(require("fs")),Ar=require("child_process"),tn=require("package-manager-detector");function rn(t,e){return Object.values(e||{}).some(r=>r===t)}function h(t,e,r){let s=ie.default.extname(e),o=$(e,r)?ie.default.normalize(e):t;return[".js",".jsx",".tsx",".ts"].includes(s)&&(o=o.replace(s,".js")),[".html",".njk",".nunjucks"].includes(s)&&(o=o.replace(s,".html")),[".css",".scss",".sass",".less"].includes(s)&&(o=o.replace(s,".css")),Rr(o||"")}function Rr(t){return t.replace(/\\/g,"/")}function $(t,e={}){if(!e)return!1;let r=ie.default.normalize(Rr(t));return Object.values(e).some(n=>typeof n!="string"?!1:Rr(n).includes(r))}function W(t,e){if(t.getAsset("manifest.json")||t.assets["manifest.json"]){let r=t.assets["manifest.json"].source().toString();return JSON.parse(r||"{}")}return require(e)}function ae(){return process.env.npm_config_user_agent&&process.env.npm_config_user_agent.includes("pnpm")?"pnpm":!1}function en(){return process.env.npm_execpath?"npm":!1}async function j(t,e){try{let r=await(0,tn.detect)();console.log(As(t,r?.name||"unknown"));let s="";r?.name==="yarn"?s=`yarn --silent add ${e.join(" ")} --cwd ${__dirname} --optional`:r?.name==="npm"||en()?s=`npm --silent install ${e.join(" ")} --prefix ${__dirname} --save-optional`:ae()?s=`pnpm --silent add ${e.join(" ")} --prefix ${__dirname} --save-optional`:s=`${r} --silent install ${e.join(" ")} --cwd ${__dirname} --optional`,(0,Ar.execSync)(s,{stdio:"inherit"}),await new Promise(n=>setTimeout(n,2e3)),process.env.EXTENSION_ENV==="development"&&(console.log(Rs(t)),r?.name==="yarn"?s="yarn install --silent > /dev/null 2>&1":r?.name==="npm"||en()?s="npm install --silent > /dev/null 2>&1":ae()?s="pnpm install --silent > /dev/null 2>&1":s=`${r} install --silent > /dev/null 2>&1`,(0,Ar.execSync)(s,{stdio:"inherit"})),console.log(Ns(t))}catch(r){console.error(Ts(t,r))}}function it(t){let e=ie.default.join(t,"package.json");if(!ot.default.existsSync(e))return!1;let r=JSON.parse(ot.default.readFileSync(e,"utf-8")),s=["react","vue","@angular/core","svelte","solid-js","preact"],n=r.dependencies||{},o=r.devDependencies||{};for(let i of s)if(n[i]||o[i])return!0;return!1}function sn(t){return!ot.default.existsSync(ie.default.resolve(__dirname,`run-${t}-profile`))}function nn(t){let e=t.name?.replace(/ /g,"-").toLowerCase();return{data:{id:`${e}@extension-js`,manifest:t,management:{id:`${e}@extension-js`,mayDisable:!0,optionsUrl:"",installType:"development",type:"extension",enabled:!0,name:t.name||"",description:t.description||"",version:t.version||"",hostPermissions:t.host_permissions||[],permissions:t.permissions||[],offlineEnabled:t.offline_enabled||!1,shortName:t.short_name||"",isApp:t.app&&t.app.background&&t.app.background.scripts}}}}function P(t,e){return JSON.parse(JSON.stringify(t),function(n,o){let i=n.indexOf(":");if(i===-1)return o;let c=n.substring(0,i);(c===e||c==="chromium"&&Z.includes(e)||c==="chromium"&&e.includes("chromium")||c==="gecko"&&e.includes("gecko"))&&(this[n.substring(i+1)]=o)})}var on=!1;function Pe(t){let e=an.default.join(t,"package.json");if(!cn.default.existsSync(e))return!1;let r=require(e),s=r.devDependencies&&r.devDependencies.sass,n=r.dependencies&&r.dependencies.sass;return s||n?(on||(process.env.EXTENSION_ENV==="development"&&console.log(v("SASS")),on=!0),!0):!1}async function ln(t){if(!Pe(t))return[];try{require.resolve("sass-loader")}catch{await j("PostCSS",["postcss-loader","postcss-scss","postcss-preset-env"]),await j("SASS",["sass","sass-loader"]),console.log(L("SASS")),process.exit(0)}return[{test:/\.(sass|scss)$/,exclude:/\.module\.(sass|scss)$/,type:"css",use:[{loader:require.resolve("sass-loader"),options:{sourceMap:!0,sassOptions:{outputStyle:"expanded"}}}]},{test:/\.module\.(sass|scss)$/,type:"css/module",use:[{loader:require.resolve("sass-loader"),options:{sourceMap:!0,sassOptions:{outputStyle:"expanded"}}}]}]}var fn=a(require("path")),un=a(require("fs"));var pn=!1;function Ee(t){let e=fn.default.join(t,"package.json");if(!un.default.existsSync(e))return!1;let r=require(e),s=r.devDependencies&&r.devDependencies.less,n=r.dependencies&&r.dependencies.less;return s||n?(pn||(process.env.EXTENSION_ENV==="development"&&console.log(v("LESS")),pn=!0),!0):!1}async function mn(t){if(!Ee(t))return[];try{require.resolve("less-loader")}catch{await j("LESS",["less","less-loader"]),console.log(L("LESS")),process.exit(0)}return[{test:/\.less$/,exclude:/\.module\.less$/,type:"css",use:[{loader:require.resolve("less-loader"),options:{sourceMap:!0}}]},{test:/\.module\.less$/,type:"css/module",use:[{loader:require.resolve("less-loader"),options:{sourceMap:!0}}]}]}var R=a(require("path")),N=a(require("fs"));function ml(t){let e=R.default.join(t,"stylelint.config.json"),r=R.default.join(t,".stylelintrc.js file"),s=R.default.join(t,"stylelint.config.mjs"),n=R.default.join(t,".stylelintrc.mjs"),o=R.default.join(t,"stylelint.config.cjs"),i=R.default.join(t,".stylelintrc.cjs"),c=R.default.join(t,".stylelintrc.json"),l=R.default.join(t,".stylelintrc"),p=R.default.join(t,".stylelintrc.yml"),u=R.default.join(t,".stylelintrc.yaml");if(N.default.existsSync(e))return e;if(N.default.existsSync(r))return r;if(N.default.existsSync(s))return s;if(N.default.existsSync(n))return n;if(N.default.existsSync(o))return o;if(N.default.existsSync(i))return i;if(N.default.existsSync(c))return c;if(N.default.existsSync(l))return l;if(N.default.existsSync(p))return p;if(N.default.existsSync(u))return u}var dn=!1;function dl(t){let e=R.default.join(t,"package.json");if(!N.default.existsSync(e))return!1;let s=!!ml(t);return s&&(dn||(process.env.EXTENSION_ENV==="development"&&console.log(v("Stylelint")),dn=!0)),s}async function gn(t){return dl(t),[]}var Sn=a(require("path"));var yn=a(require("path")),bn=a(require("fs"));var hn=!1;function at(t){let e=yn.default.join(t,"package.json");if(!bn.default.existsSync(e))return!1;let r=require(e),s=r.devDependencies&&r.devDependencies.tailwindcss,n=r.dependencies&&r.dependencies.tailwindcss,o=!!(s||n);return o&&(hn||(process.env.EXTENSION_ENV==="development"&&console.log(v("Tailwind")),hn=!0)),o}var Nr=a(require("path")),ct=a(require("fs"));var ce=!1,gl=[".postcssrc",".postcssrc.json",".postcssrc.yaml",".postcssrc.yml",".postcssrc.js",".postcssrc.cjs","postcss.config.js","postcss.config.cjs"];function xn(t){for(let e of gl){let r=Nr.default.join(t,e);if(ct.default.existsSync(r))return r}}function hl(t){let e=Nr.default.join(t,"package.json");if(!ct.default.existsSync(e))return!1;if(ct.default.existsSync(e)){let r=require(e);if(r.dependencies&&r.dependencies.postcss||r.devDependencies&&r.devDependencies.postcss)return ce||(process.env.EXTENSION_ENV==="development"&&console.log(v("PostCSS")),ce=!0),!0}return xn(t)?(ce||(process.env.EXTENSION_ENV==="development"&&console.log(v("PostCSS")),ce=!0),!0):at(t)?(ce||(process.env.EXTENSION_ENV==="development"&&console.log(v("PostCSS")),ce=!0),!0):!1}async function wn(t,e){if(!hl(t))return{};try{require.resolve("postcss-loader")}catch{!Pe(t)&&!Ee(t)&&await j("PostCSS",["postcss","postcss-loader","postcss-preset-env"]),console.log(L("PostCSS")),process.exit(0)}return{test:/\.css$/,type:"css",loader:require.resolve("postcss-loader"),options:{postcssOptions:{ident:"postcss",config:xn(t),plugins:[[require.resolve("postcss-preset-env"),{autoprefixer:{flexbox:"no-2009"},stage:3}]].filter(Boolean)},sourceMap:e.mode==="development"}}}async function lt(t,e){let r=[];if(at(t)||Pe(t)||Ee(t)){let s=await wn(t,e);s.loader&&r.push(s)}return e.loader&&r.push({loader:e.loader.startsWith("builtin:")?e.loader:require.resolve(e.loader),options:{...e.loaderOptions,sourceMap:e.mode==="development"}}),r.filter(Boolean)}var Tr=a(require("path")),vn=a(require("fs"));function pt(t,e){if(!t||!e)return!1;let r=JSON.parse(vn.default.readFileSync(e,"utf8"));for(let s of r.content_scripts||[])if(s.js?.length){for(let n of s.js)if(Tr.default.resolve(Tr.default.dirname(e),n)===t)return!0}return!1}async function _n(t,e){let r=Sn.default.join(t,"manifest.json");return[{test:/\.css$/,type:"asset",generator:{filename:"content_scripts/[name].[contenthash:8].css"},issuer:s=>pt(s,r),use:await lt(t,{mode:e})}]}var Pn=a(require("path"));async function En(t,e){let r=Pn.default.join(t,"manifest.json");return[{test:/\.css$/,type:"css",issuer:s=>!pt(s,r),use:await lt(t,{mode:e})}]}var ft=class t{static name="plugin-css";manifestPath;constructor(e){this.manifestPath=e.manifestPath}async configureOptions(e){let r=e.options.mode||"development",s=kn.default.dirname(this.manifestPath),n=[],o=await gn(s);n.push(...o);let i=[...await _n(s,r),...await En(s,r)],c=await ln(s),l=await mn(s);c.length&&i.push(...c),l.length&&i.push(...l),e.options.plugins=[...e.options.plugins,...n].filter(Boolean),e.options.module.rules=[...e.options.module.rules,...i].filter(Boolean)}async apply(e){if((e.options.mode||"development")==="production"){e.hooks.beforeRun.tapPromise(t.name,async()=>await this.configureOptions(e));return}await this.configureOptions(e)}};var ut=class{static name="plugin-static-assets";manifestPath;mode;constructor(e){this.manifestPath=e.manifestPath,this.mode=e.mode}async apply(e){let r={test:/\.svg$/i,type:"asset",generator:{filename:"assets/[name][ext]"},parser:{dataUrlCondition:{maxSize:2048}}},n=[...e.options.module.rules.some(o=>o&&o.test instanceof RegExp&&o.test.test(".svg")&&o.use!==void 0)?[]:[r],{test:/\.(png|jpg|jpeg|gif|webp|avif|ico|bmp)$/i,type:"asset",generator:{filename:"assets/[name][ext]"},parser:{dataUrlCondition:{maxSize:2*1024}}},{test:/\.(woff|woff2|eot|ttf|otf)$/i,type:"asset",generator:{filename:"assets/[name][ext]"}},{test:/\.(txt|md|csv|tsv|xml|pdf|docx|doc|xls|xlsx|ppt|pptx|zip|gz|gzip|tgz)$/i,type:"asset",generator:{filename:"assets/[name][ext]"},parser:{dataUrlCondition:{maxSize:2*1024}}},{test:/\.(csv|tsv)$/i,use:[require.resolve("csv-loader")],generator:{filename:"assets/[name][ext]"}}];e.options.module.rules=[...e.options.module.rules,...n].filter(o=>!!o)}};var Fe=a(require("path"));var Ur=a(require("path")),Br=a(require("fs"));var Fn=!1,yl=[".babelrc",".babelrc.json",".babelrc.js",".babelrc.cjs","babel.config.json","babel.config.js","babel.config.cjs"];function bl(t){let e=Ur.default.join(t,"package.json");if(!Br.default.existsSync(e))return!1;let r=require(e),s=r.devDependencies&&r.devDependencies["babel-core"],n=r.dependencies&&r.dependencies["babel-core"],o=yl.some(i=>Br.default.existsSync(Ur.default.join(t,i)))||!!s||!!n;return o&&(Fn||(process.env.EXTENSION_ENV==="development"&&process.env.EXTENSION_ENV==="development"&&console.log(v("Babel")),Fn=!0)),o}async function $n(t,e){bl(e)}var jn=a(require("path")),Dn=a(require("fs"));var Cn=!1;function ke(t){let e=jn.default.join(t,"package.json");if(!Dn.default.existsSync(e))return!1;let r=require(e),s=r.devDependencies&&r.devDependencies.preact,n=r.dependencies&&r.dependencies.preact;return(s||n)&&(Cn||(process.env.EXTENSION_ENV==="development"&&console.log(v("Preact")),Cn=!0)),!!s||!!n}async function Ln(t){if(!ke(t))return;try{require.resolve("@rspack/plugin-preact-refresh")}catch{await j("Preact",["@prefresh/core","@prefresh/utils","@rspack/plugin-preact-refresh","preact"]),console.log(L("Preact")),process.exit(0)}return{plugins:[new(require("@rspack/plugin-preact-refresh"))],loaders:void 0,alias:{react:"preact/compat","react-dom/test-utils":"preact/test-utils","react-dom":"preact/compat","react/jsx-runtime":"preact/jsx-runtime"}}}var In=a(require("path")),Mn=a(require("fs"));var On=!1;function mt(t){let e=In.default.join(t,"package.json");if(!Mn.default.existsSync(e))return!1;let r=require(e),s=r.devDependencies&&r.devDependencies.react,n=r.dependencies&&r.dependencies.react;return(s||n)&&(On||(process.env.EXTENSION_ENV==="development"&&console.log(v("React")),On=!0)),!!s||!!n}async function An(t){if(!mt(t))return;try{require.resolve("react-refresh")}catch{await j("React",["react-refresh","@rspack/plugin-react-refresh"]),console.log(L("React")),process.exit(0)}return{plugins:[new(require("@rspack/plugin-react-refresh"))({overlay:!1})],loaders:void 0,alias:void 0}}var Nn=a(require("path")),Tn=a(require("fs")),Un=require("vue-loader");var Rn=!1;function xl(t){let e=Nn.default.join(t,"package.json");if(!Tn.default.existsSync(e))return!1;let r=require(e),s=r.devDependencies&&r.devDependencies.vue,n=r.dependencies&&r.dependencies.vue;return(s||n)&&(Rn||(process.env.EXTENSION_ENV==="development"&&console.log(v("Vue")),Rn=!0)),!!s||!!n}async function Bn(t){if(!xl(t))return;try{require.resolve("vue-loader")}catch{await j("Vue",["vue-loader","vue-template-compiler","@vue/compiler-sfc"]),console.log(L("Vue")),process.exit(0)}let e=[{test:/\.vue$/,loader:require.resolve("vue-loader"),options:{experimentalInlineMatchResource:!0},include:t,exclude:/node_modules/}];return{plugins:[new Un.VueLoaderPlugin],loaders:e,alias:void 0}}var dt=a(require("path")),gt=a(require("fs"));var qn=!1;function K(t){let e=dt.default.join(t,"package.json");if(!gt.default.existsSync(e))return!1;let r=vl(t),s=require(e),n=s.devDependencies&&s.devDependencies.typescript,o=s.dependencies&&s.dependencies.typescript;return qn||((n||o)&&(r?process.env.EXTENSION_ENV==="development"&&console.log(v("TypeScript")):(console.log(Js()),Sl(t))),qn=!0),!!r&&!!(n||o)}function wl(t,e){return{compilerOptions:{allowJs:!0,allowSyntheticDefaultImports:!0,esModuleInterop:!0,forceConsistentCasingInFileNames:!0,jsx:it(t)?"react-jsx":"preserve",lib:["dom","dom.iterable","esnext"],moduleResolution:"node",module:"esnext",resolveJsonModule:!0,strict:!0,target:"esnext",isolatedModules:!1,skipLibCheck:!0},exclude:["node_modules","dist"]}}function vl(t){let e=dt.default.join(t,"tsconfig.json");if(gt.default.existsSync(e))return e}function Sl(t){gt.default.writeFileSync(dt.default.join(t,"tsconfig.json"),JSON.stringify(wl(t,{mode:"development"}),null,2))}var Jn=a(require("path")),zn=a(require("fs")),Hn=require("svelte-preprocess");var Wn=!1;function _l(t){let e=Jn.default.join(t,"package.json");if(!zn.default.existsSync(e))return!1;let r=require(e),s=r.devDependencies&&r.devDependencies?.svelte,n=r.dependencies&&r.dependencies.svelte;return(s||n)&&(Wn||(process.env.EXTENSION_ENV==="development"&&console.log(v("Svelte")),Wn=!0)),!!s||!!n}async function Vn(t,e){if(!_l(t))return;try{require.resolve("svelte-loader")}catch{await j("TypeScript",["typescript"]),await j("Svelte",["svelte-loader","svelte-preprocess"]),console.log(L("Svelte")),process.exit(0)}return{plugins:void 0,loaders:[{test:/\.svelte\.ts$/,use:[require.resolve("svelte-loader")],include:t,exclude:/node_modules/},{test:/\.(svelte|svelte\.js)$/,use:{loader:require.resolve("svelte-loader"),options:{preprocess:(0,Hn.sveltePreprocess)({typescript:!0}),emitCss:!0,compilerOptions:{dev:e==="development",css:"injected"},hotReload:e==="development"}},include:t,exclude:/node_modules/},{test:/node_modules\/svelte\/.*\.mjs$/,resolve:{fullySpecified:!1}}],alias:void 0}}var ht=class t{static name="plugin-js-frameworks";manifestPath;mode;constructor(e){this.manifestPath=e.manifestPath,this.mode=e.mode}async configureOptions(e){let r=e.options.mode||"development",s=Fe.default.dirname(this.manifestPath),n=await $n(e,s),o=await An(s),i=await Ln(s),c=await Bn(s),l=await Vn(s,r);e.options.resolve.alias={...n?.alias||{},...o?.alias||{},...i?.alias||{},...c?.alias||{},...l?.alias||{},...e.options.resolve.alias},e.options.module.rules=[{test:/\.(js|mjs|jsx|mjsx|ts|mts|tsx|mtsx)$/,include:[Fe.default.dirname(this.manifestPath)],exclude:[/[\\/]node_modules[\\/]/],use:{loader:"builtin:swc-loader",options:{sync:!0,module:{type:"es6"},minify:r==="production",isModule:!0,sourceMap:this.mode==="development",env:{targets:["chrome >= 100"]},jsc:{parser:{syntax:K(s)?"typescript":"ecmascript",tsx:K(s)&&(mt(s)||ke(s)),jsx:!K(s)&&(mt(s)||ke(s)),dynamicImport:!0},transform:{react:{development:r==="development",refresh:r==="development",runtime:"automatic",importSource:"react",...ke(s)?{pragma:"h",pragmaFrag:"Fragment",throwIfNamespace:!0,useBuiltins:!1}:{}}}}}}},...n?.loaders||[],...o?.loaders||[],...i?.loaders||[],...c?.loaders||[],...l?.loaders||[],...e.options.module.rules].filter(Boolean),o?.plugins?.forEach(p=>p.apply(e)),i?.plugins?.forEach(p=>p.apply(e)),c?.plugins?.forEach(p=>p.apply(e)),l?.plugins?.forEach(p=>p.apply(e)),K(s)&&(e.options.resolve.tsConfig={configFile:Fe.default.resolve(Fe.default.dirname(this.manifestPath),"tsconfig.json")})}async apply(e){if((e.options.mode||"development")==="production"){e.hooks.beforeRun.tapPromise(t.name,async()=>await this.configureOptions(e));return}await this.configureOptions(e)}};var Io=a(require("path"));var Gn=a(require("path"));function Xn(t,e){if(!e||!e.action||!e.action.default_popup)return;let r=e.action.default_popup;return Gn.default.join(t,r)}var Zn=a(require("path"));function Kn(t,e){if(!e||!e.browser_action||!e.browser_action.default_popup)return;let r=e.browser_action.default_popup;return Zn.default.join(t,r)}var yt=a(require("path"));function Yn(t,e){let r={newtab:void 0};if(!e||!e.chrome_url_overrides)return{"chrome_url_overrides/newtab":void 0};if(e.chrome_url_overrides.history){let s=e.chrome_url_overrides.history;r={"chrome_url_overrides/history":yt.default.join(t,s)}}if(e.chrome_url_overrides.newtab){let s=e.chrome_url_overrides.newtab;r={"chrome_url_overrides/newtab":yt.default.join(t,s)}}if(e.chrome_url_overrides.bookmarks){let s=e.chrome_url_overrides.bookmarks;r={"chrome_url_overrides/bookmarks":yt.default.join(t,s)}}return r}var Qn=a(require("path"));function eo(t,e){if(!e||!e.devtools_page)return;let r=e.devtools_page;return Qn.default.join(t,r)}var qr=a(require("path"));function to(t,e){if(e.options_page){let s=e.options_page;return qr.default.join(t,s)}if(!e||!e.options_ui||!e.options_ui.page)return;let r=e.options_ui.page;return qr.default.join(t,r)}var ro=a(require("path"));function so(t,e){if(!e||!e.page_action||!e.page_action.default_popup)return;let r=e.page_action.default_popup;return ro.default.join(t,r)}var no=a(require("path"));function oo(t,e){if(!e||!e.sandbox||!e.sandbox.pages)return{"sandbox/page-0":void 0};let r=e.sandbox.pages,s={};for(let[n,o]of r.entries())s[`sandbox/page-${n}`]=no.default.join(t,o);return s}var io=a(require("path"));function ao(t,e){if(!e||!e.side_panel||!e.side_panel.default_path)return;let r=e.side_panel.default_path;return io.default.join(t,r)}var co=a(require("path"));function lo(t,e){if(!e||!e.sidebar_action||!e.sidebar_action.default_panel)return;let r=e.sidebar_action.default_panel;return co.default.join(t,r)}function $e(t,e){return{"action/default_popup":Xn(t,e),"browser_action/default_popup":Kn(t,e),...Yn(t,e),devtools_page:eo(t,e),"options_ui/page":to(t,e),"page_action/default_popup":so(t,e),...oo(t,e),"side_panel/default_path":ao(t,e),"sidebar_action/default_panel":lo(t,e)}}var Wr=a(require("path"));function po(t,e){if(!e||!e.action||!e.action.default_icon)return;if(typeof e.action.default_icon=="string")return Wr.default.join(t,e.action.default_icon);let r=[];for(let s in e.action.default_icon)r.push(Wr.default.join(t,e.action.default_icon[s]));return r}var Jr=a(require("path"));function fo(t,e){if(!e||!e.browser_action||!e.browser_action.default_icon)return;let r=[];if(typeof e.browser_action.default_icon=="string")return Jr.default.join(t,e.browser_action.default_icon);for(let s in e.browser_action.default_icon){let n=e.browser_action.default_icon[s]=Jr.default.join(t,e.browser_action.default_icon[s]);r.push(n)}return r}var zr=a(require("path"));function uo(t,e){if(!(!e||!e.browser_action||!e.browser_action.theme_icons)){for(let r of e.browser_action.theme_icons)r.light&&(r.light=zr.default.join(t,r.light)),r.dark&&(r.dark=zr.default.join(t,r.dark)),r.size&&delete r.size;return e.browser_action.theme_icons}}var mo=a(require("path"));function go(t,e){if(!e||!e.icons)return;let r=[];for(let s in e.icons){let n=mo.default.join(t,e.icons[s]);r.push(n)}return r}var Hr=a(require("path"));function ho(t,e){if(!e||!e.page_action||!e.page_action.default_icon)return;if(typeof e.page_action.default_icon=="string")return Hr.default.join(t,e.page_action.default_icon);let r=[];for(let s in e.page_action.default_icon){let n=Hr.default.join(t,e.page_action.default_icon[s]);r.push(n)}return r}var yo=a(require("path"));function bo(t,e){return!e||!e.sidebar_action||!e.sidebar_action.default_icon?void 0:yo.default.join(t,e.sidebar_action.default_icon)}function xo(t,e){return{action:po(t,e),browser_action:fo(t,e),"browser_action/theme_icons":uo(t,e),icons:go(t,e),page_action:ho(t,e),sidebar_action:bo(t,e)}}var wo=a(require("path"));function vo(t,e){let r={};return!e||!e.declarative_net_request||!e.declarative_net_request.rule_resources?{"declarative_net_request/rule_resources-0":void 0}:(e.declarative_net_request.rule_resources.forEach(n=>{r[`declarative_net_request/${n.id}`]=wo.default.join(t,n.path)}),r)}var So=a(require("path"));function _o(t,e){if(!e||!e.storage||!e.storage.managed_schema)return;let r=e.storage.managed_schema;return So.default.join(t,r)}function Po(t,e){return{...vo(t,e),"storage/managed_schema":_o(t,e)}}var Ce=a(require("path")),je=a(require("fs"));function Eo(t,e){let r=Ce.default.join(Ce.default.dirname(e),"_locales"),s=[];if(je.default.existsSync(r))for(let n of je.default.readdirSync(r)){let o=Ce.default.join(r,n);if(o&&je.default.statSync(o).isDirectory())for(let i of je.default.readdirSync(o))s.push(Ce.default.join(t,"_locales",n,i))}return s}var ko=a(require("path"));function Fo(t,e){if(!e||!e.background)return;let r=e.background.scripts;if(r)return r.map(s=>ko.default.join(t,s))}var $o=a(require("path"));function Co(t,e){if(!e||!e.background)return;let r=e.background.service_worker;if(r)return $o.default.join(t,r)}var Vr=a(require("path"));function jo(t,e){if(!e||!e.content_scripts)return{"content_scripts/content-0":void 0};let r=o=>{if(o.js?.length!==0)return o.js?.map(i=>Vr.default.join(t,i))},s=o=>{if(o.css?.length!==0)return o.css?.map(i=>Vr.default.join(t,i))},n={};for(let[o,i]of e.content_scripts.entries()){let c=r(i),l=s(i);n[`content_scripts/content-${o}`]=[...(c||[]).filter(p=>p!=null),...(l||[]).filter(p=>p!=null)]}return n}var Do=a(require("path"));function Lo(t,e){if(!e||!e.user_scripts||!e.user_scripts.api_script)return;let r=e.user_scripts.api_script;return Do.default.join(t,r)}function De(t,e){return{"background/scripts":Fo(t,e),"background/service_worker":Co(t,e),...jo(t,e),"user_scripts/api_script":Lo(t,e)}}function Oo(t){if(!(!t||!t.web_accessible_resources||!t.web_accessible_resources.length))return t.web_accessible_resources}function le({manifestPath:t,browser:e}){let r=Io.default.dirname(t),s=require(t),n=P(s,e||"chrome");return{html:$e(r,n),icons:xo(r,n),json:Po(r,n),locales:Eo(r,t),scripts:De(r,n),web_accessible_resources:Oo(n)}}var pe=a(require("path"));var bt=a(require("fs")),Le=a(require("path"));function xt(t,e){if(!bt.default.existsSync(t)||!bt.default.statSync(t).isDirectory())return[];let r=[];function s(n){let o=bt.default.readdirSync(n,{withFileTypes:!0});for(let i of o){let c=Le.default.join(n,i.name);i.isDirectory()?s(c):i.isFile()&&e(i.name)&&r.push(c)}}return s(t),r}function wt(t,e,r=""){return!e||!e.length?{}:e.reduce((s,n)=>{let o=Le.default.extname(n),i=Le.default.basename(n,o),c=r?`${r}/${i}`:Le.default.relative(t,n);return{...s,[c]:n}},{})}function Mo({manifestPath:t}){let e=pe.default.dirname(t),r={public:pe.default.join(e,"public"),pages:pe.default.join(e,"pages"),scripts:pe.default.join(e,"scripts")},s={public:xt(r.public,()=>!0),pages:xt(r.pages,o=>o.endsWith(".html")),scripts:xt(r.scripts,o=>[".js",".mjs",".jsx",".mjsx",".ts",".mts",".tsx",".mtsx"].includes(pe.default.extname(o)))};return{public:wt(e,s.public),pages:wt(e,s.pages,"pages"),scripts:wt(e,s.scripts,"scripts")}}var Ao=a(require("fs")),fe=a(require("@rspack/core"));var vt=class{manifestPath;constructor(e){this.manifestPath=e.manifestPath}apply(e){e.hooks.thisCompilation.tap("manifest:emit-manifest",r=>{r.hooks.processAssets.tap({name:"manifest:emit-manifest",stage:fe.Compilation.PROCESS_ASSETS_STAGE_PRE_PROCESS},()=>{let s=this.manifestPath,n;try{let c=Ao.default.readFileSync(s,"utf-8");n=JSON.parse(c),"$schema"in n&&delete n.$schema}catch(c){r.errors.push(new fe.default.WebpackError(Bs(c)));return}let o=JSON.stringify(n,null,2);r.emitAsset("manifest.json",new fe.sources.RawSource(o))})})}};var Oe=require("@rspack/core");function Ro(t,e){return t.background&&t.background.scripts&&{background:{...t.background,...t.background.scripts&&{scripts:[...t.background.scripts.map(r=>h("background/scripts.js",r,e))]}}}}var No=a(require("path"));var St=t=>No.default.basename(t);function To(t,e){return t.browser_action&&{browser_action:{...t.browser_action,...t.browser_action.default_popup&&{default_popup:h("browser_action/default_popup.html",t.browser_action.default_popup,e)},...t.browser_action.default_icon&&{default_icon:typeof t.browser_action.default_icon=="string"?h(`icons/${St(t.browser_action.default_icon)}`,t.browser_action.default_icon,e):Object.fromEntries(Object.entries(t.browser_action.default_icon).map(([r,s])=>[r,h(`icons/${St(s)}`,s,e)]))},...t.browser_action.theme_icons&&{theme_icons:t.browser_action.theme_icons.map(r=>({...r,...r.light&&{light:h(`browser_action/${St(r.light)}`,r.light,e)},...r.dark&&{dark:h(`browser_action/${St(r.dark)}`,r.dark,e)}}))}}}}function Uo(t,e){return t.declarative_net_request&&{declarative_net_request:{...t.declarative_net_request,rule_resources:t.declarative_net_request.rule_resources.map(r=>({...r,path:r.path&&h(`declarative_net_request/${r.id}.json`,r.path,e)}))}}}function Bo(t,e){return{...Ro(t,e),...To(t,e),...Uo(t,e)}}var Wo=a(require("path"));var qo=t=>Wo.default.basename(t);function Jo(t,e){return t.action&&{action:{...t.action,...t.action.default_popup&&{default_popup:h("action/default_popup.html",t.action.default_popup,e)},...t.action.default_icon&&{default_icon:typeof t.action.default_icon=="string"?h(`action/${qo(t.action.default_icon)}`,t.action.default_icon,e):Object.fromEntries(Object.entries(t.action.default_icon).map(([r,s])=>[r,h(`action/${qo(s)}`,s,e)]))}}}}function zo(t,e){return t.background&&t.background.service_worker&&{background:{...t.background,...t.background.service_worker&&{service_worker:h("background/service_worker.js",t.background.service_worker,e)}}}}function _t(t,e){return t.side_panel&&{side_panel:{...t.side_panel.default_path&&{default_path:h("side_panel/default_path.html",t.side_panel.default_path,e)}}}}function Ho(t,e){return{...Jo(t,e),...zo(t,e),..._t(t,e)}}function Vo(t,e){return t.background&&t.background.page&&{background:{...t.background,...t.background.page&&{page:h("background/page.html",t.background.page,e)}}}}function Go(t,e){return t.chrome_url_overrides&&{chrome_url_overrides:{...t.chrome_url_overrides.bookmarks&&{bookmarks:h("chrome_url_overrides/bookmarks.html",t.chrome_url_overrides.bookmarks,e)},...t.chrome_url_overrides.history&&{history:h("chrome_url_overrides/history.html",t.chrome_url_overrides.history,e)},...t.chrome_url_overrides.newtab&&{newtab:h("chrome_url_overrides/newtab.html",t.chrome_url_overrides.newtab,e)}}}}function Xo(t,e){return t.content_scripts&&{content_scripts:t.content_scripts.map((r,s)=>{let n=[...new Set(r.js)],o=[...new Set(r.css)];return{...r,js:[...n.map(i=>h(`content_scripts/content-${s}.js`,i,e))],css:[...o.map(i=>h(`content_scripts/content-${s}.css`,i,e))]}})}}function Zo(t,e){return t.devtools_page&&{devtools_page:h("devtools_page.html",t.devtools_page,e)}}var Ko=a(require("path"));var Pl=t=>Ko.default.basename(t);function Yo(t,e){return t.icons&&{icons:Object.fromEntries(Object.entries(t.icons).map(([r,s])=>[r,h(`icons/${Pl(s)}`,s,e)]))}}function Qo(t,e){return t.options_page&&{options_page:h("options_ui/page.html",t.options_page,e)}}function ei(t,e){return t.options_ui&&{options_ui:{...t.options_ui,...t.options_ui.page&&{page:h("options_ui/page.html",t.options_ui.page,e)}}}}var ri=a(require("path"));var ti=t=>ri.default.basename(t);function si(t,e){return t.page_action&&{page_action:{...t.page_action,...t.page_action.default_popup&&{default_popup:h("page_action/default_popup.html",t.page_action.default_popup,e)},...t.page_action.default_icon&&{default_icon:typeof t.page_action.default_icon=="string"?h(`icons/${ti(t.page_action.default_icon)}`,t.page_action.default_icon,e):Object.fromEntries(Object.entries(t.page_action.default_icon).map(([r,s])=>[r,h(`icons/${ti(s)}`,s,e)]))}}}}function ni(t,e){return t.sandbox&&{sandbox:{...t.sandbox,...t.sandbox.pages&&{pages:t.sandbox.pages.map((r,s)=>h(`sandbox/page-${s}.html`,r,e))}}}}var oi=a(require("path"));var El=t=>oi.default.basename(t);function ii(t,e){return t.sidebar_action&&{sidebar_action:{...t.sidebar_action,...t.sidebar_action.default_panel&&{default_panel:h("sidebar_action/default_panel.html",t.sidebar_action.default_panel,e)},...t.sidebar_action.default_icon&&{default_icon:h(`icons/${El(t.sidebar_action.default_icon)}`,t.sidebar_action.default_icon,e)}}}}function ai(t,e){return t.storage&&{storage:{...t.storage.managed_schema&&{managed_schema:h("storage/managed_schema.json",t.storage.managed_schema,e)}}}}var ci=a(require("path"));var kl=t=>ci.default.basename(t);function li(t,e){return t.theme&&{theme:{...t.theme,...t.theme.images&&{images:{...t.theme.images,theme_frame:h(`theme/images/${kl(t.theme.images.theme_frame)}`,t.theme.images.theme_frame,e)}}}}}function pi(t,e){return t.user_scripts&&{user_scripts:{...t.user_scripts,...t.user_scripts.api_script&&{api_script:h("user_scripts/api_script.js",t.user_scripts.api_script,e)}}}}function fi(t){return t.web_accessible_resources&&t.web_accessible_resources.length&&{web_accessible_resources:t.web_accessible_resources}}function ui(t,e){return{...Vo(t,e),...Go(t,e),...Xo(t,e),...Zo(t,e),...Yo(t,e),...Qo(t,e),...ei(t,e),...si(t,e),...ni(t,e),..._t(t,e),...ii(t,e),...ai(t,e),...li(t,e),...pi(t,e),...fi(t)}}function Gr(t,e,r){let s=e||require(t);return JSON.stringify({...s,...ui(s,r),...Bo(s,r),...Ho(s,r)},null,2)}var Pt=class{manifestPath;excludeList;constructor(e){this.manifestPath=e.manifestPath,this.excludeList=e.excludeList}applyDevOverrides(e){return e.content_scripts?e.content_scripts.map((r,s)=>(r.css.length&&!r.js.length&&(r.js=[h(`content_scripts-${s}`,"dev.js",{})]),r)):{}}apply(e){e.hooks.thisCompilation.tap("manifest:update-manifest",r=>{r.hooks.processAssets.tap({name:"manifest:update-manifest",stage:Oe.Compilation.PROCESS_ASSETS_STAGE_SUMMARIZE},()=>{if(r.errors.length>0)return;let s=W(r,this.manifestPath),n=Gr(this.manifestPath,s,this.excludeList||{}),o={...s,...JSON.parse(n)};e.options.mode==="development"&&o.content_scripts&&(o.content_scripts=this.applyDevOverrides(o));let i=JSON.stringify(o,null,2),c=new Oe.sources.RawSource(i);r.updateAsset("manifest.json",c)}),e.options.mode==="production"&&r.hooks.processAssets.tap("manifest:update-manifest",()=>{if(r.errors.length>0)return;let s=W(r,this.manifestPath),n=Gr(this.manifestPath,s,this.excludeList||{}),o={...s,...JSON.parse(n)},i=JSON.stringify(o,null,2),c=new Oe.sources.RawSource(i);r.updateAsset("manifest.json",c)})})}};var mi=a(require("fs")),Et=class{dependencyList;constructor(e){this.dependencyList=e}apply(e){e.hooks.afterCompile.tap("manifest:add-dependency",r=>{if(r.errors?.length)return;let s=new Set(r.fileDependencies);this.dependencyList&&this.dependencyList.forEach(n=>{mi.default.existsSync(n)&&(s.has(n)||(s.add(n),r.fileDependencies.add(n)))})})}};var di=a(require("fs")),gi=a(require("path")),Ft=a(require("@rspack/core"));var kt=class{manifestPath;includeList;excludeList;constructor(e){this.manifestPath=e.manifestPath,this.includeList=e.includeList,this.excludeList=e.excludeList}extractPaths(e){let r=Array.isArray(e)?e:[e];if(typeof r[0]=="string")return r;let s=[];if(typeof e=="object"&&!Array.isArray(e)){let n=e;n.light&&s.push(n.light),n.dark&&s.push(n.dark)}return s}handleErrors(e,r){let s=[".png",".jpg",".jpeg",".svg",".gif",".webp"],n=[".json"],o=[".js",".ts",".jsx",".tsx",".mjs",".cjs"],i=".html",c=Object.entries(this.includeList||{});for(let[l,p]of c)if(p){let u=this.extractPaths(p);for(let m of u){let g=gi.default.extname(m),b=require(this.manifestPath),S=P(b,"chrome").name||"Extension.js";if(!di.default.existsSync(m)){if(m.startsWith("/"))return;let E=oe(S,l,m);s.includes(g)?e.errors.push(new r(E)):n.includes(g)?e.errors.push(new r(E)):o.includes(g)?e.errors.push(new r(E)):g===i?e.errors.push(new r(E)):e.errors.push(new r(E))}}}}apply(e){e.hooks.compilation.tap("manifest:check-manifest-files",r=>{r.hooks.processAssets.tap({name:"compatibility:check-manifest-files",stage:Ft.Compilation.PROCESS_ASSETS_STAGE_OPTIMIZE_COUNT},()=>{let s=Ft.default.WebpackError;this.handleErrors(r,s)})})}};var hi=a(require("fs")),Ct=a(require("@rspack/core"));var $t=class{manifestPath;browser;includeList;constructor(e){this.manifestPath=e.manifestPath,this.browser=e.browser||"chrome",this.includeList=e.includeList}flattenAndSort(e){return e.flat(1/0).sort()}apply(e){e.hooks.watchRun.tapAsync("manifest:throw-if-recompile-is-needed",(r,s)=>{if((r.modifiedFiles||new Set).has(this.manifestPath)){let o=r.options.context||"",i=`${o}/package.json`;if(!hi.default.existsSync(i)){s();return}let c=require(this.manifestPath),l=P(c,this.browser),p=this.flattenAndSort(Object.values($e(o,l))),u=this.flattenAndSort(Object.values(De(o,l)));r.hooks.thisCompilation.tap("manifest:throw-if-recompile-is-needed",m=>{m.hooks.processAssets.tap({name:"manifest:check-manifest-files",stage:Ct.Compilation.PROCESS_ASSETS_STAGE_OPTIMIZE_COMPATIBILITY},()=>{let b=m.getAsset("manifest.json")?.source.source().toString(),_=JSON.parse(b||"{}"),S=this.flattenAndSort(Object.values($e(o,_))),E=this.flattenAndSort(Object.values(De(o,_)));if(u.toString()!==E.toString()||p.toString()!==S.toString()){let A=p.filter(q=>!S.includes(q))[0],T=S.filter(q=>!p.includes(q))[0],_e=qs(T,A);m.errors.push(new Ct.default.WebpackError(_e))}})})}s()})}};var jt=class{manifestPath;browser;includeList;excludeList;constructor(e){this.manifestPath=e.manifestPath,this.browser=e.browser||"chrome",this.includeList=e.includeList,this.excludeList=e.excludeList}apply(e){new vt({manifestPath:this.manifestPath}).apply(e),new kt({manifestPath:this.manifestPath,includeList:this.includeList,excludeList:this.excludeList}).apply(e),new Pt({manifestPath:this.manifestPath,excludeList:this.excludeList}).apply(e),new Et([this.manifestPath]).apply(e),new $t({manifestPath:this.manifestPath,browser:this.browser,includeList:this.includeList}).apply(e)}};var Qr=a(require("path"));var Zr=a(require("fs")),Ot=a(require("@rspack/core")),vi=require("@rspack/core");var yi=a(require("fs")),me=a(require("path")),bi=a(require("parse5-utils"));var ue=a(require("parse5-utils"));function Dt(t){try{return new URL(t),!0}catch{return!1}}function Ie(t,e){let{childNodes:r=[]}=t;for(let s of r)if(s.nodeName==="script"){let n=ue.default.getAttribute(s,"src");if(!n||Dt(n))continue;e({filePath:n,childNode:s,assetType:"script"})}else if(s.nodeName==="link"){let n=ue.default.getAttribute(s,"href"),o=ue.default.getAttribute(s,"rel");if(!n||Dt(n))continue;e(o==="dns-prefetch"||o==="icon"||o==="manifest"||o==="modulepreload"||o==="preconnect"||o==="prefetch"||o==="preload"||o==="prerender"?{filePath:n,childNode:s,assetType:"staticHref"}:{filePath:n,childNode:s,assetType:"css"})}else if(s.nodeName==="a"||s.nodeName==="area"){let n=ue.default.getAttribute(s,"href");if(!n||Dt(n))continue;e({filePath:n,childNode:s,assetType:"staticHref"})}else if(s.nodeName==="audio"||s.nodeName==="embed"||s.nodeName==="iframe"||s.nodeName==="img"||s.nodeName==="input"||s.nodeName==="source"||s.nodeName==="track"||s.nodeName==="video"){let n=ue.default.getAttribute(s,"src");if(!n||Dt(n))continue;e({filePath:n,childNode:s,assetType:"staticSrc"})}else Ie(s,e)}function D(t,e){let r={css:[],js:[],static:[]};if(!t)return r;let s=e||yi.default.readFileSync(t,{encoding:"utf8"}),n=bi.default.parse(s),o=(i,c)=>me.default.join(me.default.dirname(i),c.startsWith("/")?me.default.relative(me.default.dirname(i),c):c);for(let i of n.childNodes)if(i.nodeName==="html"){for(let c of i.childNodes)(c.nodeName==="head"||c.nodeName==="body")&&Ie(c,({filePath:l,assetType:p})=>{let u=o(t,l);switch(p){case"script":r.js?.push(u);break;case"css":r.css?.push(u);break;case"staticSrc":case"staticHref":if(l.startsWith("#"))break;r.static?.push(u);break;default:break}});return{css:r.css,js:r.js,static:r.static}}}function xi(t,e,r){let s=Object.keys(t).find(o=>{let i=t[o];return t[o]===e||D(i)?.js?.includes(e)||D(i)?.css?.includes(e)})||"",n=Xr(e);return s?`/${s.replace(n,"")}${r}`:`${e.replace(n,"")}${r}`}function Xr(t){switch(me.default.extname(t)){case".js":case".mjs":case".ts":case".tsx":return".js";case".css":case".scss":case".sass":case".less":return".css";case".html":return".html";default:return".js"}}function z(t,e,r){return r?`/${t}${e}`:`${t}${e}`}function wi(t,e){return Object.values(e||{}).some(r=>r===t)}var Lt=class{manifestPath;includeList;excludeList;constructor(e){this.manifestPath=e.manifestPath,this.includeList=e.includeList,this.excludeList=e.excludeList}apply(e){let r=require(this.manifestPath),n=P(r,"chrome").name||"Extension.js";e.hooks.thisCompilation.tap("html:emit-html-file",o=>{o.hooks.processAssets.tap({name:"AddAssetsToCompilationPlugin",stage:Ot.Compilation.PROCESS_ASSETS_STAGE_ADDITIONAL},()=>{let i=Object.entries(this.includeList||{});for(let c of i){let[l,p]=c;if(p){if(!Zr.default.existsSync(p)){let m=oe(n,l,p);o.warnings.push(new Ot.default.WebpackError(m));return}let u=Zr.default.readFileSync(p,"utf8");if(!$(p,this.excludeList)){let m=new vi.sources.RawSource(u),g=z(l,".html");o.emitAsset(g,m)}}}})})}};var It=a(require("fs")),de=a(require("path")),Y=a(require("@rspack/core"));var Mt=class{manifestPath;includeList;constructor(e){this.manifestPath=e.manifestPath,this.includeList=e.includeList}apply(e){e.hooks.thisCompilation.tap("html:add-assets-to-compilation",r=>{r.hooks.processAssets.tap({name:"html:add-assets-to-compilation",stage:Y.Compilation.PROCESS_ASSETS_STAGE_ADDITIONAL},()=>{if(r.errors.length>0)return;let s=Object.entries(this.includeList||{});for(let n of s){let[o,i]=n,c=o+".html";if(i){let l=r.getAsset(c);if(l){let p=l.source.source().toString(),u=D(i,p)?.static,m=[...new Set(u)];for(let g of m)if(!g.startsWith("/")){if(!It.default.existsSync(g)&&!wi(g,this.includeList)&&!de.default.basename(g).startsWith("#")){let A=rt(i,g);g.startsWith("/")||r.warnings.push(new Y.default.WebpackError(A));return}let b=It.default.readFileSync(g),_=new Y.sources.RawSource(b),S=de.default.join("assets",de.default.basename(g));if(!r.getAsset(S))if(g.endsWith(".html")){let E=D(g),A=[...E?.js||[],...E?.css||[],...E?.static||[]];r.emitAsset(S,_),A.forEach(T=>{let _e=It.default.readFileSync(T),q=new Y.sources.RawSource(_e),Cs=de.default.join("assets",de.default.basename(T));r.getAsset(Cs)||r.emitAsset(Cs,q)})}else r.emitAsset(S,_)}}}}})})}};var Si=a(require("path")),Kr=a(require("fs"));var At=class{manifestPath;includeList;excludeList;constructor(e){this.manifestPath=e.manifestPath,this.includeList=e.includeList,this.excludeList=e.excludeList}apply(e){let r=this.includeList||{};for(let s of Object.entries(r)){let[n,o]=s;if(o){if(!Kr.default.existsSync(o))return;let i=D(o),c=i?.js||[],l=i?.css||[],p=[...c,...l].filter(u=>!$(u,this.excludeList));if(e.options.mode==="development"){let u=Si.default.resolve(__dirname,"minimum-script-file.mjs");p.push(u)}Kr.default.existsSync(o)&&($(o,this.excludeList)||(e.options.entry={...e.options.entry,[n]:{import:p}}))}}}};var Nt=require("@rspack/core");var Yr=a(require("fs")),H=a(require("path")),O=a(require("parse5-utils"));function _i(t,e,r,s,n){let o=Yr.default.readFileSync(r,{encoding:"utf8"}),i=O.default.parse(o),c=!!t.getAsset(e+".css"),l=!1;for(let p of i.childNodes)if(p.nodeName==="html"){for(let u of p.childNodes){if((u.nodeName==="head"||u.nodeName==="body")&&Ie(u,({filePath:m,childNode:g,assetType:b})=>{let _=H.default.dirname(r),S=H.default.resolve(_,m),E=Xr(S),A=$(H.default.resolve(_,m),n),T=H.default.join("/",H.default.normalize(m)),_e=rn(S,s);switch(b){case"script":{A?p=O.default.setAttribute(g,"src",T):(p=O.default.remove(g),l=!0);break}case"css":{A?p=O.default.setAttribute(g,"href",T):(p=O.default.remove(g),c=!0);break}case"staticHref":case"staticSrc":{if(A)p=O.default.setAttribute(g,b==="staticSrc"?"src":"href",T);else if(_e){let q=xi(s,S,E);p=O.default.setAttribute(g,b==="staticSrc"?"src":"href",q)}else{let q=H.default.join("assets",H.default.basename(S,E));Yr.default.existsSync(S)&&(p=O.default.setAttribute(g,b==="staticSrc"?"src":"href",z(q,"",!0)))}break}default:break}}),u.nodeName==="head"&&c){let m=O.default.createNode("link");m.attrs=[{name:"rel",value:"stylesheet"},{name:"href",value:z(e,".css",!0)}],O.default.append(u,m)}if(u.nodeName==="body"&&(l||t.options.mode!=="production")){let m=O.default.createNode("script");m.attrs=[{name:"src",value:z(e,".js",!0)}],O.default.append(u,m)}}return O.default.serialize(i)}}var Rt=class{manifestPath;includeList;excludeList;constructor(e){this.manifestPath=e.manifestPath,this.includeList=e.includeList,this.excludeList=e.excludeList}apply(e){e.hooks.thisCompilation.tap("html:update-html-file",r=>{r.hooks.processAssets.tap({name:"html:update-html-file",stage:Nt.Compilation.PROCESS_ASSETS_STAGE_DERIVED},()=>{if(r.errors.length>0)return;let s=this.includeList||{};for(let n of Object.entries(s)){let[o,i]=n;if(i){let c=_i(r,o,i,s,this.excludeList||{});if(!$(i,this.excludeList)&&c){let l=new Nt.sources.RawSource(c),p=z(o,".html");r.updateAsset(p,l)}}}})})}};var Pi=a(require("fs")),Ei=require("@rspack/core");var Tt=class{manifestPath;includeList;constructor(e){this.manifestPath=e.manifestPath,this.includeList=e.includeList}apply(e){e.hooks.thisCompilation.tap("html:add-to-file-dependencies",r=>{r.hooks.processAssets.tap({name:"html:add-to-file-dependencies",stage:Ei.Compilation.PROCESS_ASSETS_STAGE_ADDITIONS},()=>{if(r.errors?.length)return;let s=this.includeList||{};for(let n of Object.entries(s)){let[,o]=n;if(o){let i=D(o),c=new Set(r.fileDependencies);if(Pi.default.existsSync(o)){let l=[o,...i?.static||[]];for(let p of l)c.has(p)||(c.add(p),p===o&&r.fileDependencies.add(p))}}}})})}};var ki=a(require("fs"));var Ut=class{manifestPath;includeList;initialHtmlAssets={};constructor(e){this.manifestPath=e.manifestPath,this.includeList=e.includeList}hasEntriesChanged(e,r){if(!r||!e||e.length!==r.length)return!0;for(let s=0;s<e.length;s++)if(e[s]!==r[s])return!0;return!1}storeInitialHtmlAssets(e){Object.entries(e).forEach(([r,s])=>{let n=s;if(n){if(!ki.default.existsSync(n)){let o=require(this.manifestPath),c=P(o,"chrome").name||"Extension.js";console.error(oe(c,r,n)),process.exit(1)}this.initialHtmlAssets[n]={js:D(n)?.js||[],css:D(n)?.css||[]}}})}apply(e){let r=this.includeList||{};this.storeInitialHtmlAssets(r),e.hooks.make.tapAsync("html:throw-if-recompile-is-needed",(s,n)=>{let o=e.modifiedFiles||new Set,i=Array.from(o)[0];if(i&&this.initialHtmlAssets[i]){let c=D(i)?.js||[],l=D(i)?.css||[],{js:p,css:u}=this.initialHtmlAssets[i];(this.hasEntriesChanged(l,u)||this.hasEntriesChanged(c,p))&&console.log(Gs(i))}n()})}};var Fi=a(require("fs")),$i=require("@rspack/core");function $l(t,e){let r="Module not found: Error: Can't resolve ",n=e.message.replace(r,"").split("'")[1];if(e.message.includes(r))for(let o of Object.entries(t)){let[,i]=o;if(i){if(!Fi.default.existsSync(i))return null;let c=D(i),l=c?.js?.filter(u=>!u.startsWith("/"))||[],p=c?.css?.filter(u=>!u.startsWith("/"))||[];if(l.includes(n)||p.includes(n)){let u=rt(i,n);return new $i.WebpackError(u)}}}return null}var Bt=class{manifestPath;includeList;constructor(e){this.manifestPath=e.manifestPath,this.includeList=e.includeList}apply(e){e.hooks.compilation.tap("html:handle-common-errors",r=>{r.hooks.afterSeal.tapPromise("html:handle-common-errors",async()=>{r.errors.forEach((s,n)=>{let o=$l(this.includeList||{},s);o&&(r.errors[n]=o)})})})}};var qt=class{manifestPath;includeList;excludeList;constructor(e){this.manifestPath=e.manifestPath,this.includeList=e.includeList,this.excludeList=e.excludeList}apply(e){new Lt({manifestPath:this.manifestPath,includeList:this.includeList,excludeList:this.excludeList}).apply(e),new Mt({manifestPath:this.manifestPath,includeList:this.includeList,excludeList:this.excludeList}).apply(e),new At({manifestPath:this.manifestPath,includeList:this.includeList,excludeList:this.excludeList}).apply(e),new Rt({manifestPath:this.manifestPath,includeList:this.includeList,excludeList:this.excludeList}).apply(e),e.options.module.rules.push({test:/\.(js|mjs|jsx|mjsx|ts|mts|tsx|mtsx)$/,include:[Qr.default.dirname(this.manifestPath)],exclude:[/[\\/]node_modules[\\/]/],use:[{loader:require.resolve(Qr.default.join(__dirname,"ensure-hmr-for-scripts.js")),options:{manifestPath:this.manifestPath,includeList:this.includeList,excludeList:this.excludeList}}]}),new Tt({manifestPath:this.manifestPath,includeList:this.includeList,excludeList:this.excludeList}).apply(e),new Ut({manifestPath:this.manifestPath,includeList:this.includeList,excludeList:this.excludeList}).apply(e),new Bt({manifestPath:this.manifestPath,includeList:this.includeList,excludeList:this.excludeList}).apply(e)}};var Me=a(require("path"));var es=a(require("fs")),Ci=a(require("path"));function ji(t,e){return(Array.isArray(t)?t||[]:t?[t]:[]).filter(n=>{let o=es.default.existsSync(n)&&!$(n,e),i=Ci.default.extname(n);return o&&(i===".js"||i===".mjs"||i===".jsx"||i===".ts"||i===".tsx")})}function Di(t,e){return(Array.isArray(t)?t||[]:t?[t]:[]).filter(n=>es.default.existsSync(n)&&!$(n,e)&&(n.endsWith(".css")||n.endsWith(".scss")||n.endsWith(".sass")||n.endsWith(".less")))}var Wt=class{manifestPath;includeList;excludeList;constructor(e){this.manifestPath=e.manifestPath,this.includeList=e.includeList||{},this.excludeList=e.excludeList||{}}apply(e){let r=this.includeList||{},s={};for(let[n,o]of Object.entries(r)){let i=ji(o,this.excludeList),c=Di(o,this.excludeList),l=[...i,...c];(c.length||i.length)&&(s[n]={import:l})}e.options.entry={...e.options.entry,...s}}};var Q=require("@rspack/core"),Cl=['var isBrowser = !!(() => { try { return browser.runtime.getURL("/") } catch(e) {} })()','var isChrome = !!(() => { try { return chrome.runtime.getURL("/") } catch(e) {} })()'],jl=[...Cl,`var runtime = isBrowser ? browser : isChrome ? chrome : (typeof self === 'object' && self.addEventListener) ? { get runtime() { throw new Error("No chrome or browser runtime found") } } : { runtime: { getURL: x => x } }`],Jt=class t{apply(e){let{RuntimeGlobals:r}=e.webpack;e.hooks.compilation.tap("PublicPathRuntimeModule",s=>{s.hooks.runtimeRequirementInTree.for(r.publicPath).tap(t.name,n=>{let o=Dl();return s.addRuntimeModule(n,o),!0})})}};function Dl(){class t extends Q.RuntimeModule{constructor(){super("publicPath",Q.RuntimeModule.STAGE_BASIC)}generate(){let r=this.compilation?.outputOptions.publicPath;return Q.Template.asString([...jl,`var path = ${JSON.stringify(this.compilation?.getPath(r||"",{hash:this.compilation.hash||"XXXX"}))}`,`${Q.RuntimeGlobals.publicPath} = typeof importScripts === 'function' || !(isBrowser || isChrome) ? path : runtime.runtime.getURL(path);`])}}return new t}var zt=class{manifestPath;browser;includeList;excludeList;constructor(e){this.manifestPath=e.manifestPath,this.browser=e.browser||"chrome",this.includeList=e.includeList||{},this.excludeList=e.excludeList||{}}apply(e){let r=require(this.manifestPath),s=P(r,this.browser);s.content_scripts?.some(n=>n.world&&n.world.toLowerCase()==="main")&&Z.includes(this.browser)&&!s.key&&(console.error(Ks()),process.exit(1))}};var Ht=class{manifestPath;browser;includeList;excludeList;constructor(e){this.manifestPath=e.manifestPath,this.browser=e.browser||"chrome",this.includeList=e.includeList,this.excludeList=e.excludeList}apply(e){new Wt({manifestPath:this.manifestPath,includeList:this.includeList||{},excludeList:this.excludeList||{}}).apply(e),e.options.module.rules.push({test:/\.(js|mjs|jsx|mjsx|ts|mts|tsx|mtsx)$/,include:[Me.default.dirname(this.manifestPath)],exclude:[/[\\/]node_modules[\\/]/],use:[{loader:require.resolve(Me.default.join(__dirname,"add-hmr-accept-code.js")),options:{manifestPath:this.manifestPath,mode:e.options.mode,includeList:this.includeList||{},excludeList:this.excludeList||{}}}]}),e.options.mode==="production"&&new Jt().apply(e),new zt({manifestPath:this.manifestPath,browser:this.browser||"chrome",includeList:this.includeList||{},excludeList:this.excludeList||{}}).apply(e),e.options.module.rules.push({test:/\.(js|mjs|jsx|mjsx|ts|mts|tsx|mtsx)$/,include:[Me.default.dirname(this.manifestPath)],exclude:[/[\\/]node_modules[\\/]/],use:[{loader:require.resolve(Me.default.join(__dirname,"deprecated-shadow-root.js")),options:{manifestPath:this.manifestPath,includeList:this.includeList||{},excludeList:this.excludeList||{}}}]})}};var Re=a(require("path")),Ne=a(require("fs")),V=a(require("@rspack/core"));var ge=a(require("path")),Ae=a(require("fs"));function ts(t){let e=ge.default.join(ge.default.dirname(t),"_locales"),r=[];if(Ae.default.existsSync(e))for(let s of Ae.default.readdirSync(e)){let n=ge.default.join(e,s);if(n&&Ae.default.statSync(n).isDirectory())for(let o of Ae.default.readdirSync(n))r.push(ge.default.join(ge.default.dirname(t),"_locales",s,o))}return r}var Vt=class{manifestPath;includeList;excludeList;constructor(e){this.manifestPath=e.manifestPath,this.includeList=e.includeList,this.excludeList=e.excludeList}apply(e){e.hooks.thisCompilation.tap("locales:module",r=>{r.hooks.processAssets.tap({name:"locales:module",stage:V.Compilation.PROCESS_ASSETS_STAGE_ADDITIONS},()=>{if(!Ne.default.existsSync(this.manifestPath)){let n=require(this.manifestPath),i=P(n,"chrome").name||"Extension.js";r.errors.push(new V.default.WebpackError(Us(i,this.manifestPath)));return}if(r.errors.length>0)return;let s=ts(this.manifestPath);for(let n of Object.entries(s||[])){let[o,i]=n,c=i;if(c){if(Re.default.extname(c)!==".json")continue;if(!Ne.default.existsSync(c)){r.warnings.push(new V.default.WebpackError(st(o,c)));return}let l=Ne.default.readFileSync(c),p=new V.sources.RawSource(l),u=e.options.context||Re.default.dirname(this.manifestPath);if(!$(c,this.excludeList)){let m=Re.default.relative(u,c);r.emitAsset(m,p)}}}})}),e.hooks.thisCompilation.tap("locales:module",r=>{r.hooks.processAssets.tap({name:"locales:module",stage:V.Compilation.PROCESS_ASSETS_STAGE_ADDITIONS},()=>{if(r.errors?.length)return;let s=ts(this.manifestPath);for(let n of Object.entries(s||[])){let[,o]=n;if(o){let i=new Set(r.fileDependencies),c=s||[];for(let l of c)Ne.default.existsSync(l)&&Re.default.extname(l)===".json"&&(i.has(l)||(i.add(l),r.fileDependencies.add(l)))}}})})}};var Gt=a(require("fs")),ee=a(require("@rspack/core"));var Xt=class{manifestPath;includeList;excludeList;constructor(e){this.manifestPath=e.manifestPath,this.includeList=e.includeList,this.excludeList=e.excludeList}apply(e){e.hooks.thisCompilation.tap("json:module",r=>{r.hooks.processAssets.tap({name:"json:module",stage:ee.Compilation.PROCESS_ASSETS_STAGE_ADDITIONS},()=>{if(r.errors.length>0)return;let s=this.includeList||{};for(let n of Object.entries(s)){let[o,i]=n,c=Array.isArray(i)?i:[i];for(let l of c)if(l&&!$(l,this.excludeList)){if(!Gt.default.existsSync(l)){r.warnings.push(new ee.default.WebpackError(st(o,l)));return}let p=Gt.default.readFileSync(l),u=new ee.sources.RawSource(p);r.emitAsset(o+".json",u)}}})}),e.hooks.thisCompilation.tap("json:module",r=>{r.hooks.processAssets.tap({name:"json:module",stage:ee.Compilation.PROCESS_ASSETS_STAGE_ADDITIONS},()=>{if(r.errors?.length)return;let s=this.includeList||{};for(let n of Object.entries(s)){let[,o]=n,i=Array.isArray(o)?o:[o];for(let c of i)if(c){let l=new Set(r.fileDependencies);$(c,this.excludeList)||Gt.default.existsSync(c)&&(l.has(c)||(l.add(c),r.fileDependencies.add(c)))}}})})}};var rs=a(require("fs")),Li=a(require("path")),Kt=require("@rspack/core");var Zt=class{manifestPath;includeList;excludeList;constructor(e){this.manifestPath=e.manifestPath,this.includeList=e.includeList,this.excludeList=e.excludeList}apply(e){e.hooks.thisCompilation.tap("icons:emit-file",r=>{r.hooks.processAssets.tap({name:"icons:emit-file",stage:Kt.Compilation.PROCESS_ASSETS_STAGE_OPTIMIZE_TRANSFER},()=>{if(r.errors.length>0)return;let s=this.includeList||{};for(let n of Object.entries(s)){let[o,i]=n;if(i===void 0)continue;let c=Array.isArray(i)?typeof i[0]=="string"?i:i.map(Object.values).flat():[i];for(let l of c)if(l){if(!rs.default.existsSync(l))continue;if(!$(l,this.excludeList)){let p=rs.default.readFileSync(l),u=new Kt.sources.RawSource(p),m=Li.default.basename(l),b=`${o.endsWith("theme_icons")?o.replace("theme_icons",""):o}/${m}`;r.emitAsset(b,u)}}}})})}};var Oi=a(require("fs")),Ii=require("@rspack/core"),Yt=class{manifestPath;includeList;excludeList;constructor(e){this.manifestPath=e.manifestPath,this.includeList=e.includeList,this.excludeList=e.excludeList}apply(e){e.hooks.thisCompilation.tap("icons:add-to-file-dependencies",r=>{r.hooks.processAssets.tap({name:"icons:add-to-file-dependencies",stage:Ii.Compilation.PROCESS_ASSETS_STAGE_ADDITIONS},()=>{if(r.errors?.length)return;let s=this.includeList||{};for(let n of Object.entries(s)){let[,o]=n,i=Array.isArray(o)?typeof o[0]=="string"?o:o.map(Object.values).flat():[o];for(let c of i)if(c){let l=new Set(r.fileDependencies);Oi.default.existsSync(c)&&(l.has(c)||(l.add(c),r.fileDependencies.add(c)))}}})})}};var Qt=class{manifestPath;includeList;excludeList;constructor(e){this.manifestPath=e.manifestPath,this.includeList=e.includeList,this.excludeList=e.excludeList}apply(e){new Zt({manifestPath:this.manifestPath,includeList:this.includeList,excludeList:this.excludeList}).apply(e),new Yt({manifestPath:this.manifestPath,includeList:this.includeList,excludeList:this.excludeList}).apply(e)}};var tr=require("@rspack/core");function Mi(t){return t.map(e=>{try{let r=new URL(e.replace(/^\*:\/\//,"https://"));return e.endsWith(r.pathname)?`${e.substring(0,e.length-r.pathname.length)}/*`:r.pathname==="/"?`${e}/*`:e}catch{return e}})}var er=class{manifestPath;includeList;excludeList;constructor(e){this.manifestPath=e.manifestPath,this.includeList=e.includeList,this.excludeList=e.excludeList}generateManifestPatches(e,r){let s=W(e,this.manifestPath),n=s.web_accessible_resources||[],o=s.web_accessible_resources||[];for(let[l,p]of Object.entries(r)){let u=s.content_scripts?.find(m=>m.js?.some(g=>g.includes(l)));if(u){let m=u.matches||[],g=p.filter(b=>!b.endsWith(".map")&&!b.endsWith(".js"));if(g.length===0)continue;if(s.manifest_version===3){let b=n.find(_=>_.matches.some(S=>m.includes(S)));b?g.forEach(_=>{b.resources.includes(_)||b.resources.push(_)}):n.push({resources:g,matches:Mi(m)})}else g.forEach(b=>{o.includes(b)||o.push(b)})}}s.manifest_version===3?n.length>0&&(s.web_accessible_resources=n):o.length>0&&(s.web_accessible_resources=Array.from(new Set(o)));let i=JSON.stringify(s,null,2),c=new tr.sources.RawSource(i);e.getAsset("manifest.json")&&e.updateAsset("manifest.json",c)}apply(e){e.hooks.thisCompilation.tap("plugin-extension:feature-web-resources",r=>{r.hooks.processAssets.tap({name:"plugin-extension:feature-web-resources",stage:tr.Compilation.PROCESS_ASSETS_STAGE_ANALYSE},()=>{let s=[],n=Object.keys(this.includeList||{});for(let c of n.filter(Boolean))c.startsWith("content_scripts")&&(Array.isArray(c)?s.push(...c):typeof c=="string"&&s.push(c));let o=r.chunkGraph,i={};r.entrypoints.forEach((c,l)=>{if(s.includes(l)){let p=[];c.chunks.forEach(u=>{Array.from(o.getChunkModulesIterable(u)).forEach(g=>{o.getModuleChunks(g).forEach(b=>{b.auxiliaryFiles.forEach(_=>{p.includes(_)||p.push(_)})})})}),i[l]=p}}),this.generateManifestPatches(r,i)})})}};var I=a(require("fs")),M=a(require("path")),Ai=a(require("chokidar")),rr=class{options;constructor(e){this.options=e}ensureDirectoryExistence(e){let r=M.default.dirname(e);if(I.default.existsSync(r))return!0;I.default.mkdirSync(r,{recursive:!0})}copyFile(e,r){this.ensureDirectoryExistence(r),I.default.copyFileSync(e,r)}copyFolder(e,r){I.default.existsSync(r)||I.default.mkdirSync(r,{recursive:!0}),I.default.readdirSync(e).forEach(n=>{let o=M.default.join(e,n),i=M.default.join(r,n);I.default.statSync(o).isDirectory()?this.copyFolder(o,i):this.copyFile(o,i)})}apply(e){let r=M.default.dirname(this.options.manifestPath),s=M.default.join(r,"public"),n=e.options.output?.path||"";I.default.existsSync(s)&&(e.hooks.afterEmit.tap("special-folders:copy-public-folder",()=>{let o=M.default.join(n,"/");I.default.existsSync(o)||I.default.mkdirSync(o,{recursive:!0}),I.default.existsSync(s)&&this.copyFolder(s,o)}),e.options.mode!=="production"&&e.hooks.afterPlugins.tap("special-folders:copy-public-folder",()=>{let o=M.default.join(r,"public"),i=Ai.default.watch(o,{ignoreInitial:!0});i.on("add",c=>{let l=M.default.join(n,M.default.relative(r,c));this.copyFile(c,l)}),i.on("change",c=>{let l=M.default.join(n,M.default.relative(r,c));this.copyFile(c,l)}),i.on("unlink",c=>{let l=M.default.join(n,M.default.relative(r,c));I.default.existsSync(l)&&I.default.unlinkSync(l)}),e.hooks.watchClose.tap("special-folders:copy-public-folder",()=>{i.close().catch(console.error)})}))}};var U=a(require("path")),ss=a(require("chokidar"));var sr=class{manifestPath;constructor(e){this.manifestPath=e}throwCompilationError(e,r,s){let n=U.relative(process.cwd(),r),c=Ws(s?"Adding":"Removing",e,e==="pages"?"HTML pages":"script files",n);if(s){console.warn(c);return}console.error(c),process.exit(1)}apply(e){e.hooks.afterPlugins.tap("special-folders:warn-upon-folder-changes",()=>{let r=U.dirname(this.manifestPath),s=U.join(r,"pages"),n=U.join(r,"scripts"),o=ss.watch(s,{ignoreInitial:!0}),i=ss.watch(n,{ignoreInitial:!0}),c=e.options.resolve?.extensions;o.on("add",l=>{l.endsWith(".html")&&this.throwCompilationError("pages",l,!0)}),o.on("unlink",l=>{l.endsWith(".html")&&this.throwCompilationError("pages",l)}),i.on("add",l=>{c?.includes(U.extname(l))&&this.throwCompilationError("scripts",l,!0)}),i.on("unlink",l=>{c?.includes(U.extname(l))&&this.throwCompilationError("scripts",l)}),e.hooks.watchClose.tap("WarnUponFolderChanges",()=>{o.close().catch(console.error),i.close().catch(console.error)})})}};var nr=class{static name="plugin-special-folders";options;constructor(e){this.options=e}apply(e){let{manifestPath:r}=this.options;new rr({manifestPath:r}).apply(e),e.options.mode==="development"&&e.options.watchOptions&&new sr(r).apply(e)}};var or=class{static name="plugin-extension";manifestPath;browser;constructor(e){this.manifestPath=e.manifestPath,this.browser=e.browser||"chrome"}apply(e){let r=this.manifestPath,s=le({manifestPath:r,browser:this.browser}),n=Mo({manifestPath:r,browser:this.browser});new jt({browser:this.browser,manifestPath:r,includeList:{...s.html,...s.icons,...s.json,...s.scripts},excludeList:n.public}).apply(e),new qt({manifestPath:r,includeList:{...s.html,...n.pages},excludeList:{...n.public,...n.scripts}}).apply(e),new Ht({manifestPath:r,browser:this.browser,includeList:{...s.scripts,...n.scripts},excludeList:{...n.public,...n.pages}}).apply(e),new Vt({manifestPath:r}).apply(e),new Xt({manifestPath:r,includeList:s.json,excludeList:n.public}).apply(e),new Qt({manifestPath:r,includeList:s.icons,excludeList:n.public}).apply(e),new er({manifestPath:r,includeList:{...s.scripts,...n.scripts},excludeList:n.public}).apply(e),new nr({manifestPath:r}).apply(e)}};var Be=a(require("path"));var Ri=a(require("path")),Ni=a(require("ws"));function ir(t,e){t.clients.forEach(r=>{r.readyState===Ni.default.OPEN&&r.send(JSON.stringify(e))})}function Ti(t,e,r){if(!r||!e)return;let s=le({manifestPath:e}).locales,n=le({manifestPath:e}).scripts,o=le({manifestPath:e}).json;if(!t){process.env.EXTENSION_ENV==="development"&&console.error("WebSocket server is not running.");return}Ri.default.basename(r)==="manifest.json"&&ir(t,{changedFile:"manifest.json"}),s?.forEach(i=>{i.includes(r)&&ir(t,{changedFile:"_locales"})}),Object.entries(n).forEach(([i,c])=>{let l=Array.isArray(c)?c:[c];Object.values(l).flatMap(u=>u).includes(r)&&i==="background/service_worker"&&ir(t,{changedFile:"service_worker"})}),Object.entries(o).forEach(([i,c])=>{c?.includes(r)&&i==="declarative_net_request"&&ir(t,{changedFile:"declarative_net_request"})})}var os=a(require("path")),Wi=a(require("fs")),Ue=a(require("ws"));var Te=a(require("path")),Ll=a(require("http")),Bi=a(require("https")),ns=a(require("fs"));var Ui=t=>{if(!ns.default.existsSync(t))return;let e=Te.default.basename(t);return ns.default.readFileSync(Te.default.join(__dirname,"certs",e))};function qi(t){let e={key:Ui(Te.default.join(__dirname,"certs","localhost.key")),cert:Ui(Te.default.join(__dirname,"certs","localhost.cert"))},r=Bi.default.createServer(e,(s,n)=>{n.writeHead(200),n.end()});return r.on("error",s=>{throw console.error(Zs(t)),new Error(s.message)}),{server:r,port:t}}function Ol(t,e){switch(e){case"chrome":return new Ue.default.Server({host:"localhost",port:t});case"edge":return new Ue.default.Server({host:"localhost",port:t+1});case"firefox":return new Ue.default.Server({server:qi(t+2).server});default:return new Ue.default.Server({host:"localhost",port:8888})}}async function Ji(t,e){let r=t.options.context||"",s=require(os.default.join(r,"manifest.json")),o=Ol(8e3,e.browser);if(o.on("connection",i=>{i.send(JSON.stringify({status:"serverReady"})),i.on("error",c=>{console.log(Hs(c))}),i.on("message",c=>{let l=JSON.parse(c.toString());if(l.status==="clientReady"){let p=require(os.default.join(r,"manifest.json"));setTimeout(()=>{console.log(Mr(p,e.browser,l)),console.log("")},2500),sn(e.browser)&&setTimeout(()=>{console.log(zs(e.browser))},5e3)}})}),e.browser==="firefox"||e.browser==="gecko-based"){let i=nn(s);console.log(Mr(s,e.browser,i)),console.log(""),Wi.default.existsSync(tt)||(console.log(Xs()),console.log(""))}return o}var zi=a(require("path")),is=a(require("fs"));function Hi(t,e){let r=zi.default.resolve(__dirname,`./extensions/${t}-manager-extension/reload-service.js`);try{let s=is.default.readFileSync(r,"utf8"),n=s.replace(/__RELOAD_PORT__/g,e.toString());n!==s&&is.default.writeFileSync(r,n,"utf8")}catch(s){console.error(`Error processing file: ${s.message}`)}}process.on("SIGINT",()=>{process.exit()});process.on("SIGTERM",()=>{process.exit()});var qe=class{manifestPath;port;browser;stats;constructor(e){this.manifestPath=e.manifestPath,this.port=e.port||8e3,this.browser=e.browser||"chrome",this.stats=e.stats}async apply(e){if(!this.manifestPath)return;Hi(this.browser,this.port);let r=await Ji(e,{...this,mode:e.options.mode,browser:this.browser,stats:this.stats,port:this.port});e.hooks.watchRun.tapAsync("reload:create-web-socket-server",(s,n)=>{let i=(s.modifiedFiles||new Set).values().next().value;if(!i){n();return}let c=Be.default.relative(Be.default.dirname(this.manifestPath),i),l=Be.default.relative(process.cwd(),Be.default.dirname(i));process.env.EXTENSION_ENV==="development"&&console.info(`\u25BA\u25BA Updated file \`${c}\` (relative to ${l})`),this.manifestPath&&Ti(r,this.manifestPath,i),n()})}};var as=a(require("path"));function Vi(t,e,r){t.options.module.rules.push({test:/\.(js|mjs|jsx|mjsx|ts|mts|tsx|mtsx)$/,include:[as.default.dirname(r)],exclude:[/[\\/]node_modules[\\/]/],use:[{loader:as.default.resolve(__dirname,"./inject-chromium-client-loader"),options:{manifestPath:r,browser:e}}]})}var cs=a(require("path"));function Gi(t,e,r){t.options.module.rules.push({test:/\.(js|mjs|jsx|mjsx|ts|mts|tsx|mtsx)$/,include:[cs.default.dirname(r)],exclude:[/[\\/]node_modules[\\/]/],use:[{loader:cs.default.resolve(__dirname,"./inject-firefox-client-loader"),options:{manifestPath:r,browser:e}}]})}var cr=require("@rspack/core");var ls=a(require("content-security-policy-parser"));function Xi(t){let e="";for(let r in t)e+=`${r} ${t[r].join(" ")}; `;return e.trim()}function Zi(t){let e=t.content_security_policy;if(!e)return"script-src 'self' 'unsafe-eval' blob: filesystem:; object-src 'self' blob: filesystem:; ";let r=(0,ls.default)(e);if(!r.get("script-src"))r.set("script-src",["'self'","'unsafe-eval'","blob:","filesystem:"]);else{let n=r.get("script-src")||[];n.includes("'unsafe-eval'")||n.push("'unsafe-eval'"),n.includes("blob:")||n.push("blob:"),n.includes("filesystem:")||n.push("filesystem:"),r.set("script-src",n)}r.get("object-src")||r.set("object-src",["'self'","blob:","filesystem:"]);let s=Object.fromEntries(r.entries());return Xi(s)}function Ki(t){let e=t.content_security_policy;if(!e)return{extension_pages:"script-src 'self'; object-src 'self';"};let r=(0,ls.default)(e.extension_pages||""),s={};for(let i in s)r.get(i)||r.set(i,s[i]);let n=Object.fromEntries(r.entries());return{extension_pages:Xi(n)}}function Yi(t){let e=["/*.json","/*.js","/*.css"],r=t.web_accessible_resources;if(!r||r.length===0)return e;let s=new Set(r);for(let n of e)s.has(n)||s.add(n);return Array.from(s)}function Qi(t){let e=["/*.json","/*.js","/*.css"];return[...t.web_accessible_resources||[],{resources:e,matches:["<all_urls>"]}]}function ps(t,e){return t.background?{background:{...t.background}}:e==="firefox"||e==="gecko-based"?{background:{...t.background||{},scripts:["background/script.js"]}}:t.manifest_version===2?{background:{...t.background||{},scripts:["background/script.js"]}}:{background:{...t.background||{},service_worker:"background/service_worker.js"}}}function fs(t){return t.externally_connectable&&!t.externally_connectable.ids?{externally_connectable:{...t.externally_connectable,ids:[...new Set(t.externally_connectable.ids||[]),"*"]}}:t.externally_connectable&&!t.externally_connectable.ids?{externally_connectable:{...t.externally_connectable,ids:["*"]}}:{}}var ar=class{manifestPath;browser;constructor(e){this.manifestPath=e.manifestPath,this.browser=e.browser||"chrome"}generateManifestPatches(e){let r=W(e,this.manifestPath),s={...r,content_security_policy:r.manifest_version===3?Ki(r):Zi(r),...r.manifest_version===3?r.permissions?{permissions:[...new Set(["scripting",...r.permissions])]}:{permissions:["scripting"]}:{},...ps(r,this.browser),...fs(r),web_accessible_resources:r.manifest_version===3?Qi(r):Yi(r)},n=JSON.stringify(s,null,2),o=new cr.sources.RawSource(n);e.getAsset("manifest.json")&&e.updateAsset("manifest.json",o)}apply(e){e.hooks.thisCompilation.tap("run-chromium:apply-manifest-dev-defaults",r=>{r.hooks.processAssets.tap({name:"run-chromium:apply-manifest-dev-defaults",stage:cr.Compilation.PROCESS_ASSETS_STAGE_SUMMARIZE},s=>{if(!this.manifestPath){let n="No manifest.json found in your extension bundle. Unable to patch manifest.json.";r&&e.rspack.WebpackError&&r.errors.push(new e.rspack.WebpackError(`run-chromium: ${n}`));return}this.generateManifestPatches(r)})})}};var ms=a(require("fs")),he=a(require("path")),ta=a(require("webpack-target-webextension"));var us=a(require("fs"));function ea(t){try{let e=us.default.readFileSync(t,"utf8");e=e.replace(/module\.exports\.RuntimeGlobal = ['"]__webpack_require__\.webExtRt['"]/,"module.exports.RuntimeGlobal = 'chrome'"),e=e.replace(/module\.exports\.RuntimeGlobalIsBrowser = ['"]__webpack_require__\.webExtRtModern['"]/,"module.exports.RuntimeGlobalIsBrowser = 'browser'"),us.default.writeFileSync(t,e)}catch(e){throw new Error(`Failed to rewrite runtime globals: ${e.message}`)}}var lr=class{manifestPath;browser;constructor(e){this.manifestPath=e.manifestPath,this.browser=e.browser||"chrome"}handleBackground(e,r,s){let n=he.default.resolve(__dirname,r==="firefox"||r==="gecko-based"?"minimum-firefox-file.mjs":"minimum-chromium-file.mjs"),o=he.default.dirname(this.manifestPath),i=P(s,r);if(r==="firefox"||r==="gecko-based"){i=s.background;let c=i?.scripts;if(c&&c.length>0){let l=he.default.join(o,c[0]);this.ensureFileExists(l)}else this.addDefaultEntry(e,"background/script",n)}else if(i=s.background,s.manifest_version===3){let c=i?.service_worker;if(c){let l=he.default.join(o,c);this.ensureFileExists(l)}else this.addDefaultEntry(e,"background/service_worker",n)}else if(s.manifest_version===2){let c=i?.scripts;if(c&&c.length>0){let l=he.default.join(o,c[0]);this.ensureFileExists(l)}else this.addDefaultEntry(e,"background/script",n)}}ensureFileExists(e){if(!ms.default.existsSync(e)&&this.manifestPath){let r=require(this.manifestPath),n=P(r,"chrome").name||"Extension.js",o=Vs(n,e);throw console.error(o),new Error(o)}}addDefaultEntry(e,r,s){e.options.entry={...e.options.entry,[r]:{import:[s]}}}getEntryName(e){if(e.background){if(this.browser==="firefox"||this.browser==="gecko-based")return{pageEntry:"background/script",tryCatchWrapper:!0,eagerChunkLoading:!1};if(e.manifest_version===3)return{serviceWorkerEntry:"background/service_worker",tryCatchWrapper:!0,eagerChunkLoading:!1};if(e.manifest_version===2)return{pageEntry:"background/script",tryCatchWrapper:!0,eagerChunkLoading:!1}}return{pageEntry:"background",tryCatchWrapper:!0,eagerChunkLoading:!1}}convertToWebpackCompiler(e){return{...e,options:{...e.options,mode:"development"}}}apply(e){if(!this.manifestPath||!ms.default.lstatSync(this.manifestPath).isFile())return;let r=require(this.manifestPath),s=P(r,this.browser);this.handleBackground(e,this.browser,s),new ta.default({background:this.getEntryName(s),weakRuntimeCheck:!0}).apply(this.convertToWebpackCompiler(e));try{let n=require.resolve("webpack-target-webextension/lib/webpack5/RuntimeModules/BrowserRuntime.js");ea(n)}catch{console.error(Ys())}}};var ds=class{manifestPath;browser;constructor(e){this.manifestPath=e.manifestPath,this.browser=e.browser||"chrome"}apply(e){(Z.includes(this.browser)||this.browser==="chromium-based")&&Vi(e,this.browser,this.manifestPath),(this.browser==="firefox"||this.browser==="gecko-based")&&Gi(e,this.browser,this.manifestPath),new ar({manifestPath:this.manifestPath,browser:this.browser}).apply(e),new lr({manifestPath:this.manifestPath,browser:this.browser}).apply(e)}},ra=ds;var pr=class{static name="plugin-reload";manifestPath;browser;port;stats;autoReload;constructor(e){this.manifestPath=e.manifestPath,this.browser=e.browser||"chrome",this.port=e.port,this.stats=e.stats,this.autoReload=e.autoReload}apply(e){e.options.mode==="development"&&new qe({manifestPath:this.manifestPath,browser:this.browser,port:this.port,stats:this.stats}).apply(e),e.options.mode==="development"&&new ra({manifestPath:this.manifestPath,browser:this.browser,autoReload:this.autoReload,stats:this.stats}).apply(e)}};var sa=a(require("@rspack/core")),fr=class{manifestPath;browser;constructor(e){this.manifestPath=e.manifestPath,this.browser=e.browser}apply(e){new sa.default.ProvidePlugin({browser:require.resolve("webextension-polyfill")}).apply(e)}};var mr=require("@rspack/core");var ur=class{browser;manifestPath;constructor(e){this.manifestPath=e.manifestPath,this.browser=e.browser||"chrome"}patchManifest(e){let r=P(e,this.browser);return JSON.stringify(r,null,2)}apply(e){e.hooks.compilation.tap("compatibility:browser-specific-fields",r=>{r.hooks.processAssets.tap({name:"compatibility:browser-specific-fields",stage:mr.Compilation.PROCESS_ASSETS_STAGE_OPTIMIZE},()=>{let s=W(r,this.manifestPath),n=this.patchManifest(s),o=new mr.sources.RawSource(n);r.updateAsset("manifest.json",o)})})}};var dr=class{static name="plugin-compatibility";manifestPath;browser;polyfill;constructor(e){this.manifestPath=e.manifestPath,this.browser=e.browser||"chrome",this.polyfill=e.polyfill||!1}async apply(e){this.polyfill&&this.browser!=="firefox"&&new fr({manifestPath:this.manifestPath,browser:this.browser||"chrome"}).apply(e),new ur({manifestPath:this.manifestPath,browser:this.browser||"chrome"}).apply(e)}};var _c=a(require("os")),vs=a(require("path"));var Da=a(require("fs")),La=a(require("path")),Oa=require("child_process");var be=a(require("path")),Je=a(require("fs"));var na={alternate_error_pages:{enabled:!1},autofill:{enabled:!1},browser:{check_default_browser:!1,default_browser_setting_enabled:!1},default_apps:"install",distribution:{alternate_shortcut_text:!1,auto_launch_chrome:!1,import_bookmarks:!1,import_history:!1,import_home_page:!1,import_search_engine:!1,suppress_first_run_bubble:!0,do_not_register_for_update_launch:!0,make_chrome_default:!1,make_chrome_default_for_user:!1,require_eula:!1,suppress_first_run_default_browser_prompt:!0},dns_prefetching:{enabled:!1},download:{default_directory:"/tmp/",directory_upgrade:!0,open_pdf_in_adobe_reader:!1,prompt_for_download:!0},enable_do_not_track:!0,extensions:{theme:{use_system:!1},toolbarsize:-1,ui:{developer_mode:!0}},plugins:{plugins_list:[{enabled:!1,name:"Java(TM)"}],show_details:!0},profile:{password_manager_enabled:!1},safebrowsing:{enabled:!1,safebrowsingextended_reporting_enabled:!1},savefile:{default_directory:"/tmp",type:0},search:{suggest_enabled:!1},session:{restore_on_startup:1},sync:{suppress_start:!0},sync_promo:{show_on_first_run_allowed:!1,show_ntp_bubble:!1},translate:{enabled:!1}},oa={...na},ia={...na};var y=require("@colors/colors/safe");function w(t,e){let r=e==="warn"?(0,y.brightYellow)("\u25BA\u25BA\u25BA"):e==="info"?(0,y.cyan)("\u25BA\u25BA\u25BA"):e==="error"?`${(0,y.bold)((0,y.red)("ERROR"))} in ${ye(t)} ${(0,y.red)("\u2716\uFE0E\u2716\uFE0E\u2716\uFE0E")}`:(0,y.brightGreen)("\u25BA\u25BA\u25BA");return`${(0,y.gray)("")}${r}`}function ye(t){return t.charAt(0).toUpperCase()+t.slice(1)}function gr(t){let e=ye(t);return`${w(t,"info")} Creating new ${e} user profile...`}function aa(t){return`${w(t,"success")} Instance already running.`}function ca(t){return`${w(t,"info")} Instance exited.`}function hr(t,e){let r=t==="firefox"||t==="gecko-based"?"Add-on":"Extension";return`${w(t,"success")} ${ye(t)} ${r} running in ${(0,y.brightBlue)(e||"unknown")} mode.`}function We(t,e){let r=e=="null"?`Browser is not installed
|
|
75
77
|
|
|
76
78
|
`:`Can't find the browser path
|
|
77
79
|
|
|
78
|
-
`;return`${
|
|
79
|
-
${(0,y.red)("NOT FOUND")} ${(0,y.underline)(e||ye(t)+"BROWSER")}`}function
|
|
80
|
+
`;return`${w(t,"error")} ${r}Either install the missing browser or choose a different one via ${(0,y.brightYellow)("--browser")} flag.
|
|
81
|
+
${(0,y.red)("NOT FOUND")} ${(0,y.underline)(e||ye(t)+"BROWSER")}`}function la(t){return`${w(t,"error")} No Service Worker Support
|
|
80
82
|
|
|
81
83
|
Firefox does not support the ${(0,y.brightYellow)("background.service_worker")} field yet.
|
|
82
84
|
Update your manifest.json file to use ${(0,y.brightYellow)("background.scripts")} instead.
|
|
83
85
|
|
|
84
|
-
Read more: ${(0,y.underline)("https://bugzilla.mozilla.org/show_bug.cgi?id=1573659")}.`}function
|
|
85
|
-
${(0,y.red)(e)}`}function
|
|
86
|
-
${(0,y.red)(e)}`}function
|
|
86
|
+
Read more: ${(0,y.underline)("https://bugzilla.mozilla.org/show_bug.cgi?id=1573659")}.`}function pa(t,e){return`${w(t,"error")} Error launching browser:
|
|
87
|
+
${(0,y.red)(e)}`}function fa(t,e){return`${w(t,"error")} ${(0,y.red)(e.stack)}`}function ua(t){return`${w(t,"error")} Unable to connect to ${ye(t)}. Too many retries.`}function ma(t,e){return`${w(t,"error")} Error while installing temporary addon:
|
|
88
|
+
${(0,y.red)(e)}`}function da(t,e){return`${w(t,"error")} Path is not directory
|
|
87
89
|
|
|
88
90
|
Please provide a valid directory path and try again.
|
|
89
|
-
${(0,y.red)("NOT DIRECTORY")} ${(0,y.underline)(e)}`}function
|
|
90
|
-
${(0,y.brightYellow)(JSON.stringify(e))}`}function
|
|
91
|
-
${(0,y.red)(e)}`}function
|
|
91
|
+
${(0,y.red)("NOT DIRECTORY")} ${(0,y.underline)(e)}`}function ga(t){return`${w(t,"error")} Error parsing message length.`}function ha(t){return`${w(t,"error")} ${(0,y.magenta)("MessagingClient")} connection closed.`}function ya(t,e){return`${w(t,"error")} Unexpected ${(0,y.magenta)("MessagingClient")} request without target actor: ${(0,y.brightYellow)(e)}`}function ba(t){return`${w(t,"error")} ${(0,y.magenta)("MessagingClient")} connection closed.`}function xa(t,e){return`${w(t,"error")} Target actor ${(0,y.brightYellow)(e)} already has an active request.`}function wa(t,e){return`${w(t,"error")} Error parsing packet: ${(0,y.red)(e)}`}function va(t,e){return`${w(t,"error")} Message received without a sender actor:
|
|
92
|
+
${(0,y.brightYellow)(JSON.stringify(e))}`}function Sa(t,e){return`${w(t,"error")} Received unexpected message:
|
|
93
|
+
${(0,y.red)(e)}`}function _a(t,e){return`${w(t,"info")} Using own ${(0,y.magenta)("starting URL")} ${(0,y.underline)(e)}. `}function gs(t,e){return`${w(t,"info")} Using own ${(0,y.magenta)(`${ye(t)} browser binary`)} ${(0,y.underline)(e)}. `}function Pa(t,e){return`${w(t,"info")} Using own ${(0,y.magenta)("browser profile")} ${(0,y.underline)(e)}. `}function Ea(t){return`${w(t,"info")} Using own ${(0,y.magenta)("browser preferences")}. `}function ka(t){return`${w(t,"info")} Using own ${(0,y.magenta)("browser flags")}. `}function Fa(t,e){return`${w(t,"info")} Browser launcher is ${(0,y.brightYellow)(e?"enabled":"disabled")}. `}var $a=a(require("progress"));function yr(t,e){let s=new $a.default(`${t} [:bar] :percent :etas`,{complete:"=",incomplete:" ",width:50,total:131072}),n=setInterval(()=>{let o=Math.random()*10*1024;s.tick(o),s.complete&&(clearInterval(n),e())},50)}function Ca(t,e,r={}){if(e&&Je.default.existsSync(e))return e;let s=be.default.resolve(__dirname,`run-${t}-profile`);if(!e&&Je.default.existsSync(s))return be.default.resolve(__dirname,`run-${t}-profile`);let o=JSON.stringify({...t==="chrome"?oa:ia,...r});return yr(gr(t),()=>{let i=e||s,c=be.default.join(i,"Default");Je.default.mkdirSync(c,{recursive:!0});let l=be.default.join(c,"Preferences");Je.default.writeFileSync(l,o,"utf8")}),be.default.resolve(__dirname,`run-${t}-profile`)}function ja(t){let e=Array.isArray(t.extension)?t.extension:[t.extension],r=Ca(t.browser,t.profile,t.preferences);return[`--load-extension=${e.join()}`,`--user-data-dir=${r}`,"--no-first-run","--disable-client-side-phishing-detection","--disable-component-extensions-with-background-pages","--disable-default-apps","--disable-features=InterestFeedContentSuggestions","--disable-features=Translate","--hide-scrollbars","--mute-audio","--no-default-browser-check","--ash-no-nudges","--disable-search-engine-choice-screen","--disable-features=MediaRoute","--use-mock-keychain","--disable-background-networking","--disable-breakpad","--disable-component-update","--disable-domain-reliability","--disable-features=AutofillServerCommunicatio","--disable-features=CertificateTransparencyComponentUpdate","--disable-sync","--disable-features=OptimizationHints","--disable-features=DialMediaRouteProvider","--no-pings","--enable-features=SidePanelUpdates",...t.browserFlags||[]]}process.on("SIGINT",()=>{process.exit()});process.on("SIGTERM",()=>{process.exit()});var ze=class{extension;browser;browserFlags;profile;preferences;startingUrl;autoReload;stats;chromiumBinary;constructor(e){this.extension=e.extension,this.browser=e.browser,this.browserFlags=e.browserFlags||[],this.profile=e.profile,this.preferences=e.preferences,this.startingUrl=e.startingUrl,this.chromiumBinary=e.chromiumBinary}launchChromium(e){let r;switch(e){case"chrome":r=require(`${e}-location`);break;case"edge":r=require(`${e}-location`)();break;case"chromium-based":r=La.default.normalize(this.chromiumBinary);break;default:r=require(`${e}`);break}Da.default.existsSync(r)||(console.error(We(e,r)),process.exit());let s=ja(this),n=this.startingUrl?[this.startingUrl,...s]:[...s],o=process.env.EXTENSION_ENV==="development"?"inherit":"ignore",i=(0,Oa.spawn)(`${r}`,n,{stdio:o});process.env.EXTENSION_ENV==="development"&&(i.stdout?.pipe(process.stdout),i.stderr?.pipe(process.stderr))}apply(e){let r=!1;e.hooks.done.tapAsync("run-browsers:module",(s,n)=>{if(s.compilation.errors.length>0){n();return}if(r){n();return}this.launchChromium(this.browser),setTimeout(()=>{console.log(hr(this.browser,s.compilation.options.mode))},2e3),r=!0,n()})}};var vc=a(require("fs")),Sc=a(require("path")),ws=require("child_process");var He=a(require("fs")),br=a(require("path")),Ia=a(require("os")),Ma=a(require("which")),Aa=process.platform==="darwin",Il=process.platform==="win32",Ml=!Aa&&!Il;function Al(){if(Ml)try{return Ma.default.sync("firefox")}catch{return null}else if(Aa){let t="/Applications/Firefox.app/Contents/MacOS/firefox",e=br.default.join(Ia.default.homedir(),t.slice(1));return He.default.existsSync(t)?t:He.default.existsSync(e)?e:null}else{let t=br.default.join("Mozilla Firefox","firefox.exe"),e=[process.env.LOCALAPPDATA,process.env.PROGRAMFILES,process.env["PROGRAMFILES(X86)"]];for(let s of e)if(s){let n=br.default.join(s,t);if(He.default.existsSync(n))return n}let r=["C:\\Program Files\\Mozilla Firefox\\firefox.exe","C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe"];for(let s of r)if(He.default.existsSync(s))return s;return null}}var Ra=Al();var bs=a(require("path")),wr=a(require("fs")),xs=a(require("firefox-profile"));var Rl={"app.update.enabled":!1,"browser.dom.window.dump.enabled":!0,"browser.formfill.enable":!1,"browser.link.open_newwindow":3,"browser.sessionstore.enabled":!1,"browser.shell.checkDefaultBrowser":!1,"browser.sync.enabled":!1,"browser.startup.page":0,"browser.startup.homepage_welcome_url":"about:blank","browser.startup.homepage_welcome_url_additional":"about:blank","browser.urlbar.suggest.bookmark":!1,"browser.urlbar.suggest.clipboard":!1,"browser.urlbar.suggest.history":!1,"browser.urlbar.suggest.openpage":!1,"browser.urlbar.suggest.remotetab":!1,"browser.urlbar.suggest.searches":!1,"browser.urlbar.suggest.topsites":!1,"browser.urlbar.suggest.engines":!1,"browser.urlbar.suggest.calculator":!1,"browser.urlbar.suggest.recentsearches":!1,"datareporting.policy.dataSubmissionEnabled":!1,"datareporting.policy.firstRunURL":"","devtools.browserconsole.contentMessages":!0,"devtools.chrome.enabled":!0,"devtools.debugger.prompt-connection":!1,"devtools.debugger.remote-enabled":!0,"devtools.errorconsole.enabled":!0,"extensions.installDistroAddons":!1,"extensions.autoDisableScopes":10,"extensions.chrome.enabled":!0,"extensions.logging.enabled":!1,"extensions.checkCompatibility.nightly":!1,"extensions.update.enabled":!1,"extensions.update.notifyUser":!1,"extensions.enabledScopes":5,"extensions.getAddons.cache.enabled":!1,"network.prefetch.next":!1,"network.speculative.preconnect.enabled":!1,"toolkit.telemetry.enabled":!1,"toolkit.telemetry.archive.enabled":!1,"toolkit.telemetry.newProfilePing.enabled":!1,"toolkit.recovery.enabled":!1,"urlclassifier.updateinterval":172800,"security.enterprise_roots.enabled":!0,"xpinstall.signatures.required":!1};function hs(t){return{...Rl,...t}}var Ve=a(require("fs")),Ge=a(require("path"));var xr=a(require("path")),Na=a(require("fs")),d=require("@colors/colors/safe");function k(t){return`${t==="warn"?(0,d.brightYellow)("\u25BA\u25BA\u25BA"):t==="info"?(0,d.cyan)("\u25BA\u25BA\u25BA"):t==="error"?`${(0,d.bold)((0,d.red)("ERROR"))} in Extension.js ${(0,d.red)("\u2716\uFE0E\u2716\uFE0E\u2716\uFE0E")}`:(0,d.brightGreen)("\u25BA\u25BA\u25BA")}`}function G(t){return`${k("error")} Manifest file not found.
|
|
92
94
|
|
|
93
95
|
Ensure the path to your extension exists and try again.
|
|
94
|
-
${(0,d.red)("NOT FOUND")} ${(0,d.underline)(t)}`}function
|
|
96
|
+
${(0,d.red)("NOT FOUND")} ${(0,d.underline)(t)}`}function Ta(t){let e=t==="firefox"||t==="gecko-based"?"Add-on":"Extension";return`${k("info")} Building ${xe(t)} ${e} package...`}function Ua(t,e){let r=xr.default.join(t,"dist",e.browser||"chrome"),s=xr.default.join(r,"manifest.json"),n=require(s),{name:o,version:i,hostPermissions:c,permissions:l}=n,p=c&&c.length,u=l&&l.length,m=Or().version;return`
|
|
95
97
|
\u{1F9E9} ${(0,d.brightGreen)("Extension.js")} ${(0,d.gray)(`${m}`)}
|
|
96
98
|
Extension Name ${(0,d.gray)(o)}
|
|
97
99
|
Extension Version ${(0,d.gray)(i)}
|
|
98
100
|
Host Permissions ${(0,d.gray)(p?c.join(", "):"Browser defaults")}
|
|
99
101
|
Permissions ${(0,d.gray)(u?l.join(", "):"Browser defaults")}
|
|
100
|
-
`}function
|
|
102
|
+
`}function Ba(t,e,r){let s=e?.toJson(),n=xr.default.join(t,"manifest.json"),o=JSON.parse(Na.default.readFileSync(n,"utf8")),i=s?.assets,c=`${k("info")} Building ${(0,d.cyan)(o.name)} extension using ${xe(r)} defaults...
|
|
101
103
|
|
|
102
104
|
`,l=`
|
|
103
|
-
Build completed in ${((s?.time||0)/1e3).toFixed(2)} seconds.`,p=`Build Target: ${(0,d.gray)(
|
|
105
|
+
Build completed in ${((s?.time||0)/1e3).toFixed(2)} seconds.`,p=`Build Target: ${(0,d.gray)(xe(r))}
|
|
104
106
|
`,u=`Build Status: ${e?.hasErrors()?(0,d.red)("Failed"):(0,d.brightGreen)("Success")}
|
|
105
107
|
`,m=`
|
|
106
108
|
Version: ${(0,d.gray)(o.version)}
|
|
107
|
-
`,g=`Size: ${(0,d.gray)(
|
|
108
|
-
`,b="";return b+=c,b+=
|
|
109
|
-
${(0,d.gray)("URL")} ${(0,d.underline)(`https://github.com/${t}/${e}`)}`}function
|
|
109
|
+
`,g=`Size: ${(0,d.gray)(Nl(i))}
|
|
110
|
+
`,b="";return b+=c,b+=Tl(i),b+=m,b+=g,b+=p,b+=u,b+=l,b}function qa(){return`${k("success")} No errors or warnings found. Your extension is ${(0,d.brightGreen)("ready for deployment")}.`}function Wa(t,e){return`${k("info")} Fetching data...
|
|
111
|
+
${(0,d.gray)("URL")} ${(0,d.underline)(`https://github.com/${t}/${e}`)}`}function Ja(t){return`${k("info")} Downloading ${(0,d.cyan)(t)}...`}function za(t){return`
|
|
110
112
|
${k("info")} Creating a new browser extension...
|
|
111
|
-
${(0,d.gray)("PATH")} ${(0,d.underline)(`${t}`)}`}function
|
|
112
|
-
${(0,d.gray)("PATH")} ${(0,d.underline)(t)}`}function
|
|
113
|
-
${(0,d.gray)("PATH")} ${(0,d.underline)(t)}.`}function
|
|
114
|
-
${(0,d.gray)("PATH")} ${(0,d.underline)(t)}`}function
|
|
113
|
+
${(0,d.gray)("PATH")} ${(0,d.underline)(`${t}`)}`}function Ha(t){return`${k("info")} No ${(0,d.brightYellow)(".gitignore")} found, zipping all the content inside path:
|
|
114
|
+
${(0,d.gray)("PATH")} ${(0,d.underline)(t)}`}function Va(t){return`${k("info")} Packaging source files. Files in ${(0,d.brightYellow)(".gitignore")} will be excluded...
|
|
115
|
+
${(0,d.gray)("PATH")} ${(0,d.underline)(t)}.`}function Ga(t){return`${k("info")} Packaging extension distribution files...
|
|
116
|
+
${(0,d.gray)("PATH")} ${(0,d.underline)(t)}`}function Xa(t,e,r,s){return`\u{1F4E6} Package name: ${(0,d.brightYellow)(`${e}`)}, Target Browser: ${`${xe(t)}`}
|
|
115
117
|
${(0,d.gray)("\u2514\u2500")} ${(0,d.underline)(`${r}`)} (source)
|
|
116
|
-
${(0,d.gray)("\u2514\u2500")} ${(0,d.underline)(`${s}`)} (distribution)`}function
|
|
117
|
-
${(0,d.gray)("\u2514\u2500")} ${(0,d.underline)(`${s}`)} ${(0,d.gray)("(distribution)")}`}function
|
|
118
|
-
${(0,d.gray)("\u2514\u2500")} ${(0,d.underline)(`${s}`)} (source)`}function
|
|
119
|
-
${(0,d.red)(t)}`}function
|
|
120
|
-
${(0,d.red)(t)}`}function
|
|
121
|
-
${(0,d.gray)("URL")} ${(0,d.underline)(t)}`}function
|
|
122
|
-
${(0,d.gray)("PATH")} ${(0,d.underline)(t)}`}function
|
|
123
|
-
`,typeof t[s]=="object"&&!t[s].size&&(r+=
|
|
124
|
-
${oc(e)}`}function ic(t){return`${k("info")} Using ${(0,d.magenta)(t)}. ${(0,d.brightYellow)("This is very experimental")}.`}function ac(){return`${k("info")} Installing project dependencies...`}function cc(t,e,r){return`${k("error")} Command ${t} ${e.join(" ")} failed with exit code ${r}`}function lc(t){return`${k("error")} Can't install project dependencies. ${(0,d.red)(t.message||t.toString())}`}async function xe(t){let e=Ge.default.join(t,"extension.config.js");if(Ve.default.existsSync(e)&&await ys(t)){let r=require(e);if(r&&typeof r.config=="function")return r.config}return r=>r}async function fc(t,e){let r=Ge.default.join(t,"extension.config.js");if(Ve.default.existsSync(r)&&await ys(t)){let s=require(r);if(s)return s[e]}return{}}async function ve(t,e="chrome"){let r=Ge.default.join(t,"extension.config.js");if(Ve.default.existsSync(r)&&await ys(t)){let s=require(r);if(s&&s.browser&&s.browser[e])return s.browser[e]||{browser:"chrome"}}return{browser:"chrome"}}var pc=!1;async function ys(t){let e=Ge.default.join(t,"extension.config.js");return Ve.default.existsSync(e)?(pc||(console.log(ic("extension.config.js")),pc=!0),!0):!1}function uc(t,e){let r={...ve(bs.default.resolve(__dirname,"run-firefox"),"firefox"),...hs(e)};Object.keys(r).forEach(o=>{t.setPreference(o,r[o])});let n=Object.keys(e);return n.length>0&&n.forEach(o=>{t.setPreference(o,e[o])}),t.updatePreferences(),t}function Tl(t,e){let r=new ws.default({destinationDirectory:t});return uc(r,e)}function Ul(t,e,r){let s;if(xr.default.statSync(e).isDirectory())s=e;else throw new Error(ma(t,e));let o=new ws.default({destinationDirectory:s});return uc(o,r)}function mc(t,e,r={}){let s,n=e||bs.default.resolve(__dirname,`run-${t}-profile`),c={...hs(r||{}),...r};return!e&&xr.default.existsSync(n)?s=Ul(t,n,c):(yr(gr(t),()=>{}),xr.default.mkdirSync(n,{recursive:!0}),s=Tl(n,c)),s}async function dc(t,e){let{browser:r,startingUrl:s,preferences:n,profile:o,browserFlags:i=[]}=e,c=mc(r,o,n),l=[];s&&l.push(`--url=${s}`),i&&l.push(...i);let p=t.options.devServer?.port?t.options.devServer?.port+100:9222;return[`--binary-args="${l.join(" ")}"`,`--profile="${c.path()}"`,`--listen=${p}`,"--verbose"].join(" ")}var wc=a(require("path"));var gc=a(require("net")),hc=a(require("events"));function Bl(t,e){let r=e.toString(),s=r.indexOf(":");if(s<1)return{remainingData:e};let n=parseInt(r.substring(0,s),10);if(isNaN(n))return{remainingData:e,error:new Error(da(t)),fatal:!0};if(e.length-(s+1)<n)return{remainingData:e};let o=e.slice(s+1,s+1+n),i=e.slice(s+1+n);try{let c=JSON.parse(o.toString());return{remainingData:i,parsedMessage:c}}catch(c){return{remainingData:i,error:c,fatal:!1}}}var vr=class extends hc.default{incomingData=Buffer.alloc(0);pendingRequests=[];activeRequests=new Map;connection;async connect(e){await new Promise((r,s)=>{try{let n={port:e,host:"127.0.0.1"},o=gc.default.createConnection(n,()=>{r()});this.connection=o,o.on("data",this.onData.bind(this)),o.on("error",s),o.on("end",this.onEnd.bind(this)),o.on("timeout",this.onTimeout.bind(this)),this.expectReply("root",{resolve:r,reject:s})}catch(n){s(n)}})}disconnect(){this.connection&&(this.connection.removeAllListeners(),this.connection.end(),this.rejectAllRequests(new Error(ga("firefox"))))}rejectAllRequests(e){this.activeRequests.forEach(r=>{r.reject(e)}),this.activeRequests.clear(),this.pendingRequests.forEach(({deferred:r})=>{r.reject(e)}),this.pendingRequests=[]}async request(e){let r=typeof e=="string"?{to:"root",type:e}:e;if(!r.to)throw new Error(ha("firefox",r.type));return await new Promise((s,n)=>{let o={resolve:s,reject:n};this.pendingRequests.push({request:r,deferred:o}),this.flushPendingRequests()})}flushPendingRequests(){this.pendingRequests=this.pendingRequests.filter(({request:e,deferred:r})=>{if(this.activeRequests.has(e.to))return!0;if(!this.connection)throw new Error(ya("firefox"));try{let s=`${Buffer.from(JSON.stringify(e)).length}:${JSON.stringify(e)}`;this.connection.write(s),this.expectReply(e.to,r)}catch(s){r.reject(s)}return!1})}expectReply(e,r){if(this.activeRequests.has(e))throw new Error(ba("firefox",e));this.activeRequests.set(e,r)}onData(e){for(this.incomingData=Buffer.concat([this.incomingData,e]);this.readMessage(););}readMessage(){let{remainingData:e,parsedMessage:r,error:s,fatal:n}=Bl("firefox",this.incomingData);return this.incomingData=e,s?(this.emit("error",new Error(wa("firefox",s))),n&&this.disconnect(),!n):r?(this.handleMessage(r),!0):!1}handleMessage(e){if(!e.from){this.emit("error",new Error(xa("firefox",e)));return}let r=this.activeRequests.get(e.from);r?(this.activeRequests.delete(e.from),e.error?r.reject(e):r.resolve(e),this.flushPendingRequests()):this.emit("error",new Error(va("firefox",JSON.stringify(e))))}onError(e){this.emit("error",e)}onEnd(){this.emit("end")}onTimeout(){this.emit("timeout")}};function yc(t){return t instanceof Error?String(t):`${t.error}: ${t.message}`}function bc(t,e){return Array.isArray(t)&&t.includes(e.code)?!0:e.code===t}var ql=150,Wl=1e3,Sr=class{options;constructor(e){this.options=e}async connectClient(e){let r;for(let s of Array.from({length:ql}))try{let n=new vr;return await n.connect(e),n}catch(n){if(bc("ECONNREFUSED",n))await new Promise(o=>setTimeout(o,Wl)),r=n;else throw console.error(pa(this.options.browser,n.stack)),n}throw console.error(fa(this.options.browser)),r}async installAddons(e){let{devtools:r}=this.options,s=Array.isArray(this.options.extension)?this.options.extension:[this.options.extension],n=e.options.devServer?.port,o=n?n+100:9222,i=await this.connectClient(o);for(let[c,l]of s.entries()){let p=wc.default.join(l.replace(/"/g,"")),u=c===0&&r;try{let m=await i.request({to:"root",type:"getRoot"});await i.request({to:m.addonsActor,type:"installTemporaryAddon",addonPath:p,openDevTools:u})}catch(m){let g=yc(m);throw new Error(ua(this.options.browser,g))}}}};var re=null;process.on("SIGINT",()=>{re&&re.kill("SIGINT"),process.exit()});process.on("SIGTERM",()=>{re&&re.kill("SIGTERM"),process.exit()});var _r=class{extension;browser;browserFlags;profile;preferences;startingUrl;autoReload;stats;geckoBinary;constructor(e){this.extension=e.extension,this.browser=e.browser||"firefox",this.browserFlags=e.browserFlags||[],this.profile=e.profile,this.preferences=e.preferences,this.startingUrl=e.startingUrl,this.geckoBinary=e.geckoBinary}async getFxRunnerCommand(){let e=ae()?"pnpm dlx fx-runner":"npm exec fx-runner";try{return await new Promise((r,s)=>{(0,xs.exec)(`${e} --version`,n=>{n?s(n):r(null)})}),e}catch{console.error(We("firefox",e)),process.exit(1)}}async launchFirefox(e,r){let s=await this.getFxRunnerCommand(),n;switch(r.browser){case"gecko-based":n=vc.default.normalize(this.geckoBinary);break;default:n=Aa;break}let o=`${s} start --binary "${n}" --foreground --no-remote`;xc.default.existsSync(n||"")||(console.error(We(this.browser,n||"")),process.exit(1));let i=await dc(e,r),c=`${o} ${i}`;re=(0,xs.exec)(c,(p,u,m)=>{if(p!=null)throw p;m.includes("Unable to move the cache")?console.log(ia(this.browser)):(console.log(aa(this.browser)),process.exit())}),process.env.EXTENSION_ENV==="development"&&(re.stdout?.pipe(process.stdout),re.stderr?.pipe(process.stderr));let l=new Sr(this);try{await l.installAddons(e)}catch(p){p?.toString()?.includes("background.service_worker is currently disabled")&&(console.error(ca(this.browser)),process.exit(1)),console.error(la(this.browser,p)),process.exit(1)}}apply(e){let r=!1;e.hooks.done.tapAsync("run-firefox:module",async(s,n)=>{if(s.compilation.errors.length>0){n();return}if(r){n();return}setTimeout(()=>{console.log(hr(this.browser,s.compilation.options.mode))},2e3),await this.launchFirefox(e,{browser:this.browser,browserFlags:this.browserFlags,profile:this.profile,preferences:this.preferences,startingUrl:this.startingUrl,mode:s.compilation.options.mode}),r=!0,n()})}};var Pr=class{static name="plugin-browsers";extension;browser;open;browserFlags;profile;preferences;startingUrl;chromiumBinary;geckoBinary;constructor(e){this.extension=[...e.extension,...e.browserFlags?.filter(r=>!r.startsWith("--load-extension="))||[]],e.chromiumBinary?this.browser="chromium-based":e.geckoBinary?this.browser="gecko-based":this.browser=e.browser||"chrome",this.open=e.open,this.browserFlags=e.browserFlags?.filter(r=>!r.startsWith("--load-extension="))||[],this.profile=e.profile,this.preferences=e.preferences,this.startingUrl=e.startingUrl||"",this.chromiumBinary=e.chromiumBinary,this.geckoBinary=e.geckoBinary}getProfilePath(e,r,s){return s||(e.options.mode==="production"?vs.default.join(Sc.default.tmpdir(),"extension-js",r,"profile"):vs.default.resolve(__dirname,`run-${r}-profile`))}async apply(e){let r={stats:!0,open:this.open!=="false",extension:this.extension,browser:this.browser,browserFlags:this.browserFlags||[],profile:this.profile,preferences:this.preferences,startingUrl:this.startingUrl,chromiumBinary:this.chromiumBinary,geckoBinary:this.geckoBinary},s=await ve(e.context,this.browser),n={...r,...s};if(n?.open===!1&&console.log(ka(this.browser,!1)),n?.startingUrl&&console.log(Sa(n?.browser,n?.startingUrl)),n?.chromiumBinary&&console.log(gs("chromium",n?.chromiumBinary)),n?.geckoBinary&&console.log(gs("gecko",n?.geckoBinary)),n?.profile&&console.log(_a(n?.browser,n?.profile)),n?.preferences&&console.log(Pa(n?.browser)),n?.browserFlags&&n?.browserFlags.length>0&&console.log(Ea(n?.browser)),n.open===!1)return;let o=this.getProfilePath(e,this.browser,this.profile||this.profile);switch(this.browser){case"chrome":case"edge":case"chromium-based":{new ze({...n,browser:this.browser,profile:o}).apply(e);break}case"firefox":case"gecko-based":new _r({...n,browser:this.browser,profile:o}).apply(e);break;default:{new ze({...n,browser:"chrome",profile:o}).apply(e);break}}}};function se(t,e){let r=Xe.default.join(t,"manifest.json"),s=P(require(r),e.browser),n=Xe.default.join(t,`dist/${e.browser}`),o=e.chromiumBinary?"chromium-based":e.geckoBinary?"gecko-based":e.browser,i=e.output?.clean?e.output.clean:e.mode==="development";return{mode:e.mode||"development",entry:{},target:"web",context:t,devtool:s.manifest_version===3?"cheap-source-map":"eval-cheap-source-map",output:{clean:i,path:n,publicPath:"/",hotUpdateChunkFilename:"hot/[id].[fullhash].hot-update.js",hotUpdateMainFilename:"hot/[runtime].[fullhash].hot-update.json",environment:{bigIntLiteral:!0,dynamicImport:!0}},resolve:{modules:["node_modules",Xe.default.join(t,"node_modules")],extensions:[".js",".mjs",".jsx",".ts",".mts",".tsx",".json",".wasm",".svelte"]},watchOptions:{ignored:/node_modules|dist/},module:{rules:[],parser:{"css/auto":{namedExports:!1}}},cache:!1,plugins:[new nt({manifestPath:r,browser:o}),new ut({mode:e.mode,manifestPath:r}),new ft({manifestPath:r}),new ht({mode:e.mode,manifestPath:r}),new dr({manifestPath:r,browser:o,polyfill:e.polyfill}),new or({manifestPath:r,browser:o}),new pr({manifestPath:r,browser:o,stats:!0,port:8e3}),new Pr({extension:[n,Xe.default.join(__dirname,"extensions",`${o}-manager-extension`)],browser:o,open:e.open,startingUrl:e.startingUrl,profile:e.profile,preferences:e.preferences,browserFlags:e.browserFlags,chromiumBinary:e.chromiumBinary,geckoBinary:e.geckoBinary})].filter(Boolean),stats:{all:!1,errors:!0,warnings:!0},infrastructureLogging:{level:"none"},performance:{hints:!1,maxAssetSize:999e3,maxEntrypointSize:999e3},optimization:{minimize:e.mode==="production"},experiments:{css:!0,asyncWebAssembly:!0}}}var Ze=a(require("path")),$c=a(require("go-git-it"));var Er=a(require("path")),_c=a(require("axios")),Pc=a(require("adm-zip"));var Ss=a(require("stream")),Ec=require("util"),Jl=(0,Ec.promisify)(Ss.default.pipeline);async function kc(t,e){let r=t.split("?")[0];try{console.log(ec(r));let s=await(0,_c.default)({url:t,method:"GET",responseType:"stream"}),n=Er.default.extname(r),o=Er.default.basename(r,n),i=Er.default.join(e,o);console.log(tc(i));let c=[];await Jl(s.data,new Ss.default.Writable({write(u,m,g){c.push(u),g()}}));let l=Buffer.concat(c);return new Pc.default(l).extractAllTo(i,!0),console.log(rc()),i}catch(s){throw console.error(sc(s)),s}}var zl=t=>{try{return new URL(t),!0}catch{return!1}};async function Hl(t,e){return await(0,$c.default)(t,process.cwd(),e),Ze.default.resolve(process.cwd(),Ze.default.basename(t))}async function Vl(t){return await kc(t,process.cwd())}async function X(t){if(!t)return process.cwd();if(zl(t)){let e=new URL(t);if(e.protocol.startsWith("http")){if(e.origin!=="https://github.com")return await Vl(t);let r=e.pathname.split("/"),s=r.slice(1,3)[0],n=r.slice(1,3)[1];console.log(qa(s,n));let o=Ze.default.basename(e.pathname),i=await Hl(t,Wa(o));return console.log(Ja(o)),i}}return Ze.default.resolve(process.cwd(),t)}var J=a(require("path")),Fc=a(require("fs")),Cc=a(require("ignore")),jc=a(require("tiny-glob")),_s=a(require("adm-zip")),Dc=a(require("slugify"));function Gl(t){try{return Fc.default.readFileSync(t,"utf8")}catch{return""}}function Xl(t){return(0,Dc.default)(t,{replacement:"-",remove:/[^a-zA-Z0-9 ]/g,lower:!0})}function Zl(t,e){if(e)return"zip";switch(t){case"opera":return"crx";case"firefox":return"xpi";default:return"zip"}}function Kl(t,e){let r=Xl(e.zipFilename||t.name);return e.zipFilename?r:`${r}-${t.version}`}async function Yl(t){let e=J.default.join(t,".gitignore"),r=Gl(e),s=(0,Cc.default)();return r?s.add(r):console.log(za(t)),(await(0,jc.default)("**/*",{cwd:t,dot:!0})).filter(o=>!s.ignores(o))}async function Lc(t,{browser:e="chrome",...r}){try{let s=J.default.join(t,"dist"),n=J.default.join(s,e),o=r.zipSource?t:n,i=require(J.default.join(o,"manifest.json")),c=Kl(i,{browser:e,...r}),l=Zl(e,r.zipSource),p=J.default.join(n,`${c}.${l}`),u=J.default.join(s,`${c}-source.${l}`);if(r.zipSource){console.log(""),console.log(Ha(u));let m=new _s.default;(await Yl(t)).forEach(b=>{m.addLocalFile(J.default.join(t,b),J.default.dirname(b))}),m.writeZip(u)}if(r.zip){console.log(""),console.log(Va(p));let m=new _s.default;m.addLocalFolder(n),m.writeZip(p)}r.zip&&r.zipSource?(console.log(""),console.log(Ga(e,c,u,p))):r.zip?(console.log(""),console.log(Xa(c,l,e,p))):r.zipSource&&(console.log(""),console.log(Za(c,l,e,u)))}catch(s){throw console.error(Ka(s)),s}}async function kr(t,e){let r=await X(t);!t?.startsWith("http")&&!Oc.default.existsSync(Ps.default.join(r,"manifest.json"))&&(console.log(G(Ps.default.join(r,"manifest.json"))),process.exit(1));try{let s=e?.browser||"chrome",n=se(r,{...e,browser:s,mode:"production",output:{clean:!0}}),o=n.plugins?.filter(u=>u?.constructor.name!=="plugin-browsers"&&u?.constructor.name!=="plugin-reload"),c=(await xe(r))({...n,plugins:o}),l=(0,Mc.merge)(c),p=(0,Ic.rspack)(l);await new Promise((u,m)=>{p.run(async(g,b)=>{if(g)return console.error(g.stack||g),m(g);e?.silent||console.log(Ua(r,b,s)),(e?.zip||e?.zipSource)&&await Lc(r,{...e,browser:s}),b?.hasErrors()?(console.log(b.toString({colors:!0})),process.exit(1)):(console.log(Ba()),u())})})}catch(s){process.env.EXTENSION_ENV==="development"&&console.error(s),process.exit(1)}}var ks=a(require("fs")),Fr=a(require("path"));var Ac=a(require("path")),Rc=require("@rspack/core"),Nc=require("@rspack/dev-server"),Tc=require("webpack-merge");function Es(t){t.stop().then(()=>{process.exit()}).catch(e=>{console.log(`Error in the Extension.js runner: ${e.stack||""}`)})}async function Uc(t,e){let r=fc(t,"dev"),s=ve(t,e.browser),n=se(t,{...e,...r,...s,mode:"development",output:{clean:!0}}),i=(await xe(t))(n),c=(0,Tc.merge)(i),l=(0,Rc.rspack)(c),p={host:"127.0.0.1",allowedHosts:"all",static:{watch:{ignored:/\bnode_modules\b/}},compress:!1,devMiddleware:{writeToDisk:!0},watchFiles:it(t)?void 0:{paths:[Ac.default.join(t,"**/*.html")],options:{usePolling:!0,interval:1e3}},client:{logging:process.env.EXTENSION_ENV==="development"?"error":"none",progress:!1,overlay:!1},headers:{"Access-Control-Allow-Origin":"*"},port:"auto",hot:!0},u=new Nc.RspackDevServer(p,l);u.startCallback(m=>{m!=null&&console.log(`Error in the Extension.js runner: ${m.stack||""}`)}),process.on("ERROR",()=>{Es(u)}),process.on("SIGINT",()=>{Es(u)}),process.on("SIGTERM",()=>{Es(u)})}var $r=a(require("path")),Se=a(require("fs/promises"));async function Bc(t){let e=$r.default.join(t,"extension-env.d.ts"),r=process.env.EXTENSION_ENV==="development"?$r.default.resolve(process.cwd(),"programs/cli/types"):"extension/dist/types",s=`// Required Extension.js types for TypeScript projects.
|
|
118
|
+
${(0,d.gray)("\u2514\u2500")} ${(0,d.underline)(`${s}`)} (distribution)`}function Za(t,e,r,s){return`\u{1F4E6} Package name: ${(0,d.brightYellow)(`${t}.${e}`)}, Target Browser: ${`${xe(r)}`}
|
|
119
|
+
${(0,d.gray)("\u2514\u2500")} ${(0,d.underline)(`${s}`)} ${(0,d.gray)("(distribution)")}`}function Ka(t,e,r,s){return`\u{1F4E6} Package name: ${(0,d.brightYellow)(`${t}-source.${e}`)}, Target Browser: ${`${xe(r)}`}
|
|
120
|
+
${(0,d.gray)("\u2514\u2500")} ${(0,d.underline)(`${s}`)} (source)`}function Ya(t){return`${k("error")} Failed to compress extension package.
|
|
121
|
+
${(0,d.red)(t)}`}function Qa(t){return`${k("info")} Writing type definitions for ${(0,d.cyan)(t.name||"")}...`}function ec(t){return`${k("error")} Failed to write the extension type definition.
|
|
122
|
+
${(0,d.red)(t)}`}function tc(t){return`${k("info")} Downloading extension...
|
|
123
|
+
${(0,d.gray)("URL")} ${(0,d.underline)(t)}`}function rc(t){return`${k("info")} Unpackaging browser extension...
|
|
124
|
+
${(0,d.gray)("PATH")} ${(0,d.underline)(t)}`}function sc(){return`${k("info")} Browser extension unpackaged ${(0,d.brightGreen)("successfully")}. Compiling...`}function nc(t){return`${k("error")} Failed to download or extract ZIP file. ${(0,d.red)(t)}`}function xe(t){return t.charAt(0).toUpperCase()+t.slice(1)}function oc(t){return`${(t/1024).toFixed(2)}KB`}function Nl(t){let e=0;return t?.forEach(r=>{e+=r.size}),oc(e)}function ic(t,e=""){let r="";return Object.keys(t).forEach((s,n,o)=>{let i=n===o.length-1,c=i?"\u2514\u2500":"\u251C\u2500",l=t[s].size?` (${oc(t[s].size)})`:"";r+=`${(0,d.gray)(e)}${(0,d.gray)(c)} ${s}${(0,d.gray)(l)}
|
|
125
|
+
`,typeof t[s]=="object"&&!t[s].size&&(r+=ic(t[s],`${e}${i?" ":(0,d.gray)("\u2502 ")}`))}),r}function Tl(t){let e={};return t?.forEach(r=>{let s=r.name.split("/"),n=e;s.forEach((o,i)=>{n[o]||(n[o]={}),i===s.length-1?n[o]={size:r.size}:n=n[o]})}),`.
|
|
126
|
+
${ic(e)}`}function ac(t){return`${k("info")} Using ${(0,d.magenta)(t)}. ${(0,d.brightYellow)("This is very experimental")}.`}function cc(){return`${k("info")} Installing project dependencies...`}function lc(t,e,r){return`${k("error")} Command ${t} ${e.join(" ")} failed with exit code ${r}`}function pc(t){return`${k("error")} Can't install project dependencies. ${(0,d.red)(t.message||t.toString())}`}async function we(t){let e=Ge.default.join(t,"extension.config.js");if(Ve.default.existsSync(e)&&await ys(t)){let r=require(e);if(r&&typeof r.config=="function")return r.config}return r=>r}async function uc(t,e){let r=Ge.default.join(t,"extension.config.js");if(Ve.default.existsSync(r)&&await ys(t)){let s=require(r);if(s)return s[e]}return{}}async function ve(t,e="chrome"){let r=Ge.default.join(t,"extension.config.js");if(Ve.default.existsSync(r)&&await ys(t)){let s=require(r);if(s&&s.browser&&s.browser[e])return s.browser[e]||{browser:"chrome"}}return{browser:"chrome"}}var fc=!1;async function ys(t){let e=Ge.default.join(t,"extension.config.js");return Ve.default.existsSync(e)?(fc||(console.log(ac("extension.config.js")),fc=!0),!0):!1}function mc(t,e){let r={...ve(bs.default.resolve(__dirname,"run-firefox"),"firefox"),...hs(e)};Object.keys(r).forEach(o=>{t.setPreference(o,r[o])});let n=Object.keys(e);return n.length>0&&n.forEach(o=>{t.setPreference(o,e[o])}),t.updatePreferences(),t}function Ul(t,e){let r=new xs.default({destinationDirectory:t});return mc(r,e)}function Bl(t,e,r){let s;if(wr.default.statSync(e).isDirectory())s=e;else throw new Error(da(t,e));let o=new xs.default({destinationDirectory:s});return mc(o,r)}function dc(t,e,r={}){let s,n=e||bs.default.resolve(__dirname,`run-${t}-profile`),c={...hs(r||{}),...r};return!e&&wr.default.existsSync(n)?s=Bl(t,n,c):(yr(gr(t),()=>{}),wr.default.mkdirSync(n,{recursive:!0}),s=Ul(n,c)),s}async function gc(t,e){let{browser:r,startingUrl:s,preferences:n,profile:o,browserFlags:i=[]}=e,c=dc(r,o,n),l=[];s&&l.push(`--url=${s}`),i&&l.push(...i);let p=t.options.devServer?.port?t.options.devServer?.port+100:9222;return[`--binary-args="${l.join(" ")}"`,`--profile="${c.path()}"`,`--listen=${p}`,"--verbose"].join(" ")}var wc=a(require("path"));var hc=a(require("net")),yc=a(require("events"));function ql(t,e){let r=e.toString(),s=r.indexOf(":");if(s<1)return{remainingData:e};let n=parseInt(r.substring(0,s),10);if(isNaN(n))return{remainingData:e,error:new Error(ga(t)),fatal:!0};if(e.length-(s+1)<n)return{remainingData:e};let o=e.slice(s+1,s+1+n),i=e.slice(s+1+n);try{let c=JSON.parse(o.toString());return{remainingData:i,parsedMessage:c}}catch(c){return{remainingData:i,error:c,fatal:!1}}}var vr=class extends yc.default{incomingData=Buffer.alloc(0);pendingRequests=[];activeRequests=new Map;connection;async connect(e){await new Promise((r,s)=>{try{let n={port:e,host:"127.0.0.1"},o=hc.default.createConnection(n,()=>{r()});this.connection=o,o.on("data",this.onData.bind(this)),o.on("error",s),o.on("end",this.onEnd.bind(this)),o.on("timeout",this.onTimeout.bind(this)),this.expectReply("root",{resolve:r,reject:s})}catch(n){s(n)}})}disconnect(){this.connection&&(this.connection.removeAllListeners(),this.connection.end(),this.rejectAllRequests(new Error(ha("firefox"))))}rejectAllRequests(e){this.activeRequests.forEach(r=>{r.reject(e)}),this.activeRequests.clear(),this.pendingRequests.forEach(({deferred:r})=>{r.reject(e)}),this.pendingRequests=[]}async request(e){let r=typeof e=="string"?{to:"root",type:e}:e;if(!r.to)throw new Error(ya("firefox",r.type));return await new Promise((s,n)=>{let o={resolve:s,reject:n};this.pendingRequests.push({request:r,deferred:o}),this.flushPendingRequests()})}flushPendingRequests(){this.pendingRequests=this.pendingRequests.filter(({request:e,deferred:r})=>{if(this.activeRequests.has(e.to))return!0;if(!this.connection)throw new Error(ba("firefox"));try{let s=`${Buffer.from(JSON.stringify(e)).length}:${JSON.stringify(e)}`;this.connection.write(s),this.expectReply(e.to,r)}catch(s){r.reject(s)}return!1})}expectReply(e,r){if(this.activeRequests.has(e))throw new Error(xa("firefox",e));this.activeRequests.set(e,r)}onData(e){for(this.incomingData=Buffer.concat([this.incomingData,e]);this.readMessage(););}readMessage(){let{remainingData:e,parsedMessage:r,error:s,fatal:n}=ql("firefox",this.incomingData);return this.incomingData=e,s?(this.emit("error",new Error(wa("firefox",s))),n&&this.disconnect(),!n):r?(this.handleMessage(r),!0):!1}handleMessage(e){if(!e.from){this.emit("error",new Error(va("firefox",e)));return}let r=this.activeRequests.get(e.from);r?(this.activeRequests.delete(e.from),e.error?r.reject(e):r.resolve(e),this.flushPendingRequests()):this.emit("error",new Error(Sa("firefox",JSON.stringify(e))))}onError(e){this.emit("error",e)}onEnd(){this.emit("end")}onTimeout(){this.emit("timeout")}};function bc(t){return t instanceof Error?String(t):`${t.error}: ${t.message}`}function xc(t,e){return Array.isArray(t)&&t.includes(e.code)?!0:e.code===t}var Wl=150,Jl=1e3,Sr=class{options;constructor(e){this.options=e}async connectClient(e){let r;for(let s of Array.from({length:Wl}))try{let n=new vr;return await n.connect(e),n}catch(n){if(xc("ECONNREFUSED",n))await new Promise(o=>setTimeout(o,Jl)),r=n;else throw console.error(fa(this.options.browser,n.stack)),n}throw console.error(ua(this.options.browser)),r}async installAddons(e){let{devtools:r}=this.options,s=Array.isArray(this.options.extension)?this.options.extension:[this.options.extension],n=e.options.devServer?.port,o=n?n+100:9222,i=await this.connectClient(o);for(let[c,l]of s.entries()){let p=wc.default.join(l.replace(/"/g,"")),u=c===0&&r;try{let m=await i.request({to:"root",type:"getRoot"});await i.request({to:m.addonsActor,type:"installTemporaryAddon",addonPath:p,openDevTools:u})}catch(m){let g=bc(m);throw new Error(ma(this.options.browser,g))}}}};var re=null;process.on("SIGINT",()=>{re&&re.kill("SIGINT"),process.exit()});process.on("SIGTERM",()=>{re&&re.kill("SIGTERM"),process.exit()});var _r=class{extension;browser;browserFlags;profile;preferences;startingUrl;autoReload;stats;geckoBinary;constructor(e){this.extension=e.extension,this.browser=e.browser||"firefox",this.browserFlags=e.browserFlags||[],this.profile=e.profile,this.preferences=e.preferences,this.startingUrl=e.startingUrl,this.geckoBinary=e.geckoBinary}async getFxRunnerCommand(){let e=ae()?"pnpm dlx fx-runner":"npm exec fx-runner";try{return await new Promise((r,s)=>{(0,ws.exec)(`${e} --version`,n=>{n?s(n):r(null)})}),e}catch{console.error(We("firefox",e)),process.exit(1)}}async launchFirefox(e,r){let s=await this.getFxRunnerCommand(),n;switch(r.browser){case"gecko-based":n=Sc.default.normalize(this.geckoBinary);break;default:n=Ra;break}let o=`${s} start --binary "${n}" --foreground --no-remote`;vc.default.existsSync(n||"")||(console.error(We(this.browser,n||"")),process.exit(1));let i=await gc(e,r),c=`${o} ${i}`;re=(0,ws.exec)(c,(p,u,m)=>{if(p!=null)throw p;m.includes("Unable to move the cache")?console.log(aa(this.browser)):(console.log(ca(this.browser)),process.exit())}),process.env.EXTENSION_ENV==="development"&&(re.stdout?.pipe(process.stdout),re.stderr?.pipe(process.stderr));let l=new Sr(this);try{await l.installAddons(e)}catch(p){p?.toString()?.includes("background.service_worker is currently disabled")&&(console.error(la(this.browser)),process.exit(1)),console.error(pa(this.browser,p)),process.exit(1)}}apply(e){let r=!1;e.hooks.done.tapAsync("run-firefox:module",async(s,n)=>{if(s.compilation.errors.length>0){n();return}if(r){n();return}setTimeout(()=>{console.log(hr(this.browser,s.compilation.options.mode))},2e3),await this.launchFirefox(e,{browser:this.browser,browserFlags:this.browserFlags,profile:this.profile,preferences:this.preferences,startingUrl:this.startingUrl,mode:s.compilation.options.mode}),r=!0,n()})}};var Pr=class{static name="plugin-browsers";extension;browser;open;browserFlags;profile;preferences;startingUrl;chromiumBinary;geckoBinary;constructor(e){this.extension=[...e.extension,...e.browserFlags?.filter(r=>!r.startsWith("--load-extension="))||[]],e.chromiumBinary?this.browser="chromium-based":e.geckoBinary?this.browser="gecko-based":this.browser=e.browser||"chrome",this.open=e.open,this.browserFlags=e.browserFlags?.filter(r=>!r.startsWith("--load-extension="))||[],this.profile=e.profile,this.preferences=e.preferences,this.startingUrl=e.startingUrl||"",this.chromiumBinary=e.chromiumBinary,this.geckoBinary=e.geckoBinary}getProfilePath(e,r,s){return s||(e.options.mode==="production"?vs.default.join(_c.default.tmpdir(),"extension-js",r,"profile"):vs.default.resolve(__dirname,`run-${r}-profile`))}async apply(e){let r={stats:!0,open:this.open!=="false",extension:this.extension,browser:this.browser,browserFlags:this.browserFlags||[],profile:this.profile,preferences:this.preferences,startingUrl:this.startingUrl,chromiumBinary:this.chromiumBinary,geckoBinary:this.geckoBinary},s=await ve(e.context,this.browser),n={...r,...s};if(n?.open===!1&&console.log(Fa(this.browser,!1)),n?.startingUrl&&console.log(_a(n?.browser,n?.startingUrl)),n?.chromiumBinary&&console.log(gs("chromium",n?.chromiumBinary)),n?.geckoBinary&&console.log(gs("gecko",n?.geckoBinary)),n?.profile&&console.log(Pa(n?.browser,n?.profile)),n?.preferences&&console.log(Ea(n?.browser)),n?.browserFlags&&n?.browserFlags.length>0&&console.log(ka(n?.browser)),n.open===!1)return;let o=this.getProfilePath(e,this.browser,this.profile||this.profile);switch(this.browser){case"chrome":case"edge":case"chromium-based":{new ze({...n,browser:this.browser,profile:o}).apply(e);break}case"firefox":case"gecko-based":new _r({...n,browser:this.browser,profile:o}).apply(e);break;default:{new ze({...n,browser:"chrome",profile:o}).apply(e);break}}}};function se(t,e){let r=Xe.default.join(t,"manifest.json"),s=P(require(r),e.browser),n=Xe.default.join(t,`dist/${e.browser}`),o=e.chromiumBinary?"chromium-based":e.geckoBinary?"gecko-based":e.browser,i=e.output?.clean?e.output.clean:e.mode==="development";return{mode:e.mode||"development",entry:{},target:"web",context:t,devtool:s.manifest_version===3?"cheap-source-map":"eval-cheap-source-map",output:{clean:i,path:n,publicPath:"/",hotUpdateChunkFilename:"hot/[id].[fullhash].hot-update.js",hotUpdateMainFilename:"hot/[runtime].[fullhash].hot-update.json",environment:{bigIntLiteral:!0,dynamicImport:!0}},resolve:{modules:["node_modules",Xe.default.join(t,"node_modules")],extensions:[".js",".mjs",".jsx",".ts",".mts",".tsx",".json",".wasm",".svelte"]},watchOptions:{ignored:/node_modules|dist/},module:{rules:[],parser:{"css/auto":{namedExports:!1}}},cache:!1,plugins:[new nt({manifestPath:r,browser:o}),new ut({mode:e.mode,manifestPath:r}),new ft({manifestPath:r}),new ht({mode:e.mode,manifestPath:r}),new dr({manifestPath:r,browser:o,polyfill:e.polyfill}),new or({manifestPath:r,browser:o}),new pr({manifestPath:r,browser:o,stats:!0,port:8e3}),new Pr({extension:[n,Xe.default.join(__dirname,"extensions",`${o}-manager-extension`)],browser:o,open:e.open,startingUrl:e.startingUrl,profile:e.profile,preferences:e.preferences,browserFlags:e.browserFlags,chromiumBinary:e.chromiumBinary,geckoBinary:e.geckoBinary})].filter(Boolean),stats:{all:!1,errors:!0,warnings:!0},infrastructureLogging:{level:"none"},performance:{hints:!1,maxAssetSize:999e3,maxEntrypointSize:999e3},optimization:{minimize:e.mode==="production"},experiments:{css:!0,asyncWebAssembly:!0}}}var Ze=a(require("path")),$c=a(require("go-git-it"));var Er=a(require("path")),Pc=a(require("axios")),Ec=a(require("adm-zip"));var Ss=a(require("stream")),kc=require("util"),zl=(0,kc.promisify)(Ss.default.pipeline);async function Fc(t,e){let r=t.split("?")[0];try{console.log(tc(r));let s=await(0,Pc.default)({url:t,method:"GET",responseType:"stream"}),n=Er.default.extname(r),o=Er.default.basename(r,n),i=Er.default.join(e,o);console.log(rc(i));let c=[];await zl(s.data,new Ss.default.Writable({write(u,m,g){c.push(u),g()}}));let l=Buffer.concat(c);return new Ec.default(l).extractAllTo(i,!0),console.log(sc()),i}catch(s){throw console.error(nc(s)),s}}var Hl=t=>{try{return new URL(t),!0}catch{return!1}};async function Vl(t,e){return await(0,$c.default)(t,process.cwd(),e),Ze.default.resolve(process.cwd(),Ze.default.basename(t))}async function Gl(t){return await Fc(t,process.cwd())}async function X(t){if(!t)return process.cwd();if(Hl(t)){let e=new URL(t);if(e.protocol.startsWith("http")){if(e.origin!=="https://github.com")return await Gl(t);let r=e.pathname.split("/"),s=r.slice(1,3)[0],n=r.slice(1,3)[1];console.log(Wa(s,n));let o=Ze.default.basename(e.pathname),i=await Vl(t,Ja(o));return console.log(za(o)),i}}return Ze.default.resolve(process.cwd(),t)}var J=a(require("path")),Cc=a(require("fs")),jc=a(require("ignore")),Dc=a(require("tiny-glob")),_s=a(require("adm-zip")),Lc=a(require("slugify"));function Xl(t){try{return Cc.default.readFileSync(t,"utf8")}catch{return""}}function Zl(t){return(0,Lc.default)(t,{replacement:"-",remove:/[^a-zA-Z0-9 ]/g,lower:!0})}function Kl(t,e){if(e)return"zip";switch(t){case"opera":return"crx";case"firefox":return"xpi";default:return"zip"}}function Yl(t,e){let r=Zl(e.zipFilename||t.name);return e.zipFilename?r:`${r}-${t.version}`}async function Ql(t){let e=J.default.join(t,".gitignore"),r=Xl(e),s=(0,jc.default)();return r?s.add(r):console.log(Ha(t)),(await(0,Dc.default)("**/*",{cwd:t,dot:!0})).filter(o=>!s.ignores(o))}async function Oc(t,{browser:e="chrome",...r}){try{let s=J.default.join(t,"dist"),n=J.default.join(s,e),o=r.zipSource?t:n,i=require(J.default.join(o,"manifest.json")),c=Yl(i,{browser:e,...r}),l=Kl(e,r.zipSource),p=J.default.join(n,`${c}.${l}`),u=J.default.join(s,`${c}-source.${l}`);if(r.zipSource){console.log(""),console.log(Va(u));let m=new _s.default;(await Ql(t)).forEach(b=>{m.addLocalFile(J.default.join(t,b),J.default.dirname(b))}),m.writeZip(u)}if(r.zip){console.log(""),console.log(Ga(p));let m=new _s.default;m.addLocalFolder(n),m.writeZip(p)}r.zip&&r.zipSource?(console.log(""),console.log(Xa(e,c,u,p))):r.zip?(console.log(""),console.log(Za(c,l,e,p))):r.zipSource&&(console.log(""),console.log(Ka(c,l,e,u)))}catch(s){throw console.error(Ya(s)),s}}async function kr(t,e){let r=await X(t);!t?.startsWith("http")&&!Ic.default.existsSync(Ps.default.join(r,"manifest.json"))&&(console.log(G(Ps.default.join(r,"manifest.json"))),process.exit(1));try{let s=e?.browser||"chrome",n=se(r,{...e,browser:s,mode:"production",output:{clean:!0}}),o=n.plugins?.filter(u=>u?.constructor.name!=="plugin-browsers"&&u?.constructor.name!=="plugin-reload"),c=(await we(r))({...n,plugins:o}),l=(0,Ac.merge)(c),p=(0,Mc.rspack)(l);await new Promise((u,m)=>{p.run(async(g,b)=>{if(g)return console.error(g.stack||g),m(g);e?.silent||console.log(Ba(r,b,s)),(e?.zip||e?.zipSource)&&await Oc(r,{...e,browser:s}),b?.hasErrors()?(console.log(b.toString({colors:!0})),process.exit(1)):(console.log(qa()),u())})})}catch(s){process.env.EXTENSION_ENV==="development"&&console.error(s),process.exit(1)}}var ks=a(require("fs")),$r=a(require("path"));var Rc=a(require("path")),Nc=require("@rspack/core"),Tc=require("@rspack/dev-server"),Uc=require("webpack-merge");function Es(t){t.stop().then(()=>{process.exit()}).catch(e=>{console.log(`Error in the Extension.js runner: ${e.stack||""}`)})}async function Bc(t,e){let r=uc(t,"dev"),s=ve(t,e.browser),n=se(t,{...e,...r,...s,mode:"development",output:{clean:!0}}),i=(await we(t))(n),c=(0,Uc.merge)(i),l=(0,Nc.rspack)(c),p={host:"127.0.0.1",allowedHosts:"all",static:{watch:{ignored:/\bnode_modules\b/}},compress:!1,devMiddleware:{writeToDisk:!0},watchFiles:it(t)?void 0:{paths:[Rc.default.join(t,"**/*.html")],options:{usePolling:!0,interval:1e3}},client:{logging:process.env.EXTENSION_ENV==="development"?"error":"none",progress:!1,overlay:!1},headers:{"Access-Control-Allow-Origin":"*"},port:"auto",hot:!0},u=new Tc.RspackDevServer(p,l);u.startCallback(m=>{m!=null&&console.log(`Error in the Extension.js runner: ${m.stack||""}`)}),process.on("ERROR",()=>{Es(u)}),process.on("SIGINT",()=>{Es(u)}),process.on("SIGTERM",()=>{Es(u)})}var Fr=a(require("path")),Se=a(require("fs/promises"));async function qc(t){let e=Fr.default.join(t,"extension-env.d.ts"),r=process.env.EXTENSION_ENV==="development"?Fr.default.resolve(process.cwd(),"programs/cli/types"):"extension/dist/types",s=`// Required Extension.js types for TypeScript projects.
|
|
125
127
|
// This file is auto-generated and should not be excluded.
|
|
126
128
|
// If you need additional types, consider creating a new *.d.ts file and
|
|
127
129
|
// referencing it in the "include" array of your tsconfig.json file.
|
|
@@ -130,4 +132,4 @@ ${oc(e)}`}function ic(t){return`${k("info")} Using ${(0,d.magenta)(t)}. ${(0,d.b
|
|
|
130
132
|
|
|
131
133
|
// Polyfill types for browser.* APIs.
|
|
132
134
|
/// <reference types="${r}/polyfill.d.ts" />
|
|
133
|
-
`;try{await Se.default.access(e),(await Se.default.readFile(e,"utf8")).includes("develop/dist/types")&&await Se.default.writeFile(e,s),process.env.EXTENSION_ENV==="development"&&await Se.default.writeFile(e,s)}catch{let o=require(
|
|
135
|
+
`;try{await Se.default.access(e),(await Se.default.readFile(e,"utf8")).includes("develop/dist/types")&&await Se.default.writeFile(e,s),process.env.EXTENSION_ENV==="development"&&await Se.default.writeFile(e,s)}catch{let o=require(Fr.default.join(t,"manifest.json"));console.log(Qa(o));try{await Se.default.writeFile(e,s)}catch(i){console.log(ec(i))}}}var Wc=a(require("path")),Jc=require("cross-spawn"),zc=a(require("fs")),Hc=require("package-manager-detector");async function ep(){let t=await(0,Hc.detect)(),e="npm";if(ae())return"pnpm";switch(t?.name){case"yarn":e="yarn";break;case"pnpm":e="pnpm";break;default:e="npm"}return e}function tp(){return["install"]}async function Vc(t){let e=Wc.default.join(t,"node_modules"),r=await ep(),s=tp(),n=process.cwd();try{process.chdir(t),await zc.default.promises.mkdir(e,{recursive:!0});let o=process.env.EXTENSION_ENV==="development"?"inherit":"ignore",i=(0,Jc.spawn)(r,s,{stdio:o});await new Promise((c,l)=>{i.on("close",p=>{p!==0?l(new Error(lc(r,s,p))):c()}),i.on("error",p=>{l(p)})})}catch(o){console.error(pc(o)),process.exit(1)}finally{process.chdir(n)}}async function Gc(t,e){let r=await X(t),s=$r.default.join(r,"manifest.json");!t?.startsWith("http")&&!ks.default.existsSync(s)&&(console.log(G($r.default.join(r,"manifest.json"))),process.exit(1));try{K(r)&&await qc(r);let n=$r.default.join(r,"node_modules");ks.default.existsSync(n)||(console.log(cc()),await Vc(r)),setTimeout(async()=>{await Bc(r,{...e,mode:"development",browser:e.browser||"chrome"})},50)}catch(n){process.env.EXTENSION_ENV==="development"&&console.error(n),process.exit(1)}}var Xc=a(require("fs")),Fs=a(require("path")),Zc=require("@rspack/core"),Kc=require("webpack-merge");async function Cr(t,e){let r=await X(t);!t?.startsWith("http")&&!Xc.default.existsSync(Fs.default.join(r,"manifest.json"))&&(console.log(G(Fs.default.join(r,"manifest.json"))),process.exit(1));try{let s=e.browser||"chrome",n=se(r,{mode:"production",profile:e.profile,browser:s,chromiumBinary:e.chromiumBinary,geckoBinary:e.geckoBinary,startingUrl:e.startingUrl,output:{clean:!1}}),o=n.plugins?.filter(u=>u?.constructor.name==="plugin-browsers");console.log(Ta(s));let c=(await we(r))({...n,plugins:o}),l=(0,Kc.merge)(c);(0,Zc.rspack)(l).run(async(u,m)=>{u&&(console.error(u.stack||u),process.exit(1)),m?.hasErrors()?(console.log(m.toString({colors:!0})),process.exit(1)):console.log(Ua(r,{browser:s,mode:"production"}))})}catch(s){process.env.EXTENSION_ENV==="development"&&console.error(s),process.exit(1)}}var Yc=a(require("fs")),$s=a(require("path"));async function Qc(t,e){let r=await X(t);!t?.startsWith("http")&&!Yc.default.existsSync($s.default.join(r,"manifest.json"))&&(console.log(G($s.default.join(r,"manifest.json"))),process.exit(1));try{let s=e.browser||"chrome";await kr(t,{...e,browser:s,silent:!0}),await Cr(t,{...e,browser:s})}catch(s){process.env.EXTENSION_ENV==="development"&&console.error(s),process.exit(1)}}0&&(module.exports={extensionBuild,extensionDev,extensionPreview,extensionStart});
|