adnbn 0.0.2 → 0.0.3

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/bin/adnbn.mjs ADDED
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ import '../dist/cli.mjs';
package/dist/cli.mjs ADDED
@@ -0,0 +1 @@
1
+ import{createRequire as e}from"node:module";var t={525:function(e,t,r){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const n=i(r(807)),s=i(r(431)),o=i(r(686));t.default=async e=>{const t=await(0,s.default)(e),r=await(0,o.default)(t);(0,n.default)(r).run(((e,t)=>{e&&(console.error("Webpack compilation error"),process.exit(1)),console.log(t?.toString({colors:!0}))}))}},292:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0});const i=r(434);t.default=class{browser;name="__MSG_app_name__";shortName="__MSG_app_short_name__";description="__MSG_app_description__";version="0.0.0";background;contentScripts=new Map;constructor(e=i.Browser.Chrome){this.browser=e}setName(e){return this.name=e,this}setShortName(e){return this.shortName=e,this}setDescription(e){return this.description=e,this}setVersion(e){return this.version=e,this}resetBackground(e){return this.background=e,this}pushContentScript(...e){for(const t of e)this.contentScripts.set(t.entry,t);return this}marge(e,...t){return 0===(t=t.filter((e=>void 0!==e))).length?e:Object.assign({},e,...t)}build(){let e={name:this.name,short_name:this.shortName,description:this.description,version:this.version,manifest_version:this.getManifestVersion()};return e=this.marge(e,this.buildBackground(),this.buildContentScripts()),e}get(){return this.build()}}},617:function(e,t,r){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const n=i(r(292));class s extends n.default{constructor(e){super(e)}getManifestVersion(){return 2}buildBackground(){if(this.background){const{file:e,persistent:t}=this.background;return{background:{scripts:[e],persistent:t}}}}buildContentScripts(){if(this.contentScripts.size>0)return{content_scripts:Array.from(this.contentScripts,(([e,t])=>({matches:t.matches,js:[t.file],exclude_matches:t.excludeMatches,all_frames:t.allFrames,run_at:t.runAt,exclude_globs:t.excludeGlobs,include_globs:t.includeGlobs})))}}}t.default=s},154:function(e,t,r){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const n=i(r(292));class s extends n.default{constructor(e){super(e)}getManifestVersion(){return 3}buildBackground(){if(this.background)return{background:{service_worker:this.background.file}}}buildContentScripts(){if(this.contentScripts.size>0)return{content_scripts:Array.from(this.contentScripts,(([e,t])=>({matches:t.matches,exclude_matches:t.excludeMatches,js:[t.file],all_frames:t.allFrames,run_at:t.runAt,exclude_globs:t.excludeGlobs,include_globs:t.includeGlobs,world:t.world})))}}}t.default=s},494:function(e,t,r){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const n=i(r(617)),s=i(r(154));t.default=(e,t)=>2===t?new n.default(e):new s.default(e)},625:function(e,t,r){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const n=i(r(13)),s=r(434),o=i(r(525)),a=(0,n.default)("addonbone");a.option("--debug","Enable debug mode"),a.command("init","Initialize a new project").action((()=>{console.log("init")})),a.command("[root]","Start dev server").option("-m, --mode <mode>","Set env mode",{default:"development"}).option("-c, --config <config>","Path to config file").option("-a, --app <app>","Specify an app to run",{default:"myapp"}).option("-b, --browser <browser>","Specify a browser").option("-p, --port <port>","Specify a port for the dev server").option("--mv2","Target manifest v2").action(((e,t)=>{console.log(t)})),a.command("build [root]","Build for production").option("-m, --mode <mode>","Set env mode",{default:"production"}).option("-c, --config <config>","Path to config file").option("-a, --app <app>","Specify an app to run",{default:"myapp"}).option("-b, --browser <browser>","Specify a browser",{default:s.Browser.Chrome}).option("--mv2","Target manifest v2").option("--analyze","Visualize extension bundle").action((async(e,t)=>{await(0,o.default)({mode:t.mode,debug:t.debug,app:t.app,browser:t.browser,manifestVersion:t.mv2?2:3,inputDir:e,configFile:t.config})})),a.help(),a.parse()},218:function(e,t,r){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const n=r(899),s=i(r(566));class o extends s.default{definition;properties=[];setDefinition(e){return this.definition=e,this}setProperties(e){return this.properties=e,this}getOptions(){return{...this.getOptionsFromVariables(),...this.getOptionsFromDefinition()}}getOptionsFromVariables(){return Array.from(this.getVariables().values()).filter((({name:e,exported:t})=>t&&this.properties.includes(e))).reduce(((e,{name:t,value:r})=>({...e,[t]:r})),{})}getOptionsFromDefinition(){let e={};const t=r=>{if((0,n.isExportAssignment)(r)){const t=r.expression;if((0,n.isCallExpression)(t)&&(0,n.isIdentifier)(t.expression)&&t.expression.text===this.definition&&t.arguments.length>0){const r=t.arguments[0];(0,n.isObjectLiteralExpression)(r)&&(e=this.parseNode(r))}}(0,n.forEachChild)(r,t)};return t(this.getSourceFile()),e}}t.default=o},566:function(e,t,r){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const n=r(899),s=r(896),o=i(r(928));class a{file;sourceFile;variables;imports;enums;static make(e){return new this(e)}constructor(e){this.file=e}getSourceFile(){if(this.sourceFile)return this.sourceFile;const e=(0,s.readFileSync)(this.file,"utf8");return this.sourceFile=(0,n.createSourceFile)(this.file,e,n.ScriptTarget.ESNext,!0)}getImports(){if(this.imports)return this.imports;this.imports=new Map;const e=t=>{if((0,n.isImportDeclaration)(t)&&t.moduleSpecifier){const e=t.moduleSpecifier.text;t.importClause&&t.importClause.namedBindings&&(0,n.isNamedImports)(t.importClause.namedBindings)&&t.importClause.namedBindings.elements.forEach((t=>{this.imports?.set(t.name.text,o.default.resolve(o.default.dirname(this.file),e+".ts"))}))}(0,n.forEachChild)(t,e)};return e(this.getSourceFile()),this.imports}getEnums(){if(this.enums)return this.enums;this.enums=new Map;const e=t=>{if((0,n.isEnumDeclaration)(t)){const e=t.name.text,r=new Map;t.members.forEach((e=>{const t=e.name.getText(),i=e.initializer?e.initializer.getText().replace(/['"]/g,""):t;r.set(t,i)})),this.enums?.set(e,r)}(0,n.forEachChild)(t,e)};return e(this.getSourceFile()),this.enums}getVariables(){if(this.variables)return this.variables;this.variables=new Map;const e=t=>{if((0,n.isVariableStatement)(t)){const e=t.modifiers?.some((e=>e.kind===n.SyntaxKind.ExportKeyword));t.declarationList.declarations.forEach((t=>{if((0,n.isIdentifier)(t.name)&&t.initializer){const r=t.name.text,i=this.parseNode(t.initializer);this.variables?.set(r,{name:r,value:i,exported:e||!1})}}))}if((0,n.isExportDeclaration)(t)&&t.exportClause&&(0,n.isNamedExports)(t.exportClause)&&t.exportClause.elements.forEach((e=>{const t=e.name.text;if(this.variables?.has(t)){const e=this.variables?.get(t);this.variables?.set(t,{name:t,value:e.value,exported:!0})}})),(0,n.isExportAssignment)(t)){const e=t.expression;if((0,n.isIdentifier)(e)&&this.variables?.has(e.text)){const t=this.variables?.get(e.text),r="default";this.variables?.set(r,{name:r,value:t.value,exported:!0})}}(0,n.forEachChild)(t,e)};return e(this.getSourceFile()),this.variables}findPropertyAccessValue(e){if((0,n.isPropertyAccessExpression)(e)){const t=e.expression.getText(),r=e.name.getText(),i=this.getVariables().get(t);if(i)return i.value;const n=this.getEnums().get(t);if(n)return n.get(r);const s=this.getImports().get(t);return s?a.make(s).findPropertyAccessValue(e):`${t}.${r}`}}parseNode(e){if(e)switch(e.kind){case n.SyntaxKind.StringLiteral:return e.text;case n.SyntaxKind.TrueKeyword:return!0;case n.SyntaxKind.FalseKeyword:return!1;case n.SyntaxKind.NullKeyword:return null;case n.SyntaxKind.NumericLiteral:return parseFloat(e.text);case n.SyntaxKind.Identifier:return this.variables?.get(e.text)?.value??e.text;case n.SyntaxKind.ArrayLiteralExpression:return e.elements.map((e=>this.parseNode(e)));case n.SyntaxKind.ObjectLiteralExpression:return e.properties.filter((e=>(0,n.isPropertyAssignment)(e)||(0,n.isShorthandPropertyAssignment)(e))).reduce(((e,t)=>{if((0,n.isComputedPropertyName)(t.name))return e;const r=t.name.text;let i=this.parseNode(t.initializer);return"string"==typeof i&&this.variables?.has(i)&&(i=this.variables?.get(i)?.value),e[r]=i,e}),{});case n.SyntaxKind.PropertyAccessExpression:return this.findPropertyAccessValue(e);default:return}}}t.default=a},401:function(e,t,r){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getBackgroundOptions=void 0;const n=i(r(218)),s=["includeApp","excludeApp","includeBrowser","excludeBrowser"];t.getBackgroundOptions=e=>n.default.make(e).setDefinition("defineBackground").setProperties([...s,"persistent"]).getOptions()},920:function(e,t,r){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const n=i(r(928)),s=i(r(14)),o=r(401),a=r(542),u=r(316),l=r(54),c=r(901),d=e=>{const t=new Map;for(const r of e)t.set(r,(0,o.getBackgroundOptions)(r));return t},p=e=>d((0,c.findBackgroundFiles)(e));t.default=e=>{const{name:t="background"}=e||{};let r=!1;return{webpack:async({config:e,webpack:i})=>{let n=new Map;const o=p((0,a.getAppsPath)(e));if(o.size>0&&(n=new Map([...n,...o]),e.debug&&console.info("App background added:",o)),o.size>0&&e.mergeBackground||0===o.size){const t=p((0,a.getSharedPath)(e));t.size>0&&(n=new Map([...n,...t]),e.debug&&console.info("Shared background added:",t))}const c=await Array.fromAsync((0,u.processPluginHandler)(e,"background",{config:e,entries:n}));if(console.log("pluginBackgroundFiles",c),c.length>0){const t=d(c);n=new Map([...n,...t]),e.debug&&console.info("Plugin background added:",t)}const f=Array.from(n).filter((([t,r])=>(0,l.isValidEntrypointOptions)(r,e))).map((([e])=>e));return 0===f.length?(e.debug&&console.warn("Background entries not found"),{}):(r=!0,e.debug&&console.info("Background entries:",n),{entry:{[t]:f},optimization:{splitChunks:{chunks(e){const{chunks:r}=i.optimization?.splitChunks||{};return!((0,s.default)(r)&&!r(e))&&e.name!==t}}}})},manifest:({manifest:e,config:i})=>{r&&e.resetBackground({entry:t,file:n.default.join(i.jsDir,t+".js")})}}}},159:function(e,t,r){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const n=i(r(928)),s=i(r(733)),o=r(542);t.default=()=>{const e=[];return{webpack:async({config:e})=>{const t=n.default.resolve((0,o.getAppsPath)(e),"src/some.ts");return{entry:{some:t},plugins:[new s.default({[t]:'console.log("Hello, World!")'})]}},manifest:({manifest:t})=>{t.pushContentScript(...e)}}}},431:function(e,t,r){var i,n=this&&this.__createBinding||(Object.create?function(e,t,r,i){void 0===i&&(i=r);var n=Object.getOwnPropertyDescriptor(t,r);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,i,n)}:function(e,t,r,i){void 0===i&&(i=r),e[i]=t[r]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),o=this&&this.__importStar||(i=function(e){return i=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t},i(e)},function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r=i(e),o=0;o<r.length;o++)"default"!==r[o]&&n(t,e,r[o]);return s(t,e),t}),a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const u=r(896),l=a(r(14)),c=a(r(813)),d=a(r(159)),p=a(r(920)),f=r(542),h=r(434);t.default=async e=>{let{debug:t=!1,configFile:i="addonbone.config.ts",app:n="myapp",browser:s=h.Browser.Chrome,inputDir:a=".",outputDir:m="dist",srcDir:g="src",sharedDir:_="shared",appsDir:b="apps",jsDir:v="js",cssDir:y="css",assetsDir:x="assets",htmlDir:w=".",manifestVersion:P=([h.Browser.Firefox,h.Browser.Safari].includes(s)?2:3),mode:S=h.Mode.Development,analyze:D=!1,plugins:M=[],mergeBackground:O=!1,mergeContentScripts:j=!1,concatContentScripts:k=!0}=e,F={debug:t,mode:S,app:n,browser:s,manifestVersion:P,inputDir:a,outputDir:m,srcDir:g,sharedDir:_,appsDir:b,jsDir:v,cssDir:y,assetsDir:x,htmlDir:w,plugins:M,analyze:D,configFile:i,mergeBackground:O,mergeContentScripts:j,concatContentScripts:k};const{plugins:C=[],...E}=await(async e=>{const t=(0,f.getConfigFile)(e);let i={};if((0,u.existsSync)(t)){let{default:n}=await Promise.resolve(`${t}`).then((e=>o(r(152)(e))));if((0,l.default)(n)){let t=n(e);i=await t(e)}else i=n;(0,c.default)(i)&&e.debug?console.log("Loaded user config:",t):e.debug&&console.error("Invalid user config:",t)}else e.debug&&console.warn("Config file not found:",t);return i})(F),B=[(0,d.default)(),(0,p.default)()];return{...F,...E,plugins:[...M,...C,...B]}}},542:function(e,t,r){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getAppsPath=t.getSharedPath=t.getConfigFile=t.getRootPath=void 0;const n=i(r(928));t.getRootPath=e=>n.default.resolve(process.cwd(),e),t.getConfigFile=e=>n.default.resolve(e.inputDir,e.configFile),t.getSharedPath=e=>n.default.resolve(e.inputDir,e.srcDir,e.sharedDir),t.getAppsPath=e=>n.default.resolve(e.inputDir,e.srcDir,e.appsDir,e.app)},686:function(e,t,r){var i,n=this&&this.__createBinding||(Object.create?function(e,t,r,i){void 0===i&&(i=r);var n=Object.getOwnPropertyDescriptor(t,r);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,i,n)}:function(e,t,r,i){void 0===i&&(i=r),e[i]=t[r]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),o=this&&this.__importStar||(i=function(e){return i=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t},i(e)},function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r=i(e),o=0;o<r.length;o++)"default"!==r[o]&&n(t,e,r[o]);return s(t,e),t}),a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const u=r(870),l=a(r(928)),c=a(r(144)),d=a(r(95)),p=a(r(494)),f=r(542),h=r(316);t.default=async e=>{const t=(0,p.default)(e.browser,e.manifestVersion);let i={mode:e.mode,cache:!1,output:{path:(0,f.getRootPath)(e.outputDir),filename:l.default.join(e.jsDir,"[name].js"),assetModuleFilename:l.default.join(e.assetsDir,"[name]-[hash:4][ext]")},resolve:{extensions:[".ts",".tsx",".js",".scss"],plugins:[new c.default]},module:{rules:[{test:/\.tsx?$/,use:"ts-loader",exclude:/node_modules/},{test:/\.(scss|css)$/,use:[d.default.loader,{loader:"css-loader",options:{modules:{localIdentName:"[local]"}}},{loader:"sass-loader",options:{implementation:Promise.resolve().then((()=>o(r(878))))}}]},{test:/\.(png|apng|jpe?g|gif|webp|svg])$/i,type:"asset/resource"}]}};return i=(0,u.merge)(i,await(async(e,t)=>{let r={};for await(const i of(0,h.processPluginHandler)(t,"webpack",{webpack:e,config:t}))r=(0,u.merge)(r,i);return r})(i,e),await(async(e,t,r)=>(await Array.fromAsync((0,h.processPluginHandler)(t,"manifest",{manifest:r,config:t})),console.log(r.get()),e))(i,e,t)),i}},901:function(e,t,r){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.findContentFiles=t.findBackgroundFiles=t.findEntrypointFiles=void 0;const n=r(896),s=i(r(928));t.findEntrypointFiles=(e,t)=>{const r=[],i=new RegExp(`^(?:.*\\.)?${o=t,o.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}\\.(ts|tsx|js)$`);var o;const a=e=>{let o;try{o=(0,n.readdirSync)(e,{withFileTypes:!0})}catch(t){return void console.log("Error reading entrypoint directory:",e)}for(const u of o){const o=s.default.join(e,u.name);if(u.isDirectory()){if(u.name===t||u.name.endsWith(`.${t}`)){const e=["index.ts","index.tsx","index.js"];for(const t of e){const e=s.default.join(o,t);try{(0,n.statSync)(e).isFile()&&r.push(e)}catch(e){}}}a(o)}else u.isFile()&&i.test(u.name)&&r.push(o)}};return a(e),r},t.findBackgroundFiles=e=>(0,t.findEntrypointFiles)(e,"background"),t.findContentFiles=e=>(0,t.findEntrypointFiles)(e,"content")},54:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.isValidEntrypointOptions=void 0,t.isValidEntrypointOptions=(e,t)=>{const{browser:r,app:i}=t;return!(!e.includeBrowser?.includes(r)&&!e.includeApp?.includes(i))||!e.excludeBrowser?.includes(r)&&!e.excludeApp?.includes(i)}},316:function(e,t,r){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.processPluginHandler=t.resolvePluginHandler=void 0;const n=i(r(14));t.resolvePluginHandler=async(e,t)=>{if((0,n.default)(e)){const r=e(t);return r instanceof Promise?await r:r}return e},t.processPluginHandler=async function*(e,r,i){const{plugins:n=[]}=e;for await(const e of n){const n=e[r],s=await(0,t.resolvePluginHandler)(n,i);void 0!==s&&(yield s)}}},434:(e,t)=>{var r,i;Object.defineProperty(t,"__esModule",{value:!0}),t.Mode=t.Browser=void 0,function(e){e.Chrome="chrome",e.Chromium="chromium",e.Edge="edge",e.Firefox="firefox",e.Opera="opera",e.Safari="safari"}(r||(t.Browser=r={})),function(e){e.None="none",e.Development="development",e.Production="production"}(i||(t.Mode=i={}))},152:e=>{function t(e){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}t.keys=()=>[],t.resolve=t,t.id=152,e.exports=t},13:e=>{e.exports=require("cac")},14:e=>{e.exports=require("lodash/isFunction")},813:e=>{e.exports=require("lodash/isPlainObject")},95:e=>{e.exports=require("mini-css-extract-plugin")},878:e=>{e.exports=require("sass")},144:e=>{e.exports=require("tsconfig-paths-webpack-plugin")},899:e=>{e.exports=require("typescript")},807:e=>{e.exports=require("webpack")},870:e=>{e.exports=require("webpack-merge")},733:e=>{e.exports=require("webpack-virtual-modules")},896:t=>{t.exports=e(import.meta.url)("fs")},928:t=>{t.exports=e(import.meta.url)("path")}},r={};function i(e){var n=r[e];if(void 0!==n)return n.exports;var s=r[e]={exports:{}};return t[e].call(s.exports,s,s.exports,i),s.exports}i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),i(625);
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "adnbn",
3
3
  "type": "module",
4
- "version": "0.0.2",
4
+ "version": "0.0.3",
5
5
  "description": "Cross browser web extension framework with shared code base",
6
6
  "main": "index.js",
7
7
  "homepage": "https://github.com/addonbone/addonbone",
@@ -24,12 +24,13 @@
24
24
  "url": "https://github.com/addonbone/addonbone/issues"
25
25
  },
26
26
  "files": [
27
- "bin"
27
+ "bin",
28
+ "dist"
28
29
  ],
29
30
  "bin": {
30
- "adnbn": "./bin/cli.mjs"
31
+ "adnbn": "./bin/adnbn.mjs"
31
32
  },
32
- "module": "./bin/cli.mjs",
33
+ "module": "./bin/adnbn.mjs",
33
34
  "scripts": {
34
35
  "build": "webpack --stats-error-details"
35
36
  },
package/bin/cli.mjs DELETED
@@ -1 +0,0 @@
1
- (()=>{var e={525:function(e,t,r){"use strict";var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const s=i(r(807)),n=i(r(431)),o=i(r(686));t.default=async e=>{const t=await(0,n.default)(e),r=await(0,o.default)(t);(0,s.default)(r).run(((e,t)=>{e&&(console.error("Webpack compilation error"),process.exit(1)),console.log(t?.toString({colors:!0}))}))}},292:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const i=r(434);t.default=class{browser;name="__MSG_app_name__";shortName="__MSG_app_short_name__";description="__MSG_app_description__";version="0.0.0";background;contentScripts=new Map;constructor(e=i.Browser.Chrome){this.browser=e}setName(e){return this.name=e,this}setShortName(e){return this.shortName=e,this}setDescription(e){return this.description=e,this}setVersion(e){return this.version=e,this}resetBackground(e){return this.background=e,this}pushContentScript(...e){for(const t of e)this.contentScripts.set(t.entry,t);return this}marge(e,...t){return 0===(t=t.filter((e=>void 0!==e))).length?e:Object.assign({},e,...t)}build(){let e={name:this.name,short_name:this.shortName,description:this.description,version:this.version,manifest_version:this.getManifestVersion()};return e=this.marge(e,this.buildBackground(),this.buildContentScripts()),e}get(){return this.build()}}},617:function(e,t,r){"use strict";var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const s=i(r(292));class n extends s.default{constructor(e){super(e)}getManifestVersion(){return 2}buildBackground(){if(this.background){const{file:e,persistent:t}=this.background;return{background:{scripts:[e],persistent:t}}}}buildContentScripts(){if(this.contentScripts.size>0)return{content_scripts:Array.from(this.contentScripts,(([e,t])=>({matches:t.matches,js:[t.file],exclude_matches:t.excludeMatches,all_frames:t.allFrames,run_at:t.runAt,exclude_globs:t.excludeGlobs,include_globs:t.includeGlobs})))}}}t.default=n},154:function(e,t,r){"use strict";var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const s=i(r(292));class n extends s.default{constructor(e){super(e)}getManifestVersion(){return 3}buildBackground(){if(this.background)return{background:{service_worker:this.background.file}}}buildContentScripts(){if(this.contentScripts.size>0)return{content_scripts:Array.from(this.contentScripts,(([e,t])=>({matches:t.matches,exclude_matches:t.excludeMatches,js:[t.file],all_frames:t.allFrames,run_at:t.runAt,exclude_globs:t.excludeGlobs,include_globs:t.includeGlobs,world:t.world})))}}}t.default=n},494:function(e,t,r){"use strict";var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const s=i(r(617)),n=i(r(154));t.default=(e,t)=>2===t?new s.default(e):new n.default(e)},625:function(e,t,r){"use strict";var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const s=i(r(13)),n=r(434),o=i(r(525)),a=(0,s.default)("addonbone");a.option("--debug","Enable debug mode"),a.command("init","Initialize a new project").action((()=>{console.log("init")})),a.command("[root]","Start dev server").option("-m, --mode <mode>","Set env mode",{default:"development"}).option("-c, --config <config>","Path to config file").option("-a, --app <app>","Specify an app to run",{default:"myapp"}).option("-b, --browser <browser>","Specify a browser").option("-p, --port <port>","Specify a port for the dev server").option("--mv2","Target manifest v2").action(((e,t)=>{console.log(t)})),a.command("build [root]","Build for production").option("-m, --mode <mode>","Set env mode",{default:"production"}).option("-c, --config <config>","Path to config file").option("-a, --app <app>","Specify an app to run",{default:"myapp"}).option("-b, --browser <browser>","Specify a browser",{default:n.Browser.Chrome}).option("--mv2","Target manifest v2").option("--analyze","Visualize extension bundle").action((async(e,t)=>{await(0,o.default)({mode:t.mode,debug:t.debug,app:t.app,browser:t.browser,manifestVersion:t.mv2?2:3,inputDir:e,configFile:t.config})})),a.help(),a.parse()},218:function(e,t,r){"use strict";var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const s=r(899),n=i(r(566));class o extends n.default{definition;properties=[];setDefinition(e){return this.definition=e,this}setProperties(e){return this.properties=e,this}getOptions(){return{...this.getOptionsFromVariables(),...this.getOptionsFromDefinition()}}getOptionsFromVariables(){return Array.from(this.getVariables().values()).filter((({name:e,exported:t})=>t&&this.properties.includes(e))).reduce(((e,{name:t,value:r})=>({...e,[t]:r})),{})}getOptionsFromDefinition(){let e={};const t=r=>{if((0,s.isExportAssignment)(r)){const t=r.expression;if((0,s.isCallExpression)(t)&&(0,s.isIdentifier)(t.expression)&&t.expression.text===this.definition&&t.arguments.length>0){const r=t.arguments[0];(0,s.isObjectLiteralExpression)(r)&&(e=this.parseNode(r))}}(0,s.forEachChild)(r,t)};return t(this.getSourceFile()),e}}t.default=o},566:function(e,t,r){"use strict";var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const s=r(899),n=r(896),o=i(r(928));class a{file;sourceFile;variables;imports;enums;static make(e){return new this(e)}constructor(e){this.file=e}getSourceFile(){if(this.sourceFile)return this.sourceFile;const e=(0,n.readFileSync)(this.file,"utf8");return this.sourceFile=(0,s.createSourceFile)(this.file,e,s.ScriptTarget.ESNext,!0)}getImports(){if(this.imports)return this.imports;this.imports=new Map;const e=t=>{if((0,s.isImportDeclaration)(t)&&t.moduleSpecifier){const e=t.moduleSpecifier.text;t.importClause&&t.importClause.namedBindings&&(0,s.isNamedImports)(t.importClause.namedBindings)&&t.importClause.namedBindings.elements.forEach((t=>{this.imports?.set(t.name.text,o.default.resolve(o.default.dirname(this.file),e+".ts"))}))}(0,s.forEachChild)(t,e)};return e(this.getSourceFile()),this.imports}getEnums(){if(this.enums)return this.enums;this.enums=new Map;const e=t=>{if((0,s.isEnumDeclaration)(t)){const e=t.name.text,r=new Map;t.members.forEach((e=>{const t=e.name.getText(),i=e.initializer?e.initializer.getText().replace(/['"]/g,""):t;r.set(t,i)})),this.enums?.set(e,r)}(0,s.forEachChild)(t,e)};return e(this.getSourceFile()),this.enums}getVariables(){if(this.variables)return this.variables;this.variables=new Map;const e=t=>{if((0,s.isVariableStatement)(t)){const e=t.modifiers?.some((e=>e.kind===s.SyntaxKind.ExportKeyword));t.declarationList.declarations.forEach((t=>{if((0,s.isIdentifier)(t.name)&&t.initializer){const r=t.name.text,i=this.parseNode(t.initializer);this.variables?.set(r,{name:r,value:i,exported:e||!1})}}))}if((0,s.isExportDeclaration)(t)&&t.exportClause&&(0,s.isNamedExports)(t.exportClause)&&t.exportClause.elements.forEach((e=>{const t=e.name.text;if(this.variables?.has(t)){const e=this.variables?.get(t);this.variables?.set(t,{name:t,value:e.value,exported:!0})}})),(0,s.isExportAssignment)(t)){const e=t.expression;if((0,s.isIdentifier)(e)&&this.variables?.has(e.text)){const t=this.variables?.get(e.text),r="default";this.variables?.set(r,{name:r,value:t.value,exported:!0})}}(0,s.forEachChild)(t,e)};return e(this.getSourceFile()),this.variables}findPropertyAccessValue(e){if((0,s.isPropertyAccessExpression)(e)){const t=e.expression.getText(),r=e.name.getText(),i=this.getVariables().get(t);if(i)return i.value;const s=this.getEnums().get(t);if(s)return s.get(r);const n=this.getImports().get(t);return n?a.make(n).findPropertyAccessValue(e):`${t}.${r}`}}parseNode(e){if(e)switch(e.kind){case s.SyntaxKind.StringLiteral:return e.text;case s.SyntaxKind.TrueKeyword:return!0;case s.SyntaxKind.FalseKeyword:return!1;case s.SyntaxKind.NullKeyword:return null;case s.SyntaxKind.NumericLiteral:return parseFloat(e.text);case s.SyntaxKind.Identifier:return this.variables?.get(e.text)?.value??e.text;case s.SyntaxKind.ArrayLiteralExpression:return e.elements.map((e=>this.parseNode(e)));case s.SyntaxKind.ObjectLiteralExpression:return e.properties.filter((e=>(0,s.isPropertyAssignment)(e)||(0,s.isShorthandPropertyAssignment)(e))).reduce(((e,t)=>{if((0,s.isComputedPropertyName)(t.name))return e;const r=t.name.text;let i=this.parseNode(t.initializer);return"string"==typeof i&&this.variables?.has(i)&&(i=this.variables?.get(i)?.value),e[r]=i,e}),{});case s.SyntaxKind.PropertyAccessExpression:return this.findPropertyAccessValue(e);default:return}}}t.default=a},401:function(e,t,r){"use strict";var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getBackgroundOptions=void 0;const s=i(r(218)),n=["includeApp","excludeApp","includeBrowser","excludeBrowser"];t.getBackgroundOptions=e=>s.default.make(e).setDefinition("defineBackground").setProperties([...n,"persistent"]).getOptions()},920:function(e,t,r){"use strict";var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const s=i(r(928)),n=i(r(14)),o=r(401),a=r(542),u=r(316),c=r(54),l=r(901),d=e=>{const t=new Map;for(const r of e)t.set(r,(0,o.getBackgroundOptions)(r));return t},p=e=>d((0,l.findBackgroundFiles)(e));t.default=e=>{const{name:t="background"}=e||{};let r=!1;return{webpack:async({config:e,webpack:i})=>{let s=new Map;const o=p((0,a.getAppsPath)(e));if(o.size>0&&(s=new Map([...s,...o]),e.debug&&console.info("App background added:",o)),o.size>0&&e.mergeBackground||0===o.size){const t=p((0,a.getSharedPath)(e));t.size>0&&(s=new Map([...s,...t]),e.debug&&console.info("Shared background added:",t))}const l=await Array.fromAsync((0,u.processPluginHandler)(e,"background",{config:e,entries:s}));if(console.log("pluginBackgroundFiles",l),l.length>0){const t=d(l);s=new Map([...s,...t]),e.debug&&console.info("Plugin background added:",t)}const f=Array.from(s).filter((([t,r])=>(0,c.isValidEntrypointOptions)(r,e))).map((([e])=>e));return 0===f.length?(e.debug&&console.warn("Background entries not found"),{}):(r=!0,e.debug&&console.info("Background entries:",s),{entry:{[t]:f},optimization:{splitChunks:{chunks(e){const{chunks:r}=i.optimization?.splitChunks||{};return!((0,n.default)(r)&&!r(e))&&e.name!==t}}}})},manifest:({manifest:e,config:i})=>{r&&e.resetBackground({entry:t,file:s.default.join(i.jsDir,t+".js")})}}}},159:function(e,t,r){"use strict";var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const s=i(r(928)),n=i(r(733)),o=r(542);t.default=()=>{const e=[];return{webpack:async({config:e})=>{const t=s.default.resolve((0,o.getAppsPath)(e),"src/some.ts");return{entry:{some:t},plugins:[new n.default({[t]:'console.log("Hello, World!")'})]}},manifest:({manifest:t})=>{t.pushContentScript(...e)}}}},431:function(e,t,r){"use strict";var i,s=this&&this.__createBinding||(Object.create?function(e,t,r,i){void 0===i&&(i=r);var s=Object.getOwnPropertyDescriptor(t,r);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,i,s)}:function(e,t,r,i){void 0===i&&(i=r),e[i]=t[r]}),n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),o=this&&this.__importStar||(i=function(e){return i=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t},i(e)},function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r=i(e),o=0;o<r.length;o++)"default"!==r[o]&&s(t,e,r[o]);return n(t,e),t}),a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const u=r(896),c=a(r(14)),l=a(r(813)),d=a(r(159)),p=a(r(920)),f=r(542),h=r(434);t.default=async e=>{let{debug:t=!1,configFile:i="addonbone.config.ts",app:s="myapp",browser:n=h.Browser.Chrome,inputDir:a=".",outputDir:m="dist",srcDir:g="src",sharedDir:_="shared",appsDir:b="apps",jsDir:v="js",cssDir:y="css",assetsDir:x="assets",htmlDir:w=".",manifestVersion:P=([h.Browser.Firefox,h.Browser.Safari].includes(n)?2:3),mode:S=h.Mode.Development,analyze:D=!1,plugins:M=[],mergeBackground:O=!1,mergeContentScripts:j=!1,concatContentScripts:k=!0}=e,F={debug:t,mode:S,app:s,browser:n,manifestVersion:P,inputDir:a,outputDir:m,srcDir:g,sharedDir:_,appsDir:b,jsDir:v,cssDir:y,assetsDir:x,htmlDir:w,plugins:M,analyze:D,configFile:i,mergeBackground:O,mergeContentScripts:j,concatContentScripts:k};const{plugins:C=[],...E}=await(async e=>{const t=(0,f.getConfigFile)(e);let i={};if((0,u.existsSync)(t)){let{default:s}=await Promise.resolve(`${t}`).then((e=>o(r(152)(e))));if((0,c.default)(s)){let t=s(e);i=await t(e)}else i=s;(0,l.default)(i)&&e.debug?console.log("Loaded user config:",t):e.debug&&console.error("Invalid user config:",t)}else e.debug&&console.warn("Config file not found:",t);return i})(F),B=[(0,d.default)(),(0,p.default)()];return{...F,...E,plugins:[...M,...C,...B]}}},542:function(e,t,r){"use strict";var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getAppsPath=t.getSharedPath=t.getConfigFile=t.getRootPath=void 0;const s=i(r(928));t.getRootPath=e=>s.default.resolve(process.cwd(),e),t.getConfigFile=e=>s.default.resolve(e.inputDir,e.configFile),t.getSharedPath=e=>s.default.resolve(e.inputDir,e.srcDir,e.sharedDir),t.getAppsPath=e=>s.default.resolve(e.inputDir,e.srcDir,e.appsDir,e.app)},686:function(e,t,r){"use strict";var i,s=this&&this.__createBinding||(Object.create?function(e,t,r,i){void 0===i&&(i=r);var s=Object.getOwnPropertyDescriptor(t,r);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,i,s)}:function(e,t,r,i){void 0===i&&(i=r),e[i]=t[r]}),n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),o=this&&this.__importStar||(i=function(e){return i=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t},i(e)},function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r=i(e),o=0;o<r.length;o++)"default"!==r[o]&&s(t,e,r[o]);return n(t,e),t}),a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const u=r(870),c=a(r(928)),l=a(r(144)),d=a(r(95)),p=a(r(494)),f=r(542),h=r(316);t.default=async e=>{const t=(0,p.default)(e.browser,e.manifestVersion);let i={mode:e.mode,cache:!1,output:{path:(0,f.getRootPath)(e.outputDir),filename:c.default.join(e.jsDir,"[name].js"),assetModuleFilename:c.default.join(e.assetsDir,"[name]-[hash:4][ext]")},resolve:{extensions:[".ts",".tsx",".js",".scss"],plugins:[new l.default]},module:{rules:[{test:/\.tsx?$/,use:"ts-loader",exclude:/node_modules/},{test:/\.(scss|css)$/,use:[d.default.loader,{loader:"css-loader",options:{modules:{localIdentName:"[local]"}}},{loader:"sass-loader",options:{implementation:Promise.resolve().then((()=>o(r(878))))}}]},{test:/\.(png|apng|jpe?g|gif|webp|svg])$/i,type:"asset/resource"}]}};return i=(0,u.merge)(i,await(async(e,t)=>{let r={};for await(const i of(0,h.processPluginHandler)(t,"webpack",{webpack:e,config:t}))r=(0,u.merge)(r,i);return r})(i,e),await(async(e,t,r)=>(await Array.fromAsync((0,h.processPluginHandler)(t,"manifest",{manifest:r,config:t})),console.log(r.get()),e))(i,e,t)),i}},901:function(e,t,r){"use strict";var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.findContentFiles=t.findBackgroundFiles=t.findEntrypointFiles=void 0;const s=r(896),n=i(r(928));t.findEntrypointFiles=(e,t)=>{const r=[],i=new RegExp(`^(?:.*\\.)?${o=t,o.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}\\.(ts|tsx|js)$`);var o;const a=e=>{let o;try{o=(0,s.readdirSync)(e,{withFileTypes:!0})}catch(t){return void console.log("Error reading entrypoint directory:",e)}for(const u of o){const o=n.default.join(e,u.name);if(u.isDirectory()){if(u.name===t||u.name.endsWith(`.${t}`)){const e=["index.ts","index.tsx","index.js"];for(const t of e){const e=n.default.join(o,t);try{(0,s.statSync)(e).isFile()&&r.push(e)}catch(e){}}}a(o)}else u.isFile()&&i.test(u.name)&&r.push(o)}};return a(e),r},t.findBackgroundFiles=e=>(0,t.findEntrypointFiles)(e,"background"),t.findContentFiles=e=>(0,t.findEntrypointFiles)(e,"content")},54:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isValidEntrypointOptions=void 0,t.isValidEntrypointOptions=(e,t)=>{const{browser:r,app:i}=t;return!(!e.includeBrowser?.includes(r)&&!e.includeApp?.includes(i))||!e.excludeBrowser?.includes(r)&&!e.excludeApp?.includes(i)}},316:function(e,t,r){"use strict";var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.processPluginHandler=t.resolvePluginHandler=void 0;const s=i(r(14));t.resolvePluginHandler=async(e,t)=>{if((0,s.default)(e)){const r=e(t);return r instanceof Promise?await r:r}return e},t.processPluginHandler=async function*(e,r,i){const{plugins:s=[]}=e;for await(const e of s){const s=e[r],n=await(0,t.resolvePluginHandler)(s,i);void 0!==n&&(yield n)}}},434:(e,t)=>{"use strict";var r,i;Object.defineProperty(t,"__esModule",{value:!0}),t.Mode=t.Browser=void 0,function(e){e.Chrome="chrome",e.Chromium="chromium",e.Edge="edge",e.Firefox="firefox",e.Opera="opera",e.Safari="safari"}(r||(t.Browser=r={})),function(e){e.None="none",e.Development="development",e.Production="production"}(i||(t.Mode=i={}))},152:e=>{function t(e){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}t.keys=()=>[],t.resolve=t,t.id=152,e.exports=t},13:e=>{"use strict";e.exports=require("cac")},14:e=>{"use strict";e.exports=require("lodash/isFunction")},813:e=>{"use strict";e.exports=require("lodash/isPlainObject")},95:e=>{"use strict";e.exports=require("mini-css-extract-plugin")},878:e=>{"use strict";e.exports=require("sass")},144:e=>{"use strict";e.exports=require("tsconfig-paths-webpack-plugin")},899:e=>{"use strict";e.exports=require("typescript")},807:e=>{"use strict";e.exports=require("webpack")},870:e=>{"use strict";e.exports=require("webpack-merge")},733:e=>{"use strict";e.exports=require("webpack-virtual-modules")},896:e=>{"use strict";e.exports=require("fs")},928:e=>{"use strict";e.exports=require("path")}},t={};function r(i){var s=t[i];if(void 0!==s)return s.exports;var n=t[i]={exports:{}};return e[i].call(n.exports,n,n.exports,r),n.exports}r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r(625)})();