extension-develop 2.0.0-rc.11 → 2.0.0-rc.12
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/module.js +20 -20
- package/package.json +1 -1
package/dist/module.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
"use strict";var Kc=Object.create;var Ke=Object.defineProperty;var Yc=Object.getOwnPropertyDescriptor;var Qc=Object.getOwnPropertyNames;var el=Object.getPrototypeOf,tl=Object.prototype.hasOwnProperty;var sl=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),rl=(t,e)=>{for(var s in e)Ke(t,s,{get:e[s],enumerable:!0})},Cr=(t,e,s,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of Qc(e))!tl.call(t,n)&&n!==s&&Ke(t,n,{get:()=>e[n],enumerable:!(r=Yc(e,n))||r.enumerable});return t};var a=(t,e,s)=>(s=t!=null?Kc(el(t)):{},Cr(e||!t||!t.__esModule?Ke(s,"default",{value:t,enumerable:!0}):s,t)),nl=t=>Cr(Ke({},"__esModule",{value:!0}),t);var Os=sl((
|
|
1
|
+
"use strict";var Kc=Object.create;var Ke=Object.defineProperty;var Yc=Object.getOwnPropertyDescriptor;var Qc=Object.getOwnPropertyNames;var el=Object.getPrototypeOf,tl=Object.prototype.hasOwnProperty;var sl=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),rl=(t,e)=>{for(var s in e)Ke(t,s,{get:e[s],enumerable:!0})},Cr=(t,e,s,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of Qc(e))!tl.call(t,n)&&n!==s&&Ke(t,n,{get:()=>e[n],enumerable:!(r=Yc(e,n))||r.enumerable});return t};var a=(t,e,s)=>(s=t!=null?Kc(el(t)):{},Cr(e||!t||!t.__esModule?Ke(s,"default",{value:t,enumerable:!0}):s,t)),nl=t=>Cr(Ke({},"__esModule",{value:!0}),t);var Os=sl((op,ol)=>{ol.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.12",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 Ql={};rl(Ql,{extensionBuild:()=>ks,extensionDev:()=>zc,extensionPreview:()=>Cs,extensionStart:()=>Zc});module.exports=nl(Ql);var Dc=a(require("fs")),_r=a(require("path")),Lc=require("@rspack/core"),Oc=require("webpack-merge");var Ge=a(require("path"));var Kr=a(require("case-sensitive-paths-webpack-plugin"));var js=a(require("fs")),Ye=a(require("path")),ne=require("@rspack/core"),Ds=a(require("dotenv")),Qe=class{manifestPath;browser;constructor(e){this.manifestPath=e.manifestPath,this.browser=e.browser||"chrome"}apply(e){let s=Ye.default.dirname(this.manifestPath),r=e.options.mode||"development",n=[`.env.${this.browser}.${r}`,`.env.${this.browser}`,`.env.${r}`,".env.local",".env",".env.example"],i="";for(let m of n){let g=Ye.default.join(s,m);if(js.default.existsSync(g)){i=g;break}}let o=i?Ds.default.config({path:i}).parsed||{}:{},c=Ye.default.join(s,".env.defaults"),p={...js.default.existsSync(c)?Ds.default.config({path:c}).parsed||{}:{},...o,...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(r),u["import.meta.env.EXTENSION_PUBLIC_MODE"]=JSON.stringify(r),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(r),u["import.meta.env.EXTENSION_MODE"]=JSON.stringify(r),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 Ls=a(require("fs")),jr=a(require("path")),et=class{apply(e){let s=jr.default.join(e.options.output.path||"");if(Ls.default.existsSync(s))try{Ls.default.rmSync(s,{recursive:!0,force:!0}),process.env.EXTENSION_ENV==="development"&&console.log("[CleanDistFolderPlugin] Removed old hot-update files before compilation.")}catch(r){console.error(`[CleanDistFolderPlugin] Failed to remove hot-update files: ${r.message}`)}}};var Is=a(require("path")),f=require("@colors/colors/safe");var Dr=a(require("path")),tt=Dr.default.join(process.cwd(),"node_modules/extension-develop/dist/certs"),Z=["chrome","edge"],il=["firefox"],np=[...Z,...il];var Lr=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 Or(t){return t.charAt(0).toUpperCase()+t.slice(1)}function Ir(t,e,s){if(!!1)return`${s.hasErrors()?(0,f.red)("\u2716\uFE0E\u2716\uFE0E\u2716\uFE0E"):(0,f.brightGreen)("\u25BA\u25BA\u25BA")} ${(0,f.cyan)(t)} compiled ${s.hasErrors()?(0,f.red)("with errors"):(0,f.brightGreen)("successfully")} in ${e} ms.`}function Mr(t,e){return`${(0,Lr.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 Ar(t){return`${F(t,"info")} dependencies are being installed. This only happens for core contributors...`}function Rr(t){return`${F(t,"success")} dependencies installed ${(0,f.brightGreen)("successfully")}.`}function Nr(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 st(t,e){if(!t)throw new Error("This operation is impossible. Please report a bug.");switch(Is.default.extname(e)){case".js":case".ts":case".jsx":case".tsx":return al(t,e);case".css":case".scss":case".sass":case".less":return cl(t,e);default:return ll(t,e)}}function
|
|
4
|
+
${(0,f.red)(e?.toString()||"")}`}function st(t,e){if(!t)throw new Error("This operation is impossible. Please report a bug.");switch(Is.default.extname(e)){case".js":case".ts":case".jsx":case".tsx":return al(t,e);case".css":case".scss":case".sass":case".less":return cl(t,e);default:return ll(t,e)}}function ie(t,e,s){let r=e.startsWith("content_scripts")?"content_scripts":e.replace("/","."),n=e.split("-")[1],i=e.startsWith("pages"),o=t.includes("content_scripts")?`(index ${n})
|
|
5
5
|
|
|
6
6
|
`:r;return`${F("manifest.json","error")} File Not Found
|
|
7
7
|
|
|
8
|
-
${
|
|
9
|
-
`:`Check the ${(0,f.brightYellow)(
|
|
8
|
+
${i?`Check the ${(0,f.brightYellow)("pages")} folder in your project root directory.
|
|
9
|
+
`:`Check the ${(0,f.brightYellow)(o)} field in your manifest.json file.
|
|
10
10
|
`}${(0,f.red)("NOT FOUND")} ${(0,f.underline)(s)}`}function rt(t,e){return`File Not Found
|
|
11
11
|
|
|
12
12
|
Check the ${(0,f.brightYellow)(t)} field in your manifest.json file.
|
|
@@ -35,11 +35,11 @@ ${(0,f.brightYellow)("Manager Extension")} in ${(0,f.underline)(n)} and try agai
|
|
|
35
35
|
|
|
36
36
|
If the issue still persists, please report a bug:
|
|
37
37
|
|
|
38
|
-
`+(0,f.underline)("https://github.com/extension-js/extension.js/issues");let{id:
|
|
38
|
+
`+(0,f.underline)("https://github.com/extension-js/extension.js/issues");let{id:i,management:o}=s.data;if(!o&&process.env.EXTENSION_ENV==="development")return`${F(r,"error")} No management API info received from client. Investigate.`;let{name:c,version:l}=o,p=Os().version;return`
|
|
39
39
|
\u{1F9E9} ${(0,f.brightGreen)("Extension.js")} ${(0,f.gray)(`${p}`)}
|
|
40
40
|
Extension Name ${(0,f.gray)(c)}
|
|
41
41
|
Extension Version ${(0,f.gray)(l)}
|
|
42
|
-
Extension ID ${(0,f.gray)(
|
|
42
|
+
Extension ID ${(0,f.gray)(i)}`}function Jr(t){return`This is your first run using Extension.js via ${Or(t)}. Welcome! \u{1F389}
|
|
43
43
|
|
|
44
44
|
\u{1F9E9} Learn more at ${(0,f.underline)("https://extension.js.org")}`}function zr(t){return`${F("WebSocket","error")} General WebSocket Error:
|
|
45
45
|
${(0,f.red)(t)}`}function Hr(t,e){return`${F("manifest.json","error")} File Not Found
|
|
@@ -71,12 +71,12 @@ 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 Kr.default().apply(e),new Qe({manifestPath:this.manifestPath,browser:this.browser}).apply(e),new et().apply(e),e.hooks.done.tapAsync("develop:brand",(s,r)=>{s.compilation.name=void 0;let n=s.compilation.endTime-s.compilation.startTime,o=require(this.manifestPath).name;console.log(Ir(o,n,s)),r()})}};var Pn=a(require("path"));var nn=a(require("path")),on=a(require("fs"));var ie=a(require("path")),ot=a(require("fs")),As=require("child_process"),Qr=require("package-manager-detector");function en(t,e){return Object.values(e||{}).some(s=>s===t)}function h(t,e,s){let r=ie.default.extname(e),o=$(e,s)?ie.default.normalize(e):t;return[".js",".jsx",".tsx",".ts"].includes(r)&&(o=o.replace(r,".js")),[".html",".njk",".nunjucks"].includes(r)&&(o=o.replace(r,".html")),[".css",".scss",".sass",".less"].includes(r)&&(o=o.replace(r,".css")),Rs(o||"")}function Rs(t){return t.replace(/\\/g,"/")}function $(t,e={}){if(!e)return!1;let s=ie.default.normalize(Rs(t));return Object.values(e).some(n=>typeof n!="string"?!1:Rs(n).includes(s))}function W(t,e){if(t.getAsset("manifest.json")||t.assets["manifest.json"]){let s=t.assets["manifest.json"].source().toString();return JSON.parse(s||"{}")}return require(e)}function ae(){return process.env.npm_config_user_agent&&process.env.npm_config_user_agent.includes("pnpm")?"pnpm":!1}function Yr(){return process.env.npm_execpath?"npm":!1}async function j(t,e){try{let s=await(0,Qr.detect)();console.log(Mr(t,s?.name||"unknown"));let r="";s?.name==="yarn"?r=`yarn --silent add ${e.join(" ")} --cwd ${__dirname} --optional`:s?.name==="npm"||Yr()?r=`npm --silent install ${e.join(" ")} --prefix ${__dirname} --save-optional`:ae()?r=`pnpm --silent add ${e.join(" ")} --prefix ${__dirname} --save-optional`:r=`${s} --silent install ${e.join(" ")} --cwd ${__dirname} --optional`,(0,As.execSync)(r,{stdio:"inherit"}),await new Promise(n=>setTimeout(n,2e3)),process.env.EXTENSION_ENV==="development"&&(console.log(Ar(t)),s?.name==="yarn"?r="yarn install --silent > /dev/null 2>&1":s?.name==="npm"||Yr()?r="npm install --silent > /dev/null 2>&1":ae()?r="pnpm install --silent > /dev/null 2>&1":r=`${s} install --silent > /dev/null 2>&1`,(0,As.execSync)(r,{stdio:"inherit"})),console.log(Rr(t))}catch(s){console.error(Nr(t,s))}}function it(t){let e=ie.default.join(t,"package.json");if(!ot.default.existsSync(e))return!1;let s=JSON.parse(ot.default.readFileSync(e,"utf-8")),r=["react","vue","@angular/core","svelte","solid-js","preact"],n=s.dependencies||{},o=s.devDependencies||{};for(let i of r)if(n[i]||o[i])return!0;return!1}function tn(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 rn=!1;function Pe(t){let e=nn.default.join(t,"package.json");if(!on.default.existsSync(e))return!1;let s=require(e),r=s.devDependencies&&s.devDependencies.sass,n=s.dependencies&&s.dependencies.sass;return r||n?(rn||(process.env.EXTENSION_ENV==="development"&&console.log(v("SASS")),rn=!0),!0):!1}async function an(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 ln=a(require("path")),pn=a(require("fs"));var cn=!1;function Ee(t){let e=ln.default.join(t,"package.json");if(!pn.default.existsSync(e))return!1;let s=require(e),r=s.devDependencies&&s.devDependencies.less,n=s.dependencies&&s.dependencies.less;return r||n?(cn||(process.env.EXTENSION_ENV==="development"&&console.log(v("LESS")),cn=!0),!0):!1}async function fn(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 pl(t){let e=R.default.join(t,"stylelint.config.json"),s=R.default.join(t,".stylelintrc.js file"),r=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(s))return s;if(N.default.existsSync(r))return r;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 un=!1;function fl(t){let e=R.default.join(t,"package.json");if(!N.default.existsSync(e))return!1;let r=!!pl(t);return r&&(un||(process.env.EXTENSION_ENV==="development"&&console.log(v("Stylelint")),un=!0)),r}async function mn(t){return fl(t),[]}var wn=a(require("path"));var gn=a(require("path")),hn=a(require("fs"));var dn=!1;function at(t){let e=gn.default.join(t,"package.json");if(!hn.default.existsSync(e))return!1;let s=require(e),r=s.devDependencies&&s.devDependencies.tailwindcss,n=s.dependencies&&s.dependencies.tailwindcss,o=!!(r||n);return o&&(dn||(process.env.EXTENSION_ENV==="development"&&console.log(v("Tailwind")),dn=!0)),o}var Ns=a(require("path")),ct=a(require("fs"));var ce=!1,ul=[".postcssrc",".postcssrc.json",".postcssrc.yaml",".postcssrc.yml",".postcssrc.js",".postcssrc.cjs","postcss.config.js","postcss.config.cjs"];function yn(t){for(let e of ul){let s=Ns.default.join(t,e);if(ct.default.existsSync(s))return s}}function ml(t){let e=Ns.default.join(t,"package.json");if(!ct.default.existsSync(e))return!1;if(ct.default.existsSync(e)){let s=require(e);if(s.dependencies&&s.dependencies.postcss||s.devDependencies&&s.devDependencies.postcss)return ce||(process.env.EXTENSION_ENV==="development"&&console.log(v("PostCSS")),ce=!0),!0}return yn(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 bn(t,e){if(!ml(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:yn(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 s=[];if(at(t)||Pe(t)||Ee(t)){let r=await bn(t,e);r.loader&&s.push(r)}return e.loader&&s.push({loader:e.loader.startsWith("builtin:")?e.loader:require.resolve(e.loader),options:{...e.loaderOptions,sourceMap:e.mode==="development"}}),s.filter(Boolean)}var Ts=a(require("path")),xn=a(require("fs"));function pt(t,e){if(!t||!e)return!1;let s=JSON.parse(xn.default.readFileSync(e,"utf8"));for(let r of s.content_scripts||[])if(r.js?.length){for(let n of r.js)if(Ts.default.resolve(Ts.default.dirname(e),n)===t)return!0}return!1}async function vn(t,e){let s=wn.default.join(t,"manifest.json");return[{test:/\.css$/,type:"asset",generator:{filename:"content_scripts/[name].[contenthash:8].css"},issuer:r=>pt(r,s),use:await lt(t,{mode:e})}]}var Sn=a(require("path"));async function _n(t,e){let s=Sn.default.join(t,"manifest.json");return[{test:/\.css$/,type:"css",issuer:r=>!pt(r,s),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 s=e.options.mode||"development",r=Pn.default.dirname(this.manifestPath),n=[],o=await mn(r);n.push(...o);let i=[...await vn(r,s),...await _n(r,s)],c=await an(r),l=await fn(r);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 s={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)?[]:[s],{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 Us=a(require("path")),Bs=a(require("fs"));var En=!1,dl=[".babelrc",".babelrc.json",".babelrc.js",".babelrc.cjs","babel.config.json","babel.config.js","babel.config.cjs"];function gl(t){let e=Us.default.join(t,"package.json");if(!Bs.default.existsSync(e))return!1;let s=require(e),r=s.devDependencies&&s.devDependencies["babel-core"],n=s.dependencies&&s.dependencies["babel-core"],o=dl.some(i=>Bs.default.existsSync(Us.default.join(t,i)))||!!r||!!n;return o&&(En||(process.env.EXTENSION_ENV==="development"&&process.env.EXTENSION_ENV==="development"&&console.log(v("Babel")),En=!0)),o}async function kn(t,e){gl(e)}var Fn=a(require("path")),Cn=a(require("fs"));var $n=!1;function ke(t){let e=Fn.default.join(t,"package.json");if(!Cn.default.existsSync(e))return!1;let s=require(e),r=s.devDependencies&&s.devDependencies.preact,n=s.dependencies&&s.dependencies.preact;return(r||n)&&($n||(process.env.EXTENSION_ENV==="development"&&console.log(v("Preact")),$n=!0)),!!r||!!n}async function jn(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 Ln=a(require("path")),On=a(require("fs"));var Dn=!1;function mt(t){let e=Ln.default.join(t,"package.json");if(!On.default.existsSync(e))return!1;let s=require(e),r=s.devDependencies&&s.devDependencies.react,n=s.dependencies&&s.dependencies.react;return(r||n)&&(Dn||(process.env.EXTENSION_ENV==="development"&&console.log(v("React")),Dn=!0)),!!r||!!n}async function In(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 An=a(require("path")),Rn=a(require("fs")),Nn=require("vue-loader");var Mn=!1;function hl(t){let e=An.default.join(t,"package.json");if(!Rn.default.existsSync(e))return!1;let s=require(e),r=s.devDependencies&&s.devDependencies.vue,n=s.dependencies&&s.dependencies.vue;return(r||n)&&(Mn||(process.env.EXTENSION_ENV==="development"&&console.log(v("Vue")),Mn=!0)),!!r||!!n}async function Tn(t){if(!hl(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 Nn.VueLoaderPlugin],loaders:e,alias:void 0}}var dt=a(require("path")),gt=a(require("fs"));var Un=!1;function K(t){let e=dt.default.join(t,"package.json");if(!gt.default.existsSync(e))return!1;let s=bl(t),r=require(e),n=r.devDependencies&&r.devDependencies.typescript,o=r.dependencies&&r.dependencies.typescript;return Un||((n||o)&&(s?process.env.EXTENSION_ENV==="development"&&console.log(v("TypeScript")):(console.log(Wr()),xl(t))),Un=!0),!!s&&!!(n||o)}function yl(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 bl(t){let e=dt.default.join(t,"tsconfig.json");if(gt.default.existsSync(e))return e}function xl(t){gt.default.writeFileSync(dt.default.join(t,"tsconfig.json"),JSON.stringify(yl(t,{mode:"development"}),null,2))}var qn=a(require("path")),Wn=a(require("fs")),Jn=require("svelte-preprocess");var Bn=!1;function wl(t){let e=qn.default.join(t,"package.json");if(!Wn.default.existsSync(e))return!1;let s=require(e),r=s.devDependencies&&s.devDependencies?.svelte,n=s.dependencies&&s.dependencies.svelte;return(r||n)&&(Bn||(process.env.EXTENSION_ENV==="development"&&console.log(v("Svelte")),Bn=!0)),!!r||!!n}async function zn(t,e){if(!wl(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,Jn.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 s=e.options.mode||"development",r=$e.default.dirname(this.manifestPath),n=await kn(e,r),o=await In(r),i=await jn(r),c=await Tn(r),l=await zn(r,s);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:s==="production",isModule:!0,sourceMap:this.mode==="development",env:{targets:["chrome >= 100"]},jsc:{parser:{syntax:K(r)?"typescript":"ecmascript",tsx:K(r)&&(mt(r)||ke(r)),jsx:!K(r)&&(mt(r)||ke(r)),dynamicImport:!0},transform:{react:{development:s==="development",refresh:s==="development",runtime:"automatic",importSource:"react",...ke(r)?{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(r)&&(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 Lo=a(require("path"));var Hn=a(require("path"));function Vn(t,e){if(!e||!e.action||!e.action.default_popup)return;let s=e.action.default_popup;return Hn.default.join(t,s)}var Xn=a(require("path"));function Gn(t,e){if(!e||!e.browser_action||!e.browser_action.default_popup)return;let s=e.browser_action.default_popup;return Xn.default.join(t,s)}var yt=a(require("path"));function Zn(t,e){let s={newtab:void 0};if(!e||!e.chrome_url_overrides)return{"chrome_url_overrides/newtab":void 0};if(e.chrome_url_overrides.history){let r=e.chrome_url_overrides.history;s={"chrome_url_overrides/history":yt.default.join(t,r)}}if(e.chrome_url_overrides.newtab){let r=e.chrome_url_overrides.newtab;s={"chrome_url_overrides/newtab":yt.default.join(t,r)}}if(e.chrome_url_overrides.bookmarks){let r=e.chrome_url_overrides.bookmarks;s={"chrome_url_overrides/bookmarks":yt.default.join(t,r)}}return s}var Kn=a(require("path"));function Yn(t,e){if(!e||!e.devtools_page)return;let s=e.devtools_page;return Kn.default.join(t,s)}var qs=a(require("path"));function Qn(t,e){if(e.options_page){let r=e.options_page;return qs.default.join(t,r)}if(!e||!e.options_ui||!e.options_ui.page)return;let s=e.options_ui.page;return qs.default.join(t,s)}var eo=a(require("path"));function to(t,e){if(!e||!e.page_action||!e.page_action.default_popup)return;let s=e.page_action.default_popup;return eo.default.join(t,s)}var so=a(require("path"));function ro(t,e){if(!e||!e.sandbox||!e.sandbox.pages)return{"sandbox/page-0":void 0};let s=e.sandbox.pages,r={};for(let[n,o]of s.entries())r[`sandbox/page-${n}`]=so.default.join(t,o);return r}var no=a(require("path"));function oo(t,e){if(!e||!e.side_panel||!e.side_panel.default_path)return;let s=e.side_panel.default_path;return no.default.join(t,s)}var io=a(require("path"));function ao(t,e){if(!e||!e.sidebar_action||!e.sidebar_action.default_panel)return;let s=e.sidebar_action.default_panel;return io.default.join(t,s)}function Fe(t,e){return{"action/default_popup":Vn(t,e),"browser_action/default_popup":Gn(t,e),...Zn(t,e),devtools_page:Yn(t,e),"options_ui/page":Qn(t,e),"page_action/default_popup":to(t,e),...ro(t,e),"side_panel/default_path":oo(t,e),"sidebar_action/default_panel":ao(t,e)}}var Ws=a(require("path"));function co(t,e){if(!e||!e.action||!e.action.default_icon)return;if(typeof e.action.default_icon=="string")return Ws.default.join(t,e.action.default_icon);let s=[];for(let r in e.action.default_icon)s.push(Ws.default.join(t,e.action.default_icon[r]));return s}var Js=a(require("path"));function lo(t,e){if(!e||!e.browser_action||!e.browser_action.default_icon)return;let s=[];if(typeof e.browser_action.default_icon=="string")return Js.default.join(t,e.browser_action.default_icon);for(let r in e.browser_action.default_icon){let n=e.browser_action.default_icon[r]=Js.default.join(t,e.browser_action.default_icon[r]);s.push(n)}return s}var zs=a(require("path"));function po(t,e){if(!(!e||!e.browser_action||!e.browser_action.theme_icons)){for(let s of e.browser_action.theme_icons)s.light&&(s.light=zs.default.join(t,s.light)),s.dark&&(s.dark=zs.default.join(t,s.dark)),s.size&&delete s.size;return e.browser_action.theme_icons}}var fo=a(require("path"));function uo(t,e){if(!e||!e.icons)return;let s=[];for(let r in e.icons){let n=fo.default.join(t,e.icons[r]);s.push(n)}return s}var Hs=a(require("path"));function mo(t,e){if(!e||!e.page_action||!e.page_action.default_icon)return;if(typeof e.page_action.default_icon=="string")return Hs.default.join(t,e.page_action.default_icon);let s=[];for(let r in e.page_action.default_icon){let n=Hs.default.join(t,e.page_action.default_icon[r]);s.push(n)}return s}var go=a(require("path"));function ho(t,e){return!e||!e.sidebar_action||!e.sidebar_action.default_icon?void 0:go.default.join(t,e.sidebar_action.default_icon)}function yo(t,e){return{action:co(t,e),browser_action:lo(t,e),"browser_action/theme_icons":po(t,e),icons:uo(t,e),page_action:mo(t,e),sidebar_action:ho(t,e)}}var bo=a(require("path"));function xo(t,e){let s={};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=>{s[`declarative_net_request/${n.id}`]=bo.default.join(t,n.path)}),s)}var wo=a(require("path"));function vo(t,e){if(!e||!e.storage||!e.storage.managed_schema)return;let s=e.storage.managed_schema;return wo.default.join(t,s)}function So(t,e){return{...xo(t,e),"storage/managed_schema":vo(t,e)}}var Ce=a(require("path")),je=a(require("fs"));function _o(t,e){let s=Ce.default.join(Ce.default.dirname(e),"_locales"),r=[];if(je.default.existsSync(s))for(let n of je.default.readdirSync(s)){let o=Ce.default.join(s,n);if(o&&je.default.statSync(o).isDirectory())for(let i of je.default.readdirSync(o))r.push(Ce.default.join(t,"_locales",n,i))}return r}var Po=a(require("path"));function Eo(t,e){if(!e||!e.background)return;let s=e.background.scripts;if(s)return s.map(r=>Po.default.join(t,r))}var ko=a(require("path"));function $o(t,e){if(!e||!e.background)return;let s=e.background.service_worker;if(s)return ko.default.join(t,s)}var Vs=a(require("path"));function Fo(t,e){if(!e||!e.content_scripts)return{"content_scripts/content-0":void 0};let s=o=>{if(o.js?.length!==0)return o.js?.map(i=>Vs.default.join(t,i))},r=o=>{if(o.css?.length!==0)return o.css?.map(i=>Vs.default.join(t,i))},n={};for(let[o,i]of e.content_scripts.entries()){let c=s(i),l=r(i);n[`content_scripts/content-${o}`]=[...(c||[]).filter(p=>p!=null),...(l||[]).filter(p=>p!=null)]}return n}var Co=a(require("path"));function jo(t,e){if(!e||!e.user_scripts||!e.user_scripts.api_script)return;let s=e.user_scripts.api_script;return Co.default.join(t,s)}function De(t,e){return{"background/scripts":Eo(t,e),"background/service_worker":$o(t,e),...Fo(t,e),"user_scripts/api_script":jo(t,e)}}function Do(t){if(!(!t||!t.web_accessible_resources||!t.web_accessible_resources.length))return t.web_accessible_resources}function le({manifestPath:t,browser:e}){let s=Lo.default.dirname(t),r=require(t),n=P(r,e||"chrome");return{html:Fe(s,n),icons:yo(s,n),json:So(s,n),locales:_o(s,t),scripts:De(s,n),web_accessible_resources:Do(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 s=[];function r(n){let o=bt.default.readdirSync(n,{withFileTypes:!0});for(let i of o){let c=Le.default.join(n,i.name);i.isDirectory()?r(c):i.isFile()&&e(i.name)&&s.push(c)}}return r(t),s}function wt(t,e,s=""){return!e||!e.length?{}:e.reduce((r,n)=>{let o=Le.default.extname(n),i=Le.default.basename(n,o),c=s?`${s}/${i}`:Le.default.relative(t,n);return{...r,[c]:n}},{})}function Oo({manifestPath:t}){let e=pe.default.dirname(t),s={public:pe.default.join(e,"public"),pages:pe.default.join(e,"pages"),scripts:pe.default.join(e,"scripts")},r={public:xt(s.public,()=>!0),pages:xt(s.pages,o=>o.endsWith(".html")),scripts:xt(s.scripts,o=>[".js",".mjs",".jsx",".mjsx",".ts",".mts",".tsx",".mtsx"].includes(pe.default.extname(o)))};return{public:wt(e,r.public),pages:wt(e,r.pages,"pages"),scripts:wt(e,r.scripts,"scripts")}}var Io=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",s=>{s.hooks.processAssets.tap({name:"manifest:emit-manifest",stage:fe.Compilation.PROCESS_ASSETS_STAGE_PRE_PROCESS},()=>{let r=this.manifestPath,n;try{let c=Io.default.readFileSync(r,"utf-8");n=JSON.parse(c),"$schema"in n&&delete n.$schema}catch(c){s.errors.push(new fe.default.WebpackError(Ur(c)));return}let o=JSON.stringify(n,null,2);s.emitAsset("manifest.json",new fe.sources.RawSource(o))})})}};var Oe=require("@rspack/core");function Mo(t,e){return t.background&&t.background.scripts&&{background:{...t.background,...t.background.scripts&&{scripts:[...t.background.scripts.map(s=>h("background/scripts.js",s,e))]}}}}var Ao=a(require("path"));var St=t=>Ao.default.basename(t);function Ro(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(([s,r])=>[s,h(`icons/${St(r)}`,r,e)]))},...t.browser_action.theme_icons&&{theme_icons:t.browser_action.theme_icons.map(s=>({...s,...s.light&&{light:h(`browser_action/${St(s.light)}`,s.light,e)},...s.dark&&{dark:h(`browser_action/${St(s.dark)}`,s.dark,e)}}))}}}}function No(t,e){return t.declarative_net_request&&{declarative_net_request:{...t.declarative_net_request,rule_resources:t.declarative_net_request.rule_resources.map(s=>({...s,path:s.path&&h(`declarative_net_request/${s.id}.json`,s.path,e)}))}}}function To(t,e){return{...Mo(t,e),...Ro(t,e),...No(t,e)}}var Bo=a(require("path"));var Uo=t=>Bo.default.basename(t);function qo(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/${Uo(t.action.default_icon)}`,t.action.default_icon,e):Object.fromEntries(Object.entries(t.action.default_icon).map(([s,r])=>[s,h(`action/${Uo(r)}`,r,e)]))}}}}function Wo(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 Jo(t,e){return{...qo(t,e),...Wo(t,e),..._t(t,e)}}function zo(t,e){return t.background&&t.background.page&&{background:{...t.background,...t.background.page&&{page:h("background/page.html",t.background.page,e)}}}}function Ho(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 Vo(t,e){return t.content_scripts&&{content_scripts:t.content_scripts.map((s,r)=>{let n=[...new Set(s.js)],o=[...new Set(s.css)];return{...s,js:[...n.map(i=>h(`content_scripts/content-${r}.js`,i,e))],css:[...o.map(i=>h(`content_scripts/content-${r}.css`,i,e))]}})}}function Xo(t,e){return t.devtools_page&&{devtools_page:h("devtools_page.html",t.devtools_page,e)}}var Go=a(require("path"));var vl=t=>Go.default.basename(t);function Zo(t,e){return t.icons&&{icons:Object.fromEntries(Object.entries(t.icons).map(([s,r])=>[s,h(`icons/${vl(r)}`,r,e)]))}}function Ko(t,e){return t.options_page&&{options_page:h("options_ui/page.html",t.options_page,e)}}function Yo(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 ei=a(require("path"));var Qo=t=>ei.default.basename(t);function ti(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/${Qo(t.page_action.default_icon)}`,t.page_action.default_icon,e):Object.fromEntries(Object.entries(t.page_action.default_icon).map(([s,r])=>[s,h(`icons/${Qo(r)}`,r,e)]))}}}}function si(t,e){return t.sandbox&&{sandbox:{...t.sandbox,...t.sandbox.pages&&{pages:t.sandbox.pages.map((s,r)=>h(`sandbox/page-${r}.html`,s,e))}}}}var ri=a(require("path"));var Sl=t=>ri.default.basename(t);function ni(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/${Sl(t.sidebar_action.default_icon)}`,t.sidebar_action.default_icon,e)}}}}function oi(t,e){return t.storage&&{storage:{...t.storage.managed_schema&&{managed_schema:h("storage/managed_schema.json",t.storage.managed_schema,e)}}}}var ii=a(require("path"));var _l=t=>ii.default.basename(t);function ai(t,e){return t.theme&&{theme:{...t.theme,...t.theme.images&&{images:{...t.theme.images,theme_frame:h(`theme/images/${_l(t.theme.images.theme_frame)}`,t.theme.images.theme_frame,e)}}}}}function ci(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 li(t){return t.web_accessible_resources&&t.web_accessible_resources.length&&{web_accessible_resources:t.web_accessible_resources}}function pi(t,e){return{...zo(t,e),...Ho(t,e),...Vo(t,e),...Xo(t,e),...Zo(t,e),...Ko(t,e),...Yo(t,e),...ti(t,e),...si(t,e),..._t(t,e),...ni(t,e),...oi(t,e),...ai(t,e),...ci(t,e),...li(t)}}function Xs(t,e,s){let r=e||require(t);return JSON.stringify({...r,...pi(r,s),...To(r,s),...Jo(r,s)},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((s,r)=>(s.css.length&&!s.js.length&&(s.js=[h(`content_scripts-${r}`,"dev.js",{})]),s)):{}}apply(e){e.hooks.thisCompilation.tap("manifest:update-manifest",s=>{s.hooks.processAssets.tap({name:"manifest:update-manifest",stage:Oe.Compilation.PROCESS_ASSETS_STAGE_SUMMARIZE},()=>{if(s.errors.length>0)return;let r=W(s,this.manifestPath),n=Xs(this.manifestPath,r,this.excludeList||{}),o={...r,...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);s.updateAsset("manifest.json",c)}),e.options.mode==="production"&&s.hooks.processAssets.tap("manifest:update-manifest",()=>{if(s.errors.length>0)return;let r=W(s,this.manifestPath),n=Xs(this.manifestPath,r,this.excludeList||{}),o={...r,...JSON.parse(n)},i=JSON.stringify(o,null,2),c=new Oe.sources.RawSource(i);s.updateAsset("manifest.json",c)})})}};var fi=a(require("fs")),Et=class{dependencyList;constructor(e){this.dependencyList=e}apply(e){e.hooks.afterCompile.tap("manifest:add-dependency",s=>{if(s.errors?.length)return;let r=new Set(s.fileDependencies);this.dependencyList&&this.dependencyList.forEach(n=>{fi.default.existsSync(n)&&(r.has(n)||(r.add(n),s.fileDependencies.add(n)))})})}};var ui=a(require("fs")),mi=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 s=Array.isArray(e)?e:[e];if(typeof s[0]=="string")return s;let r=[];if(typeof e=="object"&&!Array.isArray(e)){let n=e;n.light&&r.push(n.light),n.dark&&r.push(n.dark)}return r}handleErrors(e,s){let r=[".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=mi.default.extname(m),b=require(this.manifestPath),S=P(b,"chrome").name||"Extension.js";if(!ui.default.existsSync(m)){if(m.startsWith("/"))return;let E=oe(S,l,m);r.includes(g)?e.errors.push(new s(E)):n.includes(g)?e.errors.push(new s(E)):o.includes(g)?e.errors.push(new s(E)):g===i?e.errors.push(new s(E)):e.errors.push(new s(E))}}}}apply(e){e.hooks.compilation.tap("manifest:check-manifest-files",s=>{s.hooks.processAssets.tap({name:"compatibility:check-manifest-files",stage:$t.Compilation.PROCESS_ASSETS_STAGE_OPTIMIZE_COUNT},()=>{let r=$t.default.WebpackError;this.handleErrors(s,r)})})}};var di=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",(s,r)=>{if((s.modifiedFiles||new Set).has(this.manifestPath)){let o=s.options.context||"",i=`${o}/package.json`;if(!di.default.existsSync(i)){r();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)));s.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=Br(T,A);m.errors.push(new Ct.default.WebpackError(_e))}})})}r()})}};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 Qs=a(require("path"));var Zs=a(require("fs")),Ot=a(require("@rspack/core")),xi=require("@rspack/core");var gi=a(require("fs")),me=a(require("path")),hi=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:s=[]}=t;for(let r of s)if(r.nodeName==="script"){let n=ue.default.getAttribute(r,"src");if(!n||Dt(n))continue;e({filePath:n,childNode:r,assetType:"script"})}else if(r.nodeName==="link"){let n=ue.default.getAttribute(r,"href"),o=ue.default.getAttribute(r,"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:r,assetType:"staticHref"}:{filePath:n,childNode:r,assetType:"css"})}else if(r.nodeName==="a"||r.nodeName==="area"){let n=ue.default.getAttribute(r,"href");if(!n||Dt(n))continue;e({filePath:n,childNode:r,assetType:"staticHref"})}else if(r.nodeName==="audio"||r.nodeName==="embed"||r.nodeName==="iframe"||r.nodeName==="img"||r.nodeName==="input"||r.nodeName==="source"||r.nodeName==="track"||r.nodeName==="video"){let n=ue.default.getAttribute(r,"src");if(!n||Dt(n))continue;e({filePath:n,childNode:r,assetType:"staticSrc"})}else Ie(r,e)}function D(t,e){let s={css:[],js:[],static:[]};if(!t)return s;let r=e||gi.default.readFileSync(t,{encoding:"utf8"}),n=hi.default.parse(r),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":s.js?.push(u);break;case"css":s.css?.push(u);break;case"staticSrc":case"staticHref":if(l.startsWith("#"))break;s.static?.push(u);break;default:break}});return{css:s.css,js:s.js,static:s.static}}}function yi(t,e,s){let r=Object.keys(t).find(o=>{let i=t[o];return t[o]===e||D(i)?.js?.includes(e)||D(i)?.css?.includes(e)})||"",n=Gs(e);return r?`/${r.replace(n,"")}${s}`:`${e.replace(n,"")}${s}`}function Gs(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,s){return s?`/${t}${e}`:`${t}${e}`}function bi(t,e){return Object.values(e||{}).some(s=>s===t)}var Lt=class{manifestPath;includeList;excludeList;constructor(e){this.manifestPath=e.manifestPath,this.includeList=e.includeList,this.excludeList=e.excludeList}apply(e){let s=require(this.manifestPath),n=P(s,"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(!Zs.default.existsSync(p)){let m=oe(n,l,p);o.warnings.push(new Ot.default.WebpackError(m));return}let u=Zs.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",s=>{s.hooks.processAssets.tap({name:"html:add-assets-to-compilation",stage:Y.Compilation.PROCESS_ASSETS_STAGE_ADDITIONAL},()=>{if(s.errors.length>0)return;let r=Object.entries(this.includeList||{});for(let n of r){let[o,i]=n,c=o+".html";if(i){let l=s.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)&&!bi(g,this.includeList)&&!de.default.basename(g).startsWith("#")){let A=st(i,g);g.startsWith("/")||s.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(!s.getAsset(S))if(g.endsWith(".html")){let E=D(g),A=[...E?.js||[],...E?.css||[],...E?.static||[]];s.emitAsset(S,_),A.forEach(T=>{let _e=It.default.readFileSync(T),q=new Y.sources.RawSource(_e),Fr=de.default.join("assets",de.default.basename(T));s.getAsset(Fr)||s.emitAsset(Fr,q)})}else s.emitAsset(S,_)}}}}})})}};var wi=a(require("path")),Ks=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 s=this.includeList||{};for(let r of Object.entries(s)){let[n,o]=r;if(o){if(!Ks.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=wi.default.resolve(__dirname,"minimum-script-file.mjs");p.push(u)}Ks.default.existsSync(o)&&($(o,this.excludeList)||(e.options.entry={...e.options.entry,[n]:{import:p}}))}}}};var Nt=require("@rspack/core");var Ys=a(require("fs")),H=a(require("path")),O=a(require("parse5-utils"));function vi(t,e,s,r,n){let o=Ys.default.readFileSync(s,{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(s),S=H.default.resolve(_,m),E=Gs(S),A=$(H.default.resolve(_,m),n),T=H.default.join("/",H.default.normalize(m)),_e=en(S,r);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=yi(r,S,E);p=O.default.setAttribute(g,b==="staticSrc"?"src":"href",q)}else{let q=H.default.join("assets",H.default.basename(S,E));Ys.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",s=>{s.hooks.processAssets.tap({name:"html:update-html-file",stage:Nt.Compilation.PROCESS_ASSETS_STAGE_DERIVED},()=>{if(s.errors.length>0)return;let r=this.includeList||{};for(let n of Object.entries(r)){let[o,i]=n;if(i){let c=vi(s,o,i,r,this.excludeList||{});if(!$(i,this.excludeList)&&c){let l=new Nt.sources.RawSource(c),p=z(o,".html");s.updateAsset(p,l)}}}})})}};var Si=a(require("fs")),_i=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",s=>{s.hooks.processAssets.tap({name:"html:add-to-file-dependencies",stage:_i.Compilation.PROCESS_ASSETS_STAGE_ADDITIONS},()=>{if(s.errors?.length)return;let r=this.includeList||{};for(let n of Object.entries(r)){let[,o]=n;if(o){let i=D(o),c=new Set(s.fileDependencies);if(Si.default.existsSync(o)){let l=[o,...i?.static||[]];for(let p of l)c.has(p)||(c.add(p),p===o&&s.fileDependencies.add(p))}}}})})}};var Pi=a(require("fs"));var Ut=class{manifestPath;includeList;initialHtmlAssets={};constructor(e){this.manifestPath=e.manifestPath,this.includeList=e.includeList}hasEntriesChanged(e,s){if(!s||!e||e.length!==s.length)return!0;for(let r=0;r<e.length;r++)if(e[r]!==s[r])return!0;return!1}storeInitialHtmlAssets(e){Object.entries(e).forEach(([s,r])=>{let n=r;if(n){if(!Pi.default.existsSync(n)){let o=require(this.manifestPath),c=P(o,"chrome").name||"Extension.js";console.error(oe(c,s,n)),process.exit(1)}this.initialHtmlAssets[n]={js:D(n)?.js||[],css:D(n)?.css||[]}}})}apply(e){let s=this.includeList||{};this.storeInitialHtmlAssets(s),e.hooks.make.tapAsync("html:throw-if-recompile-is-needed",(r,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(Vr(i))}n()})}};var Ei=a(require("fs")),ki=require("@rspack/core");function El(t,e){let s="Module not found: Error: Can't resolve ",n=e.message.replace(s,"").split("'")[1];if(e.message.includes(s))for(let o of Object.entries(t)){let[,i]=o;if(i){if(!Ei.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=st(i,n);return new ki.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",s=>{s.hooks.afterSeal.tapPromise("html:handle-common-errors",async()=>{s.errors.forEach((r,n)=>{let o=El(this.includeList||{},r);o&&(s.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:[Qs.default.dirname(this.manifestPath)],exclude:[/[\\/]node_modules[\\/]/],use:[{loader:require.resolve(Qs.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 er=a(require("fs")),$i=a(require("path"));function Fi(t,e){return(Array.isArray(t)?t||[]:t?[t]:[]).filter(n=>{let o=er.default.existsSync(n)&&!$(n,e),i=$i.default.extname(n);return o&&(i===".js"||i===".mjs"||i===".jsx"||i===".ts"||i===".tsx")})}function Ci(t,e){return(Array.isArray(t)?t||[]:t?[t]:[]).filter(n=>er.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 s=this.includeList||{},r={};for(let[n,o]of Object.entries(s)){let i=Fi(o,this.excludeList),c=Ci(o,this.excludeList),l=[...i,...c];(c.length||i.length)&&(r[n]={import:l})}e.options.entry={...e.options.entry,...r}}};var Q=require("@rspack/core"),kl=['var isBrowser = !!(() => { try { return browser.runtime.getURL("/") } catch(e) {} })()','var isChrome = !!(() => { try { return chrome.runtime.getURL("/") } catch(e) {} })()'],$l=[...kl,`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:s}=e.webpack;e.hooks.compilation.tap("PublicPathRuntimeModule",r=>{r.hooks.runtimeRequirementInTree.for(s.publicPath).tap(t.name,n=>{let o=Fl();return r.addRuntimeModule(n,o),!0})})}};function Fl(){class t extends Q.RuntimeModule{constructor(){super("publicPath",Q.RuntimeModule.STAGE_BASIC)}generate(){let s=this.compilation?.outputOptions.publicPath;return Q.Template.asString([...$l,`var path = ${JSON.stringify(this.compilation?.getPath(s||"",{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 s=require(this.manifestPath),r=P(s,this.browser);r.content_scripts?.some(n=>n.world&&n.world.toLowerCase()==="main")&&Z.includes(this.browser)&&!r.key&&(console.error(Zr()),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 tr(t){let e=ge.default.join(ge.default.dirname(t),"_locales"),s=[];if(Ae.default.existsSync(e))for(let r of Ae.default.readdirSync(e)){let n=ge.default.join(e,r);if(n&&Ae.default.statSync(n).isDirectory())for(let o of Ae.default.readdirSync(n))s.push(ge.default.join(ge.default.dirname(t),"_locales",r,o))}return s}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",s=>{s.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";s.errors.push(new V.default.WebpackError(Tr(i,this.manifestPath)));return}if(s.errors.length>0)return;let r=tr(this.manifestPath);for(let n of Object.entries(r||[])){let[o,i]=n,c=i;if(c){if(Re.default.extname(c)!==".json")continue;if(!Ne.default.existsSync(c)){s.warnings.push(new V.default.WebpackError(rt(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);s.emitAsset(m,p)}}}})}),e.hooks.thisCompilation.tap("locales:module",s=>{s.hooks.processAssets.tap({name:"locales:module",stage:V.Compilation.PROCESS_ASSETS_STAGE_ADDITIONS},()=>{if(s.errors?.length)return;let r=tr(this.manifestPath);for(let n of Object.entries(r||[])){let[,o]=n;if(o){let i=new Set(s.fileDependencies),c=r||[];for(let l of c)Ne.default.existsSync(l)&&Re.default.extname(l)===".json"&&(i.has(l)||(i.add(l),s.fileDependencies.add(l)))}}})})}};var Xt=a(require("fs")),ee=a(require("@rspack/core"));var Gt=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",s=>{s.hooks.processAssets.tap({name:"json:module",stage:ee.Compilation.PROCESS_ASSETS_STAGE_ADDITIONS},()=>{if(s.errors.length>0)return;let r=this.includeList||{};for(let n of Object.entries(r)){let[o,i]=n,c=Array.isArray(i)?i:[i];for(let l of c)if(l&&!$(l,this.excludeList)){if(!Xt.default.existsSync(l)){s.warnings.push(new ee.default.WebpackError(rt(o,l)));return}let p=Xt.default.readFileSync(l),u=new ee.sources.RawSource(p);s.emitAsset(o+".json",u)}}})}),e.hooks.thisCompilation.tap("json:module",s=>{s.hooks.processAssets.tap({name:"json:module",stage:ee.Compilation.PROCESS_ASSETS_STAGE_ADDITIONS},()=>{if(s.errors?.length)return;let r=this.includeList||{};for(let n of Object.entries(r)){let[,o]=n,i=Array.isArray(o)?o:[o];for(let c of i)if(c){let l=new Set(s.fileDependencies);$(c,this.excludeList)||Xt.default.existsSync(c)&&(l.has(c)||(l.add(c),s.fileDependencies.add(c)))}}})})}};var sr=a(require("fs")),ji=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",s=>{s.hooks.processAssets.tap({name:"icons:emit-file",stage:Kt.Compilation.PROCESS_ASSETS_STAGE_OPTIMIZE_TRANSFER},()=>{if(s.errors.length>0)return;let r=this.includeList||{};for(let n of Object.entries(r)){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(!sr.default.existsSync(l))continue;if(!$(l,this.excludeList)){let p=sr.default.readFileSync(l),u=new Kt.sources.RawSource(p),m=ji.default.basename(l),b=`${o.endsWith("theme_icons")?o.replace("theme_icons",""):o}/${m}`;s.emitAsset(b,u)}}}})})}};var Di=a(require("fs")),Li=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",s=>{s.hooks.processAssets.tap({name:"icons:add-to-file-dependencies",stage:Li.Compilation.PROCESS_ASSETS_STAGE_ADDITIONS},()=>{if(s.errors?.length)return;let r=this.includeList||{};for(let n of Object.entries(r)){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(s.fileDependencies);Di.default.existsSync(c)&&(l.has(c)||(l.add(c),s.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 ts=require("@rspack/core");function Oi(t){return t.map(e=>{try{let s=new URL(e.replace(/^\*:\/\//,"https://"));return e.endsWith(s.pathname)?`${e.substring(0,e.length-s.pathname.length)}/*`:s.pathname==="/"?`${e}/*`:e}catch{return e}})}var es=class{manifestPath;includeList;excludeList;constructor(e){this.manifestPath=e.manifestPath,this.includeList=e.includeList,this.excludeList=e.excludeList}generateManifestPatches(e,s){let r=W(e,this.manifestPath),n=r.web_accessible_resources||[],o=r.web_accessible_resources||[];for(let[l,p]of Object.entries(s)){let u=r.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(r.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:Oi(m)})}else g.forEach(b=>{o.includes(b)||o.push(b)})}}r.manifest_version===3?n.length>0&&(r.web_accessible_resources=n):o.length>0&&(r.web_accessible_resources=Array.from(new Set(o)));let i=JSON.stringify(r,null,2),c=new ts.sources.RawSource(i);e.getAsset("manifest.json")&&e.updateAsset("manifest.json",c)}apply(e){e.hooks.thisCompilation.tap("plugin-extension:feature-web-resources",s=>{s.hooks.processAssets.tap({name:"plugin-extension:feature-web-resources",stage:ts.Compilation.PROCESS_ASSETS_STAGE_ANALYSE},()=>{let r=[],n=Object.keys(this.includeList||{});for(let c of n.filter(Boolean))c.startsWith("content_scripts")&&(Array.isArray(c)?r.push(...c):typeof c=="string"&&r.push(c));let o=s.chunkGraph,i={};s.entrypoints.forEach((c,l)=>{if(r.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(s,i)})})}};var I=a(require("fs")),M=a(require("path")),Ii=a(require("chokidar")),ss=class{options;constructor(e){this.options=e}ensureDirectoryExistence(e){let s=M.default.dirname(e);if(I.default.existsSync(s))return!0;I.default.mkdirSync(s,{recursive:!0})}copyFile(e,s){this.ensureDirectoryExistence(s),I.default.copyFileSync(e,s)}copyFolder(e,s){I.default.existsSync(s)||I.default.mkdirSync(s,{recursive:!0}),I.default.readdirSync(e).forEach(n=>{let o=M.default.join(e,n),i=M.default.join(s,n);I.default.statSync(o).isDirectory()?this.copyFolder(o,i):this.copyFile(o,i)})}apply(e){let s=M.default.dirname(this.options.manifestPath),r=M.default.join(s,"public"),n=e.options.output?.path||"";I.default.existsSync(r)&&(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(r)&&this.copyFolder(r,o)}),e.options.mode!=="production"&&e.hooks.afterPlugins.tap("special-folders:copy-public-folder",()=>{let o=M.default.join(s,"public"),i=Ii.default.watch(o,{ignoreInitial:!0});i.on("add",c=>{let l=M.default.join(n,M.default.relative(s,c));this.copyFile(c,l)}),i.on("change",c=>{let l=M.default.join(n,M.default.relative(s,c));this.copyFile(c,l)}),i.on("unlink",c=>{let l=M.default.join(n,M.default.relative(s,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")),rr=a(require("chokidar"));var rs=class{manifestPath;constructor(e){this.manifestPath=e}throwCompilationError(e,s,r){let n=U.relative(process.cwd(),s),c=qr(r?"Adding":"Removing",e,e==="pages"?"HTML pages":"script files",n);if(r){console.warn(c);return}console.error(c),process.exit(1)}apply(e){e.hooks.afterPlugins.tap("special-folders:warn-upon-folder-changes",()=>{let s=U.dirname(this.manifestPath),r=U.join(s,"pages"),n=U.join(s,"scripts"),o=rr.watch(r,{ignoreInitial:!0}),i=rr.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 ns=class{static name="plugin-special-folders";options;constructor(e){this.options=e}apply(e){let{manifestPath:s}=this.options;new ss({manifestPath:s}).apply(e),e.options.mode==="development"&&e.options.watchOptions&&new rs(s).apply(e)}};var os=class{static name="plugin-extension";manifestPath;browser;constructor(e){this.manifestPath=e.manifestPath,this.browser=e.browser||"chrome"}apply(e){let s=this.manifestPath,r=le({manifestPath:s,browser:this.browser}),n=Oo({manifestPath:s,browser:this.browser});new jt({browser:this.browser,manifestPath:s,includeList:{...r.html,...r.icons,...r.json,...r.scripts},excludeList:n.public}).apply(e),new qt({manifestPath:s,includeList:{...r.html,...n.pages},excludeList:{...n.public,...n.scripts}}).apply(e),new Ht({manifestPath:s,browser:this.browser,includeList:{...r.scripts,...n.scripts},excludeList:{...n.public,...n.pages}}).apply(e),new Vt({manifestPath:s}).apply(e),new Gt({manifestPath:s,includeList:r.json,excludeList:n.public}).apply(e),new Qt({manifestPath:s,includeList:r.icons,excludeList:n.public}).apply(e),new es({manifestPath:s,includeList:{...r.scripts,...n.scripts},excludeList:n.public}).apply(e),new ns({manifestPath:s}).apply(e)}};var Be=a(require("path"));var Mi=a(require("path")),Ai=a(require("ws"));function is(t,e){t.clients.forEach(s=>{s.readyState===Ai.default.OPEN&&s.send(JSON.stringify(e))})}function Ri(t,e,s){if(!s||!e)return;let r=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}Mi.default.basename(s)==="manifest.json"&&is(t,{changedFile:"manifest.json"}),r?.forEach(i=>{i.includes(s)&&is(t,{changedFile:"_locales"})}),Object.entries(n).forEach(([i,c])=>{let l=Array.isArray(c)?c:[c];Object.values(l).flatMap(u=>u).includes(s)&&i==="background/service_worker"&&is(t,{changedFile:"service_worker"})}),Object.entries(o).forEach(([i,c])=>{c?.includes(s)&&i==="declarative_net_request"&&is(t,{changedFile:"declarative_net_request"})})}var or=a(require("path")),Bi=a(require("fs")),Ue=a(require("ws"));var Te=a(require("path")),Cl=a(require("http")),Ti=a(require("https")),nr=a(require("fs"));var Ni=t=>{if(!nr.default.existsSync(t))return;let e=Te.default.basename(t);return nr.default.readFileSync(Te.default.join(__dirname,"certs",e))};function Ui(t){let e={key:Ni(Te.default.join(__dirname,"certs","localhost.key")),cert:Ni(Te.default.join(__dirname,"certs","localhost.cert"))},s=Ti.default.createServer(e,(r,n)=>{n.writeHead(200),n.end()});return s.on("error",r=>{throw console.error(Gr(t)),new Error(r.message)}),{server:s,port:t}}function jl(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:Ui(t+2).server});default:return new Ue.default.Server({host:"localhost",port:8888})}}async function qi(t,e){let s=t.options.context||"",r=require(or.default.join(s,"manifest.json")),o=jl(8e3,e.browser);if(o.on("connection",i=>{i.send(JSON.stringify({status:"serverReady"})),i.on("error",c=>{console.log(zr(c))}),i.on("message",c=>{let l=JSON.parse(c.toString());if(l.status==="clientReady"){let p=require(or.default.join(s,"manifest.json"));setTimeout(()=>{console.log(Ms(p,e.browser,l)),console.log("")},2500),tn(e.browser)&&setTimeout(()=>{console.log(Jr(e.browser))},5e3)}})}),e.browser==="firefox"||e.browser==="gecko-based"){let i=sn(r);console.log(Ms(r,e.browser,i)),console.log(""),Bi.default.existsSync(tt)||(console.log(Xr()),console.log(""))}return o}var Wi=a(require("path")),ir=a(require("fs"));function Ji(t,e){let s=Wi.default.resolve(__dirname,`./extensions/${t}-manager-extension/reload-service.js`);try{let r=ir.default.readFileSync(s,"utf8"),n=r.replace(/__RELOAD_PORT__/g,e.toString());n!==r&&ir.default.writeFileSync(s,n,"utf8")}catch(r){console.error(`Error processing file: ${r.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;Ji(this.browser,this.port);let s=await qi(e,{...this,mode:e.options.mode,browser:this.browser,stats:this.stats,port:this.port});e.hooks.watchRun.tapAsync("reload:create-web-socket-server",(r,n)=>{let i=(r.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&&Ri(s,this.manifestPath,i),n()})}};var ar=a(require("path"));function zi(t,e,s){t.options.module.rules.push({test:/\.(js|mjs|jsx|mjsx|ts|mts|tsx|mtsx)$/,include:[ar.default.dirname(s)],exclude:[/[\\/]node_modules[\\/]/],use:[{loader:ar.default.resolve(__dirname,"./inject-chromium-client-loader"),options:{manifestPath:s,browser:e}}]})}var cr=a(require("path"));function Hi(t,e,s){t.options.module.rules.push({test:/\.(js|mjs|jsx|mjsx|ts|mts|tsx|mtsx)$/,include:[cr.default.dirname(s)],exclude:[/[\\/]node_modules[\\/]/],use:[{loader:cr.default.resolve(__dirname,"./inject-firefox-client-loader"),options:{manifestPath:s,browser:e}}]})}var cs=require("@rspack/core");var lr=a(require("content-security-policy-parser"));function Vi(t){let e="";for(let s in t)e+=`${s} ${t[s].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 s=(0,lr.default)(e);if(!s.get("script-src"))s.set("script-src",["'self'","'unsafe-eval'","blob:","filesystem:"]);else{let n=s.get("script-src")||[];n.includes("'unsafe-eval'")||n.push("'unsafe-eval'"),n.includes("blob:")||n.push("blob:"),n.includes("filesystem:")||n.push("filesystem:"),s.set("script-src",n)}s.get("object-src")||s.set("object-src",["'self'","blob:","filesystem:"]);let r=Object.fromEntries(s.entries());return Vi(r)}function Gi(t){let e=t.content_security_policy;if(!e)return{extension_pages:"script-src 'self'; object-src 'self';"};let s=(0,lr.default)(e.extension_pages||""),r={};for(let i in r)s.get(i)||s.set(i,r[i]);let n=Object.fromEntries(s.entries());return{extension_pages:Vi(n)}}function Zi(t){let e=["/*.json","/*.js","/*.css"],s=t.web_accessible_resources;if(!s||s.length===0)return e;let r=new Set(s);for(let n of e)r.has(n)||r.add(n);return Array.from(r)}function Ki(t){let e=["/*.json","/*.js","/*.css"];return[...t.web_accessible_resources||[],{resources:e,matches:["<all_urls>"]}]}function pr(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 fr(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 as=class{manifestPath;browser;constructor(e){this.manifestPath=e.manifestPath,this.browser=e.browser||"chrome"}generateManifestPatches(e){let s=W(e,this.manifestPath),r={...s,content_security_policy:s.manifest_version===3?Gi(s):Xi(s),...s.manifest_version===3?s.permissions?{permissions:[...new Set(["scripting",...s.permissions])]}:{permissions:["scripting"]}:{},...pr(s,this.browser),...fr(s),web_accessible_resources:s.manifest_version===3?Ki(s):Zi(s)},n=JSON.stringify(r,null,2),o=new cs.sources.RawSource(n);e.getAsset("manifest.json")&&e.updateAsset("manifest.json",o)}apply(e){e.hooks.thisCompilation.tap("run-chromium:apply-manifest-dev-defaults",s=>{s.hooks.processAssets.tap({name:"run-chromium:apply-manifest-dev-defaults",stage:cs.Compilation.PROCESS_ASSETS_STAGE_SUMMARIZE},r=>{if(!this.manifestPath){let n="No manifest.json found in your extension bundle. Unable to patch manifest.json.";s&&e.rspack.WebpackError&&s.errors.push(new e.rspack.WebpackError(`run-chromium: ${n}`));return}this.generateManifestPatches(s)})})}};var ur=a(require("fs")),he=a(require("path")),Yi=a(require("webpack-target-webextension"));var ls=class{manifestPath;browser;constructor(e){this.manifestPath=e.manifestPath,this.browser=e.browser||"chrome"}handleBackground(e,s,r){let n=he.default.resolve(__dirname,s==="firefox"||s==="gecko-based"?"minimum-firefox-file.mjs":"minimum-chromium-file.mjs"),o=he.default.dirname(this.manifestPath),i=P(r,s);if(s==="firefox"||s==="gecko-based"){i=r.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=r.background,r.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(r.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(!ur.default.existsSync(e)&&this.manifestPath){let s=require(this.manifestPath),n=P(s,"chrome").name||"Extension.js",o=Hr(n,e);throw console.error(o),new Error(o)}}addDefaultEntry(e,s,r){e.options.entry={...e.options.entry,[s]:{import:[r]}}}getEntryName(e){if(e.background){if(this.browser==="firefox"||this.browser==="gecko-based")return{pageEntry:"background/script"};if(e.manifest_version===3)return{serviceWorkerEntry:"background/service_worker"};if(e.manifest_version===2)return{pageEntry:"background/script"}}return{pageEntry:"background"}}apply(e){if(!this.manifestPath||!ur.default.lstatSync(this.manifestPath).isFile())return;let s=require(this.manifestPath),r=P(s,this.browser);this.handleBackground(e,this.browser,r),new Yi.default({background:this.getEntryName(r),weakRuntimeCheck:!0}).apply(e)}};var mr=class{manifestPath;browser;constructor(e){this.manifestPath=e.manifestPath,this.browser=e.browser||"chrome"}apply(e){(Z.includes(this.browser)||this.browser==="chromium-based")&&zi(e,this.browser,this.manifestPath),(this.browser==="firefox"||this.browser==="gecko-based")&&Hi(e,this.browser,this.manifestPath),new as({manifestPath:this.manifestPath,browser:this.browser}).apply(e),new ls({manifestPath:this.manifestPath,browser:this.browser}).apply(e)}},Qi=mr;var ps=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 Qi({manifestPath:this.manifestPath,browser:this.browser,autoReload:this.autoReload,stats:this.stats}).apply(e)}};var ea=a(require("@rspack/core")),fs=class{manifestPath;browser;constructor(e){this.manifestPath=e.manifestPath,this.browser=e.browser}apply(e){new ea.default.ProvidePlugin({browser:require.resolve("webextension-polyfill")}).apply(e)}};var ms=require("@rspack/core");var us=class{browser;manifestPath;constructor(e){this.manifestPath=e.manifestPath,this.browser=e.browser||"chrome"}patchManifest(e){let s=P(e,this.browser);return JSON.stringify(s,null,2)}apply(e){e.hooks.compilation.tap("compatibility:browser-specific-fields",s=>{s.hooks.processAssets.tap({name:"compatibility:browser-specific-fields",stage:ms.Compilation.PROCESS_ASSETS_STAGE_OPTIMIZE},()=>{let r=W(s,this.manifestPath),n=this.patchManifest(r),o=new ms.sources.RawSource(n);s.updateAsset("manifest.json",o)})})}};var ds=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 fs({manifestPath:this.manifestPath,browser:this.browser||"chrome"}).apply(e),new us({manifestPath:this.manifestPath,browser:this.browser||"chrome"}).apply(e)}};var wc=a(require("os")),wr=a(require("path"));var Fa=a(require("fs")),Ca=a(require("path")),ja=require("child_process");var be=a(require("path")),Je=a(require("fs"));var ta={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}},sa={...ta},ra={...ta};var y=require("@colors/colors/safe");function w(t,e){let s=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)("")}${s}`}function ye(t){return t.charAt(0).toUpperCase()+t.slice(1)}function gs(t){let e=ye(t);return`${w(t,"info")} Creating new ${e} user profile...`}function na(t){return`${w(t,"success")} Instance already running.`}function oa(t){return`${w(t,"info")} Instance exited.`}function hs(t,e){let s=t==="firefox"||t==="gecko-based"?"Add-on":"Extension";return`${w(t,"success")} ${ye(t)} ${s} running in ${(0,y.brightBlue)(e||"unknown")} mode.`}function We(t,e){let s=e=="null"?`Browser is not installed
|
|
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 Kr.default().apply(e),new Qe({manifestPath:this.manifestPath,browser:this.browser}).apply(e),new et().apply(e),e.hooks.done.tapAsync("develop:brand",(s,r)=>{s.compilation.name=void 0;let n=s.compilation.endTime-s.compilation.startTime,i=require(this.manifestPath).name;console.log(Ir(i,n,s)),r()})}};var Pn=a(require("path"));var nn=a(require("path")),on=a(require("fs"));var oe=a(require("path")),it=a(require("fs")),As=require("child_process"),Qr=require("package-manager-detector");function en(t,e){return Object.values(e||{}).some(s=>s===t)}function h(t,e,s){let r=oe.default.extname(e),i=$(e,s)?oe.default.normalize(e):t;return[".js",".jsx",".tsx",".ts"].includes(r)&&(i=i.replace(r,".js")),[".html",".njk",".nunjucks"].includes(r)&&(i=i.replace(r,".html")),[".css",".scss",".sass",".less"].includes(r)&&(i=i.replace(r,".css")),Rs(i||"")}function Rs(t){return t.replace(/\\/g,"/")}function $(t,e={}){if(!e)return!1;let s=oe.default.normalize(Rs(t));return Object.values(e).some(n=>typeof n!="string"?!1:Rs(n).includes(s))}function W(t,e){if(t.getAsset("manifest.json")||t.assets["manifest.json"]){let s=t.assets["manifest.json"].source().toString();return JSON.parse(s||"{}")}return require(e)}function ae(){return process.env.npm_config_user_agent&&process.env.npm_config_user_agent.includes("pnpm")?"pnpm":!1}function Yr(){return process.env.npm_execpath?"npm":!1}async function j(t,e){try{let s=await(0,Qr.detect)();console.log(Mr(t,s?.name||"unknown"));let r="";s?.name==="yarn"?r=`yarn --silent add ${e.join(" ")} --cwd ${__dirname} --optional`:s?.name==="npm"||Yr()?r=`npm --silent install ${e.join(" ")} --prefix ${__dirname} --save-optional`:ae()?r=`pnpm --silent add ${e.join(" ")} --prefix ${__dirname} --save-optional`:r=`${s} --silent install ${e.join(" ")} --cwd ${__dirname} --optional`,(0,As.execSync)(r,{stdio:"inherit"}),await new Promise(n=>setTimeout(n,2e3)),process.env.EXTENSION_ENV==="development"&&(console.log(Ar(t)),s?.name==="yarn"?r="yarn install --silent > /dev/null 2>&1":s?.name==="npm"||Yr()?r="npm install --silent > /dev/null 2>&1":ae()?r="pnpm install --silent > /dev/null 2>&1":r=`${s} install --silent > /dev/null 2>&1`,(0,As.execSync)(r,{stdio:"inherit"})),console.log(Rr(t))}catch(s){console.error(Nr(t,s))}}function ot(t){let e=oe.default.join(t,"package.json");if(!it.default.existsSync(e))return!1;let s=JSON.parse(it.default.readFileSync(e,"utf-8")),r=["react","vue","@angular/core","svelte","solid-js","preact"],n=s.dependencies||{},i=s.devDependencies||{};for(let o of r)if(n[o]||i[o])return!0;return!1}function tn(t){return!it.default.existsSync(oe.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,i){let o=n.indexOf(":");if(o===-1)return i;let c=n.substring(0,o);(c===e||c==="chromium"&&Z.includes(e)||c==="chromium"&&e.includes("chromium")||c==="gecko"&&e.includes("gecko"))&&(this[n.substring(o+1)]=i)})}var rn=!1;function Pe(t){let e=nn.default.join(t,"package.json");if(!on.default.existsSync(e))return!1;let s=require(e),r=s.devDependencies&&s.devDependencies.sass,n=s.dependencies&&s.dependencies.sass;return r||n?(rn||(process.env.EXTENSION_ENV==="development"&&console.log(v("SASS")),rn=!0),!0):!1}async function an(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 ln=a(require("path")),pn=a(require("fs"));var cn=!1;function Ee(t){let e=ln.default.join(t,"package.json");if(!pn.default.existsSync(e))return!1;let s=require(e),r=s.devDependencies&&s.devDependencies.less,n=s.dependencies&&s.dependencies.less;return r||n?(cn||(process.env.EXTENSION_ENV==="development"&&console.log(v("LESS")),cn=!0),!0):!1}async function fn(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 pl(t){let e=R.default.join(t,"stylelint.config.json"),s=R.default.join(t,".stylelintrc.js file"),r=R.default.join(t,"stylelint.config.mjs"),n=R.default.join(t,".stylelintrc.mjs"),i=R.default.join(t,"stylelint.config.cjs"),o=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(s))return s;if(N.default.existsSync(r))return r;if(N.default.existsSync(n))return n;if(N.default.existsSync(i))return i;if(N.default.existsSync(o))return o;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 un=!1;function fl(t){let e=R.default.join(t,"package.json");if(!N.default.existsSync(e))return!1;let r=!!pl(t);return r&&(un||(process.env.EXTENSION_ENV==="development"&&console.log(v("Stylelint")),un=!0)),r}async function mn(t){return fl(t),[]}var wn=a(require("path"));var gn=a(require("path")),hn=a(require("fs"));var dn=!1;function at(t){let e=gn.default.join(t,"package.json");if(!hn.default.existsSync(e))return!1;let s=require(e),r=s.devDependencies&&s.devDependencies.tailwindcss,n=s.dependencies&&s.dependencies.tailwindcss,i=!!(r||n);return i&&(dn||(process.env.EXTENSION_ENV==="development"&&console.log(v("Tailwind")),dn=!0)),i}var Ns=a(require("path")),ct=a(require("fs"));var ce=!1,ul=[".postcssrc",".postcssrc.json",".postcssrc.yaml",".postcssrc.yml",".postcssrc.js",".postcssrc.cjs","postcss.config.js","postcss.config.cjs"];function yn(t){for(let e of ul){let s=Ns.default.join(t,e);if(ct.default.existsSync(s))return s}}function ml(t){let e=Ns.default.join(t,"package.json");if(!ct.default.existsSync(e))return!1;if(ct.default.existsSync(e)){let s=require(e);if(s.dependencies&&s.dependencies.postcss||s.devDependencies&&s.devDependencies.postcss)return ce||(process.env.EXTENSION_ENV==="development"&&console.log(v("PostCSS")),ce=!0),!0}return yn(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 bn(t,e){if(!ml(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:yn(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 s=[];if(at(t)||Pe(t)||Ee(t)){let r=await bn(t,e);r.loader&&s.push(r)}return e.loader&&s.push({loader:e.loader.startsWith("builtin:")?e.loader:require.resolve(e.loader),options:{...e.loaderOptions,sourceMap:e.mode==="development"}}),s.filter(Boolean)}var Ts=a(require("path")),xn=a(require("fs"));function pt(t,e){if(!t||!e)return!1;let s=JSON.parse(xn.default.readFileSync(e,"utf8"));for(let r of s.content_scripts||[])if(r.js?.length){for(let n of r.js)if(Ts.default.resolve(Ts.default.dirname(e),n)===t)return!0}return!1}async function vn(t,e){let s=wn.default.join(t,"manifest.json");return[{test:/\.css$/,type:"asset",generator:{filename:"content_scripts/[name].[contenthash:8].css"},issuer:r=>pt(r,s),use:await lt(t,{mode:e})}]}var Sn=a(require("path"));async function _n(t,e){let s=Sn.default.join(t,"manifest.json");return[{test:/\.css$/,type:"css",issuer:r=>!pt(r,s),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 s=e.options.mode||"development",r=Pn.default.dirname(this.manifestPath),n=[],i=await mn(r);n.push(...i);let o=[...await vn(r,s),...await _n(r,s)],c=await an(r),l=await fn(r);c.length&&o.push(...c),l.length&&o.push(...l),e.options.plugins=[...e.options.plugins,...n].filter(Boolean),e.options.module.rules=[...e.options.module.rules,...o].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 s={test:/\.svg$/i,type:"asset",generator:{filename:"assets/[name][ext]"},parser:{dataUrlCondition:{maxSize:2048}}},n=[...e.options.module.rules.some(i=>i&&i.test instanceof RegExp&&i.test.test(".svg")&&i.use!==void 0)?[]:[s],{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(i=>!!i)}};var $e=a(require("path"));var Us=a(require("path")),Bs=a(require("fs"));var En=!1,dl=[".babelrc",".babelrc.json",".babelrc.js",".babelrc.cjs","babel.config.json","babel.config.js","babel.config.cjs"];function gl(t){let e=Us.default.join(t,"package.json");if(!Bs.default.existsSync(e))return!1;let s=require(e),r=s.devDependencies&&s.devDependencies["babel-core"],n=s.dependencies&&s.dependencies["babel-core"],i=dl.some(o=>Bs.default.existsSync(Us.default.join(t,o)))||!!r||!!n;return i&&(En||(process.env.EXTENSION_ENV==="development"&&process.env.EXTENSION_ENV==="development"&&console.log(v("Babel")),En=!0)),i}async function kn(t,e){gl(e)}var Fn=a(require("path")),Cn=a(require("fs"));var $n=!1;function ke(t){let e=Fn.default.join(t,"package.json");if(!Cn.default.existsSync(e))return!1;let s=require(e),r=s.devDependencies&&s.devDependencies.preact,n=s.dependencies&&s.dependencies.preact;return(r||n)&&($n||(process.env.EXTENSION_ENV==="development"&&console.log(v("Preact")),$n=!0)),!!r||!!n}async function jn(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 Ln=a(require("path")),On=a(require("fs"));var Dn=!1;function mt(t){let e=Ln.default.join(t,"package.json");if(!On.default.existsSync(e))return!1;let s=require(e),r=s.devDependencies&&s.devDependencies.react,n=s.dependencies&&s.dependencies.react;return(r||n)&&(Dn||(process.env.EXTENSION_ENV==="development"&&console.log(v("React")),Dn=!0)),!!r||!!n}async function In(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 An=a(require("path")),Rn=a(require("fs")),Nn=require("vue-loader");var Mn=!1;function hl(t){let e=An.default.join(t,"package.json");if(!Rn.default.existsSync(e))return!1;let s=require(e),r=s.devDependencies&&s.devDependencies.vue,n=s.dependencies&&s.dependencies.vue;return(r||n)&&(Mn||(process.env.EXTENSION_ENV==="development"&&console.log(v("Vue")),Mn=!0)),!!r||!!n}async function Tn(t){if(!hl(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 Nn.VueLoaderPlugin],loaders:e,alias:void 0}}var dt=a(require("path")),gt=a(require("fs"));var Un=!1;function K(t){let e=dt.default.join(t,"package.json");if(!gt.default.existsSync(e))return!1;let s=bl(t),r=require(e),n=r.devDependencies&&r.devDependencies.typescript,i=r.dependencies&&r.dependencies.typescript;return Un||((n||i)&&(s?process.env.EXTENSION_ENV==="development"&&console.log(v("TypeScript")):(console.log(Wr()),xl(t))),Un=!0),!!s&&!!(n||i)}function yl(t,e){return{compilerOptions:{allowJs:!0,allowSyntheticDefaultImports:!0,esModuleInterop:!0,forceConsistentCasingInFileNames:!0,jsx:ot(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 bl(t){let e=dt.default.join(t,"tsconfig.json");if(gt.default.existsSync(e))return e}function xl(t){gt.default.writeFileSync(dt.default.join(t,"tsconfig.json"),JSON.stringify(yl(t,{mode:"development"}),null,2))}var qn=a(require("path")),Wn=a(require("fs")),Jn=require("svelte-preprocess");var Bn=!1;function wl(t){let e=qn.default.join(t,"package.json");if(!Wn.default.existsSync(e))return!1;let s=require(e),r=s.devDependencies&&s.devDependencies?.svelte,n=s.dependencies&&s.dependencies.svelte;return(r||n)&&(Bn||(process.env.EXTENSION_ENV==="development"&&console.log(v("Svelte")),Bn=!0)),!!r||!!n}async function zn(t,e){if(!wl(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,Jn.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 s=e.options.mode||"development",r=$e.default.dirname(this.manifestPath),n=await kn(e,r),i=await In(r),o=await jn(r),c=await Tn(r),l=await zn(r,s);e.options.resolve.alias={...n?.alias||{},...i?.alias||{},...o?.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:s==="production",isModule:!0,sourceMap:this.mode==="development",env:{targets:["chrome >= 100"]},jsc:{parser:{syntax:K(r)?"typescript":"ecmascript",tsx:K(r)&&(mt(r)||ke(r)),jsx:!K(r)&&(mt(r)||ke(r)),dynamicImport:!0},transform:{react:{development:s==="development",refresh:s==="development",runtime:"automatic",importSource:"react",...ke(r)?{pragma:"h",pragmaFrag:"Fragment",throwIfNamespace:!0,useBuiltins:!1}:{}}}}}}},...n?.loaders||[],...i?.loaders||[],...o?.loaders||[],...c?.loaders||[],...l?.loaders||[],...e.options.module.rules].filter(Boolean),i?.plugins?.forEach(p=>p.apply(e)),o?.plugins?.forEach(p=>p.apply(e)),c?.plugins?.forEach(p=>p.apply(e)),l?.plugins?.forEach(p=>p.apply(e)),K(r)&&(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 Di=a(require("path"));var Hn=a(require("path"));function Vn(t,e){if(!e||!e.action||!e.action.default_popup)return;let s=e.action.default_popup;return Hn.default.join(t,s)}var Xn=a(require("path"));function Gn(t,e){if(!e||!e.browser_action||!e.browser_action.default_popup)return;let s=e.browser_action.default_popup;return Xn.default.join(t,s)}var yt=a(require("path"));function Zn(t,e){let s={newtab:void 0};if(!e||!e.chrome_url_overrides)return{"chrome_url_overrides/newtab":void 0};if(e.chrome_url_overrides.history){let r=e.chrome_url_overrides.history;s={"chrome_url_overrides/history":yt.default.join(t,r)}}if(e.chrome_url_overrides.newtab){let r=e.chrome_url_overrides.newtab;s={"chrome_url_overrides/newtab":yt.default.join(t,r)}}if(e.chrome_url_overrides.bookmarks){let r=e.chrome_url_overrides.bookmarks;s={"chrome_url_overrides/bookmarks":yt.default.join(t,r)}}return s}var Kn=a(require("path"));function Yn(t,e){if(!e||!e.devtools_page)return;let s=e.devtools_page;return Kn.default.join(t,s)}var qs=a(require("path"));function Qn(t,e){if(e.options_page){let r=e.options_page;return qs.default.join(t,r)}if(!e||!e.options_ui||!e.options_ui.page)return;let s=e.options_ui.page;return qs.default.join(t,s)}var ei=a(require("path"));function ti(t,e){if(!e||!e.page_action||!e.page_action.default_popup)return;let s=e.page_action.default_popup;return ei.default.join(t,s)}var si=a(require("path"));function ri(t,e){if(!e||!e.sandbox||!e.sandbox.pages)return{"sandbox/page-0":void 0};let s=e.sandbox.pages,r={};for(let[n,i]of s.entries())r[`sandbox/page-${n}`]=si.default.join(t,i);return r}var ni=a(require("path"));function ii(t,e){if(!e||!e.side_panel||!e.side_panel.default_path)return;let s=e.side_panel.default_path;return ni.default.join(t,s)}var oi=a(require("path"));function ai(t,e){if(!e||!e.sidebar_action||!e.sidebar_action.default_panel)return;let s=e.sidebar_action.default_panel;return oi.default.join(t,s)}function Fe(t,e){return{"action/default_popup":Vn(t,e),"browser_action/default_popup":Gn(t,e),...Zn(t,e),devtools_page:Yn(t,e),"options_ui/page":Qn(t,e),"page_action/default_popup":ti(t,e),...ri(t,e),"side_panel/default_path":ii(t,e),"sidebar_action/default_panel":ai(t,e)}}var Ws=a(require("path"));function ci(t,e){if(!e||!e.action||!e.action.default_icon)return;if(typeof e.action.default_icon=="string")return Ws.default.join(t,e.action.default_icon);let s=[];for(let r in e.action.default_icon)s.push(Ws.default.join(t,e.action.default_icon[r]));return s}var Js=a(require("path"));function li(t,e){if(!e||!e.browser_action||!e.browser_action.default_icon)return;let s=[];if(typeof e.browser_action.default_icon=="string")return Js.default.join(t,e.browser_action.default_icon);for(let r in e.browser_action.default_icon){let n=e.browser_action.default_icon[r]=Js.default.join(t,e.browser_action.default_icon[r]);s.push(n)}return s}var zs=a(require("path"));function pi(t,e){if(!(!e||!e.browser_action||!e.browser_action.theme_icons)){for(let s of e.browser_action.theme_icons)s.light&&(s.light=zs.default.join(t,s.light)),s.dark&&(s.dark=zs.default.join(t,s.dark)),s.size&&delete s.size;return e.browser_action.theme_icons}}var fi=a(require("path"));function ui(t,e){if(!e||!e.icons)return;let s=[];for(let r in e.icons){let n=fi.default.join(t,e.icons[r]);s.push(n)}return s}var Hs=a(require("path"));function mi(t,e){if(!e||!e.page_action||!e.page_action.default_icon)return;if(typeof e.page_action.default_icon=="string")return Hs.default.join(t,e.page_action.default_icon);let s=[];for(let r in e.page_action.default_icon){let n=Hs.default.join(t,e.page_action.default_icon[r]);s.push(n)}return s}var di=a(require("path"));function gi(t,e){return!e||!e.sidebar_action||!e.sidebar_action.default_icon?void 0:di.default.join(t,e.sidebar_action.default_icon)}function hi(t,e){return{action:ci(t,e),browser_action:li(t,e),"browser_action/theme_icons":pi(t,e),icons:ui(t,e),page_action:mi(t,e),sidebar_action:gi(t,e)}}var yi=a(require("path"));function bi(t,e){let s={};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=>{s[`declarative_net_request/${n.id}`]=yi.default.join(t,n.path)}),s)}var xi=a(require("path"));function wi(t,e){if(!e||!e.storage||!e.storage.managed_schema)return;let s=e.storage.managed_schema;return xi.default.join(t,s)}function vi(t,e){return{...bi(t,e),"storage/managed_schema":wi(t,e)}}var Ce=a(require("path")),je=a(require("fs"));function Si(t,e){let s=Ce.default.join(Ce.default.dirname(e),"_locales"),r=[];if(je.default.existsSync(s))for(let n of je.default.readdirSync(s)){let i=Ce.default.join(s,n);if(i&&je.default.statSync(i).isDirectory())for(let o of je.default.readdirSync(i))r.push(Ce.default.join(t,"_locales",n,o))}return r}var _i=a(require("path"));function Pi(t,e){if(!e||!e.background)return;let s=e.background.scripts;if(s)return s.map(r=>_i.default.join(t,r))}var Ei=a(require("path"));function ki(t,e){if(!e||!e.background)return;let s=e.background.service_worker;if(s)return Ei.default.join(t,s)}var Vs=a(require("path"));function $i(t,e){if(!e||!e.content_scripts)return{"content_scripts/content-0":void 0};let s=i=>{if(i.js?.length!==0)return i.js?.map(o=>Vs.default.join(t,o))},r=i=>{if(i.css?.length!==0)return i.css?.map(o=>Vs.default.join(t,o))},n={};for(let[i,o]of e.content_scripts.entries()){let c=s(o),l=r(o);n[`content_scripts/content-${i}`]=[...(c||[]).filter(p=>p!=null),...(l||[]).filter(p=>p!=null)]}return n}var Fi=a(require("path"));function Ci(t,e){if(!e||!e.user_scripts||!e.user_scripts.api_script)return;let s=e.user_scripts.api_script;return Fi.default.join(t,s)}function De(t,e){return{"background/scripts":Pi(t,e),"background/service_worker":ki(t,e),...$i(t,e),"user_scripts/api_script":Ci(t,e)}}function ji(t){if(!(!t||!t.web_accessible_resources||!t.web_accessible_resources.length))return t.web_accessible_resources}function le({manifestPath:t,browser:e}){let s=Di.default.dirname(t),r=require(t),n=P(r,e||"chrome");return{html:Fe(s,n),icons:hi(s,n),json:vi(s,n),locales:Si(s,t),scripts:De(s,n),web_accessible_resources:ji(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 s=[];function r(n){let i=bt.default.readdirSync(n,{withFileTypes:!0});for(let o of i){let c=Le.default.join(n,o.name);o.isDirectory()?r(c):o.isFile()&&e(o.name)&&s.push(c)}}return r(t),s}function wt(t,e,s=""){return!e||!e.length?{}:e.reduce((r,n)=>{let i=Le.default.extname(n),o=Le.default.basename(n,i),c=s?`${s}/${o}`:Le.default.relative(t,n);return{...r,[c]:n}},{})}function Li({manifestPath:t}){let e=pe.default.dirname(t),s={public:pe.default.join(e,"public"),pages:pe.default.join(e,"pages"),scripts:pe.default.join(e,"scripts")},r={public:xt(s.public,()=>!0),pages:xt(s.pages,i=>i.endsWith(".html")),scripts:xt(s.scripts,i=>[".js",".mjs",".jsx",".mjsx",".ts",".mts",".tsx",".mtsx"].includes(pe.default.extname(i)))};return{public:wt(e,r.public),pages:wt(e,r.pages,"pages"),scripts:wt(e,r.scripts,"scripts")}}var Oi=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",s=>{s.hooks.processAssets.tap({name:"manifest:emit-manifest",stage:fe.Compilation.PROCESS_ASSETS_STAGE_PRE_PROCESS},()=>{let r=this.manifestPath,n;try{let c=Oi.default.readFileSync(r,"utf-8");n=JSON.parse(c),"$schema"in n&&delete n.$schema}catch(c){s.errors.push(new fe.default.WebpackError(Ur(c)));return}let i=JSON.stringify(n,null,2);s.emitAsset("manifest.json",new fe.sources.RawSource(i))})})}};var Oe=require("@rspack/core");function Ii(t,e){return t.background&&t.background.scripts&&{background:{...t.background,...t.background.scripts&&{scripts:[...t.background.scripts.map(s=>h("background/scripts.js",s,e))]}}}}var Mi=a(require("path"));var St=t=>Mi.default.basename(t);function Ai(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(([s,r])=>[s,h(`icons/${St(r)}`,r,e)]))},...t.browser_action.theme_icons&&{theme_icons:t.browser_action.theme_icons.map(s=>({...s,...s.light&&{light:h(`browser_action/${St(s.light)}`,s.light,e)},...s.dark&&{dark:h(`browser_action/${St(s.dark)}`,s.dark,e)}}))}}}}function Ri(t,e){return t.declarative_net_request&&{declarative_net_request:{...t.declarative_net_request,rule_resources:t.declarative_net_request.rule_resources.map(s=>({...s,path:s.path&&h(`declarative_net_request/${s.id}.json`,s.path,e)}))}}}function Ni(t,e){return{...Ii(t,e),...Ai(t,e),...Ri(t,e)}}var Ui=a(require("path"));var Ti=t=>Ui.default.basename(t);function Bi(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/${Ti(t.action.default_icon)}`,t.action.default_icon,e):Object.fromEntries(Object.entries(t.action.default_icon).map(([s,r])=>[s,h(`action/${Ti(r)}`,r,e)]))}}}}function qi(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 Wi(t,e){return{...Bi(t,e),...qi(t,e),..._t(t,e)}}function Ji(t,e){return t.background&&t.background.page&&{background:{...t.background,...t.background.page&&{page:h("background/page.html",t.background.page,e)}}}}function zi(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 Hi(t,e){return t.content_scripts&&{content_scripts:t.content_scripts.map((s,r)=>{let n=[...new Set(s.js)],i=[...new Set(s.css)];return{...s,js:[...n.map(o=>h(`content_scripts/content-${r}.js`,o,e))],css:[...i.map(o=>h(`content_scripts/content-${r}.css`,o,e))]}})}}function Vi(t,e){return t.devtools_page&&{devtools_page:h("devtools_page.html",t.devtools_page,e)}}var Xi=a(require("path"));var vl=t=>Xi.default.basename(t);function Gi(t,e){return t.icons&&{icons:Object.fromEntries(Object.entries(t.icons).map(([s,r])=>[s,h(`icons/${vl(r)}`,r,e)]))}}function Zi(t,e){return t.options_page&&{options_page:h("options_ui/page.html",t.options_page,e)}}function Ki(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 Qi=a(require("path"));var Yi=t=>Qi.default.basename(t);function eo(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/${Yi(t.page_action.default_icon)}`,t.page_action.default_icon,e):Object.fromEntries(Object.entries(t.page_action.default_icon).map(([s,r])=>[s,h(`icons/${Yi(r)}`,r,e)]))}}}}function to(t,e){return t.sandbox&&{sandbox:{...t.sandbox,...t.sandbox.pages&&{pages:t.sandbox.pages.map((s,r)=>h(`sandbox/page-${r}.html`,s,e))}}}}var so=a(require("path"));var Sl=t=>so.default.basename(t);function ro(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/${Sl(t.sidebar_action.default_icon)}`,t.sidebar_action.default_icon,e)}}}}function no(t,e){return t.storage&&{storage:{...t.storage.managed_schema&&{managed_schema:h("storage/managed_schema.json",t.storage.managed_schema,e)}}}}var io=a(require("path"));var _l=t=>io.default.basename(t);function oo(t,e){return t.theme&&{theme:{...t.theme,...t.theme.images&&{images:{...t.theme.images,theme_frame:h(`theme/images/${_l(t.theme.images.theme_frame)}`,t.theme.images.theme_frame,e)}}}}}function ao(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 co(t){return t.web_accessible_resources&&t.web_accessible_resources.length&&{web_accessible_resources:t.web_accessible_resources}}function lo(t,e){return{...Ji(t,e),...zi(t,e),...Hi(t,e),...Vi(t,e),...Gi(t,e),...Zi(t,e),...Ki(t,e),...eo(t,e),...to(t,e),..._t(t,e),...ro(t,e),...no(t,e),...oo(t,e),...ao(t,e),...co(t)}}function Xs(t,e,s){let r=e||require(t);return JSON.stringify({...r,...lo(r,s),...Ni(r,s),...Wi(r,s)},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((s,r)=>(s.css.length&&!s.js.length&&(s.js=[h(`content_scripts-${r}`,"dev.js",{})]),s)):{}}apply(e){e.hooks.thisCompilation.tap("manifest:update-manifest",s=>{s.hooks.processAssets.tap({name:"manifest:update-manifest",stage:Oe.Compilation.PROCESS_ASSETS_STAGE_SUMMARIZE},()=>{if(s.errors.length>0)return;let r=W(s,this.manifestPath),n=Xs(this.manifestPath,r,this.excludeList||{}),i={...r,...JSON.parse(n)};e.options.mode==="development"&&i.content_scripts&&(i.content_scripts=this.applyDevOverrides(i));let o=JSON.stringify(i,null,2),c=new Oe.sources.RawSource(o);s.updateAsset("manifest.json",c)}),e.options.mode==="production"&&s.hooks.processAssets.tap("manifest:update-manifest",()=>{if(s.errors.length>0)return;let r=W(s,this.manifestPath),n=Xs(this.manifestPath,r,this.excludeList||{}),i={...r,...JSON.parse(n)},o=JSON.stringify(i,null,2),c=new Oe.sources.RawSource(o);s.updateAsset("manifest.json",c)})})}};var po=a(require("fs")),Et=class{dependencyList;constructor(e){this.dependencyList=e}apply(e){e.hooks.afterCompile.tap("manifest:add-dependency",s=>{if(s.errors?.length)return;let r=new Set(s.fileDependencies);this.dependencyList&&this.dependencyList.forEach(n=>{po.default.existsSync(n)&&(r.has(n)||(r.add(n),s.fileDependencies.add(n)))})})}};var fo=a(require("fs")),uo=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 s=Array.isArray(e)?e:[e];if(typeof s[0]=="string")return s;let r=[];if(typeof e=="object"&&!Array.isArray(e)){let n=e;n.light&&r.push(n.light),n.dark&&r.push(n.dark)}return r}handleErrors(e,s){let r=[".png",".jpg",".jpeg",".svg",".gif",".webp"],n=[".json"],i=[".js",".ts",".jsx",".tsx",".mjs",".cjs"],o=".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=uo.default.extname(m),b=require(this.manifestPath),S=P(b,"chrome").name||"Extension.js";if(!fo.default.existsSync(m)){if(m.startsWith("/"))return;let E=ie(S,l,m);r.includes(g)?e.errors.push(new s(E)):n.includes(g)?e.errors.push(new s(E)):i.includes(g)?e.errors.push(new s(E)):g===o?e.errors.push(new s(E)):e.errors.push(new s(E))}}}}apply(e){e.hooks.compilation.tap("manifest:check-manifest-files",s=>{s.hooks.processAssets.tap({name:"compatibility:check-manifest-files",stage:$t.Compilation.PROCESS_ASSETS_STAGE_OPTIMIZE_COUNT},()=>{let r=$t.default.WebpackError;this.handleErrors(s,r)})})}};var mo=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",(s,r)=>{if((s.modifiedFiles||new Set).has(this.manifestPath)){let i=s.options.context||"",o=`${i}/package.json`;if(!mo.default.existsSync(o)){r();return}let c=require(this.manifestPath),l=P(c,this.browser),p=this.flattenAndSort(Object.values(Fe(i,l))),u=this.flattenAndSort(Object.values(De(i,l)));s.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(i,_))),E=this.flattenAndSort(Object.values(De(i,_)));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=Br(T,A);m.errors.push(new Ct.default.WebpackError(_e))}})})}r()})}};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 Qs=a(require("path"));var Zs=a(require("fs")),Ot=a(require("@rspack/core")),xo=require("@rspack/core");var go=a(require("fs")),me=a(require("path")),ho=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:s=[]}=t;for(let r of s)if(r.nodeName==="script"){let n=ue.default.getAttribute(r,"src");if(!n||Dt(n))continue;e({filePath:n,childNode:r,assetType:"script"})}else if(r.nodeName==="link"){let n=ue.default.getAttribute(r,"href"),i=ue.default.getAttribute(r,"rel");if(!n||Dt(n))continue;e(i==="dns-prefetch"||i==="icon"||i==="manifest"||i==="modulepreload"||i==="preconnect"||i==="prefetch"||i==="preload"||i==="prerender"?{filePath:n,childNode:r,assetType:"staticHref"}:{filePath:n,childNode:r,assetType:"css"})}else if(r.nodeName==="a"||r.nodeName==="area"){let n=ue.default.getAttribute(r,"href");if(!n||Dt(n))continue;e({filePath:n,childNode:r,assetType:"staticHref"})}else if(r.nodeName==="audio"||r.nodeName==="embed"||r.nodeName==="iframe"||r.nodeName==="img"||r.nodeName==="input"||r.nodeName==="source"||r.nodeName==="track"||r.nodeName==="video"){let n=ue.default.getAttribute(r,"src");if(!n||Dt(n))continue;e({filePath:n,childNode:r,assetType:"staticSrc"})}else Ie(r,e)}function D(t,e){let s={css:[],js:[],static:[]};if(!t)return s;let r=e||go.default.readFileSync(t,{encoding:"utf8"}),n=ho.default.parse(r),i=(o,c)=>me.default.join(me.default.dirname(o),c.startsWith("/")?me.default.relative(me.default.dirname(o),c):c);for(let o of n.childNodes)if(o.nodeName==="html"){for(let c of o.childNodes)(c.nodeName==="head"||c.nodeName==="body")&&Ie(c,({filePath:l,assetType:p})=>{let u=i(t,l);switch(p){case"script":s.js?.push(u);break;case"css":s.css?.push(u);break;case"staticSrc":case"staticHref":if(l.startsWith("#"))break;s.static?.push(u);break;default:break}});return{css:s.css,js:s.js,static:s.static}}}function yo(t,e,s){let r=Object.keys(t).find(i=>{let o=t[i];return t[i]===e||D(o)?.js?.includes(e)||D(o)?.css?.includes(e)})||"",n=Gs(e);return r?`/${r.replace(n,"")}${s}`:`${e.replace(n,"")}${s}`}function Gs(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,s){return s?`/${t}${e}`:`${t}${e}`}function bo(t,e){return Object.values(e||{}).some(s=>s===t)}var Lt=class{manifestPath;includeList;excludeList;constructor(e){this.manifestPath=e.manifestPath,this.includeList=e.includeList,this.excludeList=e.excludeList}apply(e){let s=require(this.manifestPath),n=P(s,"chrome").name||"Extension.js";e.hooks.thisCompilation.tap("html:emit-html-file",i=>{i.hooks.processAssets.tap({name:"AddAssetsToCompilationPlugin",stage:Ot.Compilation.PROCESS_ASSETS_STAGE_ADDITIONAL},()=>{let o=Object.entries(this.includeList||{});for(let c of o){let[l,p]=c;if(p){if(!Zs.default.existsSync(p)){let m=ie(n,l,p);i.warnings.push(new Ot.default.WebpackError(m));return}let u=Zs.default.readFileSync(p,"utf8");if(!$(p,this.excludeList)){let m=new xo.sources.RawSource(u),g=z(l,".html");i.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",s=>{s.hooks.processAssets.tap({name:"html:add-assets-to-compilation",stage:Y.Compilation.PROCESS_ASSETS_STAGE_ADDITIONAL},()=>{if(s.errors.length>0)return;let r=Object.entries(this.includeList||{});for(let n of r){let[i,o]=n,c=i+".html";if(o){let l=s.getAsset(c);if(l){let p=l.source.source().toString(),u=D(o,p)?.static,m=[...new Set(u)];for(let g of m)if(!g.startsWith("/")){if(!It.default.existsSync(g)&&!bo(g,this.includeList)&&!de.default.basename(g).startsWith("#")){let A=st(o,g);g.startsWith("/")||s.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(!s.getAsset(S))if(g.endsWith(".html")){let E=D(g),A=[...E?.js||[],...E?.css||[],...E?.static||[]];s.emitAsset(S,_),A.forEach(T=>{let _e=It.default.readFileSync(T),q=new Y.sources.RawSource(_e),Fr=de.default.join("assets",de.default.basename(T));s.getAsset(Fr)||s.emitAsset(Fr,q)})}else s.emitAsset(S,_)}}}}})})}};var wo=a(require("path")),Ks=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 s=this.includeList||{};for(let r of Object.entries(s)){let[n,i]=r;if(i){if(!Ks.default.existsSync(i))return;let o=D(i),c=o?.js||[],l=o?.css||[],p=[...c,...l].filter(u=>!$(u,this.excludeList));if(e.options.mode==="development"){let u=wo.default.resolve(__dirname,"minimum-script-file.mjs");p.push(u)}Ks.default.existsSync(i)&&($(i,this.excludeList)||(e.options.entry={...e.options.entry,[n]:{import:p}}))}}}};var Nt=require("@rspack/core");var Ys=a(require("fs")),H=a(require("path")),O=a(require("parse5-utils"));function vo(t,e,s,r,n){let i=Ys.default.readFileSync(s,{encoding:"utf8"}),o=O.default.parse(i),c=!!t.getAsset(e+".css"),l=!1;for(let p of o.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(s),S=H.default.resolve(_,m),E=Gs(S),A=$(H.default.resolve(_,m),n),T=H.default.join("/",H.default.normalize(m)),_e=en(S,r);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=yo(r,S,E);p=O.default.setAttribute(g,b==="staticSrc"?"src":"href",q)}else{let q=H.default.join("assets",H.default.basename(S,E));Ys.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(o)}}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",s=>{s.hooks.processAssets.tap({name:"html:update-html-file",stage:Nt.Compilation.PROCESS_ASSETS_STAGE_DERIVED},()=>{if(s.errors.length>0)return;let r=this.includeList||{};for(let n of Object.entries(r)){let[i,o]=n;if(o){let c=vo(s,i,o,r,this.excludeList||{});if(!$(o,this.excludeList)&&c){let l=new Nt.sources.RawSource(c),p=z(i,".html");s.updateAsset(p,l)}}}})})}};var So=a(require("fs")),_o=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",s=>{s.hooks.processAssets.tap({name:"html:add-to-file-dependencies",stage:_o.Compilation.PROCESS_ASSETS_STAGE_ADDITIONS},()=>{if(s.errors?.length)return;let r=this.includeList||{};for(let n of Object.entries(r)){let[,i]=n;if(i){let o=D(i),c=new Set(s.fileDependencies);if(So.default.existsSync(i)){let l=[i,...o?.static||[]];for(let p of l)c.has(p)||(c.add(p),p===i&&s.fileDependencies.add(p))}}}})})}};var Po=a(require("fs"));var Ut=class{manifestPath;includeList;initialHtmlAssets={};constructor(e){this.manifestPath=e.manifestPath,this.includeList=e.includeList}hasEntriesChanged(e,s){if(!s||!e||e.length!==s.length)return!0;for(let r=0;r<e.length;r++)if(e[r]!==s[r])return!0;return!1}storeInitialHtmlAssets(e){Object.entries(e).forEach(([s,r])=>{let n=r;if(n){if(!Po.default.existsSync(n)){let i=require(this.manifestPath),c=P(i,"chrome").name||"Extension.js";console.error(ie(c,s,n)),process.exit(1)}this.initialHtmlAssets[n]={js:D(n)?.js||[],css:D(n)?.css||[]}}})}apply(e){let s=this.includeList||{};this.storeInitialHtmlAssets(s),e.hooks.make.tapAsync("html:throw-if-recompile-is-needed",(r,n)=>{let i=e.modifiedFiles||new Set,o=Array.from(i)[0];if(o&&this.initialHtmlAssets[o]){let c=D(o)?.js||[],l=D(o)?.css||[],{js:p,css:u}=this.initialHtmlAssets[o];(this.hasEntriesChanged(l,u)||this.hasEntriesChanged(c,p))&&console.log(Vr(o))}n()})}};var Eo=a(require("fs")),ko=require("@rspack/core");function El(t,e){let s="Module not found: Error: Can't resolve ",n=e.message.replace(s,"").split("'")[1];if(e.message.includes(s))for(let i of Object.entries(t)){let[,o]=i;if(o){if(!Eo.default.existsSync(o))return null;let c=D(o),l=c?.js?.filter(u=>!u.startsWith("/"))||[],p=c?.css?.filter(u=>!u.startsWith("/"))||[];if(l.includes(n)||p.includes(n)){let u=st(o,n);return new ko.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",s=>{s.hooks.afterSeal.tapPromise("html:handle-common-errors",async()=>{s.errors.forEach((r,n)=>{let i=El(this.includeList||{},r);i&&(s.errors[n]=i)})})})}};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:[Qs.default.dirname(this.manifestPath)],exclude:[/[\\/]node_modules[\\/]/],use:[{loader:require.resolve(Qs.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 er=a(require("fs")),$o=a(require("path"));function Fo(t,e){return(Array.isArray(t)?t||[]:t?[t]:[]).filter(n=>{let i=er.default.existsSync(n)&&!$(n,e),o=$o.default.extname(n);return i&&(o===".js"||o===".mjs"||o===".jsx"||o===".ts"||o===".tsx")})}function Co(t,e){return(Array.isArray(t)?t||[]:t?[t]:[]).filter(n=>er.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 s=this.includeList||{},r={};for(let[n,i]of Object.entries(s)){let o=Fo(i,this.excludeList),c=Co(i,this.excludeList),l=[...o,...c];(c.length||o.length)&&(r[n]={import:l})}e.options.entry={...e.options.entry,...r}}};var Q=require("@rspack/core"),kl=['var isBrowser = !!(() => { try { return browser.runtime.getURL("/") } catch(e) {} })()','var isChrome = !!(() => { try { return chrome.runtime.getURL("/") } catch(e) {} })()'],$l=[...kl,`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:s}=e.webpack;e.hooks.compilation.tap("PublicPathRuntimeModule",r=>{r.hooks.runtimeRequirementInTree.for(s.publicPath).tap(t.name,n=>{let i=Fl();return r.addRuntimeModule(n,i),!0})})}};function Fl(){class t extends Q.RuntimeModule{constructor(){super("publicPath",Q.RuntimeModule.STAGE_BASIC)}generate(){let s=this.compilation?.outputOptions.publicPath;return Q.Template.asString([...$l,`var path = ${JSON.stringify(this.compilation?.getPath(s||"",{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 s=require(this.manifestPath),r=P(s,this.browser);r.content_scripts?.some(n=>n.world&&n.world.toLowerCase()==="main")&&Z.includes(this.browser)&&!r.key&&(console.error(Zr()),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||{}}}]}),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 tr(t){let e=ge.default.join(ge.default.dirname(t),"_locales"),s=[];if(Ae.default.existsSync(e))for(let r of Ae.default.readdirSync(e)){let n=ge.default.join(e,r);if(n&&Ae.default.statSync(n).isDirectory())for(let i of Ae.default.readdirSync(n))s.push(ge.default.join(ge.default.dirname(t),"_locales",r,i))}return s}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",s=>{s.hooks.processAssets.tap({name:"locales:module",stage:V.Compilation.PROCESS_ASSETS_STAGE_ADDITIONS},()=>{if(!Ne.default.existsSync(this.manifestPath)){let n=require(this.manifestPath),o=P(n,"chrome").name||"Extension.js";s.errors.push(new V.default.WebpackError(Tr(o,this.manifestPath)));return}if(s.errors.length>0)return;let r=tr(this.manifestPath);for(let n of Object.entries(r||[])){let[i,o]=n,c=o;if(c){if(Re.default.extname(c)!==".json")continue;if(!Ne.default.existsSync(c)){s.warnings.push(new V.default.WebpackError(rt(i,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);s.emitAsset(m,p)}}}})}),e.hooks.thisCompilation.tap("locales:module",s=>{s.hooks.processAssets.tap({name:"locales:module",stage:V.Compilation.PROCESS_ASSETS_STAGE_ADDITIONS},()=>{if(s.errors?.length)return;let r=tr(this.manifestPath);for(let n of Object.entries(r||[])){let[,i]=n;if(i){let o=new Set(s.fileDependencies),c=r||[];for(let l of c)Ne.default.existsSync(l)&&Re.default.extname(l)===".json"&&(o.has(l)||(o.add(l),s.fileDependencies.add(l)))}}})})}};var Xt=a(require("fs")),ee=a(require("@rspack/core"));var Gt=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",s=>{s.hooks.processAssets.tap({name:"json:module",stage:ee.Compilation.PROCESS_ASSETS_STAGE_ADDITIONS},()=>{if(s.errors.length>0)return;let r=this.includeList||{};for(let n of Object.entries(r)){let[i,o]=n,c=Array.isArray(o)?o:[o];for(let l of c)if(l&&!$(l,this.excludeList)){if(!Xt.default.existsSync(l)){s.warnings.push(new ee.default.WebpackError(rt(i,l)));return}let p=Xt.default.readFileSync(l),u=new ee.sources.RawSource(p);s.emitAsset(i+".json",u)}}})}),e.hooks.thisCompilation.tap("json:module",s=>{s.hooks.processAssets.tap({name:"json:module",stage:ee.Compilation.PROCESS_ASSETS_STAGE_ADDITIONS},()=>{if(s.errors?.length)return;let r=this.includeList||{};for(let n of Object.entries(r)){let[,i]=n,o=Array.isArray(i)?i:[i];for(let c of o)if(c){let l=new Set(s.fileDependencies);$(c,this.excludeList)||Xt.default.existsSync(c)&&(l.has(c)||(l.add(c),s.fileDependencies.add(c)))}}})})}};var sr=a(require("fs")),jo=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",s=>{s.hooks.processAssets.tap({name:"icons:emit-file",stage:Kt.Compilation.PROCESS_ASSETS_STAGE_OPTIMIZE_TRANSFER},()=>{if(s.errors.length>0)return;let r=this.includeList||{};for(let n of Object.entries(r)){let[i,o]=n;if(o===void 0)continue;let c=Array.isArray(o)?typeof o[0]=="string"?o:o.map(Object.values).flat():[o];for(let l of c)if(l){if(!sr.default.existsSync(l))continue;if(!$(l,this.excludeList)){let p=sr.default.readFileSync(l),u=new Kt.sources.RawSource(p),m=jo.default.basename(l),b=`${i.endsWith("theme_icons")?i.replace("theme_icons",""):i}/${m}`;s.emitAsset(b,u)}}}})})}};var Do=a(require("fs")),Lo=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",s=>{s.hooks.processAssets.tap({name:"icons:add-to-file-dependencies",stage:Lo.Compilation.PROCESS_ASSETS_STAGE_ADDITIONS},()=>{if(s.errors?.length)return;let r=this.includeList||{};for(let n of Object.entries(r)){let[,i]=n,o=Array.isArray(i)?typeof i[0]=="string"?i:i.map(Object.values).flat():[i];for(let c of o)if(c){let l=new Set(s.fileDependencies);Do.default.existsSync(c)&&(l.has(c)||(l.add(c),s.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 ts=require("@rspack/core");function Oo(t){return t.map(e=>{try{let s=new URL(e.replace(/^\*:\/\//,"https://"));return e.endsWith(s.pathname)?`${e.substring(0,e.length-s.pathname.length)}/*`:s.pathname==="/"?`${e}/*`:e}catch{return e}})}var es=class{manifestPath;includeList;excludeList;constructor(e){this.manifestPath=e.manifestPath,this.includeList=e.includeList,this.excludeList=e.excludeList}generateManifestPatches(e,s){let r=W(e,this.manifestPath),n=r.web_accessible_resources||[],i=r.web_accessible_resources||[];for(let[l,p]of Object.entries(s)){let u=r.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(r.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:Oo(m)})}else g.forEach(b=>{i.includes(b)||i.push(b)})}}r.manifest_version===3?n.length>0&&(r.web_accessible_resources=n):i.length>0&&(r.web_accessible_resources=Array.from(new Set(i)));let o=JSON.stringify(r,null,2),c=new ts.sources.RawSource(o);e.getAsset("manifest.json")&&e.updateAsset("manifest.json",c)}apply(e){e.hooks.thisCompilation.tap("plugin-extension:feature-web-resources",s=>{s.hooks.processAssets.tap({name:"plugin-extension:feature-web-resources",stage:ts.Compilation.PROCESS_ASSETS_STAGE_ANALYSE},()=>{let r=[],n=Object.keys(this.includeList||{});for(let c of n.filter(Boolean))c.startsWith("content_scripts")&&(Array.isArray(c)?r.push(...c):typeof c=="string"&&r.push(c));let i=s.chunkGraph,o={};s.entrypoints.forEach((c,l)=>{if(r.includes(l)){let p=[];c.chunks.forEach(u=>{Array.from(i.getChunkModulesIterable(u)).forEach(g=>{i.getModuleChunks(g).forEach(b=>{b.auxiliaryFiles.forEach(_=>{p.includes(_)||p.push(_)})})})}),o[l]=p}}),this.generateManifestPatches(s,o)})})}};var I=a(require("fs")),M=a(require("path")),Io=a(require("chokidar")),ss=class{options;constructor(e){this.options=e}ensureDirectoryExistence(e){let s=M.default.dirname(e);if(I.default.existsSync(s))return!0;I.default.mkdirSync(s,{recursive:!0})}copyFile(e,s){this.ensureDirectoryExistence(s),I.default.copyFileSync(e,s)}copyFolder(e,s){I.default.existsSync(s)||I.default.mkdirSync(s,{recursive:!0}),I.default.readdirSync(e).forEach(n=>{let i=M.default.join(e,n),o=M.default.join(s,n);I.default.statSync(i).isDirectory()?this.copyFolder(i,o):this.copyFile(i,o)})}apply(e){let s=M.default.dirname(this.options.manifestPath),r=M.default.join(s,"public"),n=e.options.output?.path||"";I.default.existsSync(r)&&(e.hooks.afterEmit.tap("special-folders:copy-public-folder",()=>{let i=M.default.join(n,"/");I.default.existsSync(i)||I.default.mkdirSync(i,{recursive:!0}),I.default.existsSync(r)&&this.copyFolder(r,i)}),e.options.mode!=="production"&&e.hooks.afterPlugins.tap("special-folders:copy-public-folder",()=>{let i=M.default.join(s,"public"),o=Io.default.watch(i,{ignoreInitial:!0});o.on("add",c=>{let l=M.default.join(n,M.default.relative(s,c));this.copyFile(c,l)}),o.on("change",c=>{let l=M.default.join(n,M.default.relative(s,c));this.copyFile(c,l)}),o.on("unlink",c=>{let l=M.default.join(n,M.default.relative(s,c));I.default.existsSync(l)&&I.default.unlinkSync(l)}),e.hooks.watchClose.tap("special-folders:copy-public-folder",()=>{o.close().catch(console.error)})}))}};var U=a(require("path")),rr=a(require("chokidar"));var rs=class{manifestPath;constructor(e){this.manifestPath=e}throwCompilationError(e,s,r){let n=U.relative(process.cwd(),s),c=qr(r?"Adding":"Removing",e,e==="pages"?"HTML pages":"script files",n);if(r){console.warn(c);return}console.error(c),process.exit(1)}apply(e){e.hooks.afterPlugins.tap("special-folders:warn-upon-folder-changes",()=>{let s=U.dirname(this.manifestPath),r=U.join(s,"pages"),n=U.join(s,"scripts"),i=rr.watch(r,{ignoreInitial:!0}),o=rr.watch(n,{ignoreInitial:!0}),c=e.options.resolve?.extensions;i.on("add",l=>{l.endsWith(".html")&&this.throwCompilationError("pages",l,!0)}),i.on("unlink",l=>{l.endsWith(".html")&&this.throwCompilationError("pages",l)}),o.on("add",l=>{c?.includes(U.extname(l))&&this.throwCompilationError("scripts",l,!0)}),o.on("unlink",l=>{c?.includes(U.extname(l))&&this.throwCompilationError("scripts",l)}),e.hooks.watchClose.tap("WarnUponFolderChanges",()=>{i.close().catch(console.error),o.close().catch(console.error)})})}};var ns=class{static name="plugin-special-folders";options;constructor(e){this.options=e}apply(e){let{manifestPath:s}=this.options;new ss({manifestPath:s}).apply(e),e.options.mode==="development"&&e.options.watchOptions&&new rs(s).apply(e)}};var is=class{static name="plugin-extension";manifestPath;browser;constructor(e){this.manifestPath=e.manifestPath,this.browser=e.browser||"chrome"}apply(e){let s=this.manifestPath,r=le({manifestPath:s,browser:this.browser}),n=Li({manifestPath:s,browser:this.browser});new jt({browser:this.browser,manifestPath:s,includeList:{...r.html,...r.icons,...r.json,...r.scripts},excludeList:n.public}).apply(e),new qt({manifestPath:s,includeList:{...r.html,...n.pages},excludeList:{...n.public,...n.scripts}}).apply(e),new Ht({manifestPath:s,browser:this.browser,includeList:{...r.scripts,...n.scripts},excludeList:{...n.public,...n.pages}}).apply(e),new Vt({manifestPath:s}).apply(e),new Gt({manifestPath:s,includeList:r.json,excludeList:n.public}).apply(e),new Qt({manifestPath:s,includeList:r.icons,excludeList:n.public}).apply(e),new es({manifestPath:s,includeList:{...r.scripts,...n.scripts},excludeList:n.public}).apply(e),new ns({manifestPath:s}).apply(e)}};var Be=a(require("path"));var Mo=a(require("path")),Ao=a(require("ws"));function os(t,e){t.clients.forEach(s=>{s.readyState===Ao.default.OPEN&&s.send(JSON.stringify(e))})}function Ro(t,e,s){if(!s||!e)return;let r=le({manifestPath:e}).locales,n=le({manifestPath:e}).scripts,i=le({manifestPath:e}).json;if(!t){process.env.EXTENSION_ENV==="development"&&console.error("WebSocket server is not running.");return}Mo.default.basename(s)==="manifest.json"&&os(t,{changedFile:"manifest.json"}),r?.forEach(o=>{o.includes(s)&&os(t,{changedFile:"_locales"})}),Object.entries(n).forEach(([o,c])=>{let l=Array.isArray(c)?c:[c];Object.values(l).flatMap(u=>u).includes(s)&&o==="background/service_worker"&&os(t,{changedFile:"service_worker"})}),Object.entries(i).forEach(([o,c])=>{c?.includes(s)&&o==="declarative_net_request"&&os(t,{changedFile:"declarative_net_request"})})}var ir=a(require("path")),Bo=a(require("fs")),Ue=a(require("ws"));var Te=a(require("path")),Cl=a(require("http")),To=a(require("https")),nr=a(require("fs"));var No=t=>{if(!nr.default.existsSync(t))return;let e=Te.default.basename(t);return nr.default.readFileSync(Te.default.join(__dirname,"certs",e))};function Uo(t){let e={key:No(Te.default.join(__dirname,"certs","localhost.key")),cert:No(Te.default.join(__dirname,"certs","localhost.cert"))},s=To.default.createServer(e,(r,n)=>{n.writeHead(200),n.end()});return s.on("error",r=>{throw console.error(Gr(t)),new Error(r.message)}),{server:s,port:t}}function jl(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:Uo(t+2).server});default:return new Ue.default.Server({host:"localhost",port:8888})}}async function qo(t,e){let s=t.options.context||"",r=require(ir.default.join(s,"manifest.json")),i=jl(8e3,e.browser);if(i.on("connection",o=>{o.send(JSON.stringify({status:"serverReady"})),o.on("error",c=>{console.log(zr(c))}),o.on("message",c=>{let l=JSON.parse(c.toString());if(l.status==="clientReady"){let p=require(ir.default.join(s,"manifest.json"));setTimeout(()=>{console.log(Ms(p,e.browser,l)),console.log("")},2500),tn(e.browser)&&setTimeout(()=>{console.log(Jr(e.browser))},5e3)}})}),e.browser==="firefox"||e.browser==="gecko-based"){let o=sn(r);console.log(Ms(r,e.browser,o)),console.log(""),Bo.default.existsSync(tt)||(console.log(Xr()),console.log(""))}return i}var Wo=a(require("path")),or=a(require("fs"));function Jo(t,e){let s=Wo.default.resolve(__dirname,`./extensions/${t}-manager-extension/reload-service.js`);try{let r=or.default.readFileSync(s,"utf8"),n=r.replace(/__RELOAD_PORT__/g,e.toString());n!==r&&or.default.writeFileSync(s,n,"utf8")}catch(r){console.error(`Error processing file: ${r.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;Jo(this.browser,this.port);let s=await qo(e,{...this,mode:e.options.mode,browser:this.browser,stats:this.stats,port:this.port});e.hooks.watchRun.tapAsync("reload:create-web-socket-server",(r,n)=>{let o=(r.modifiedFiles||new Set).values().next().value;if(!o){n();return}let c=Be.default.relative(Be.default.dirname(this.manifestPath),o),l=Be.default.relative(process.cwd(),Be.default.dirname(o));process.env.EXTENSION_ENV==="development"&&console.info(`\u25BA\u25BA Updated file \`${c}\` (relative to ${l})`),this.manifestPath&&Ro(s,this.manifestPath,o),n()})}};var ar=a(require("path"));function zo(t,e,s){t.options.module.rules.push({test:/\.(js|mjs|jsx|mjsx|ts|mts|tsx|mtsx)$/,include:[ar.default.dirname(s)],exclude:[/[\\/]node_modules[\\/]/],use:[{loader:ar.default.resolve(__dirname,"./inject-chromium-client-loader"),options:{manifestPath:s,browser:e}}]})}var cr=a(require("path"));function Ho(t,e,s){t.options.module.rules.push({test:/\.(js|mjs|jsx|mjsx|ts|mts|tsx|mtsx)$/,include:[cr.default.dirname(s)],exclude:[/[\\/]node_modules[\\/]/],use:[{loader:cr.default.resolve(__dirname,"./inject-firefox-client-loader"),options:{manifestPath:s,browser:e}}]})}var cs=require("@rspack/core");var lr=a(require("content-security-policy-parser"));function Vo(t){let e="";for(let s in t)e+=`${s} ${t[s].join(" ")}; `;return e.trim()}function Xo(t){let e=t.content_security_policy;if(!e)return"script-src 'self' 'unsafe-eval' blob: filesystem:; object-src 'self' blob: filesystem:; ";let s=(0,lr.default)(e);if(!s.get("script-src"))s.set("script-src",["'self'","'unsafe-eval'","blob:","filesystem:"]);else{let n=s.get("script-src")||[];n.includes("'unsafe-eval'")||n.push("'unsafe-eval'"),n.includes("blob:")||n.push("blob:"),n.includes("filesystem:")||n.push("filesystem:"),s.set("script-src",n)}s.get("object-src")||s.set("object-src",["'self'","blob:","filesystem:"]);let r=Object.fromEntries(s.entries());return Vo(r)}function Go(t){let e=t.content_security_policy;if(!e)return{extension_pages:"script-src 'self'; object-src 'self';"};let s=(0,lr.default)(e.extension_pages||""),r={};for(let o in r)s.get(o)||s.set(o,r[o]);let n=Object.fromEntries(s.entries());return{extension_pages:Vo(n)}}function Zo(t){let e=["/*.json","/*.js","/*.css"],s=t.web_accessible_resources;if(!s||s.length===0)return e;let r=new Set(s);for(let n of e)r.has(n)||r.add(n);return Array.from(r)}function Ko(t){let e=["/*.json","/*.js","/*.css"];return[...t.web_accessible_resources||[],{resources:e,matches:["<all_urls>"]}]}function pr(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 fr(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 as=class{manifestPath;browser;constructor(e){this.manifestPath=e.manifestPath,this.browser=e.browser||"chrome"}generateManifestPatches(e){let s=W(e,this.manifestPath),r={...s,content_security_policy:s.manifest_version===3?Go(s):Xo(s),...s.manifest_version===3?s.permissions?{permissions:[...new Set(["scripting",...s.permissions])]}:{permissions:["scripting"]}:{},...pr(s,this.browser),...fr(s),web_accessible_resources:s.manifest_version===3?Ko(s):Zo(s)},n=JSON.stringify(r,null,2),i=new cs.sources.RawSource(n);e.getAsset("manifest.json")&&e.updateAsset("manifest.json",i)}apply(e){e.hooks.thisCompilation.tap("run-chromium:apply-manifest-dev-defaults",s=>{s.hooks.processAssets.tap({name:"run-chromium:apply-manifest-dev-defaults",stage:cs.Compilation.PROCESS_ASSETS_STAGE_SUMMARIZE},r=>{if(!this.manifestPath){let n="No manifest.json found in your extension bundle. Unable to patch manifest.json.";s&&e.rspack.WebpackError&&s.errors.push(new e.rspack.WebpackError(`run-chromium: ${n}`));return}this.generateManifestPatches(s)})})}};var ur=a(require("fs")),he=a(require("path")),Yo=a(require("webpack-target-webextension"));var ls=class{manifestPath;browser;constructor(e){this.manifestPath=e.manifestPath,this.browser=e.browser||"chrome"}handleBackground(e,s,r){let n=he.default.resolve(__dirname,s==="firefox"||s==="gecko-based"?"minimum-firefox-file.mjs":"minimum-chromium-file.mjs"),i=he.default.dirname(this.manifestPath),o=P(r,s);if(s==="firefox"||s==="gecko-based"){o=r.background;let c=o?.scripts;if(c&&c.length>0){let l=he.default.join(i,c[0]);this.ensureFileExists(l)}else this.addDefaultEntry(e,"background/script",n)}else if(o=r.background,r.manifest_version===3){let c=o?.service_worker;if(c){let l=he.default.join(i,c);this.ensureFileExists(l)}else this.addDefaultEntry(e,"background/service_worker",n)}else if(r.manifest_version===2){let c=o?.scripts;if(c&&c.length>0){let l=he.default.join(i,c[0]);this.ensureFileExists(l)}else this.addDefaultEntry(e,"background/script",n)}}ensureFileExists(e){if(!ur.default.existsSync(e)&&this.manifestPath){let s=require(this.manifestPath),n=P(s,"chrome").name||"Extension.js",i=Hr(n,e);throw console.error(i),new Error(i)}}addDefaultEntry(e,s,r){e.options.entry={...e.options.entry,[s]:{import:[r]}}}getEntryName(e){if(e.background){if(this.browser==="firefox"||this.browser==="gecko-based")return{pageEntry:"background/script"};if(e.manifest_version===3)return{serviceWorkerEntry:"background/service_worker"};if(e.manifest_version===2)return{pageEntry:"background/script"}}return{pageEntry:"background"}}apply(e){if(!this.manifestPath||!ur.default.lstatSync(this.manifestPath).isFile())return;let s=require(this.manifestPath),r=P(s,this.browser);this.handleBackground(e,this.browser,r),new Yo.default({background:this.getEntryName(r),weakRuntimeCheck:!0}).apply(e)}};var mr=class{manifestPath;browser;constructor(e){this.manifestPath=e.manifestPath,this.browser=e.browser||"chrome"}apply(e){(Z.includes(this.browser)||this.browser==="chromium-based")&&zo(e,this.browser,this.manifestPath),(this.browser==="firefox"||this.browser==="gecko-based")&&Ho(e,this.browser,this.manifestPath),new as({manifestPath:this.manifestPath,browser:this.browser}).apply(e),new ls({manifestPath:this.manifestPath,browser:this.browser}).apply(e)}},Qo=mr;var ps=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 Qo({manifestPath:this.manifestPath,browser:this.browser,autoReload:this.autoReload,stats:this.stats}).apply(e)}};var ea=a(require("@rspack/core")),fs=class{manifestPath;browser;constructor(e){this.manifestPath=e.manifestPath,this.browser=e.browser}apply(e){new ea.default.ProvidePlugin({browser:require.resolve("webextension-polyfill")}).apply(e)}};var ms=require("@rspack/core");var us=class{browser;manifestPath;constructor(e){this.manifestPath=e.manifestPath,this.browser=e.browser||"chrome"}patchManifest(e){let s=P(e,this.browser);return JSON.stringify(s,null,2)}apply(e){e.hooks.compilation.tap("compatibility:browser-specific-fields",s=>{s.hooks.processAssets.tap({name:"compatibility:browser-specific-fields",stage:ms.Compilation.PROCESS_ASSETS_STAGE_OPTIMIZE},()=>{let r=W(s,this.manifestPath),n=this.patchManifest(r),i=new ms.sources.RawSource(n);s.updateAsset("manifest.json",i)})})}};var ds=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 fs({manifestPath:this.manifestPath,browser:this.browser||"chrome"}).apply(e),new us({manifestPath:this.manifestPath,browser:this.browser||"chrome"}).apply(e)}};var wc=a(require("os")),wr=a(require("path"));var Fa=a(require("fs")),Ca=a(require("path")),ja=require("child_process");var be=a(require("path")),Je=a(require("fs"));var ta={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}},sa={...ta},ra={...ta};var y=require("@colors/colors/safe");function w(t,e){let s=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)("")}${s}`}function ye(t){return t.charAt(0).toUpperCase()+t.slice(1)}function gs(t){let e=ye(t);return`${w(t,"info")} Creating new ${e} user profile...`}function na(t){return`${w(t,"success")} Instance already running.`}function ia(t){return`${w(t,"info")} Instance exited.`}function hs(t,e){let s=t==="firefox"||t==="gecko-based"?"Add-on":"Extension";return`${w(t,"success")} ${ye(t)} ${s} running in ${(0,y.brightBlue)(e||"unknown")} mode.`}function We(t,e){let s=e=="null"?`Browser is not installed
|
|
75
75
|
|
|
76
76
|
`:`Can't find the browser path
|
|
77
77
|
|
|
78
78
|
`;return`${w(t,"error")} ${s}Either install the missing browser or choose a different one via ${(0,y.brightYellow)("--browser")} flag.
|
|
79
|
-
${(0,y.red)("NOT FOUND")} ${(0,y.underline)(e||ye(t)+"BROWSER")}`}function
|
|
79
|
+
${(0,y.red)("NOT FOUND")} ${(0,y.underline)(e||ye(t)+"BROWSER")}`}function oa(t){return`${w(t,"error")} No Service Worker Support
|
|
80
80
|
|
|
81
81
|
Firefox does not support the ${(0,y.brightYellow)("background.service_worker")} field yet.
|
|
82
82
|
Update your manifest.json file to use ${(0,y.brightYellow)("background.scripts")} instead.
|
|
@@ -88,24 +88,24 @@ ${(0,y.red)(e)}`}function fa(t,e){return`${w(t,"error")} Path is not directory
|
|
|
88
88
|
Please provide a valid directory path and try again.
|
|
89
89
|
${(0,y.red)("NOT DIRECTORY")} ${(0,y.underline)(e)}`}function ua(t){return`${w(t,"error")} Error parsing message length.`}function ma(t){return`${w(t,"error")} ${(0,y.magenta)("MessagingClient")} connection closed.`}function da(t,e){return`${w(t,"error")} Unexpected ${(0,y.magenta)("MessagingClient")} request without target actor: ${(0,y.brightYellow)(e)}`}function ga(t){return`${w(t,"error")} ${(0,y.magenta)("MessagingClient")} connection closed.`}function ha(t,e){return`${w(t,"error")} Target actor ${(0,y.brightYellow)(e)} already has an active request.`}function ya(t,e){return`${w(t,"error")} Error parsing packet: ${(0,y.red)(e)}`}function ba(t,e){return`${w(t,"error")} Message received without a sender actor:
|
|
90
90
|
${(0,y.brightYellow)(JSON.stringify(e))}`}function xa(t,e){return`${w(t,"error")} Received unexpected message:
|
|
91
|
-
${(0,y.red)(e)}`}function wa(t,e){return`${w(t,"info")} Using own ${(0,y.magenta)("starting URL")} ${(0,y.underline)(e)}. `}function dr(t,e){return`${w(t,"info")} Using own ${(0,y.magenta)(`${ye(t)} browser binary`)} ${(0,y.underline)(e)}. `}function va(t,e){return`${w(t,"info")} Using own ${(0,y.magenta)("browser profile")} ${(0,y.underline)(e)}. `}function Sa(t){return`${w(t,"info")} Using own ${(0,y.magenta)("browser preferences")}. `}function _a(t){return`${w(t,"info")} Using own ${(0,y.magenta)("browser flags")}. `}function Pa(t,e){return`${w(t,"info")} Browser launcher is ${(0,y.brightYellow)(e?"enabled":"disabled")}. `}var Ea=a(require("progress"));function ys(t,e){let r=new Ea.default(`${t} [:bar] :percent :etas`,{complete:"=",incomplete:" ",width:50,total:131072}),n=setInterval(()=>{let
|
|
91
|
+
${(0,y.red)(e)}`}function wa(t,e){return`${w(t,"info")} Using own ${(0,y.magenta)("starting URL")} ${(0,y.underline)(e)}. `}function dr(t,e){return`${w(t,"info")} Using own ${(0,y.magenta)(`${ye(t)} browser binary`)} ${(0,y.underline)(e)}. `}function va(t,e){return`${w(t,"info")} Using own ${(0,y.magenta)("browser profile")} ${(0,y.underline)(e)}. `}function Sa(t){return`${w(t,"info")} Using own ${(0,y.magenta)("browser preferences")}. `}function _a(t){return`${w(t,"info")} Using own ${(0,y.magenta)("browser flags")}. `}function Pa(t,e){return`${w(t,"info")} Browser launcher is ${(0,y.brightYellow)(e?"enabled":"disabled")}. `}var Ea=a(require("progress"));function ys(t,e){let r=new Ea.default(`${t} [:bar] :percent :etas`,{complete:"=",incomplete:" ",width:50,total:131072}),n=setInterval(()=>{let i=Math.random()*10*1024;r.tick(i),r.complete&&(clearInterval(n),e())},50)}function ka(t,e,s={}){if(e&&Je.default.existsSync(e))return e;let r=be.default.resolve(__dirname,`run-${t}-profile`);if(!e&&Je.default.existsSync(r))return be.default.resolve(__dirname,`run-${t}-profile`);let i=JSON.stringify({...t==="chrome"?sa:ra,...s});return ys(gs(t),()=>{let o=e||r,c=be.default.join(o,"Default");Je.default.mkdirSync(c,{recursive:!0});let l=be.default.join(c,"Preferences");Je.default.writeFileSync(l,i,"utf8")}),be.default.resolve(__dirname,`run-${t}-profile`)}function $a(t){let e=Array.isArray(t.extension)?t.extension:[t.extension],s=ka(t.browser,t.profile,t.preferences);return[`--load-extension=${e.join()}`,`--user-data-dir=${s}`,"--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 s;switch(e){case"chrome":s=require(`${e}-location`);break;case"edge":s=require(`${e}-location`)();break;case"chromium-based":s=Ca.default.normalize(this.chromiumBinary);break;default:s=require(`${e}`);break}Fa.default.existsSync(s)||(console.error(We(e,s)),process.exit());let r=$a(this),n=this.startingUrl?[this.startingUrl,...r]:[...r],i=process.env.EXTENSION_ENV==="development"?"inherit":"ignore",o=(0,ja.spawn)(`${s}`,n,{stdio:i});process.env.EXTENSION_ENV==="development"&&(o.stdout?.pipe(process.stdout),o.stderr?.pipe(process.stderr))}apply(e){let s=!1;e.hooks.done.tapAsync("run-browsers:module",(r,n)=>{if(r.compilation.errors.length>0){n();return}if(s){n();return}this.launchChromium(this.browser),setTimeout(()=>{console.log(hs(this.browser,r.compilation.options.mode))},2e3),s=!0,n()})}};var bc=a(require("fs")),xc=a(require("path")),xr=require("child_process");var He=a(require("fs")),bs=a(require("path")),Da=a(require("os")),La=a(require("which")),Oa=process.platform==="darwin",Dl=process.platform==="win32",Ll=!Oa&&!Dl;function Ol(){if(Ll)try{return La.default.sync("firefox")}catch{return null}else if(Oa){let t="/Applications/Firefox.app/Contents/MacOS/firefox",e=bs.default.join(Da.default.homedir(),t.slice(1));return He.default.existsSync(t)?t:He.default.existsSync(e)?e:null}else{let t=bs.default.join("Mozilla Firefox","firefox.exe"),e=[process.env.LOCALAPPDATA,process.env.PROGRAMFILES,process.env["PROGRAMFILES(X86)"]];for(let r of e)if(r){let n=bs.default.join(r,t);if(He.default.existsSync(n))return n}let s=["C:\\Program Files\\Mozilla Firefox\\firefox.exe","C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe"];for(let r of s)if(He.default.existsSync(r))return r;return null}}var Ia=Ol();var yr=a(require("path")),ws=a(require("fs")),br=a(require("firefox-profile"));var Il={"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 gr(t){return{...Il,...t}}var Ve=a(require("fs")),Xe=a(require("path"));var xs=a(require("path")),Ma=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 X(t){return`${k("error")} Manifest file not found.
|
|
92
92
|
|
|
93
93
|
Ensure the path to your extension exists and try again.
|
|
94
|
-
${(0,d.red)("NOT FOUND")} ${(0,d.underline)(t)}`}function Aa(t){let e=t==="firefox"||t==="gecko-based"?"Add-on":"Extension";return`${k("info")} Building ${xe(t)} ${e} package...`}function Ra(t,e){let s=xs.default.join(t,"dist",e.browser||"chrome"),r=xs.default.join(s,"manifest.json"),n=require(r),{name:
|
|
94
|
+
${(0,d.red)("NOT FOUND")} ${(0,d.underline)(t)}`}function Aa(t){let e=t==="firefox"||t==="gecko-based"?"Add-on":"Extension";return`${k("info")} Building ${xe(t)} ${e} package...`}function Ra(t,e){let s=xs.default.join(t,"dist",e.browser||"chrome"),r=xs.default.join(s,"manifest.json"),n=require(r),{name:i,version:o,hostPermissions:c,permissions:l}=n,p=c&&c.length,u=l&&l.length,m=Os().version;return`
|
|
95
95
|
\u{1F9E9} ${(0,d.brightGreen)("Extension.js")} ${(0,d.gray)(`${m}`)}
|
|
96
|
-
Extension Name ${(0,d.gray)(
|
|
97
|
-
Extension Version ${(0,d.gray)(
|
|
96
|
+
Extension Name ${(0,d.gray)(i)}
|
|
97
|
+
Extension Version ${(0,d.gray)(o)}
|
|
98
98
|
Host Permissions ${(0,d.gray)(p?c.join(", "):"Browser defaults")}
|
|
99
99
|
Permissions ${(0,d.gray)(u?l.join(", "):"Browser defaults")}
|
|
100
|
-
`}function Na(t,e,s){let r=e?.toJson(),n=xs.default.join(t,"manifest.json"),
|
|
100
|
+
`}function Na(t,e,s){let r=e?.toJson(),n=xs.default.join(t,"manifest.json"),i=JSON.parse(Ma.default.readFileSync(n,"utf8")),o=r?.assets,c=`${k("info")} Building ${(0,d.cyan)(i.name)} extension using ${xe(s)} defaults...
|
|
101
101
|
|
|
102
102
|
`,l=`
|
|
103
103
|
Build completed in ${((r?.time||0)/1e3).toFixed(2)} seconds.`,p=`Build Target: ${(0,d.gray)(xe(s))}
|
|
104
104
|
`,u=`Build Status: ${e?.hasErrors()?(0,d.red)("Failed"):(0,d.brightGreen)("Success")}
|
|
105
105
|
`,m=`
|
|
106
|
-
Version: ${(0,d.gray)(
|
|
107
|
-
`,g=`Size: ${(0,d.gray)(Ml(
|
|
108
|
-
`,b="";return b+=c,b+=Al(
|
|
106
|
+
Version: ${(0,d.gray)(i.version)}
|
|
107
|
+
`,g=`Size: ${(0,d.gray)(Ml(o))}
|
|
108
|
+
`,b="";return b+=c,b+=Al(o),b+=m,b+=g,b+=p,b+=u,b+=l,b}function Ta(){return`${k("success")} No errors or warnings found. Your extension is ${(0,d.brightGreen)("ready for deployment")}.`}function Ua(t,e){return`${k("info")} Fetching data...
|
|
109
109
|
${(0,d.gray)("URL")} ${(0,d.underline)(`https://github.com/${t}/${e}`)}`}function Ba(t){return`${k("info")} Downloading ${(0,d.cyan)(t)}...`}function qa(t){return`
|
|
110
110
|
${k("info")} Creating a new browser extension...
|
|
111
111
|
${(0,d.gray)("PATH")} ${(0,d.underline)(`${t}`)}`}function Wa(t){return`${k("info")} No ${(0,d.brightYellow)(".gitignore")} found, zipping all the content inside path:
|
|
@@ -119,9 +119,9 @@ ${(0,d.gray)("PATH")} ${(0,d.underline)(t)}`}function Ha(t,e,s,r){return`\u{1F4E
|
|
|
119
119
|
${(0,d.red)(t)}`}function Za(t){return`${k("info")} Writing type definitions for ${(0,d.cyan)(t.name||"")}...`}function Ka(t){return`${k("error")} Failed to write the extension type definition.
|
|
120
120
|
${(0,d.red)(t)}`}function Ya(t){return`${k("info")} Downloading extension...
|
|
121
121
|
${(0,d.gray)("URL")} ${(0,d.underline)(t)}`}function Qa(t){return`${k("info")} Unpackaging browser extension...
|
|
122
|
-
${(0,d.gray)("PATH")} ${(0,d.underline)(t)}`}function ec(){return`${k("info")} Browser extension unpackaged ${(0,d.brightGreen)("successfully")}. Compiling...`}function tc(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 sc(t){return`${(t/1024).toFixed(2)}KB`}function Ml(t){let e=0;return t?.forEach(s=>{e+=s.size}),sc(e)}function rc(t,e=""){let s="";return Object.keys(t).forEach((r,n,
|
|
123
|
-
`,typeof t[r]=="object"&&!t[r].size&&(s+=rc(t[r],`${e}${
|
|
124
|
-
${rc(e)}`}function nc(t){return`${k("info")} Using ${(0,d.magenta)(t)}. ${(0,d.brightYellow)("This is very experimental")}.`}function oc(){return`${k("info")} Installing project dependencies...`}function ic(t,e,s){return`${k("error")} Command ${t} ${e.join(" ")} failed with exit code ${s}`}function ac(t){return`${k("error")} Can't install project dependencies. ${(0,d.red)(t.message||t.toString())}`}async function we(t){let e=Xe.default.join(t,"extension.config.js");if(Ve.default.existsSync(e)&&await hr(t)){let s=require(e);if(s&&typeof s.config=="function")return s.config}return s=>s}async function lc(t,e){let s=Xe.default.join(t,"extension.config.js");if(Ve.default.existsSync(s)&&await hr(t)){let r=require(s);if(r)return r[e]}return{}}async function ve(t,e="chrome"){let s=Xe.default.join(t,"extension.config.js");if(Ve.default.existsSync(s)&&await hr(t)){let r=require(s);if(r&&r.browser&&r.browser[e])return r.browser[e]||{browser:"chrome"}}return{browser:"chrome"}}var cc=!1;async function hr(t){let e=Xe.default.join(t,"extension.config.js");return Ve.default.existsSync(e)?(cc||(console.log(nc("extension.config.js")),cc=!0),!0):!1}function pc(t,e){let s={...ve(yr.default.resolve(__dirname,"run-firefox"),"firefox"),...gr(e)};Object.keys(s).forEach(o=>{t.setPreference(o,s[o])});let n=Object.keys(e);return n.length>0&&n.forEach(o=>{t.setPreference(o,e[o])}),t.updatePreferences(),t}function Rl(t,e){let s=new br.default({destinationDirectory:t});return pc(s,e)}function Nl(t,e,s){let r;if(ws.default.statSync(e).isDirectory())r=e;else throw new Error(fa(t,e));let o=new br.default({destinationDirectory:r});return pc(o,s)}function fc(t,e,s={}){let r,n=e||yr.default.resolve(__dirname,`run-${t}-profile`),c={...gr(s||{}),...s};return!e&&ws.default.existsSync(n)?r=Nl(t,n,c):(ys(gs(t),()=>{}),ws.default.mkdirSync(n,{recursive:!0}),r=Rl(n,c)),r}async function uc(t,e){let{browser:s,startingUrl:r,preferences:n,profile:o,browserFlags:i=[]}=e,c=fc(s,o,n),l=[];r&&l.push(`--url=${r}`),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 yc=a(require("path"));var mc=a(require("net")),dc=a(require("events"));function Tl(t,e){let s=e.toString(),r=s.indexOf(":");if(r<1)return{remainingData:e};let n=parseInt(s.substring(0,r),10);if(isNaN(n))return{remainingData:e,error:new Error(ua(t)),fatal:!0};if(e.length-(r+1)<n)return{remainingData:e};let o=e.slice(r+1,r+1+n),i=e.slice(r+1+n);try{let c=JSON.parse(o.toString());return{remainingData:i,parsedMessage:c}}catch(c){return{remainingData:i,error:c,fatal:!1}}}var vs=class extends dc.default{incomingData=Buffer.alloc(0);pendingRequests=[];activeRequests=new Map;connection;async connect(e){await new Promise((s,r)=>{try{let n={port:e,host:"127.0.0.1"},o=mc.default.createConnection(n,()=>{s()});this.connection=o,o.on("data",this.onData.bind(this)),o.on("error",r),o.on("end",this.onEnd.bind(this)),o.on("timeout",this.onTimeout.bind(this)),this.expectReply("root",{resolve:s,reject:r})}catch(n){r(n)}})}disconnect(){this.connection&&(this.connection.removeAllListeners(),this.connection.end(),this.rejectAllRequests(new Error(ma("firefox"))))}rejectAllRequests(e){this.activeRequests.forEach(s=>{s.reject(e)}),this.activeRequests.clear(),this.pendingRequests.forEach(({deferred:s})=>{s.reject(e)}),this.pendingRequests=[]}async request(e){let s=typeof e=="string"?{to:"root",type:e}:e;if(!s.to)throw new Error(da("firefox",s.type));return await new Promise((r,n)=>{let o={resolve:r,reject:n};this.pendingRequests.push({request:s,deferred:o}),this.flushPendingRequests()})}flushPendingRequests(){this.pendingRequests=this.pendingRequests.filter(({request:e,deferred:s})=>{if(this.activeRequests.has(e.to))return!0;if(!this.connection)throw new Error(ga("firefox"));try{let r=`${Buffer.from(JSON.stringify(e)).length}:${JSON.stringify(e)}`;this.connection.write(r),this.expectReply(e.to,s)}catch(r){s.reject(r)}return!1})}expectReply(e,s){if(this.activeRequests.has(e))throw new Error(ha("firefox",e));this.activeRequests.set(e,s)}onData(e){for(this.incomingData=Buffer.concat([this.incomingData,e]);this.readMessage(););}readMessage(){let{remainingData:e,parsedMessage:s,error:r,fatal:n}=Tl("firefox",this.incomingData);return this.incomingData=e,r?(this.emit("error",new Error(ya("firefox",r))),n&&this.disconnect(),!n):s?(this.handleMessage(s),!0):!1}handleMessage(e){if(!e.from){this.emit("error",new Error(ba("firefox",e)));return}let s=this.activeRequests.get(e.from);s?(this.activeRequests.delete(e.from),e.error?s.reject(e):s.resolve(e),this.flushPendingRequests()):this.emit("error",new Error(xa("firefox",JSON.stringify(e))))}onError(e){this.emit("error",e)}onEnd(){this.emit("end")}onTimeout(){this.emit("timeout")}};function gc(t){return t instanceof Error?String(t):`${t.error}: ${t.message}`}function hc(t,e){return Array.isArray(t)&&t.includes(e.code)?!0:e.code===t}var Ul=150,Bl=1e3,Ss=class{options;constructor(e){this.options=e}async connectClient(e){let s;for(let r of Array.from({length:Ul}))try{let n=new vs;return await n.connect(e),n}catch(n){if(hc("ECONNREFUSED",n))await new Promise(o=>setTimeout(o,Bl)),s=n;else throw console.error(ca(this.options.browser,n.stack)),n}throw console.error(la(this.options.browser)),s}async installAddons(e){let{devtools:s}=this.options,r=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 r.entries()){let p=yc.default.join(l.replace(/"/g,"")),u=c===0&&s;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=gc(m);throw new Error(pa(this.options.browser,g))}}}};var se=null;process.on("SIGINT",()=>{se&&se.kill("SIGINT"),process.exit()});process.on("SIGTERM",()=>{se&&se.kill("SIGTERM"),process.exit()});var _s=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((s,r)=>{(0,xr.exec)(`${e} --version`,n=>{n?r(n):s(null)})}),e}catch{console.error(We("firefox",e)),process.exit(1)}}async launchFirefox(e,s){let r=await this.getFxRunnerCommand(),n;switch(s.browser){case"gecko-based":n=xc.default.normalize(this.geckoBinary);break;default:n=Ia;break}let o=`${r} start --binary "${n}" --foreground --no-remote`;bc.default.existsSync(n||"")||(console.error(We(this.browser,n||"")),process.exit(1));let i=await uc(e,s),c=`${o} ${i}`;se=(0,xr.exec)(c,(p,u,m)=>{if(p!=null)throw p;m.includes("Unable to move the cache")?console.log(na(this.browser)):(console.log(oa(this.browser)),process.exit())}),process.env.EXTENSION_ENV==="development"&&(se.stdout?.pipe(process.stdout),se.stderr?.pipe(process.stderr));let l=new Ss(this);try{await l.installAddons(e)}catch(p){p?.toString()?.includes("background.service_worker is currently disabled")&&(console.error(ia(this.browser)),process.exit(1)),console.error(aa(this.browser,p)),process.exit(1)}}apply(e){let s=!1;e.hooks.done.tapAsync("run-firefox:module",async(r,n)=>{if(r.compilation.errors.length>0){n();return}if(s){n();return}setTimeout(()=>{console.log(hs(this.browser,r.compilation.options.mode))},2e3),await this.launchFirefox(e,{browser:this.browser,browserFlags:this.browserFlags,profile:this.profile,preferences:this.preferences,startingUrl:this.startingUrl,mode:r.compilation.options.mode}),s=!0,n()})}};var Ps=class{static name="plugin-browsers";extension;browser;open;browserFlags;profile;preferences;startingUrl;chromiumBinary;geckoBinary;constructor(e){this.extension=[...e.extension,...e.browserFlags?.filter(s=>!s.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(s=>!s.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,s,r){return r||(e.options.mode==="production"?wr.default.join(wc.default.tmpdir(),"extension-js",s,"profile"):wr.default.resolve(__dirname,`run-${s}-profile`))}async apply(e){let s={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},r=await ve(e.context,this.browser),n={...s,...r};if(n?.open===!1&&console.log(Pa(this.browser,!1)),n?.startingUrl&&console.log(wa(n?.browser,n?.startingUrl)),n?.chromiumBinary&&console.log(dr("chromium",n?.chromiumBinary)),n?.geckoBinary&&console.log(dr("gecko",n?.geckoBinary)),n?.profile&&console.log(va(n?.browser,n?.profile)),n?.preferences&&console.log(Sa(n?.browser)),n?.browserFlags&&n?.browserFlags.length>0&&console.log(_a(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 _s({...n,browser:this.browser,profile:o}).apply(e);break;default:{new ze({...n,browser:"chrome",profile:o}).apply(e);break}}}};function re(t,e){let s=Ge.default.join(t,"manifest.json"),r=P(require(s),e.browser),n=Ge.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:r.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",Ge.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:s,browser:o}),new ut({mode:e.mode,manifestPath:s}),new ft({manifestPath:s}),new ht({mode:e.mode,manifestPath:s}),new ds({manifestPath:s,browser:o,polyfill:e.polyfill}),new os({manifestPath:s,browser:o}),new ps({manifestPath:s,browser:o,stats:!0,port:8e3}),new Ps({extension:[n,Ge.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")),Ec=a(require("go-git-it"));var Es=a(require("path")),vc=a(require("axios")),Sc=a(require("adm-zip"));var vr=a(require("stream")),_c=require("util"),ql=(0,_c.promisify)(vr.default.pipeline);async function Pc(t,e){let s=t.split("?")[0];try{console.log(Ya(s));let r=await(0,vc.default)({url:t,method:"GET",responseType:"stream"}),n=Es.default.extname(s),o=Es.default.basename(s,n),i=Es.default.join(e,o);console.log(Qa(i));let c=[];await ql(r.data,new vr.default.Writable({write(u,m,g){c.push(u),g()}}));let l=Buffer.concat(c);return new Sc.default(l).extractAllTo(i,!0),console.log(ec()),i}catch(r){throw console.error(tc(r)),r}}var Wl=t=>{try{return new URL(t),!0}catch{return!1}};async function Jl(t,e){return await(0,Ec.default)(t,process.cwd(),e),Ze.default.resolve(process.cwd(),Ze.default.basename(t))}async function zl(t){return await Pc(t,process.cwd())}async function G(t){if(!t)return process.cwd();if(Wl(t)){let e=new URL(t);if(e.protocol.startsWith("http")){if(e.origin!=="https://github.com")return await zl(t);let s=e.pathname.split("/"),r=s.slice(1,3)[0],n=s.slice(1,3)[1];console.log(Ua(r,n));let o=Ze.default.basename(e.pathname),i=await Jl(t,Ba(o));return console.log(qa(o)),i}}return Ze.default.resolve(process.cwd(),t)}var J=a(require("path")),kc=a(require("fs")),$c=a(require("ignore")),Fc=a(require("tiny-glob")),Sr=a(require("adm-zip")),Cc=a(require("slugify"));function Hl(t){try{return kc.default.readFileSync(t,"utf8")}catch{return""}}function Vl(t){return(0,Cc.default)(t,{replacement:"-",remove:/[^a-zA-Z0-9 ]/g,lower:!0})}function Xl(t,e){if(e)return"zip";switch(t){case"opera":return"crx";case"firefox":return"xpi";default:return"zip"}}function Gl(t,e){let s=Vl(e.zipFilename||t.name);return e.zipFilename?s:`${s}-${t.version}`}async function Zl(t){let e=J.default.join(t,".gitignore"),s=Hl(e),r=(0,$c.default)();return s?r.add(s):console.log(Wa(t)),(await(0,Fc.default)("**/*",{cwd:t,dot:!0})).filter(o=>!r.ignores(o))}async function jc(t,{browser:e="chrome",...s}){try{let r=J.default.join(t,"dist"),n=J.default.join(r,e),o=s.zipSource?t:n,i=require(J.default.join(o,"manifest.json")),c=Gl(i,{browser:e,...s}),l=Xl(e,s.zipSource),p=J.default.join(n,`${c}.${l}`),u=J.default.join(r,`${c}-source.${l}`);if(s.zipSource){console.log(""),console.log(Ja(u));let m=new Sr.default;(await Zl(t)).forEach(b=>{m.addLocalFile(J.default.join(t,b),J.default.dirname(b))}),m.writeZip(u)}if(s.zip){console.log(""),console.log(za(p));let m=new Sr.default;m.addLocalFolder(n),m.writeZip(p)}s.zip&&s.zipSource?(console.log(""),console.log(Ha(e,c,u,p))):s.zip?(console.log(""),console.log(Va(c,l,e,p))):s.zipSource&&(console.log(""),console.log(Xa(c,l,e,u)))}catch(r){throw console.error(Ga(r)),r}}async function ks(t,e){let s=await G(t);!t?.startsWith("http")&&!Dc.default.existsSync(_r.default.join(s,"manifest.json"))&&(console.log(X(_r.default.join(s,"manifest.json"))),process.exit(1));try{let r=e?.browser||"chrome",n=re(s,{...e,browser:r,mode:"production",output:{clean:!0}}),o=n.plugins?.filter(u=>u?.constructor.name!=="plugin-browsers"&&u?.constructor.name!=="plugin-reload"),c=(await we(s))({...n,plugins:o}),l=(0,Oc.merge)(c),p=(0,Lc.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(Na(s,b,r)),(e?.zip||e?.zipSource)&&await jc(s,{...e,browser:r}),b?.hasErrors()?(console.log(b.toString({colors:!0})),process.exit(1)):(console.log(Ta()),u())})})}catch(r){process.env.EXTENSION_ENV==="development"&&console.error(r),process.exit(1)}}var Er=a(require("fs")),Fs=a(require("path"));var Ic=a(require("path")),Mc=require("@rspack/core"),Ac=require("@rspack/dev-server"),Rc=require("webpack-merge");function Pr(t){t.stop().then(()=>{process.exit()}).catch(e=>{console.log(`Error in the Extension.js runner: ${e.stack||""}`)})}async function Nc(t,e){let s=lc(t,"dev"),r=ve(t,e.browser),n=re(t,{...e,...s,...r,mode:"development",output:{clean:!0}}),i=(await we(t))(n),c=(0,Rc.merge)(i),l=(0,Mc.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:[Ic.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 Ac.RspackDevServer(p,l);u.startCallback(m=>{m!=null&&console.log(`Error in the Extension.js runner: ${m.stack||""}`)}),process.on("ERROR",()=>{Pr(u)}),process.on("SIGINT",()=>{Pr(u)}),process.on("SIGTERM",()=>{Pr(u)})}var $s=a(require("path")),Se=a(require("fs/promises"));async function Tc(t){let e=$s.default.join(t,"extension-env.d.ts"),s=process.env.EXTENSION_ENV==="development"?$s.default.resolve(process.cwd(),"programs/cli/types"):"extension/dist/types",r=`// Required Extension.js types for TypeScript projects.
|
|
122
|
+
${(0,d.gray)("PATH")} ${(0,d.underline)(t)}`}function ec(){return`${k("info")} Browser extension unpackaged ${(0,d.brightGreen)("successfully")}. Compiling...`}function tc(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 sc(t){return`${(t/1024).toFixed(2)}KB`}function Ml(t){let e=0;return t?.forEach(s=>{e+=s.size}),sc(e)}function rc(t,e=""){let s="";return Object.keys(t).forEach((r,n,i)=>{let o=n===i.length-1,c=o?"\u2514\u2500":"\u251C\u2500",l=t[r].size?` (${sc(t[r].size)})`:"";s+=`${(0,d.gray)(e)}${(0,d.gray)(c)} ${r}${(0,d.gray)(l)}
|
|
123
|
+
`,typeof t[r]=="object"&&!t[r].size&&(s+=rc(t[r],`${e}${o?" ":(0,d.gray)("\u2502 ")}`))}),s}function Al(t){let e={};return t?.forEach(s=>{let r=s.name.split("/"),n=e;r.forEach((i,o)=>{n[i]||(n[i]={}),o===r.length-1?n[i]={size:s.size}:n=n[i]})}),`.
|
|
124
|
+
${rc(e)}`}function nc(t){return`${k("info")} Using ${(0,d.magenta)(t)}. ${(0,d.brightYellow)("This is very experimental")}.`}function ic(){return`${k("info")} Installing project dependencies...`}function oc(t,e,s){return`${k("error")} Command ${t} ${e.join(" ")} failed with exit code ${s}`}function ac(t){return`${k("error")} Can't install project dependencies. ${(0,d.red)(t.message||t.toString())}`}async function we(t){let e=Xe.default.join(t,"extension.config.js");if(Ve.default.existsSync(e)&&await hr(t)){let s=require(e);if(s&&typeof s.config=="function")return s.config}return s=>s}async function lc(t,e){let s=Xe.default.join(t,"extension.config.js");if(Ve.default.existsSync(s)&&await hr(t)){let r=require(s);if(r)return r[e]}return{}}async function ve(t,e="chrome"){let s=Xe.default.join(t,"extension.config.js");if(Ve.default.existsSync(s)&&await hr(t)){let r=require(s);if(r&&r.browser&&r.browser[e])return r.browser[e]||{browser:"chrome"}}return{browser:"chrome"}}var cc=!1;async function hr(t){let e=Xe.default.join(t,"extension.config.js");return Ve.default.existsSync(e)?(cc||(console.log(nc("extension.config.js")),cc=!0),!0):!1}function pc(t,e){let s={...ve(yr.default.resolve(__dirname,"run-firefox"),"firefox"),...gr(e)};Object.keys(s).forEach(i=>{t.setPreference(i,s[i])});let n=Object.keys(e);return n.length>0&&n.forEach(i=>{t.setPreference(i,e[i])}),t.updatePreferences(),t}function Rl(t,e){let s=new br.default({destinationDirectory:t});return pc(s,e)}function Nl(t,e,s){let r;if(ws.default.statSync(e).isDirectory())r=e;else throw new Error(fa(t,e));let i=new br.default({destinationDirectory:r});return pc(i,s)}function fc(t,e,s={}){let r,n=e||yr.default.resolve(__dirname,`run-${t}-profile`),c={...gr(s||{}),...s};return!e&&ws.default.existsSync(n)?r=Nl(t,n,c):(ys(gs(t),()=>{}),ws.default.mkdirSync(n,{recursive:!0}),r=Rl(n,c)),r}async function uc(t,e){let{browser:s,startingUrl:r,preferences:n,profile:i,browserFlags:o=[]}=e,c=fc(s,i,n),l=[];r&&l.push(`--url=${r}`),o&&l.push(...o);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 yc=a(require("path"));var mc=a(require("net")),dc=a(require("events"));function Tl(t,e){let s=e.toString(),r=s.indexOf(":");if(r<1)return{remainingData:e};let n=parseInt(s.substring(0,r),10);if(isNaN(n))return{remainingData:e,error:new Error(ua(t)),fatal:!0};if(e.length-(r+1)<n)return{remainingData:e};let i=e.slice(r+1,r+1+n),o=e.slice(r+1+n);try{let c=JSON.parse(i.toString());return{remainingData:o,parsedMessage:c}}catch(c){return{remainingData:o,error:c,fatal:!1}}}var vs=class extends dc.default{incomingData=Buffer.alloc(0);pendingRequests=[];activeRequests=new Map;connection;async connect(e){await new Promise((s,r)=>{try{let n={port:e,host:"127.0.0.1"},i=mc.default.createConnection(n,()=>{s()});this.connection=i,i.on("data",this.onData.bind(this)),i.on("error",r),i.on("end",this.onEnd.bind(this)),i.on("timeout",this.onTimeout.bind(this)),this.expectReply("root",{resolve:s,reject:r})}catch(n){r(n)}})}disconnect(){this.connection&&(this.connection.removeAllListeners(),this.connection.end(),this.rejectAllRequests(new Error(ma("firefox"))))}rejectAllRequests(e){this.activeRequests.forEach(s=>{s.reject(e)}),this.activeRequests.clear(),this.pendingRequests.forEach(({deferred:s})=>{s.reject(e)}),this.pendingRequests=[]}async request(e){let s=typeof e=="string"?{to:"root",type:e}:e;if(!s.to)throw new Error(da("firefox",s.type));return await new Promise((r,n)=>{let i={resolve:r,reject:n};this.pendingRequests.push({request:s,deferred:i}),this.flushPendingRequests()})}flushPendingRequests(){this.pendingRequests=this.pendingRequests.filter(({request:e,deferred:s})=>{if(this.activeRequests.has(e.to))return!0;if(!this.connection)throw new Error(ga("firefox"));try{let r=`${Buffer.from(JSON.stringify(e)).length}:${JSON.stringify(e)}`;this.connection.write(r),this.expectReply(e.to,s)}catch(r){s.reject(r)}return!1})}expectReply(e,s){if(this.activeRequests.has(e))throw new Error(ha("firefox",e));this.activeRequests.set(e,s)}onData(e){for(this.incomingData=Buffer.concat([this.incomingData,e]);this.readMessage(););}readMessage(){let{remainingData:e,parsedMessage:s,error:r,fatal:n}=Tl("firefox",this.incomingData);return this.incomingData=e,r?(this.emit("error",new Error(ya("firefox",r))),n&&this.disconnect(),!n):s?(this.handleMessage(s),!0):!1}handleMessage(e){if(!e.from){this.emit("error",new Error(ba("firefox",e)));return}let s=this.activeRequests.get(e.from);s?(this.activeRequests.delete(e.from),e.error?s.reject(e):s.resolve(e),this.flushPendingRequests()):this.emit("error",new Error(xa("firefox",JSON.stringify(e))))}onError(e){this.emit("error",e)}onEnd(){this.emit("end")}onTimeout(){this.emit("timeout")}};function gc(t){return t instanceof Error?String(t):`${t.error}: ${t.message}`}function hc(t,e){return Array.isArray(t)&&t.includes(e.code)?!0:e.code===t}var Ul=150,Bl=1e3,Ss=class{options;constructor(e){this.options=e}async connectClient(e){let s;for(let r of Array.from({length:Ul}))try{let n=new vs;return await n.connect(e),n}catch(n){if(hc("ECONNREFUSED",n))await new Promise(i=>setTimeout(i,Bl)),s=n;else throw console.error(ca(this.options.browser,n.stack)),n}throw console.error(la(this.options.browser)),s}async installAddons(e){let{devtools:s}=this.options,r=Array.isArray(this.options.extension)?this.options.extension:[this.options.extension],n=e.options.devServer?.port,i=n?n+100:9222,o=await this.connectClient(i);for(let[c,l]of r.entries()){let p=yc.default.join(l.replace(/"/g,"")),u=c===0&&s;try{let m=await o.request({to:"root",type:"getRoot"});await o.request({to:m.addonsActor,type:"installTemporaryAddon",addonPath:p,openDevTools:u})}catch(m){let g=gc(m);throw new Error(pa(this.options.browser,g))}}}};var se=null;process.on("SIGINT",()=>{se&&se.kill("SIGINT"),process.exit()});process.on("SIGTERM",()=>{se&&se.kill("SIGTERM"),process.exit()});var _s=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((s,r)=>{(0,xr.exec)(`${e} --version`,n=>{n?r(n):s(null)})}),e}catch{console.error(We("firefox",e)),process.exit(1)}}async launchFirefox(e,s){let r=await this.getFxRunnerCommand(),n;switch(s.browser){case"gecko-based":n=xc.default.normalize(this.geckoBinary);break;default:n=Ia;break}let i=`${r} start --binary "${n}" --foreground --no-remote`;bc.default.existsSync(n||"")||(console.error(We(this.browser,n||"")),process.exit(1));let o=await uc(e,s),c=`${i} ${o}`;se=(0,xr.exec)(c,(p,u,m)=>{if(p!=null)throw p;m.includes("Unable to move the cache")?console.log(na(this.browser)):(console.log(ia(this.browser)),process.exit())}),process.env.EXTENSION_ENV==="development"&&(se.stdout?.pipe(process.stdout),se.stderr?.pipe(process.stderr));let l=new Ss(this);try{await l.installAddons(e)}catch(p){p?.toString()?.includes("background.service_worker is currently disabled")&&(console.error(oa(this.browser)),process.exit(1)),console.error(aa(this.browser,p)),process.exit(1)}}apply(e){let s=!1;e.hooks.done.tapAsync("run-firefox:module",async(r,n)=>{if(r.compilation.errors.length>0){n();return}if(s){n();return}setTimeout(()=>{console.log(hs(this.browser,r.compilation.options.mode))},2e3),await this.launchFirefox(e,{browser:this.browser,browserFlags:this.browserFlags,profile:this.profile,preferences:this.preferences,startingUrl:this.startingUrl,mode:r.compilation.options.mode}),s=!0,n()})}};var Ps=class{static name="plugin-browsers";extension;browser;open;browserFlags;profile;preferences;startingUrl;chromiumBinary;geckoBinary;constructor(e){this.extension=[...e.extension,...e.browserFlags?.filter(s=>!s.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(s=>!s.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,s,r){return r||(e.options.mode==="production"?wr.default.join(wc.default.tmpdir(),"extension-js",s,"profile"):wr.default.resolve(__dirname,`run-${s}-profile`))}async apply(e){let s={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},r=await ve(e.context,this.browser),n={...s,...r};if(n?.open===!1&&console.log(Pa(this.browser,!1)),n?.startingUrl&&console.log(wa(n?.browser,n?.startingUrl)),n?.chromiumBinary&&console.log(dr("chromium",n?.chromiumBinary)),n?.geckoBinary&&console.log(dr("gecko",n?.geckoBinary)),n?.profile&&console.log(va(n?.browser,n?.profile)),n?.preferences&&console.log(Sa(n?.browser)),n?.browserFlags&&n?.browserFlags.length>0&&console.log(_a(n?.browser)),n.open===!1)return;let i=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:i}).apply(e);break}case"firefox":case"gecko-based":new _s({...n,browser:this.browser,profile:i}).apply(e);break;default:{new ze({...n,browser:"chrome",profile:i}).apply(e);break}}}};function re(t,e){let s=Ge.default.join(t,"manifest.json"),r=P(require(s),e.browser),n=Ge.default.join(t,`dist/${e.browser}`),i=e.chromiumBinary?"chromium-based":e.geckoBinary?"gecko-based":e.browser,o=e.output?.clean?e.output.clean:e.mode==="development";return{mode:e.mode||"development",entry:{},target:"web",context:t,devtool:r.manifest_version===3?"cheap-source-map":"eval-cheap-source-map",output:{clean:o,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",Ge.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:s,browser:i}),new ut({mode:e.mode,manifestPath:s}),new ft({manifestPath:s}),new ht({mode:e.mode,manifestPath:s}),new ds({manifestPath:s,browser:i,polyfill:e.polyfill}),new is({manifestPath:s,browser:i}),new ps({manifestPath:s,browser:i,stats:!0,port:8e3}),new Ps({extension:[n,Ge.default.join(__dirname,"extensions",`${i}-manager-extension`)],browser:i,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")),Ec=a(require("go-git-it"));var Es=a(require("path")),vc=a(require("axios")),Sc=a(require("adm-zip"));var vr=a(require("stream")),_c=require("util"),ql=(0,_c.promisify)(vr.default.pipeline);async function Pc(t,e){let s=t.split("?")[0];try{console.log(Ya(s));let r=await(0,vc.default)({url:t,method:"GET",responseType:"stream"}),n=Es.default.extname(s),i=Es.default.basename(s,n),o=Es.default.join(e,i);console.log(Qa(o));let c=[];await ql(r.data,new vr.default.Writable({write(u,m,g){c.push(u),g()}}));let l=Buffer.concat(c);return new Sc.default(l).extractAllTo(o,!0),console.log(ec()),o}catch(r){throw console.error(tc(r)),r}}var Wl=t=>{try{return new URL(t),!0}catch{return!1}};async function Jl(t,e){return await(0,Ec.default)(t,process.cwd(),e),Ze.default.resolve(process.cwd(),Ze.default.basename(t))}async function zl(t){return await Pc(t,process.cwd())}async function G(t){if(!t)return process.cwd();if(Wl(t)){let e=new URL(t);if(e.protocol.startsWith("http")){if(e.origin!=="https://github.com")return await zl(t);let s=e.pathname.split("/"),r=s.slice(1,3)[0],n=s.slice(1,3)[1];console.log(Ua(r,n));let i=Ze.default.basename(e.pathname),o=await Jl(t,Ba(i));return console.log(qa(i)),o}}return Ze.default.resolve(process.cwd(),t)}var J=a(require("path")),kc=a(require("fs")),$c=a(require("ignore")),Fc=a(require("tiny-glob")),Sr=a(require("adm-zip")),Cc=a(require("slugify"));function Hl(t){try{return kc.default.readFileSync(t,"utf8")}catch{return""}}function Vl(t){return(0,Cc.default)(t,{replacement:"-",remove:/[^a-zA-Z0-9 ]/g,lower:!0})}function Xl(t,e){if(e)return"zip";switch(t){case"opera":return"crx";case"firefox":return"xpi";default:return"zip"}}function Gl(t,e){let s=Vl(e.zipFilename||t.name);return e.zipFilename?s:`${s}-${t.version}`}async function Zl(t){let e=J.default.join(t,".gitignore"),s=Hl(e),r=(0,$c.default)();return s?r.add(s):console.log(Wa(t)),(await(0,Fc.default)("**/*",{cwd:t,dot:!0})).filter(i=>!r.ignores(i))}async function jc(t,{browser:e="chrome",...s}){try{let r=J.default.join(t,"dist"),n=J.default.join(r,e),i=s.zipSource?t:n,o=require(J.default.join(i,"manifest.json")),c=Gl(o,{browser:e,...s}),l=Xl(e,s.zipSource),p=J.default.join(n,`${c}.${l}`),u=J.default.join(r,`${c}-source.${l}`);if(s.zipSource){console.log(""),console.log(Ja(u));let m=new Sr.default;(await Zl(t)).forEach(b=>{m.addLocalFile(J.default.join(t,b),J.default.dirname(b))}),m.writeZip(u)}if(s.zip){console.log(""),console.log(za(p));let m=new Sr.default;m.addLocalFolder(n),m.writeZip(p)}s.zip&&s.zipSource?(console.log(""),console.log(Ha(e,c,u,p))):s.zip?(console.log(""),console.log(Va(c,l,e,p))):s.zipSource&&(console.log(""),console.log(Xa(c,l,e,u)))}catch(r){throw console.error(Ga(r)),r}}async function ks(t,e){let s=await G(t);!t?.startsWith("http")&&!Dc.default.existsSync(_r.default.join(s,"manifest.json"))&&(console.log(X(_r.default.join(s,"manifest.json"))),process.exit(1));try{let r=e?.browser||"chrome",n=re(s,{...e,browser:r,mode:"production",output:{clean:!0}}),i=n.plugins?.filter(u=>u?.constructor.name!=="plugin-browsers"&&u?.constructor.name!=="plugin-reload"),c=(await we(s))({...n,plugins:i}),l=(0,Oc.merge)(c),p=(0,Lc.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(Na(s,b,r)),(e?.zip||e?.zipSource)&&await jc(s,{...e,browser:r}),b?.hasErrors()?(console.log(b.toString({colors:!0})),process.exit(1)):(console.log(Ta()),u())})})}catch(r){process.env.EXTENSION_ENV==="development"&&console.error(r),process.exit(1)}}var Er=a(require("fs")),Fs=a(require("path"));var Ic=a(require("path")),Mc=require("@rspack/core"),Ac=require("@rspack/dev-server"),Rc=require("webpack-merge");function Pr(t){t.stop().then(()=>{process.exit()}).catch(e=>{console.log(`Error in the Extension.js runner: ${e.stack||""}`)})}async function Nc(t,e){let s=lc(t,"dev"),r=ve(t,e.browser),n=re(t,{...e,...s,...r,mode:"development",output:{clean:!0}}),o=(await we(t))(n),c=(0,Rc.merge)(o),l=(0,Mc.rspack)(c),p={host:"127.0.0.1",allowedHosts:"all",static:{watch:{ignored:/\bnode_modules\b/}},compress:!1,devMiddleware:{writeToDisk:!0},watchFiles:ot(t)?void 0:{paths:[Ic.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 Ac.RspackDevServer(p,l);u.startCallback(m=>{m!=null&&console.log(`Error in the Extension.js runner: ${m.stack||""}`)}),process.on("ERROR",()=>{Pr(u)}),process.on("SIGINT",()=>{Pr(u)}),process.on("SIGTERM",()=>{Pr(u)})}var $s=a(require("path")),Se=a(require("fs/promises"));async function Tc(t){let e=$s.default.join(t,"extension-env.d.ts"),s=process.env.EXTENSION_ENV==="development"?$s.default.resolve(process.cwd(),"programs/cli/types"):"extension/dist/types",r=`// Required Extension.js types for TypeScript projects.
|
|
125
125
|
// This file is auto-generated and should not be excluded.
|
|
126
126
|
// If you need additional types, consider creating a new *.d.ts file and
|
|
127
127
|
// referencing it in the "include" array of your tsconfig.json file.
|
|
@@ -130,4 +130,4 @@ ${rc(e)}`}function nc(t){return`${k("info")} Using ${(0,d.magenta)(t)}. ${(0,d.b
|
|
|
130
130
|
|
|
131
131
|
// Polyfill types for browser.* APIs.
|
|
132
132
|
/// <reference types="${s}/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,r),process.env.EXTENSION_ENV==="development"&&await Se.default.writeFile(e,r)}catch{let
|
|
133
|
+
`;try{await Se.default.access(e),(await Se.default.readFile(e,"utf8")).includes("develop/dist/types")&&await Se.default.writeFile(e,r),process.env.EXTENSION_ENV==="development"&&await Se.default.writeFile(e,r)}catch{let i=require($s.default.join(t,"manifest.json"));console.log(Za(i));try{await Se.default.writeFile(e,r)}catch(o){console.log(Ka(o))}}}var Uc=a(require("path")),Bc=require("cross-spawn"),qc=a(require("fs")),Wc=require("package-manager-detector");async function Kl(){let t=await(0,Wc.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 Yl(){return["install"]}async function Jc(t){let e=Uc.default.join(t,"node_modules"),s=await Kl(),r=Yl(),n=process.cwd();try{process.chdir(t),await qc.default.promises.mkdir(e,{recursive:!0});let i=process.env.EXTENSION_ENV==="development"?"inherit":"ignore",o=(0,Bc.spawn)(s,r,{stdio:i});await new Promise((c,l)=>{o.on("close",p=>{p!==0?l(new Error(oc(s,r,p))):c()}),o.on("error",p=>{l(p)})})}catch(i){console.error(ac(i)),process.exit(1)}finally{process.chdir(n)}}async function zc(t,e){let s=await G(t),r=Fs.default.join(s,"manifest.json");!t?.startsWith("http")&&!Er.default.existsSync(r)&&(console.log(X(Fs.default.join(s,"manifest.json"))),process.exit(1));try{K(s)&&await Tc(s);let n=Fs.default.join(s,"node_modules");Er.default.existsSync(n)||(console.log(ic()),await Jc(s)),setTimeout(async()=>{await Nc(s,{...e,mode:"development",browser:e.browser||"chrome"})},50)}catch(n){process.env.EXTENSION_ENV==="development"&&console.error(n),process.exit(1)}}var Hc=a(require("fs")),kr=a(require("path")),Vc=require("@rspack/core"),Xc=require("webpack-merge");async function Cs(t,e){let s=await G(t);!t?.startsWith("http")&&!Hc.default.existsSync(kr.default.join(s,"manifest.json"))&&(console.log(X(kr.default.join(s,"manifest.json"))),process.exit(1));try{let r=e.browser||"chrome",n=re(s,{mode:"production",profile:e.profile,browser:r,chromiumBinary:e.chromiumBinary,geckoBinary:e.geckoBinary,startingUrl:e.startingUrl,output:{clean:!1}}),i=n.plugins?.filter(u=>u?.constructor.name==="plugin-browsers");console.log(Aa(r));let c=(await we(s))({...n,plugins:i}),l=(0,Xc.merge)(c);(0,Vc.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(Ra(s,{browser:r,mode:"production"}))})}catch(r){process.env.EXTENSION_ENV==="development"&&console.error(r),process.exit(1)}}var Gc=a(require("fs")),$r=a(require("path"));async function Zc(t,e){let s=await G(t);!t?.startsWith("http")&&!Gc.default.existsSync($r.default.join(s,"manifest.json"))&&(console.log(X($r.default.join(s,"manifest.json"))),process.exit(1));try{let r=e.browser||"chrome";await ks(t,{...e,browser:r,silent:!0}),await Cs(t,{...e,browser:r})}catch(r){process.env.EXTENSION_ENV==="development"&&console.error(r),process.exit(1)}}0&&(module.exports={extensionBuild,extensionDev,extensionPreview,extensionStart});
|