adnbn 0.0.18 → 0.0.19

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.
@@ -2439,7 +2439,7 @@ var app_default = async (command, config) => {
2439
2439
  };
2440
2440
 
2441
2441
  // package.json
2442
- var version = "0.0.17";
2442
+ var version = "0.0.19";
2443
2443
 
2444
2444
  // src/cli/index.ts
2445
2445
  var cli = cac__default.default("adnbn");
@@ -1 +1 @@
1
- {"version":3,"sources":["../../node_modules/dotenv/package.json","../../node_modules/dotenv/lib/main.js","../../node_modules/wildcard/index.js","../../node_modules/webpack-merge/src/merge-with.ts","../../node_modules/kind-of/index.js","../../node_modules/shallow-clone/index.js","../../node_modules/isobject/index.js","../../node_modules/is-plain-object/index.js","../../node_modules/clone-deep/index.js","../../node_modules/flat/index.js","../../node_modules/webpack-merge/src/utils.ts","../../node_modules/webpack-merge/src/join-arrays.ts","../../node_modules/webpack-merge/src/unique.ts","../../node_modules/webpack-merge/src/types.ts","../../node_modules/webpack-merge/src/index.ts","../../src/cli/builders/app/command.ts","../../src/cli/resolvers/config.ts","../../src/core/define.ts","../../src/cli/plugins/dotenv.ts","../../src/cli/webpack/plugins/WatchPlugin.ts","../../src/cli/webpack/merge.ts","../../src/cli/parsers/entrypoint/SourceFile.ts","../../src/cli/parsers/entrypoint/OptionFile.ts","../../src/cli/parsers/entrypoint/index.ts","../../src/cli/resolvers/path.ts","../../src/cli/utils/entrypoint.ts","../../src/cli/utils/plugin.ts","../../src/cli/utils/option.ts","../../src/cli/plugins/background/background.ts","raw-loader:./background.ts?raw","../../src/cli/virtual/index.ts","../../src/cli/plugins/background/index.ts","../../src/cli/builders/manifest/ManifestBase.ts","../../src/cli/builders/manifest/ManifestV2.ts","../../src/cli/builders/manifest/ManifestV3.ts","../../src/cli/builders/manifest/index.ts","../../src/cli/webpack/plugins/ManifestPlugin.ts","../../src/cli/resolvers/webpack.ts","../../src/cli/builders/app/index.ts","../../package.json","../../src/cli/index.ts"],"names":["fs","path","version","target","result","_a","_b","key","CustomizeRule","mergeWithCustomize","ret","k","v","webpack","compiler","ts","_c","isExportAssignment","isCallExpression","isIdentifier","isObjectLiteralExpression","forEachChild","readdirSync","statSync","_","persistent","background_default","m","VirtualModulesPlugin","backgroundFiles","backgroundPersistent","existsSync","loadConfig","dotenv","Compilation","TsconfigPathsPlugin","MiniCssExtractPlugin","cac"],"mappings":"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","file":"index.cjs","sourcesContent":["{\n \"name\": \"dotenv\",\n \"version\": \"16.4.7\",\n \"description\": \"Loads environment variables from .env file\",\n \"main\": \"lib/main.js\",\n \"types\": \"lib/main.d.ts\",\n \"exports\": {\n \".\": {\n \"types\": \"./lib/main.d.ts\",\n \"require\": \"./lib/main.js\",\n \"default\": \"./lib/main.js\"\n },\n \"./config\": \"./config.js\",\n \"./config.js\": \"./config.js\",\n \"./lib/env-options\": \"./lib/env-options.js\",\n \"./lib/env-options.js\": \"./lib/env-options.js\",\n \"./lib/cli-options\": \"./lib/cli-options.js\",\n \"./lib/cli-options.js\": \"./lib/cli-options.js\",\n \"./package.json\": \"./package.json\"\n },\n \"scripts\": {\n \"dts-check\": \"tsc --project tests/types/tsconfig.json\",\n \"lint\": \"standard\",\n \"pretest\": \"npm run lint && npm run dts-check\",\n \"test\": \"tap run --allow-empty-coverage --disable-coverage --timeout=60000\",\n \"test:coverage\": \"tap run --show-full-coverage --timeout=60000 --coverage-report=lcov\",\n \"prerelease\": \"npm test\",\n \"release\": \"standard-version\"\n },\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git://github.com/motdotla/dotenv.git\"\n },\n \"funding\": \"https://dotenvx.com\",\n \"keywords\": [\n \"dotenv\",\n \"env\",\n \".env\",\n \"environment\",\n \"variables\",\n \"config\",\n \"settings\"\n ],\n \"readmeFilename\": \"README.md\",\n \"license\": \"BSD-2-Clause\",\n \"devDependencies\": {\n \"@types/node\": \"^18.11.3\",\n \"decache\": \"^4.6.2\",\n \"sinon\": \"^14.0.1\",\n \"standard\": \"^17.0.0\",\n \"standard-version\": \"^9.5.0\",\n \"tap\": \"^19.2.0\",\n \"typescript\": \"^4.8.4\"\n },\n \"engines\": {\n \"node\": \">=12\"\n },\n \"browser\": {\n \"fs\": false\n }\n}\n","const fs = require('fs')\nconst path = require('path')\nconst os = require('os')\nconst crypto = require('crypto')\nconst packageJson = require('../package.json')\n\nconst version = packageJson.version\n\nconst LINE = /(?:^|^)\\s*(?:export\\s+)?([\\w.-]+)(?:\\s*=\\s*?|:\\s+?)(\\s*'(?:\\\\'|[^'])*'|\\s*\"(?:\\\\\"|[^\"])*\"|\\s*`(?:\\\\`|[^`])*`|[^#\\r\\n]+)?\\s*(?:#.*)?(?:$|$)/mg\n\n// Parse src into an Object\nfunction parse (src) {\n const obj = {}\n\n // Convert buffer to string\n let lines = src.toString()\n\n // Convert line breaks to same format\n lines = lines.replace(/\\r\\n?/mg, '\\n')\n\n let match\n while ((match = LINE.exec(lines)) != null) {\n const key = match[1]\n\n // Default undefined or null to empty string\n let value = (match[2] || '')\n\n // Remove whitespace\n value = value.trim()\n\n // Check if double quoted\n const maybeQuote = value[0]\n\n // Remove surrounding quotes\n value = value.replace(/^(['\"`])([\\s\\S]*)\\1$/mg, '$2')\n\n // Expand newlines if double quoted\n if (maybeQuote === '\"') {\n value = value.replace(/\\\\n/g, '\\n')\n value = value.replace(/\\\\r/g, '\\r')\n }\n\n // Add to object\n obj[key] = value\n }\n\n return obj\n}\n\nfunction _parseVault (options) {\n const vaultPath = _vaultPath(options)\n\n // Parse .env.vault\n const result = DotenvModule.configDotenv({ path: vaultPath })\n if (!result.parsed) {\n const err = new Error(`MISSING_DATA: Cannot parse ${vaultPath} for an unknown reason`)\n err.code = 'MISSING_DATA'\n throw err\n }\n\n // handle scenario for comma separated keys - for use with key rotation\n // example: DOTENV_KEY=\"dotenv://:key_1234@dotenvx.com/vault/.env.vault?environment=prod,dotenv://:key_7890@dotenvx.com/vault/.env.vault?environment=prod\"\n const keys = _dotenvKey(options).split(',')\n const length = keys.length\n\n let decrypted\n for (let i = 0; i < length; i++) {\n try {\n // Get full key\n const key = keys[i].trim()\n\n // Get instructions for decrypt\n const attrs = _instructions(result, key)\n\n // Decrypt\n decrypted = DotenvModule.decrypt(attrs.ciphertext, attrs.key)\n\n break\n } catch (error) {\n // last key\n if (i + 1 >= length) {\n throw error\n }\n // try next key\n }\n }\n\n // Parse decrypted .env string\n return DotenvModule.parse(decrypted)\n}\n\nfunction _log (message) {\n console.log(`[dotenv@${version}][INFO] ${message}`)\n}\n\nfunction _warn (message) {\n console.log(`[dotenv@${version}][WARN] ${message}`)\n}\n\nfunction _debug (message) {\n console.log(`[dotenv@${version}][DEBUG] ${message}`)\n}\n\nfunction _dotenvKey (options) {\n // prioritize developer directly setting options.DOTENV_KEY\n if (options && options.DOTENV_KEY && options.DOTENV_KEY.length > 0) {\n return options.DOTENV_KEY\n }\n\n // secondary infra already contains a DOTENV_KEY environment variable\n if (process.env.DOTENV_KEY && process.env.DOTENV_KEY.length > 0) {\n return process.env.DOTENV_KEY\n }\n\n // fallback to empty string\n return ''\n}\n\nfunction _instructions (result, dotenvKey) {\n // Parse DOTENV_KEY. Format is a URI\n let uri\n try {\n uri = new URL(dotenvKey)\n } catch (error) {\n if (error.code === 'ERR_INVALID_URL') {\n const err = new Error('INVALID_DOTENV_KEY: Wrong format. Must be in valid uri format like dotenv://:key_1234@dotenvx.com/vault/.env.vault?environment=development')\n err.code = 'INVALID_DOTENV_KEY'\n throw err\n }\n\n throw error\n }\n\n // Get decrypt key\n const key = uri.password\n if (!key) {\n const err = new Error('INVALID_DOTENV_KEY: Missing key part')\n err.code = 'INVALID_DOTENV_KEY'\n throw err\n }\n\n // Get environment\n const environment = uri.searchParams.get('environment')\n if (!environment) {\n const err = new Error('INVALID_DOTENV_KEY: Missing environment part')\n err.code = 'INVALID_DOTENV_KEY'\n throw err\n }\n\n // Get ciphertext payload\n const environmentKey = `DOTENV_VAULT_${environment.toUpperCase()}`\n const ciphertext = result.parsed[environmentKey] // DOTENV_VAULT_PRODUCTION\n if (!ciphertext) {\n const err = new Error(`NOT_FOUND_DOTENV_ENVIRONMENT: Cannot locate environment ${environmentKey} in your .env.vault file.`)\n err.code = 'NOT_FOUND_DOTENV_ENVIRONMENT'\n throw err\n }\n\n return { ciphertext, key }\n}\n\nfunction _vaultPath (options) {\n let possibleVaultPath = null\n\n if (options && options.path && options.path.length > 0) {\n if (Array.isArray(options.path)) {\n for (const filepath of options.path) {\n if (fs.existsSync(filepath)) {\n possibleVaultPath = filepath.endsWith('.vault') ? filepath : `${filepath}.vault`\n }\n }\n } else {\n possibleVaultPath = options.path.endsWith('.vault') ? options.path : `${options.path}.vault`\n }\n } else {\n possibleVaultPath = path.resolve(process.cwd(), '.env.vault')\n }\n\n if (fs.existsSync(possibleVaultPath)) {\n return possibleVaultPath\n }\n\n return null\n}\n\nfunction _resolveHome (envPath) {\n return envPath[0] === '~' ? path.join(os.homedir(), envPath.slice(1)) : envPath\n}\n\nfunction _configVault (options) {\n _log('Loading env from encrypted .env.vault')\n\n const parsed = DotenvModule._parseVault(options)\n\n let processEnv = process.env\n if (options && options.processEnv != null) {\n processEnv = options.processEnv\n }\n\n DotenvModule.populate(processEnv, parsed, options)\n\n return { parsed }\n}\n\nfunction configDotenv (options) {\n const dotenvPath = path.resolve(process.cwd(), '.env')\n let encoding = 'utf8'\n const debug = Boolean(options && options.debug)\n\n if (options && options.encoding) {\n encoding = options.encoding\n } else {\n if (debug) {\n _debug('No encoding is specified. UTF-8 is used by default')\n }\n }\n\n let optionPaths = [dotenvPath] // default, look for .env\n if (options && options.path) {\n if (!Array.isArray(options.path)) {\n optionPaths = [_resolveHome(options.path)]\n } else {\n optionPaths = [] // reset default\n for (const filepath of options.path) {\n optionPaths.push(_resolveHome(filepath))\n }\n }\n }\n\n // Build the parsed data in a temporary object (because we need to return it). Once we have the final\n // parsed data, we will combine it with process.env (or options.processEnv if provided).\n let lastError\n const parsedAll = {}\n for (const path of optionPaths) {\n try {\n // Specifying an encoding returns a string instead of a buffer\n const parsed = DotenvModule.parse(fs.readFileSync(path, { encoding }))\n\n DotenvModule.populate(parsedAll, parsed, options)\n } catch (e) {\n if (debug) {\n _debug(`Failed to load ${path} ${e.message}`)\n }\n lastError = e\n }\n }\n\n let processEnv = process.env\n if (options && options.processEnv != null) {\n processEnv = options.processEnv\n }\n\n DotenvModule.populate(processEnv, parsedAll, options)\n\n if (lastError) {\n return { parsed: parsedAll, error: lastError }\n } else {\n return { parsed: parsedAll }\n }\n}\n\n// Populates process.env from .env file\nfunction config (options) {\n // fallback to original dotenv if DOTENV_KEY is not set\n if (_dotenvKey(options).length === 0) {\n return DotenvModule.configDotenv(options)\n }\n\n const vaultPath = _vaultPath(options)\n\n // dotenvKey exists but .env.vault file does not exist\n if (!vaultPath) {\n _warn(`You set DOTENV_KEY but you are missing a .env.vault file at ${vaultPath}. Did you forget to build it?`)\n\n return DotenvModule.configDotenv(options)\n }\n\n return DotenvModule._configVault(options)\n}\n\nfunction decrypt (encrypted, keyStr) {\n const key = Buffer.from(keyStr.slice(-64), 'hex')\n let ciphertext = Buffer.from(encrypted, 'base64')\n\n const nonce = ciphertext.subarray(0, 12)\n const authTag = ciphertext.subarray(-16)\n ciphertext = ciphertext.subarray(12, -16)\n\n try {\n const aesgcm = crypto.createDecipheriv('aes-256-gcm', key, nonce)\n aesgcm.setAuthTag(authTag)\n return `${aesgcm.update(ciphertext)}${aesgcm.final()}`\n } catch (error) {\n const isRange = error instanceof RangeError\n const invalidKeyLength = error.message === 'Invalid key length'\n const decryptionFailed = error.message === 'Unsupported state or unable to authenticate data'\n\n if (isRange || invalidKeyLength) {\n const err = new Error('INVALID_DOTENV_KEY: It must be 64 characters long (or more)')\n err.code = 'INVALID_DOTENV_KEY'\n throw err\n } else if (decryptionFailed) {\n const err = new Error('DECRYPTION_FAILED: Please check your DOTENV_KEY')\n err.code = 'DECRYPTION_FAILED'\n throw err\n } else {\n throw error\n }\n }\n}\n\n// Populate process.env with parsed values\nfunction populate (processEnv, parsed, options = {}) {\n const debug = Boolean(options && options.debug)\n const override = Boolean(options && options.override)\n\n if (typeof parsed !== 'object') {\n const err = new Error('OBJECT_REQUIRED: Please check the processEnv argument being passed to populate')\n err.code = 'OBJECT_REQUIRED'\n throw err\n }\n\n // Set process.env\n for (const key of Object.keys(parsed)) {\n if (Object.prototype.hasOwnProperty.call(processEnv, key)) {\n if (override === true) {\n processEnv[key] = parsed[key]\n }\n\n if (debug) {\n if (override === true) {\n _debug(`\"${key}\" is already defined and WAS overwritten`)\n } else {\n _debug(`\"${key}\" is already defined and was NOT overwritten`)\n }\n }\n } else {\n processEnv[key] = parsed[key]\n }\n }\n}\n\nconst DotenvModule = {\n configDotenv,\n _configVault,\n _parseVault,\n config,\n decrypt,\n parse,\n populate\n}\n\nmodule.exports.configDotenv = DotenvModule.configDotenv\nmodule.exports._configVault = DotenvModule._configVault\nmodule.exports._parseVault = DotenvModule._parseVault\nmodule.exports.config = DotenvModule.config\nmodule.exports.decrypt = DotenvModule.decrypt\nmodule.exports.parse = DotenvModule.parse\nmodule.exports.populate = DotenvModule.populate\n\nmodule.exports = DotenvModule\n","/* jshint node: true */\n'use strict';\n\nvar REGEXP_PARTS = /(\\*|\\?)/g;\n\n/**\n # wildcard\n\n Very simple wildcard matching, which is designed to provide the same\n functionality that is found in the\n [eve](https://github.com/adobe-webplatform/eve) eventing library.\n\n ## Usage\n\n It works with strings:\n\n <<< examples/strings.js\n\n Arrays:\n\n <<< examples/arrays.js\n\n Objects (matching against keys):\n\n <<< examples/objects.js\n\n ## Alternative Implementations\n\n - <https://github.com/isaacs/node-glob>\n\n Great for full file-based wildcard matching.\n\n - <https://github.com/sindresorhus/matcher>\n\n A well cared for and loved JS wildcard matcher.\n**/\n\nfunction WildcardMatcher(text, separator) {\n this.text = text = text || '';\n this.hasWild = text.indexOf('*') >= 0;\n this.separator = separator;\n this.parts = text.split(separator).map(this.classifyPart.bind(this));\n}\n\nWildcardMatcher.prototype.match = function(input) {\n var matches = true;\n var parts = this.parts;\n var ii;\n var partsCount = parts.length;\n var testParts;\n\n if (typeof input == 'string' || input instanceof String) {\n if (!this.hasWild && this.text != input) {\n matches = false;\n } else {\n testParts = (input || '').split(this.separator);\n for (ii = 0; matches && ii < partsCount; ii++) {\n if (parts[ii] === '*') {\n continue;\n } else if (ii < testParts.length) {\n matches = parts[ii] instanceof RegExp\n ? parts[ii].test(testParts[ii])\n : parts[ii] === testParts[ii];\n } else {\n matches = false;\n }\n }\n\n // If matches, then return the component parts\n matches = matches && testParts;\n }\n }\n else if (typeof input.splice == 'function') {\n matches = [];\n\n for (ii = input.length; ii--; ) {\n if (this.match(input[ii])) {\n matches[matches.length] = input[ii];\n }\n }\n }\n else if (typeof input == 'object') {\n matches = {};\n\n for (var key in input) {\n if (this.match(key)) {\n matches[key] = input[key];\n }\n }\n }\n\n return matches;\n};\n\nWildcardMatcher.prototype.classifyPart = function(part) {\n // in the event that we have been provided a part that is not just a wildcard\n // then turn this into a regular expression for matching purposes\n if (part === '*') {\n return part;\n } else if (part.indexOf('*') >= 0 || part.indexOf('?') >= 0) {\n return new RegExp(part.replace(REGEXP_PARTS, '\\.$1'));\n }\n\n return part;\n};\n\nmodule.exports = function(text, test, separator) {\n var matcher = new WildcardMatcher(text, separator || /[\\/\\.]/);\n if (typeof test != 'undefined') {\n return matcher.match(test);\n }\n\n return matcher;\n};\n",null,"var toString = Object.prototype.toString;\n\nmodule.exports = function kindOf(val) {\n if (val === void 0) return 'undefined';\n if (val === null) return 'null';\n\n var type = typeof val;\n if (type === 'boolean') return 'boolean';\n if (type === 'string') return 'string';\n if (type === 'number') return 'number';\n if (type === 'symbol') return 'symbol';\n if (type === 'function') {\n return isGeneratorFn(val) ? 'generatorfunction' : 'function';\n }\n\n if (isArray(val)) return 'array';\n if (isBuffer(val)) return 'buffer';\n if (isArguments(val)) return 'arguments';\n if (isDate(val)) return 'date';\n if (isError(val)) return 'error';\n if (isRegexp(val)) return 'regexp';\n\n switch (ctorName(val)) {\n case 'Symbol': return 'symbol';\n case 'Promise': return 'promise';\n\n // Set, Map, WeakSet, WeakMap\n case 'WeakMap': return 'weakmap';\n case 'WeakSet': return 'weakset';\n case 'Map': return 'map';\n case 'Set': return 'set';\n\n // 8-bit typed arrays\n case 'Int8Array': return 'int8array';\n case 'Uint8Array': return 'uint8array';\n case 'Uint8ClampedArray': return 'uint8clampedarray';\n\n // 16-bit typed arrays\n case 'Int16Array': return 'int16array';\n case 'Uint16Array': return 'uint16array';\n\n // 32-bit typed arrays\n case 'Int32Array': return 'int32array';\n case 'Uint32Array': return 'uint32array';\n case 'Float32Array': return 'float32array';\n case 'Float64Array': return 'float64array';\n }\n\n if (isGeneratorObj(val)) {\n return 'generator';\n }\n\n // Non-plain objects\n type = toString.call(val);\n switch (type) {\n case '[object Object]': return 'object';\n // iterators\n case '[object Map Iterator]': return 'mapiterator';\n case '[object Set Iterator]': return 'setiterator';\n case '[object String Iterator]': return 'stringiterator';\n case '[object Array Iterator]': return 'arrayiterator';\n }\n\n // other\n return type.slice(8, -1).toLowerCase().replace(/\\s/g, '');\n};\n\nfunction ctorName(val) {\n return typeof val.constructor === 'function' ? val.constructor.name : null;\n}\n\nfunction isArray(val) {\n if (Array.isArray) return Array.isArray(val);\n return val instanceof Array;\n}\n\nfunction isError(val) {\n return val instanceof Error || (typeof val.message === 'string' && val.constructor && typeof val.constructor.stackTraceLimit === 'number');\n}\n\nfunction isDate(val) {\n if (val instanceof Date) return true;\n return typeof val.toDateString === 'function'\n && typeof val.getDate === 'function'\n && typeof val.setDate === 'function';\n}\n\nfunction isRegexp(val) {\n if (val instanceof RegExp) return true;\n return typeof val.flags === 'string'\n && typeof val.ignoreCase === 'boolean'\n && typeof val.multiline === 'boolean'\n && typeof val.global === 'boolean';\n}\n\nfunction isGeneratorFn(name, val) {\n return ctorName(name) === 'GeneratorFunction';\n}\n\nfunction isGeneratorObj(val) {\n return typeof val.throw === 'function'\n && typeof val.return === 'function'\n && typeof val.next === 'function';\n}\n\nfunction isArguments(val) {\n try {\n if (typeof val.length === 'number' && typeof val.callee === 'function') {\n return true;\n }\n } catch (err) {\n if (err.message.indexOf('callee') !== -1) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * If you need to support Safari 5-7 (8-10 yr-old browser),\n * take a look at https://github.com/feross/is-buffer\n */\n\nfunction isBuffer(val) {\n if (val.constructor && typeof val.constructor.isBuffer === 'function') {\n return val.constructor.isBuffer(val);\n }\n return false;\n}\n","/*!\n * shallow-clone <https://github.com/jonschlinkert/shallow-clone>\n *\n * Copyright (c) 2015-present, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n'use strict';\n\nconst valueOf = Symbol.prototype.valueOf;\nconst typeOf = require('kind-of');\n\nfunction clone(val, deep) {\n switch (typeOf(val)) {\n case 'array':\n return val.slice();\n case 'object':\n return Object.assign({}, val);\n case 'date':\n return new val.constructor(Number(val));\n case 'map':\n return new Map(val);\n case 'set':\n return new Set(val);\n case 'buffer':\n return cloneBuffer(val);\n case 'symbol':\n return cloneSymbol(val);\n case 'arraybuffer':\n return cloneArrayBuffer(val);\n case 'float32array':\n case 'float64array':\n case 'int16array':\n case 'int32array':\n case 'int8array':\n case 'uint16array':\n case 'uint32array':\n case 'uint8clampedarray':\n case 'uint8array':\n return cloneTypedArray(val);\n case 'regexp':\n return cloneRegExp(val);\n case 'error':\n return Object.create(val);\n default: {\n return val;\n }\n }\n}\n\nfunction cloneRegExp(val) {\n const flags = val.flags !== void 0 ? val.flags : (/\\w+$/.exec(val) || void 0);\n const re = new val.constructor(val.source, flags);\n re.lastIndex = val.lastIndex;\n return re;\n}\n\nfunction cloneArrayBuffer(val) {\n const res = new val.constructor(val.byteLength);\n new Uint8Array(res).set(new Uint8Array(val));\n return res;\n}\n\nfunction cloneTypedArray(val, deep) {\n return new val.constructor(val.buffer, val.byteOffset, val.length);\n}\n\nfunction cloneBuffer(val) {\n const len = val.length;\n const buf = Buffer.allocUnsafe ? Buffer.allocUnsafe(len) : Buffer.from(len);\n val.copy(buf);\n return buf;\n}\n\nfunction cloneSymbol(val) {\n return valueOf ? Object(valueOf.call(val)) : {};\n}\n\n/**\n * Expose `clone`\n */\n\nmodule.exports = clone;\n","/*!\n * isobject <https://github.com/jonschlinkert/isobject>\n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n'use strict';\n\nmodule.exports = function isObject(val) {\n return val != null && typeof val === 'object' && Array.isArray(val) === false;\n};\n","/*!\n * is-plain-object <https://github.com/jonschlinkert/is-plain-object>\n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n'use strict';\n\nvar isObject = require('isobject');\n\nfunction isObjectObject(o) {\n return isObject(o) === true\n && Object.prototype.toString.call(o) === '[object Object]';\n}\n\nmodule.exports = function isPlainObject(o) {\n var ctor,prot;\n\n if (isObjectObject(o) === false) return false;\n\n // If has modified constructor\n ctor = o.constructor;\n if (typeof ctor !== 'function') return false;\n\n // If has modified prototype\n prot = ctor.prototype;\n if (isObjectObject(prot) === false) return false;\n\n // If constructor does not have an Object-specific method\n if (prot.hasOwnProperty('isPrototypeOf') === false) {\n return false;\n }\n\n // Most likely a plain Object\n return true;\n};\n","'use strict';\n\n/**\n * Module dependenices\n */\n\nconst clone = require('shallow-clone');\nconst typeOf = require('kind-of');\nconst isPlainObject = require('is-plain-object');\n\nfunction cloneDeep(val, instanceClone) {\n switch (typeOf(val)) {\n case 'object':\n return cloneObjectDeep(val, instanceClone);\n case 'array':\n return cloneArrayDeep(val, instanceClone);\n default: {\n return clone(val);\n }\n }\n}\n\nfunction cloneObjectDeep(val, instanceClone) {\n if (typeof instanceClone === 'function') {\n return instanceClone(val);\n }\n if (instanceClone || isPlainObject(val)) {\n const res = new val.constructor();\n for (let key in val) {\n res[key] = cloneDeep(val[key], instanceClone);\n }\n return res;\n }\n return val;\n}\n\nfunction cloneArrayDeep(val, instanceClone) {\n const res = new val.constructor(val.length);\n for (let i = 0; i < val.length; i++) {\n res[i] = cloneDeep(val[i], instanceClone);\n }\n return res;\n}\n\n/**\n * Expose `cloneDeep`\n */\n\nmodule.exports = cloneDeep;\n","module.exports = flatten\nflatten.flatten = flatten\nflatten.unflatten = unflatten\n\nfunction isBuffer (obj) {\n return obj &&\n obj.constructor &&\n (typeof obj.constructor.isBuffer === 'function') &&\n obj.constructor.isBuffer(obj)\n}\n\nfunction keyIdentity (key) {\n return key\n}\n\nfunction flatten (target, opts) {\n opts = opts || {}\n\n const delimiter = opts.delimiter || '.'\n const maxDepth = opts.maxDepth\n const transformKey = opts.transformKey || keyIdentity\n const output = {}\n\n function step (object, prev, currentDepth) {\n currentDepth = currentDepth || 1\n Object.keys(object).forEach(function (key) {\n const value = object[key]\n const isarray = opts.safe && Array.isArray(value)\n const type = Object.prototype.toString.call(value)\n const isbuffer = isBuffer(value)\n const isobject = (\n type === '[object Object]' ||\n type === '[object Array]'\n )\n\n const newKey = prev\n ? prev + delimiter + transformKey(key)\n : transformKey(key)\n\n if (!isarray && !isbuffer && isobject && Object.keys(value).length &&\n (!opts.maxDepth || currentDepth < maxDepth)) {\n return step(value, newKey, currentDepth + 1)\n }\n\n output[newKey] = value\n })\n }\n\n step(target)\n\n return output\n}\n\nfunction unflatten (target, opts) {\n opts = opts || {}\n\n const delimiter = opts.delimiter || '.'\n const overwrite = opts.overwrite || false\n const transformKey = opts.transformKey || keyIdentity\n const result = {}\n\n const isbuffer = isBuffer(target)\n if (isbuffer || Object.prototype.toString.call(target) !== '[object Object]') {\n return target\n }\n\n // safely ensure that the key is\n // an integer.\n function getkey (key) {\n const parsedKey = Number(key)\n\n return (\n isNaN(parsedKey) ||\n key.indexOf('.') !== -1 ||\n opts.object\n ) ? key\n : parsedKey\n }\n\n function addKeys (keyPrefix, recipient, target) {\n return Object.keys(target).reduce(function (result, key) {\n result[keyPrefix + delimiter + key] = target[key]\n\n return result\n }, recipient)\n }\n\n function isEmpty (val) {\n const type = Object.prototype.toString.call(val)\n const isArray = type === '[object Array]'\n const isObject = type === '[object Object]'\n\n if (!val) {\n return true\n } else if (isArray) {\n return !val.length\n } else if (isObject) {\n return !Object.keys(val).length\n }\n }\n\n target = Object.keys(target).reduce(function (result, key) {\n const type = Object.prototype.toString.call(target[key])\n const isObject = (type === '[object Object]' || type === '[object Array]')\n if (!isObject || isEmpty(target[key])) {\n result[key] = target[key]\n return result\n } else {\n return addKeys(\n key,\n result,\n flatten(target[key], opts)\n )\n }\n }, {})\n\n Object.keys(target).forEach(function (key) {\n const split = key.split(delimiter).map(transformKey)\n let key1 = getkey(split.shift())\n let key2 = getkey(split[0])\n let recipient = result\n\n while (key2 !== undefined) {\n if (key1 === '__proto__') {\n return\n }\n\n const type = Object.prototype.toString.call(recipient[key1])\n const isobject = (\n type === '[object Object]' ||\n type === '[object Array]'\n )\n\n // do not write over falsey, non-undefined values if overwrite is false\n if (!overwrite && !isobject && typeof recipient[key1] !== 'undefined') {\n return\n }\n\n if ((overwrite && !isobject) || (!overwrite && recipient[key1] == null)) {\n recipient[key1] = (\n typeof key2 === 'number' &&\n !opts.object ? [] : {}\n )\n }\n\n recipient = recipient[key1]\n if (split.length > 0) {\n key1 = getkey(split.shift())\n key2 = getkey(split[0])\n }\n }\n\n // unflatten again for 'messy objects'\n recipient[key1] = unflatten(target[key], opts)\n })\n\n return result\n}\n",null,null,null,null,null,"import {Compiler} from \"webpack\";\n\nexport const build = (compiler: Compiler) => {\n compiler.run((err, stats) => {\n if (err) {\n console.error('Webpack compilation error:', err);\n process.exit(1);\n }\n\n if (stats?.hasErrors()) {\n console.error(stats.toString({\n colors: true,\n errors: true\n }));\n\n process.exit(1);\n }\n\n console.log(stats?.toString({colors: true}));\n\n compiler.close((closeErr) => {\n if (closeErr) {\n console.error('Webpack close error:', closeErr);\n process.exit(1);\n }\n });\n });\n};\n\nexport const watch = (compiler: Compiler) => {\n const watching = compiler.watch({\n aggregateTimeout: 300,\n ignored: /node_modules/\n }, (err, stats) => {\n if (err) {\n console.error('Webpack watch error:', err);\n process.exit(1);\n }\n\n if (stats?.hasErrors()) {\n console.error(stats.toString({\n colors: true,\n errors: true\n }));\n\n return;\n }\n\n console.log(stats?.toString({colors: true}));\n });\n\n process.on('SIGINT', () => {\n watching.close(() => {\n console.log('Webpack watch mode stopped');\n process.exit(0);\n });\n });\n}","import path from \"path\";\nimport {existsSync} from \"fs\";\nimport dotenv, {type DotenvParseOutput} from 'dotenv';\nimport {loadConfig} from \"c12\";\n\nimport dotenvPlugin from \"../plugins/dotenv\";\nimport contentPlugin from \"../plugins/content\";\nimport backgroundPlugin from \"../plugins/background\";\n\nimport {getConfigFile, getRootPath} from \"../resolvers/path\";\n\nimport {Browser, Config, Mode, OptionalConfig, ReadonlyConfig, UserConfig,} from \"@typing/config\";\nimport {Plugin} from \"@typing/plugin\";\n\n\nconst getUserConfig = async (config: ReadonlyConfig): Promise<UserConfig> => {\n const configFilePath = getConfigFile(config);\n\n if (existsSync(configFilePath)) {\n const {config: userConfig} = await loadConfig<UserConfig>({\n configFile: configFilePath,\n dotenv: true,\n });\n\n if (config.debug) {\n console.log('Loaded user config:', configFilePath);\n }\n\n return userConfig\n } else if (config.debug) {\n console.warn('Config file not found:', configFilePath);\n }\n\n return {};\n}\n\nconst updateLocalDotenv = (config: ReadonlyConfig): DotenvParseOutput => {\n const {mode, app, browser, manifestVersion} = config;\n\n const localVars: DotenvParseOutput = {\n APP: app,\n BROWSER: browser,\n MODE: mode,\n MANIFEST_VERSION: String(manifestVersion),\n };\n\n Object.assign(process.env, localVars);\n\n return localVars;\n}\n\nconst loadDotenv = (config: ReadonlyConfig): DotenvParseOutput => {\n const {mode, app, browser} = config;\n\n const paths = [\n `.env.${mode}.${app}.${browser}.local`,\n `.env.${mode}.${app}.${browser}`,\n `.env.${app}.${browser}.local`,\n `.env.${app}.${browser}`,\n `.env.${app}`,\n `.env.${mode}.${browser}.local`,\n `.env.${mode}.${browser}`,\n `.env.${browser}.local`,\n `.env.${browser}`,\n `.env.${mode}.local`,\n `.env.${mode}`,\n `.env.local`,\n `.env`,\n ].map((file) => path.join(getRootPath(config.inputDir), file));\n\n const {parsed: fileVars = {}} = dotenv.config({path: paths});\n\n return {...fileVars, ...updateLocalDotenv(config)};\n}\n\nexport default async (config: OptionalConfig): Promise<Config> => {\n let {\n debug = false,\n configFile = 'addonbone.config.ts',\n app = 'myapp',\n browser = Browser.Chrome,\n inputDir = '.',\n outputDir = 'dist',\n srcDir = 'src',\n sharedDir = 'shared',\n appsDir = 'apps',\n jsDir = 'js',\n cssDir = 'css',\n assetsDir = 'assets',\n htmlDir = '.',\n manifestVersion = [Browser.Firefox, Browser.Safari].includes(browser) ? 2 : 3,\n mode = Mode.Development,\n analyze = false,\n plugins = [],\n mergeBackground = false,\n mergeContentScripts = false,\n concatContentScripts = true,\n } = config;\n\n let resolvedConfig: Config = {\n debug,\n mode,\n app,\n browser,\n manifestVersion,\n inputDir,\n outputDir,\n srcDir,\n sharedDir,\n appsDir,\n jsDir,\n cssDir,\n assetsDir,\n htmlDir,\n plugins,\n analyze,\n configFile,\n mergeBackground,\n mergeContentScripts,\n concatContentScripts,\n };\n\n let vars = loadDotenv(resolvedConfig);\n\n const {plugins: userPlugins = [], ...userConfig} = await getUserConfig(resolvedConfig);\n\n resolvedConfig = {...resolvedConfig, ...userConfig};\n\n vars = {...vars, ...loadDotenv(resolvedConfig)};\n\n const corePlugins: Plugin[] = [\n dotenvPlugin({vars}),\n // contentPlugin(),\n backgroundPlugin(),\n ];\n\n return {\n ...resolvedConfig,\n plugins: [\n ...plugins,\n ...userPlugins,\n ...corePlugins,\n ]\n };\n}","import {ConfigDefinition} from \"@typing/config\";\nimport {BackgroundDefinition} from \"@typing/background\";\nimport {ContentScriptDefinition} from \"@typing/content\";\nimport {Plugin, PluginDefinition} from \"@typing/plugin\";\n\nexport function defineConfig(config: ConfigDefinition): ConfigDefinition {\n return config;\n}\n\nexport function definePlugin<T>(plugin: (options?: T) => Plugin): (options?: T) => Plugin;\nexport function definePlugin(plugin: Plugin): Plugin;\n\nexport function definePlugin<T>(plugin: PluginDefinition<T>): PluginDefinition<T> {\n return plugin;\n}\n\nexport function defineBackground(options: BackgroundDefinition): BackgroundDefinition {\n return options;\n}\n\nexport function defineContentScript(options: ContentScriptDefinition): ContentScriptDefinition {\n return options;\n}","import webpack from \"webpack\";\nimport {type DotenvParseOutput} from \"dotenv\";\n\nimport {definePlugin} from \"@core/define\";\n\nexport interface DotenvOptions {\n vars: DotenvParseOutput;\n}\n\nexport default definePlugin<DotenvOptions>((options) => {\n const {vars = {}} = options || {};\n\n return {\n webpack: {\n plugins: [\n new webpack.DefinePlugin({\n 'process.env': JSON.stringify(vars)\n })\n ],\n }\n }\n});","import {Compiler} from 'webpack';\n\ntype EntryMap = Record<string, string | string[]>;\n\nexport interface WatchPluginOptions {\n key?: string;\n entry?: EntryMap;\n callback: (files: ReadonlySet<string>) => void | EntryMap | Promise<void | EntryMap>;\n}\n\nclass WatchPlugin {\n public readonly key: string;\n private entry: EntryMap;\n private readonly callback: WatchPluginOptions['callback'];\n\n constructor({key, entry = {}, callback}: WatchPluginOptions) {\n this.entry = entry;\n this.callback = callback;\n this.key = 'watch-plugin:' + (key || Object.keys(this.entry).join(','));\n }\n\n public apply(compiler: Compiler) {\n compiler.hooks.watchRun.tapAsync('WatchPlugin', async (compiler, callback) => {\n try {\n const {modifiedFiles = new Set} = compiler;\n\n const has = this.files.size === 0 || Array.from(modifiedFiles).some(file => this.files.has(file));\n\n if (has) {\n const entry = await this.callback(modifiedFiles);\n\n if (entry) {\n for (const name in this.entry) {\n delete compiler.options.entry[name];\n }\n\n for (const name in entry) {\n compiler.options.entry[name] = entry[name];\n }\n\n this.entry = entry;\n }\n }\n\n callback();\n } catch (e) {\n callback(e as Error);\n }\n });\n }\n\n protected get files(): Set<string> {\n return new Set(Object.values(this.entry).flatMap(value => Array.isArray(value) ? value : [value]));\n }\n}\n\nexport default WatchPlugin;\n","import {mergeWithCustomize} from \"webpack-merge\";\n\nimport WatchPlugin from \"./plugins/WatchPlugin\";\n\nexport default mergeWithCustomize({\n customizeArray: (a: any[], b: any[], key: string) => {\n if (key === 'plugins') {\n const names = new Set();\n\n return [...a, ...b].filter(plugin => {\n let name: string | undefined = plugin?.constructor?.name;\n\n if (plugin instanceof WatchPlugin) {\n name = plugin.key;\n }\n\n if (names.has(name)) return false;\n names.add(name);\n return true;\n });\n }\n\n if (key === 'resolve.plugins') {\n const names = new Set();\n\n return [...a, ...b].filter(plugin => {\n const name = plugin?.constructor?.name;\n if (names.has(name)) return false;\n names.add(name);\n return true;\n });\n }\n\n if (key === 'module.rules') {\n const tests = new Set();\n\n return [...a, ...b].filter(rule => {\n const test = rule?.test?.toString();\n if (tests.has(test)) return false;\n tests.add(test);\n return true;\n });\n }\n\n return undefined;\n }\n});","import ts from 'typescript';\nimport fs from 'fs';\nimport path from \"path\";\n\nimport {EnumMap, ImportMap, ResolverMap, Variable, VariableMap} from \"./types\";\n\nexport default class EntryFile {\n private sourceFile?: ts.SourceFile;\n\n private variables?: VariableMap;\n\n private imports?: ImportMap;\n\n private enums?: EnumMap;\n\n private resolvers?: ResolverMap;\n\n static make<T extends EntryFile>(this: new (file: string) => T, file: string): T {\n return new this(file);\n }\n\n constructor(protected readonly file: string) {\n }\n\n public getSourceFile(): ts.SourceFile {\n if (this.sourceFile) {\n return this.sourceFile;\n }\n\n const sourceCode = fs.readFileSync(this.file, 'utf8');\n\n return this.sourceFile = ts.createSourceFile(\n this.file,\n sourceCode,\n ts.ScriptTarget.ESNext,\n true\n );\n }\n\n public getImports(): ImportMap {\n if (this.imports) {\n return this.imports;\n }\n\n this.imports = new Map();\n\n const parse = (node: ts.Node) => {\n if (ts.isImportDeclaration(node) && node.moduleSpecifier) {\n const importPath = (node.moduleSpecifier as ts.StringLiteral).text;\n\n if (node.importClause && node.importClause.namedBindings && ts.isNamedImports(node.importClause.namedBindings)) {\n node.importClause.namedBindings.elements.forEach(el => {\n console.log(el.name.text, importPath);\n\n\n this.imports?.set(el.name.text, path.resolve(path.dirname(this.file), importPath + '.ts'));\n });\n }\n }\n\n ts.forEachChild(node, parse);\n }\n\n parse(this.getSourceFile());\n\n return this.imports;\n }\n\n public getEnums(): EnumMap {\n if (this.enums) {\n return this.enums;\n }\n\n this.enums = new Map();\n\n const parse = (node: ts.Node) => {\n if (ts.isEnumDeclaration(node)) {\n const enumName = node.name.text;\n const enumProperties: Map<string, string | number> = new Map();\n\n node.members.forEach(member => {\n const key = member.name.getText();\n const value = member.initializer ? member.initializer.getText().replace(/['\"]/g, '') : key;\n\n enumProperties.set(key, value);\n });\n\n this.enums?.set(enumName, enumProperties);\n }\n\n ts.forEachChild(node, parse);\n }\n\n parse(this.getSourceFile());\n\n return this.enums;\n }\n\n public getVariables(): VariableMap {\n if (this.variables) {\n return this.variables;\n }\n\n this.variables = new Map();\n\n const parse = (node: ts.Node) => {\n if (ts.isVariableStatement(node)) {\n const isExported = node.modifiers?.some(modifier => modifier.kind === ts.SyntaxKind.ExportKeyword);\n\n node.declarationList.declarations.forEach(declaration => {\n if (ts.isIdentifier(declaration.name) && declaration.initializer) {\n const name = declaration.name.text;\n const value = this.parseNode(declaration.initializer);\n\n this.variables?.set(name, {\n name,\n value,\n exported: isExported || false\n });\n }\n });\n }\n\n if (ts.isExportDeclaration(node) && node.exportClause && ts.isNamedExports(node.exportClause)) {\n node.exportClause.elements.forEach(el => {\n const name = el.name.text;\n\n if (this.variables?.has(name)) {\n const variable = this.variables?.get(name) as Variable;\n\n this.variables?.set(name, {\n name,\n value: variable.value,\n exported: true\n });\n }\n });\n }\n\n if (ts.isExportAssignment(node)) {\n const expr = node.expression;\n if (ts.isIdentifier(expr) && this.variables?.has(expr.text)) {\n const variable = this.variables?.get(expr.text) as Variable;\n const name = \"default\";\n\n this.variables?.set(name, {\n name,\n value: variable.value,\n exported: true\n });\n }\n }\n\n ts.forEachChild(node, parse);\n };\n\n parse(this.getSourceFile());\n\n return this.variables;\n }\n\n protected findPropertyAccessValue(property: ts.Node): any {\n if (ts.isPropertyAccessExpression(property)) {\n const objectName = property.expression.getText();\n const propertyName = property.name.getText();\n\n const varItem = this.getVariables().get(objectName);\n\n if (varItem) {\n return varItem.value;\n }\n\n const enumItem = this.getEnums().get(objectName);\n\n if (enumItem) {\n return enumItem.get(propertyName);\n }\n\n const importItem = this.getImports().get(objectName);\n\n if (importItem) {\n console.log('FFF->', importItem, ' -> ', propertyName, '->', objectName);\n\n return EntryFile.make(importItem).findPropertyAccessValue(property);\n }\n\n return `${objectName}.${propertyName}`;\n }\n\n return undefined;\n }\n\n protected parseNode(node?: ts.Node): any {\n if (!node) {\n return undefined;\n }\n\n switch (node.kind) {\n case ts.SyntaxKind.StringLiteral:\n return (node as ts.StringLiteral).text;\n case ts.SyntaxKind.TrueKeyword:\n return true;\n case ts.SyntaxKind.FalseKeyword:\n return false;\n case ts.SyntaxKind.NullKeyword:\n return null;\n case ts.SyntaxKind.NumericLiteral:\n return parseFloat((node as ts.NumericLiteral).text);\n case ts.SyntaxKind.Identifier:\n return this.variables?.get((node as ts.Identifier).text)?.value ?? (node as ts.Identifier).text;\n case ts.SyntaxKind.ArrayLiteralExpression:\n return (node as ts.ArrayLiteralExpression).elements.map(element =>\n this.parseNode(element)\n );\n case ts.SyntaxKind.ObjectLiteralExpression:\n return (node as ts.ObjectLiteralExpression).properties\n .filter(\n (property): property is ts.PropertyAssignment =>\n ts.isPropertyAssignment(property) || ts.isShorthandPropertyAssignment(property)\n )\n .reduce((acc, property) => {\n if (ts.isComputedPropertyName(property.name)) {\n return acc;\n }\n\n const key = (property.name as ts.Identifier | ts.StringLiteral).text;\n let value = this.parseNode(property.initializer);\n\n if (typeof value === 'string' && this.variables?.has(value)) {\n value = this.variables?.get(value)?.value;\n }\n\n acc[key] = value;\n\n return acc;\n }, {} as Record<string, any>);\n case ts.SyntaxKind.PropertyAccessExpression: {\n return this.findPropertyAccessValue(node);\n }\n default:\n return undefined;\n }\n }\n}","import {\n forEachChild,\n isCallExpression,\n isExportAssignment,\n isIdentifier,\n isObjectLiteralExpression,\n Node\n} from 'typescript';\n\nimport SourceFile from \"./SourceFile\";\n\nexport default class<T extends Record<string, unknown>> extends SourceFile {\n protected definition?: string;\n\n protected properties: string[] = [];\n\n public setDefinition(definition: string): this {\n this.definition = definition;\n\n return this;\n }\n\n public setProperties(properties: string[]): this {\n this.properties = properties;\n\n return this;\n }\n\n public getOptions(): T {\n return {...this.getOptionsFromVariables(), ...this.getOptionsFromDefinition()};\n }\n\n protected getOptionsFromVariables(): T {\n return Array.from(this.getVariables().values())\n .filter(({name, exported}) => exported && this.properties.includes(name))\n .reduce((config, {name, value}) => ({...config, [name]: value}), {} as T);\n }\n\n protected getOptionsFromDefinition(): T {\n let options = {} as T;\n\n console.log('EEEEEE', this.getImports());\n\n const parse = (node: Node) => {\n if (isExportAssignment(node)) {\n const expr = node.expression;\n\n if (isCallExpression(expr) && isIdentifier(expr.expression)) {\n const functionName = expr.expression.text;\n\n if (functionName === this.definition && expr.arguments.length > 0) {\n const arg = expr.arguments[0];\n\n if (isObjectLiteralExpression(arg)) {\n options = this.parseNode(arg);\n }\n }\n }\n }\n\n forEachChild(node, parse);\n }\n\n parse(this.getSourceFile());\n\n return options;\n }\n}","import OptionFile from \"./OptionFile\";\n\nimport {BackgroundEntrypointOptions} from \"@typing/background\";\nimport {BaseEntrypointOptions} from \"@typing/base\";\n\nconst commonProperties: Array<keyof BaseEntrypointOptions> = [\n 'includeApp',\n 'excludeApp',\n 'includeBrowser',\n 'excludeBrowser',\n];\n\nexport const getBackgroundOptions = (file: string): BackgroundEntrypointOptions => {\n return OptionFile.make(file)\n .setDefinition('defineBackground')\n .setProperties([...commonProperties, 'persistent'])\n .getOptions();\n}","import path from 'path';\n\nimport {ReadonlyConfig} from \"@typing/config\";\n\nexport const getRootPath = (to: string): string => {\n return path.resolve(process.cwd(), to);\n}\n\nexport const getConfigFile = (config: ReadonlyConfig): string => {\n return path.join(config.inputDir, config.configFile);\n}\n\nexport const getSharedPath = (config: ReadonlyConfig): string => {\n return path.join(config.inputDir, config.srcDir, config.sharedDir);\n}\n\nexport const getAppsPath = (config: ReadonlyConfig): string => {\n return path.join(config.inputDir, config.srcDir, config.appsDir, config.app);\n}\n\nexport const getOutputPath = (config: ReadonlyConfig): string => {\n return path.join(config.outputDir, `${config.app}-${config.browser}-mv${config.manifestVersion}`);\n}\n\n// export const getImportPath = (config: ReadonlyConfig, path: string): string => {\n//\n// }","import {Dirent, readdirSync, statSync} from 'fs';\nimport path from 'path';\n\nconst escapeRegExp = (text: string): string =>\n text.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n\nexport const findEntrypointFiles = (\n directory: string,\n entrypoint: string\n): string[] => {\n const files: string[] = [];\n\n const regex = new RegExp(\n `^(?:.*\\\\.)?${escapeRegExp(entrypoint)}\\\\.(ts|tsx|js)$`\n );\n\n const finder = (dir: string): void => {\n let entries: Dirent[];\n\n try {\n entries = readdirSync(dir, {withFileTypes: true});\n } catch (e) {\n console.log('Error reading entrypoint directory:', dir);\n\n return;\n }\n\n for (const entry of entries) {\n const fullPath = path.join(dir, entry.name);\n\n if (entry.isDirectory()) {\n if (entry.name === entrypoint || entry.name.endsWith(`.${entrypoint}`)) {\n const possibleIndexFiles = ['index.ts', 'index.tsx', 'index.js'];\n\n for (const indexFile of possibleIndexFiles) {\n const indexPath = path.join(fullPath, indexFile);\n\n try {\n const stat = statSync(indexPath);\n\n if (stat.isFile()) {\n files.push(indexPath);\n }\n } catch (e) {\n //console.log('Error reading entrypoint index file:', indexPath);\n }\n }\n }\n\n finder(fullPath);\n } else if (entry.isFile()) {\n if (regex.test(entry.name)) {\n files.push(fullPath);\n }\n }\n }\n };\n\n finder(directory);\n\n return files;\n};\n\nexport const findBackgroundFiles = (directory: string): string[] => {\n return findEntrypointFiles(directory, 'background');\n}\n\nexport const findContentFiles = (directory: string): string[] => {\n return findEntrypointFiles(directory, 'content');\n}","import _ from \"lodash\";\n\nimport {\n PluginHandler,\n PluginHandlerKeys,\n PluginHandlerOptions,\n PluginHandlerResult,\n PluginNameHandlerResult\n} from \"@typing/plugin\";\nimport {ReadonlyConfig} from \"@typing/config\";\n\nexport const resolvePluginHandler = async <O extends object, T>(handler: PluginHandler<O, T> | undefined, options: O): Promise<T | undefined> => {\n if (_.isFunction(handler)) {\n const result = handler(options);\n\n if (result instanceof Promise) {\n return await result;\n }\n\n return result;\n }\n\n return handler;\n};\n\n\nexport const processPluginHandler = async function* <K extends PluginHandlerKeys>(config: ReadonlyConfig, key: K, options: PluginHandlerOptions<K>): AsyncGenerator<PluginNameHandlerResult<K>, void, void> {\n const {plugins = []} = config;\n\n for await (const plugin of plugins) {\n const handler = plugin[key] as PluginHandler<PluginHandlerOptions<K>> | undefined;\n\n const result = await resolvePluginHandler(handler, options);\n\n if (result !== undefined) {\n yield {name: plugin.name, result};\n }\n }\n}","import {BaseEntrypointOptions} from \"@typing/base\";\nimport {ReadonlyConfig} from \"@typing/config\";\n\nexport const isValidEntrypointOptions = (options: BaseEntrypointOptions, config: ReadonlyConfig): boolean => {\n const {browser, app} = config;\n\n if (options.includeBrowser?.includes(browser) || options.includeApp?.includes(app)) {\n return true;\n }\n\n return !(options.excludeBrowser?.includes(browser) || options.excludeApp?.includes(app));\n}","import _ from 'lodash';\n\nimport {getBackgroundOptions} from \"@cli/parsers/entrypoint\";\n\nimport {getAppsPath, getSharedPath} from \"@cli/resolvers/path\";\n\nimport {findBackgroundFiles} from \"@cli/utils/entrypoint\";\nimport {processPluginHandler} from \"@cli/utils/plugin\";\nimport {isValidEntrypointOptions} from \"@cli/utils/option\";\n\nimport {BackgroundConfig, BackgroundEntrypointMap} from \"@typing/background\";\nimport {ReadonlyConfig} from \"@typing/config\";\n\n\nconst backgroundFilesToEntries = (files: string[]): BackgroundEntrypointMap => {\n const entries: BackgroundEntrypointMap = new Map;\n\n for (const file of files) {\n entries.set(file, getBackgroundOptions(file));\n }\n\n return entries;\n}\n\nconst findBackgroundEntriesByDir = (dir: string): BackgroundEntrypointMap => {\n return backgroundFilesToEntries(findBackgroundFiles(dir));\n}\n\nconst getBackgroundEntries = async (config: ReadonlyConfig): Promise<BackgroundEntrypointMap> => {\n let entries: BackgroundEntrypointMap = new Map;\n\n const appBackgroundEntries = findBackgroundEntriesByDir(getAppsPath(config));\n\n if (appBackgroundEntries.size > 0) {\n entries = new Map([...entries, ...appBackgroundEntries]);\n\n if (config.debug) {\n console.info('App background added:', appBackgroundEntries);\n }\n }\n\n if (appBackgroundEntries.size > 0 && config.mergeBackground || appBackgroundEntries.size === 0) {\n const sharedBackgroundEntries = findBackgroundEntriesByDir(getSharedPath(config));\n\n if (sharedBackgroundEntries.size > 0) {\n entries = new Map([...entries, ...sharedBackgroundEntries]);\n\n if (config.debug) {\n console.info('Shared background added:', sharedBackgroundEntries);\n }\n }\n }\n\n const pluginBackgroundResult = await Array.fromAsync(processPluginHandler(config, 'background', {\n config,\n entries\n }));\n\n if (pluginBackgroundResult.length > 0) {\n const pluginBackgroundFiles = pluginBackgroundResult.map(({name, result: endpoint}) => {\n if (_.isBoolean(endpoint)) {\n endpoint = 'background';\n }\n\n return require.resolve(`${name}/${endpoint}`);\n });\n\n const pluginBackgroundEntries = backgroundFilesToEntries(pluginBackgroundFiles);\n\n entries = new Map([...entries, ...pluginBackgroundEntries]);\n\n if (config.debug) {\n console.info('Plugin background added:', pluginBackgroundEntries);\n }\n }\n\n return entries;\n}\n\nexport interface BackgroundResult extends Partial<BackgroundConfig> {\n files: string[];\n}\n\nexport default async (config: ReadonlyConfig): Promise<BackgroundResult> => {\n const entries = Array.from(await getBackgroundEntries(config))\n .filter(([_, options]) => isValidEntrypointOptions(options, config))\n\n const files = entries.map(([file]) => file);\n const persistent = entries.some(([_, {persistent}]) => persistent);\n\n return {files, persistent}\n}","import {BackgroundDefinition} from \"adnbn\";\n\nimport * as module from \"virtual:background-entrypoint\";\n\nimport _isFunction from \"lodash/isFunction\";\nimport _isPlainObject from \"lodash/isPlainObject\";\n\ntry {\n const {default: defaultDefinition, ...otherDefinition} = module;\n\n let definition: BackgroundDefinition = otherDefinition;\n\n if (_isPlainObject(defaultDefinition)) {\n definition = {...definition, ...defaultDefinition};\n } else if (_isFunction(defaultDefinition)) {\n definition = {...definition, main: defaultDefinition};\n }\n\n const {main, ...options} = definition;\n\n if (_isFunction(main)) {\n Promise.resolve(main(options)).catch((e) => {\n console.error('The background main function crashed:', e);\n });\n }\n} catch (e) {\n console.error('The background crashed on startup:', e);\n}\n","import fs from 'fs';\nimport path from 'path';\nimport {getRootPath} from \"@cli/resolvers/path\";\n\nimport bg from \"./background.ts?raw\";\n\nconsole.log(bg);\n\n\n\n\n\n\n\n\n\n\n\n\nconst getVirtualModule = (file: string, template: string): string => {\n // const content = fs.readFileSync(path.join(__dirname, `virtual/${template}.js`), 'utf-8');\n\n return bg.replace(`virtual:${template}-entrypoint`, file.replace('.ts', ''));\n}\n\nexport const virtualBackgroundModule = (file: string): string => {\n\n\n return getVirtualModule(file, 'background');\n}","import {Configuration as WebpackConfig} from \"webpack\";\nimport VirtualModulesPlugin from \"webpack-virtual-modules\";\nimport _ from \"lodash\";\n\nimport {definePlugin} from \"@core/define\";\n\nimport WatchPlugin from \"@cli/webpack/plugins/WatchPlugin\";\nimport mergeWebpack from \"@cli/webpack/merge\";\n\nimport background from \"./background\";\n\nimport {Mode} from \"@typing/config\";\nimport {virtualBackgroundModule} from \"@cli/virtual\";\nimport path from \"path\";\n\nexport interface BackgroundOptions {\n name?: string;\n}\n\nexport default definePlugin<BackgroundOptions>(options => {\n const {name = 'background'} = options || {};\n\n let hasBackground: boolean = false;\n let persistent: boolean | undefined;\n\n return {\n name: import.meta.dirname,\n webpack: async ({config, webpack}) => {\n const {files: backgroundFiles, persistent: backgroundPersistent} = await background(config);\n\n const files = backgroundFiles;\n\n if (files.length === 0) {\n if (config.debug) {\n console.warn('Background entries not found');\n }\n\n return {};\n }\n\n hasBackground = true;\n persistent = backgroundPersistent;\n\n const m = files.reduce((m, file) => ({...m, [path.join('virtual', file)]: virtualBackgroundModule(file)}), {});\n\n\n console.log('m', m);\n\n const virtualModules = new VirtualModulesPlugin(m);\n\n\n\n const entry = {[name]: Object.keys(m)};\n\n let resolvedWebpack: WebpackConfig = {\n entry,\n plugins: [virtualModules],\n optimization: {\n splitChunks: {\n chunks(chunk) {\n const {chunks} = webpack.optimization?.splitChunks || {};\n\n if (_.isFunction(chunks) && !chunks(chunk)) {\n return false;\n }\n\n return chunk.name !== name;\n },\n }\n }\n };\n\n if (config.mode === Mode.Development) {\n resolvedWebpack = mergeWebpack(resolvedWebpack, {\n plugins: [\n new WatchPlugin({\n key: name,\n entry,\n callback: async () => {\n const {\n files: backgroundFiles,\n persistent: backgroundPersistent\n } = await background(config);\n\n persistent = backgroundPersistent;\n\n\n for(const file of files) {\n virtualModules.writeModule(file, `console.log(\"${file}\")`);\n }\n\n return {[name]: backgroundFiles};\n }\n }),\n ],\n });\n }\n\n return resolvedWebpack;\n },\n manifest: ({manifest}) => {\n if (hasBackground) {\n manifest.resetBackground({\n entry: name,\n persistent,\n });\n }\n }\n };\n});","import {\n CoreManifest,\n Manifest,\n ManifestBackground,\n ManifestBuilder,\n ManifestContentScript,\n ManifestDependenciesMap,\n ManifestVersion\n} from \"@typing/manifest\";\n\nimport {Browser} from \"@typing/config\";\n\nexport class ManifestError extends Error {\n public constructor(message: string) {\n super('Manifest: ' + message);\n }\n}\n\nexport default abstract class<T extends CoreManifest> implements ManifestBuilder<T> {\n protected name: string = \"__MSG_app_name__\";\n protected shortName: string = \"__MSG_app_short_name__\";\n protected description: string = \"__MSG_app_description__\";\n protected version: string = \"0.0.0\";\n protected background?: ManifestBackground;\n protected contentScripts: Map<string, ManifestContentScript> = new Map();\n protected dependencies: ManifestDependenciesMap = new Map();\n\n public abstract getManifestVersion(): ManifestVersion;\n\n protected abstract buildBackground(): Partial<T> | undefined;\n\n protected abstract buildContentScripts(): Partial<T> | undefined;\n\n protected constructor(protected readonly browser: Browser = Browser.Chrome) {\n }\n\n public setName(name: string): this {\n this.name = name;\n\n return this;\n }\n\n public setShortName(shortName: string): this {\n this.shortName = shortName;\n\n return this;\n }\n\n public setDescription(description: string): this {\n this.description = description;\n\n return this;\n }\n\n public setVersion(version: string): this {\n this.version = version;\n\n return this;\n }\n\n public resetBackground(background: ManifestBackground): this {\n this.background = background;\n\n return this;\n }\n\n public pushContentScript(...content: ManifestContentScript[]): this {\n for (const script of content) {\n this.contentScripts.set(script.entry, script);\n }\n\n return this;\n }\n\n public setDependencies(dependencies: ManifestDependenciesMap): this {\n this.dependencies = dependencies\n\n return this;\n }\n\n private marge<T extends CoreManifest>(manifest: T, ...sources: Array<Partial<T> | undefined>): T {\n sources = sources.filter((source) => source !== undefined);\n\n if (sources.length === 0) {\n return manifest;\n }\n\n return Object.assign({}, manifest, ...sources);\n }\n\n public build(): T {\n let manifest: Manifest = {\n name: this.name,\n short_name: this.shortName,\n description: this.description,\n version: this.version,\n manifest_version: this.getManifestVersion(),\n };\n\n manifest = this.marge(manifest, this.buildBackground(), this.buildContentScripts());\n\n return manifest as T;\n }\n\n public get(): T {\n return this.build();\n }\n}","import ManifestBase, {ManifestError} from \"./ManifestBase\";\n\nimport {ManifestVersion} from \"@typing/manifest\";\nimport {Browser} from \"@typing/config\";\n\ntype ManifestV2 = chrome.runtime.ManifestV2;\n\nexport default class extends ManifestBase<ManifestV2> {\n\n public constructor(browser: Browser) {\n super(browser);\n }\n\n public getManifestVersion(): ManifestVersion {\n return 2;\n }\n\n protected buildBackground(): Partial<ManifestV2> | undefined {\n if (this.background) {\n const {entry, persistent} = this.background;\n\n const dependencies = this.dependencies.get(entry);\n\n if (!dependencies) {\n throw new ManifestError(`Background entry \"${entry}\" not found in dependencies`);\n }\n\n if (dependencies.js.size === 0) {\n throw new ManifestError(`Background entry \"${entry}\" has no dependencies`);\n }\n\n const scripts = Array.from(dependencies.js);\n\n return {background: {scripts, persistent: persistent || undefined}};\n }\n }\n\n protected buildContentScripts(): Partial<ManifestV2> | undefined {\n if (this.contentScripts.size > 0) {\n const contentScripts: ManifestV2['content_scripts'] = Array.from(this.contentScripts, ([_, contentScript]) => ({\n matches: contentScript.matches,\n exclude_matches: contentScript.excludeMatches,\n all_frames: contentScript.allFrames,\n run_at: contentScript.runAt,\n exclude_globs: contentScript.excludeGlobs,\n include_globs: contentScript.includeGlobs,\n }));\n\n return {content_scripts: contentScripts};\n }\n }\n}","import ManifestBase, {ManifestError} from \"./ManifestBase\";\n\nimport {ManifestVersion} from \"@typing/manifest\";\nimport {Browser} from \"@typing/config\";\n\ntype ManifestV3 = chrome.runtime.ManifestV3;\n\nexport default class extends ManifestBase<ManifestV3> {\n public constructor(browser: Browser) {\n super(browser);\n }\n\n public getManifestVersion(): ManifestVersion {\n return 3;\n }\n\n protected buildBackground(): Partial<ManifestV3> | undefined {\n if (this.background) {\n const {entry} = this.background;\n\n const dependencies = this.dependencies.get(entry);\n\n if (!dependencies) {\n throw new ManifestError(`Background entry \"${entry}\" not found in dependencies`);\n }\n\n if (dependencies.js.size === 0) {\n throw new ManifestError(`Background entry \"${entry}\" has no dependencies`);\n }\n\n if (dependencies.js.size > 1) {\n throw new ManifestError(`Background entry \"${entry}\" has more than one dependency`);\n }\n\n const [js] = Array.from(dependencies.js);\n\n return {background: {service_worker: js}};\n }\n }\n\n protected buildContentScripts(): Partial<ManifestV3> | undefined {\n if (this.contentScripts.size > 0) {\n const contentScripts: ManifestV3['content_scripts'] = Array.from(this.contentScripts, ([_, contentScript]) => ({\n matches: contentScript.matches,\n exclude_matches: contentScript.excludeMatches,\n all_frames: contentScript.allFrames,\n run_at: contentScript.runAt,\n exclude_globs: contentScript.excludeGlobs,\n include_globs: contentScript.includeGlobs,\n world: contentScript.world,\n }));\n\n return {content_scripts: contentScripts};\n }\n }\n}","import {ManifestBuilder, ManifestMapping, ManifestVersion} from \"@typing/manifest\";\nimport ManifestV2 from './ManifestV2';\nimport ManifestV3 from './ManifestV3';\n\nimport {Browser} from \"@typing/config\";\n\nexport default <T extends ManifestVersion>(browser: Browser, manifestVersion: T): ManifestBuilder<ManifestMapping[T]> => {\n if (manifestVersion === 2) {\n return new ManifestV2(browser);\n }\n\n return new ManifestV3(browser);\n}","import webpack, {Compilation, Compiler} from 'webpack';\nimport {ManifestBuilder, ManifestDependencies, ManifestDependenciesMap} from \"@typing/manifest\";\n\nclass ManifestPlugin {\n constructor(private readonly manifest: ManifestBuilder) {\n }\n\n apply(compiler: Compiler): void {\n compiler.hooks.compilation.tap('ManifestPlugin', (compilation) => {\n compilation.hooks.processAssets.tap(\n {\n name: 'ManifestPlugin',\n stage: Compilation.PROCESS_ASSETS_STAGE_ADDITIONS\n },\n () => {\n const entryDependencies: ManifestDependenciesMap = new Map();\n\n compilation.entrypoints.forEach((entryPoint, entryName) => {\n const dependencies: ManifestDependencies = {\n assets: new Set(),\n css: new Set(),\n js: new Set(),\n };\n\n const files = entryPoint.getFiles();\n\n files.forEach(fileName => {\n if (fileName.endsWith('.js')) {\n dependencies.js.add(fileName);\n } else if (fileName.endsWith('.css')) {\n dependencies.css.add(fileName);\n }\n });\n\n const chunks = entryPoint.chunks;\n\n chunks.forEach(chunk => {\n chunk.files.forEach(fileName => {\n if (this.isAsset(fileName)) {\n dependencies.assets.add(fileName);\n }\n });\n\n const auxiliaryFiles = chunk.auxiliaryFiles || [];\n auxiliaryFiles.forEach(fileName => {\n if (this.isAsset(fileName)) {\n dependencies.assets.add(fileName);\n }\n });\n });\n\n entryDependencies.set(entryName, dependencies);\n });\n\n const manifest = this.manifest.setDependencies(entryDependencies).get();\n const json = JSON.stringify(manifest, null, 2);\n\n compilation.emitAsset(\n 'manifest.json',\n new webpack.sources.RawSource(json)\n );\n }\n );\n });\n }\n\n private isAsset(file: string): boolean {\n return /\\.(png|jpg|jpeg|gif|svg|woff|woff2|ttf|eot)$/.test(file);\n }\n}\n\nexport default ManifestPlugin;\n","import {Configuration, WebpackPluginInstance} from \"webpack\";\nimport path from \"path\";\n\nimport TsconfigPathsPlugin from \"tsconfig-paths-webpack-plugin\";\nimport MiniCssExtractPlugin from \"mini-css-extract-plugin\";\nimport VirtualModulesPlugin from \"webpack-virtual-modules\";\n\nimport manifestFactory from \"../builders/manifest\";\n\nimport {getOutputPath, getRootPath} from \"./path\";\nimport {processPluginHandler} from \"../utils/plugin\";\n\nimport ManifestPlugin from \"../webpack/plugins/ManifestPlugin\";\nimport WatchPlugin from \"../webpack/plugins/WatchPlugin\";\nimport mergeWebpack from \"../webpack/merge\";\n\nimport {Command, Mode, ReadonlyConfig} from \"@typing/config\";\n\n\nconst getConfigFromPlugins = async (webpack: Configuration, config: ReadonlyConfig): Promise<Configuration> => {\n let mergedConfig: Configuration = {};\n\n for await (const {result: pluginConfig} of processPluginHandler(config, 'webpack', {webpack, config})) {\n mergedConfig = mergeWebpack(mergedConfig, pluginConfig);\n }\n\n return mergedConfig;\n}\n\nconst getConfigForManifest = async (config: ReadonlyConfig): Promise<Configuration> => {\n const manifest = manifestFactory(config.browser, config.manifestVersion);\n\n const update = async () => await Array.fromAsync(processPluginHandler(config, 'manifest', {manifest, config}))\n\n await update();\n\n const plugins: WebpackPluginInstance[] = [];\n\n if (config.mode === Mode.Development) {\n plugins.push(new WatchPlugin({\n key: 'manifest',\n callback: async () => {\n await update();\n }\n }));\n }\n\n plugins.push(new ManifestPlugin(manifest));\n\n return {plugins};\n}\n\nexport default async (command: Command, config: ReadonlyConfig): Promise<Configuration> => {\n let webpack: Configuration = {\n mode: config.mode,\n cache: false,\n output: {\n path: getRootPath(getOutputPath(config)),\n filename: path.join(config.jsDir, '[name].js'),\n assetModuleFilename: path.join(config.assetsDir, '[name]-[hash:4][ext]'),\n },\n resolve: {\n extensions: [\".ts\", \".tsx\", \".js\", \".scss\"],\n plugins: [new TsconfigPathsPlugin()],\n },\n module: {\n rules: [\n {\n test: /\\.tsx?$/,\n use: \"ts-loader\",\n exclude: /node_modules/,\n },\n {\n test: /\\.(scss|css)$/,\n use: [\n MiniCssExtractPlugin.loader,\n {\n loader: \"css-loader\",\n options: {\n modules: {\n localIdentName: \"[local]\"\n },\n }\n },\n {\n loader: \"sass-loader\",\n options: {\n implementation: import(\"sass\"),\n },\n },\n ],\n },\n {\n test: /\\.(png|apng|jpe?g|gif|webp|svg])$/i,\n type: \"asset/resource\",\n },\n ],\n }\n }\n\n webpack = mergeWebpack(\n webpack,\n await getConfigFromPlugins(webpack, config),\n await getConfigForManifest(config),\n );\n\n if (command == Command.Watch) {\n webpack = mergeWebpack(webpack, {\n devtool: 'inline-source-map',\n });\n }\n\n return webpack;\n}","import webpack from 'webpack';\n\nimport {build, watch} from \"./command\";\n\nimport configResolver from \"../../resolvers/config\";\nimport webpackResolver from \"../../resolvers/webpack\";\n\nimport {Command, OptionalConfig} from \"@typing/config\";\n\nexport default async (command: Command, config: OptionalConfig): Promise<void> => {\n const resolverConfig = await configResolver(config);\n const webpackConfig = await webpackResolver(command, resolverConfig);\n\n const compiler = webpack(webpackConfig);\n\n switch (command) {\n case Command.Build:\n build(compiler);\n break;\n\n case Command.Watch:\n watch(compiler);\n break;\n\n default:\n console.error('Unknown command');\n process.exit(1);\n }\n}","{\n \"name\": \"adnbn\",\n \"version\": \"0.0.17\",\n \"description\": \"Cross browser web extension framework with shared code base\",\n \"homepage\": \"https://github.com/addonbone/addonbone\",\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git+https://github.com/addonbone/addonbone.git\"\n },\n \"keywords\": [\n \"addon\",\n \"extension\",\n \"chrome\",\n \"firefox\",\n \"edge\",\n \"opera\",\n \"safari\"\n ],\n \"author\": \"AddonBone\",\n \"license\": \"MIT\",\n \"bugs\": {\n \"url\": \"https://github.com/addonbone/addonbone/issues\"\n },\n \"exports\": {\n \".\": {\n \"types\": \"./dist/index.d.ts\",\n \"import\": \"./dist/index.js\",\n \"require\": \"./dist/index.cjs\"\n }\n },\n \"main\": \"./dist/index.js\",\n \"module\": \"./dist/index.js\",\n \"types\": \"./dist/index.d.ts\",\n \"files\": [\n \"bin\",\n \"dist\"\n ],\n \"bin\": {\n \"adnbn\": \"bin/adnbn.js\"\n },\n \"scripts\": {\n \"adnbn\": \"tsx ./src/cli/index.ts\",\n \"build\": \"tsup\"\n },\n \"devDependencies\": {\n \"@types/generate-json-webpack-plugin\": \"^0.3.7\",\n \"@types/lodash\": \"^4.17.14\",\n \"@types/node\": \"^22.13.1\",\n \"dotenv\": \"^16.4.7\",\n \"esbuild-plugin-raw\": \"^0.1.8\",\n \"fs-extra\": \"^11.3.0\",\n \"ts-node\": \"^10.9.2\",\n \"tsup\": \"^8.3.6\",\n \"tsx\": \"^4.19.2\"\n },\n \"dependencies\": {\n \"@babel/parser\": \"^7.26.9\",\n \"@babel/traverse\": \"^7.26.9\",\n \"@types/chrome\": \"^0.0.299\",\n \"adnbn-plugin-test\": \"^1.0.3\",\n \"c12\": \"^2.0.1\",\n \"cac\": \"^6.7.14\",\n \"css-loader\": \"^7.1.2\",\n \"file-loader\": \"^6.2.0\",\n \"generate-json-webpack-plugin\": \"^2.0.0\",\n \"lodash\": \"^4.17.21\",\n \"mini-css-extract-plugin\": \"^2.9.2\",\n \"sass\": \"^1.83.4\",\n \"sass-loader\": \"^16.0.4\",\n \"ts-loader\": \"^9.5.2\",\n \"tsconfig-paths-webpack-plugin\": \"^4.2.0\",\n \"typescript\": \"^5.7.3\",\n \"utility-types\": \"^3.11.0\",\n \"webpack\": \"^5.97.1\",\n \"webpack-cli\": \"^6.0.1\",\n \"webpack-virtual-modules\": \"^0.6.2\"\n }\n}\n","import cac from 'cac';\n\nimport app from \"./builders/app\";\n\nimport {Browser, Command} from \"@typing/config\";\n\nimport {version} from '../../package.json';\n\nconst cli = cac('adnbn');\n\ncli.option('--debug', 'Enable debug mode');\n\ncli\n .command('init', 'Initialize a new project')\n .action(() => {\n console.log('init is good in cli');\n });\n\ncli\n .command('watch [root]', 'Start watch mode')\n .option('-m, --mode <mode>', 'Set env mode', {default: 'development'})\n .option('-c, --config <config>', 'Path to config file')\n .option('-a, --app <app>', 'Specify an app to run', {default: 'myapp'})\n .option('-b, --browser <browser>', 'Specify a browser')\n .option('--mv2', 'Target manifest v2')\n .action(async (root, options) => {\n await app(Command.Watch, {\n mode: options.mode,\n debug: options.debug,\n app: options.app,\n browser: options.browser,\n manifestVersion: options.mv2 ? 2 : 3,\n inputDir: root,\n configFile: options.config,\n });\n });\n\ncli\n .command('build [root]', 'Build for production')\n .option('-m, --mode <mode>', 'Set env mode', {default: 'production'})\n .option('-c, --config <config>', 'Path to config file')\n .option('-a, --app <app>', 'Specify an app to run', {default: 'myapp'})\n .option('-b, --browser <browser>', 'Specify a browser', {default: Browser.Chrome})\n .option('--mv2', 'Target manifest v2')\n .option('--analyze', 'Visualize extension bundle')\n .action(async (root, options) => {\n await app(Command.Build, {\n mode: options.mode,\n debug: options.debug,\n app: options.app,\n browser: options.browser,\n manifestVersion: options.mv2 ? 2 : 3,\n inputDir: root,\n configFile: options.config,\n analyze: options.analyze,\n });\n });\n\ncli.version(version);\ncli.help();\ncli.parse();"]}
1
+ {"version":3,"sources":["../../node_modules/dotenv/package.json","../../node_modules/dotenv/lib/main.js","../../node_modules/wildcard/index.js","../../node_modules/webpack-merge/src/merge-with.ts","../../node_modules/kind-of/index.js","../../node_modules/shallow-clone/index.js","../../node_modules/isobject/index.js","../../node_modules/is-plain-object/index.js","../../node_modules/clone-deep/index.js","../../node_modules/flat/index.js","../../node_modules/webpack-merge/src/utils.ts","../../node_modules/webpack-merge/src/join-arrays.ts","../../node_modules/webpack-merge/src/unique.ts","../../node_modules/webpack-merge/src/types.ts","../../node_modules/webpack-merge/src/index.ts","../../src/cli/builders/app/command.ts","../../src/cli/resolvers/config.ts","../../src/core/define.ts","../../src/cli/plugins/dotenv.ts","../../src/cli/webpack/plugins/WatchPlugin.ts","../../src/cli/webpack/merge.ts","../../src/cli/parsers/entrypoint/SourceFile.ts","../../src/cli/parsers/entrypoint/OptionFile.ts","../../src/cli/parsers/entrypoint/index.ts","../../src/cli/resolvers/path.ts","../../src/cli/utils/entrypoint.ts","../../src/cli/utils/plugin.ts","../../src/cli/utils/option.ts","../../src/cli/plugins/background/background.ts","raw-loader:./background.ts?raw","../../src/cli/virtual/index.ts","../../src/cli/plugins/background/index.ts","../../src/cli/builders/manifest/ManifestBase.ts","../../src/cli/builders/manifest/ManifestV2.ts","../../src/cli/builders/manifest/ManifestV3.ts","../../src/cli/builders/manifest/index.ts","../../src/cli/webpack/plugins/ManifestPlugin.ts","../../src/cli/resolvers/webpack.ts","../../src/cli/builders/app/index.ts","../../package.json","../../src/cli/index.ts"],"names":["fs","path","version","target","result","_a","_b","key","CustomizeRule","mergeWithCustomize","ret","k","v","webpack","compiler","ts","_c","isExportAssignment","isCallExpression","isIdentifier","isObjectLiteralExpression","forEachChild","readdirSync","statSync","_","persistent","background_default","m","VirtualModulesPlugin","backgroundFiles","backgroundPersistent","existsSync","loadConfig","dotenv","Compilation","TsconfigPathsPlugin","MiniCssExtractPlugin","cac"],"mappings":"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","file":"index.cjs","sourcesContent":["{\n \"name\": \"dotenv\",\n \"version\": \"16.4.7\",\n \"description\": \"Loads environment variables from .env file\",\n \"main\": \"lib/main.js\",\n \"types\": \"lib/main.d.ts\",\n \"exports\": {\n \".\": {\n \"types\": \"./lib/main.d.ts\",\n \"require\": \"./lib/main.js\",\n \"default\": \"./lib/main.js\"\n },\n \"./config\": \"./config.js\",\n \"./config.js\": \"./config.js\",\n \"./lib/env-options\": \"./lib/env-options.js\",\n \"./lib/env-options.js\": \"./lib/env-options.js\",\n \"./lib/cli-options\": \"./lib/cli-options.js\",\n \"./lib/cli-options.js\": \"./lib/cli-options.js\",\n \"./package.json\": \"./package.json\"\n },\n \"scripts\": {\n \"dts-check\": \"tsc --project tests/types/tsconfig.json\",\n \"lint\": \"standard\",\n \"pretest\": \"npm run lint && npm run dts-check\",\n \"test\": \"tap run --allow-empty-coverage --disable-coverage --timeout=60000\",\n \"test:coverage\": \"tap run --show-full-coverage --timeout=60000 --coverage-report=lcov\",\n \"prerelease\": \"npm test\",\n \"release\": \"standard-version\"\n },\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git://github.com/motdotla/dotenv.git\"\n },\n \"funding\": \"https://dotenvx.com\",\n \"keywords\": [\n \"dotenv\",\n \"env\",\n \".env\",\n \"environment\",\n \"variables\",\n \"config\",\n \"settings\"\n ],\n \"readmeFilename\": \"README.md\",\n \"license\": \"BSD-2-Clause\",\n \"devDependencies\": {\n \"@types/node\": \"^18.11.3\",\n \"decache\": \"^4.6.2\",\n \"sinon\": \"^14.0.1\",\n \"standard\": \"^17.0.0\",\n \"standard-version\": \"^9.5.0\",\n \"tap\": \"^19.2.0\",\n \"typescript\": \"^4.8.4\"\n },\n \"engines\": {\n \"node\": \">=12\"\n },\n \"browser\": {\n \"fs\": false\n }\n}\n","const fs = require('fs')\nconst path = require('path')\nconst os = require('os')\nconst crypto = require('crypto')\nconst packageJson = require('../package.json')\n\nconst version = packageJson.version\n\nconst LINE = /(?:^|^)\\s*(?:export\\s+)?([\\w.-]+)(?:\\s*=\\s*?|:\\s+?)(\\s*'(?:\\\\'|[^'])*'|\\s*\"(?:\\\\\"|[^\"])*\"|\\s*`(?:\\\\`|[^`])*`|[^#\\r\\n]+)?\\s*(?:#.*)?(?:$|$)/mg\n\n// Parse src into an Object\nfunction parse (src) {\n const obj = {}\n\n // Convert buffer to string\n let lines = src.toString()\n\n // Convert line breaks to same format\n lines = lines.replace(/\\r\\n?/mg, '\\n')\n\n let match\n while ((match = LINE.exec(lines)) != null) {\n const key = match[1]\n\n // Default undefined or null to empty string\n let value = (match[2] || '')\n\n // Remove whitespace\n value = value.trim()\n\n // Check if double quoted\n const maybeQuote = value[0]\n\n // Remove surrounding quotes\n value = value.replace(/^(['\"`])([\\s\\S]*)\\1$/mg, '$2')\n\n // Expand newlines if double quoted\n if (maybeQuote === '\"') {\n value = value.replace(/\\\\n/g, '\\n')\n value = value.replace(/\\\\r/g, '\\r')\n }\n\n // Add to object\n obj[key] = value\n }\n\n return obj\n}\n\nfunction _parseVault (options) {\n const vaultPath = _vaultPath(options)\n\n // Parse .env.vault\n const result = DotenvModule.configDotenv({ path: vaultPath })\n if (!result.parsed) {\n const err = new Error(`MISSING_DATA: Cannot parse ${vaultPath} for an unknown reason`)\n err.code = 'MISSING_DATA'\n throw err\n }\n\n // handle scenario for comma separated keys - for use with key rotation\n // example: DOTENV_KEY=\"dotenv://:key_1234@dotenvx.com/vault/.env.vault?environment=prod,dotenv://:key_7890@dotenvx.com/vault/.env.vault?environment=prod\"\n const keys = _dotenvKey(options).split(',')\n const length = keys.length\n\n let decrypted\n for (let i = 0; i < length; i++) {\n try {\n // Get full key\n const key = keys[i].trim()\n\n // Get instructions for decrypt\n const attrs = _instructions(result, key)\n\n // Decrypt\n decrypted = DotenvModule.decrypt(attrs.ciphertext, attrs.key)\n\n break\n } catch (error) {\n // last key\n if (i + 1 >= length) {\n throw error\n }\n // try next key\n }\n }\n\n // Parse decrypted .env string\n return DotenvModule.parse(decrypted)\n}\n\nfunction _log (message) {\n console.log(`[dotenv@${version}][INFO] ${message}`)\n}\n\nfunction _warn (message) {\n console.log(`[dotenv@${version}][WARN] ${message}`)\n}\n\nfunction _debug (message) {\n console.log(`[dotenv@${version}][DEBUG] ${message}`)\n}\n\nfunction _dotenvKey (options) {\n // prioritize developer directly setting options.DOTENV_KEY\n if (options && options.DOTENV_KEY && options.DOTENV_KEY.length > 0) {\n return options.DOTENV_KEY\n }\n\n // secondary infra already contains a DOTENV_KEY environment variable\n if (process.env.DOTENV_KEY && process.env.DOTENV_KEY.length > 0) {\n return process.env.DOTENV_KEY\n }\n\n // fallback to empty string\n return ''\n}\n\nfunction _instructions (result, dotenvKey) {\n // Parse DOTENV_KEY. Format is a URI\n let uri\n try {\n uri = new URL(dotenvKey)\n } catch (error) {\n if (error.code === 'ERR_INVALID_URL') {\n const err = new Error('INVALID_DOTENV_KEY: Wrong format. Must be in valid uri format like dotenv://:key_1234@dotenvx.com/vault/.env.vault?environment=development')\n err.code = 'INVALID_DOTENV_KEY'\n throw err\n }\n\n throw error\n }\n\n // Get decrypt key\n const key = uri.password\n if (!key) {\n const err = new Error('INVALID_DOTENV_KEY: Missing key part')\n err.code = 'INVALID_DOTENV_KEY'\n throw err\n }\n\n // Get environment\n const environment = uri.searchParams.get('environment')\n if (!environment) {\n const err = new Error('INVALID_DOTENV_KEY: Missing environment part')\n err.code = 'INVALID_DOTENV_KEY'\n throw err\n }\n\n // Get ciphertext payload\n const environmentKey = `DOTENV_VAULT_${environment.toUpperCase()}`\n const ciphertext = result.parsed[environmentKey] // DOTENV_VAULT_PRODUCTION\n if (!ciphertext) {\n const err = new Error(`NOT_FOUND_DOTENV_ENVIRONMENT: Cannot locate environment ${environmentKey} in your .env.vault file.`)\n err.code = 'NOT_FOUND_DOTENV_ENVIRONMENT'\n throw err\n }\n\n return { ciphertext, key }\n}\n\nfunction _vaultPath (options) {\n let possibleVaultPath = null\n\n if (options && options.path && options.path.length > 0) {\n if (Array.isArray(options.path)) {\n for (const filepath of options.path) {\n if (fs.existsSync(filepath)) {\n possibleVaultPath = filepath.endsWith('.vault') ? filepath : `${filepath}.vault`\n }\n }\n } else {\n possibleVaultPath = options.path.endsWith('.vault') ? options.path : `${options.path}.vault`\n }\n } else {\n possibleVaultPath = path.resolve(process.cwd(), '.env.vault')\n }\n\n if (fs.existsSync(possibleVaultPath)) {\n return possibleVaultPath\n }\n\n return null\n}\n\nfunction _resolveHome (envPath) {\n return envPath[0] === '~' ? path.join(os.homedir(), envPath.slice(1)) : envPath\n}\n\nfunction _configVault (options) {\n _log('Loading env from encrypted .env.vault')\n\n const parsed = DotenvModule._parseVault(options)\n\n let processEnv = process.env\n if (options && options.processEnv != null) {\n processEnv = options.processEnv\n }\n\n DotenvModule.populate(processEnv, parsed, options)\n\n return { parsed }\n}\n\nfunction configDotenv (options) {\n const dotenvPath = path.resolve(process.cwd(), '.env')\n let encoding = 'utf8'\n const debug = Boolean(options && options.debug)\n\n if (options && options.encoding) {\n encoding = options.encoding\n } else {\n if (debug) {\n _debug('No encoding is specified. UTF-8 is used by default')\n }\n }\n\n let optionPaths = [dotenvPath] // default, look for .env\n if (options && options.path) {\n if (!Array.isArray(options.path)) {\n optionPaths = [_resolveHome(options.path)]\n } else {\n optionPaths = [] // reset default\n for (const filepath of options.path) {\n optionPaths.push(_resolveHome(filepath))\n }\n }\n }\n\n // Build the parsed data in a temporary object (because we need to return it). Once we have the final\n // parsed data, we will combine it with process.env (or options.processEnv if provided).\n let lastError\n const parsedAll = {}\n for (const path of optionPaths) {\n try {\n // Specifying an encoding returns a string instead of a buffer\n const parsed = DotenvModule.parse(fs.readFileSync(path, { encoding }))\n\n DotenvModule.populate(parsedAll, parsed, options)\n } catch (e) {\n if (debug) {\n _debug(`Failed to load ${path} ${e.message}`)\n }\n lastError = e\n }\n }\n\n let processEnv = process.env\n if (options && options.processEnv != null) {\n processEnv = options.processEnv\n }\n\n DotenvModule.populate(processEnv, parsedAll, options)\n\n if (lastError) {\n return { parsed: parsedAll, error: lastError }\n } else {\n return { parsed: parsedAll }\n }\n}\n\n// Populates process.env from .env file\nfunction config (options) {\n // fallback to original dotenv if DOTENV_KEY is not set\n if (_dotenvKey(options).length === 0) {\n return DotenvModule.configDotenv(options)\n }\n\n const vaultPath = _vaultPath(options)\n\n // dotenvKey exists but .env.vault file does not exist\n if (!vaultPath) {\n _warn(`You set DOTENV_KEY but you are missing a .env.vault file at ${vaultPath}. Did you forget to build it?`)\n\n return DotenvModule.configDotenv(options)\n }\n\n return DotenvModule._configVault(options)\n}\n\nfunction decrypt (encrypted, keyStr) {\n const key = Buffer.from(keyStr.slice(-64), 'hex')\n let ciphertext = Buffer.from(encrypted, 'base64')\n\n const nonce = ciphertext.subarray(0, 12)\n const authTag = ciphertext.subarray(-16)\n ciphertext = ciphertext.subarray(12, -16)\n\n try {\n const aesgcm = crypto.createDecipheriv('aes-256-gcm', key, nonce)\n aesgcm.setAuthTag(authTag)\n return `${aesgcm.update(ciphertext)}${aesgcm.final()}`\n } catch (error) {\n const isRange = error instanceof RangeError\n const invalidKeyLength = error.message === 'Invalid key length'\n const decryptionFailed = error.message === 'Unsupported state or unable to authenticate data'\n\n if (isRange || invalidKeyLength) {\n const err = new Error('INVALID_DOTENV_KEY: It must be 64 characters long (or more)')\n err.code = 'INVALID_DOTENV_KEY'\n throw err\n } else if (decryptionFailed) {\n const err = new Error('DECRYPTION_FAILED: Please check your DOTENV_KEY')\n err.code = 'DECRYPTION_FAILED'\n throw err\n } else {\n throw error\n }\n }\n}\n\n// Populate process.env with parsed values\nfunction populate (processEnv, parsed, options = {}) {\n const debug = Boolean(options && options.debug)\n const override = Boolean(options && options.override)\n\n if (typeof parsed !== 'object') {\n const err = new Error('OBJECT_REQUIRED: Please check the processEnv argument being passed to populate')\n err.code = 'OBJECT_REQUIRED'\n throw err\n }\n\n // Set process.env\n for (const key of Object.keys(parsed)) {\n if (Object.prototype.hasOwnProperty.call(processEnv, key)) {\n if (override === true) {\n processEnv[key] = parsed[key]\n }\n\n if (debug) {\n if (override === true) {\n _debug(`\"${key}\" is already defined and WAS overwritten`)\n } else {\n _debug(`\"${key}\" is already defined and was NOT overwritten`)\n }\n }\n } else {\n processEnv[key] = parsed[key]\n }\n }\n}\n\nconst DotenvModule = {\n configDotenv,\n _configVault,\n _parseVault,\n config,\n decrypt,\n parse,\n populate\n}\n\nmodule.exports.configDotenv = DotenvModule.configDotenv\nmodule.exports._configVault = DotenvModule._configVault\nmodule.exports._parseVault = DotenvModule._parseVault\nmodule.exports.config = DotenvModule.config\nmodule.exports.decrypt = DotenvModule.decrypt\nmodule.exports.parse = DotenvModule.parse\nmodule.exports.populate = DotenvModule.populate\n\nmodule.exports = DotenvModule\n","/* jshint node: true */\n'use strict';\n\nvar REGEXP_PARTS = /(\\*|\\?)/g;\n\n/**\n # wildcard\n\n Very simple wildcard matching, which is designed to provide the same\n functionality that is found in the\n [eve](https://github.com/adobe-webplatform/eve) eventing library.\n\n ## Usage\n\n It works with strings:\n\n <<< examples/strings.js\n\n Arrays:\n\n <<< examples/arrays.js\n\n Objects (matching against keys):\n\n <<< examples/objects.js\n\n ## Alternative Implementations\n\n - <https://github.com/isaacs/node-glob>\n\n Great for full file-based wildcard matching.\n\n - <https://github.com/sindresorhus/matcher>\n\n A well cared for and loved JS wildcard matcher.\n**/\n\nfunction WildcardMatcher(text, separator) {\n this.text = text = text || '';\n this.hasWild = text.indexOf('*') >= 0;\n this.separator = separator;\n this.parts = text.split(separator).map(this.classifyPart.bind(this));\n}\n\nWildcardMatcher.prototype.match = function(input) {\n var matches = true;\n var parts = this.parts;\n var ii;\n var partsCount = parts.length;\n var testParts;\n\n if (typeof input == 'string' || input instanceof String) {\n if (!this.hasWild && this.text != input) {\n matches = false;\n } else {\n testParts = (input || '').split(this.separator);\n for (ii = 0; matches && ii < partsCount; ii++) {\n if (parts[ii] === '*') {\n continue;\n } else if (ii < testParts.length) {\n matches = parts[ii] instanceof RegExp\n ? parts[ii].test(testParts[ii])\n : parts[ii] === testParts[ii];\n } else {\n matches = false;\n }\n }\n\n // If matches, then return the component parts\n matches = matches && testParts;\n }\n }\n else if (typeof input.splice == 'function') {\n matches = [];\n\n for (ii = input.length; ii--; ) {\n if (this.match(input[ii])) {\n matches[matches.length] = input[ii];\n }\n }\n }\n else if (typeof input == 'object') {\n matches = {};\n\n for (var key in input) {\n if (this.match(key)) {\n matches[key] = input[key];\n }\n }\n }\n\n return matches;\n};\n\nWildcardMatcher.prototype.classifyPart = function(part) {\n // in the event that we have been provided a part that is not just a wildcard\n // then turn this into a regular expression for matching purposes\n if (part === '*') {\n return part;\n } else if (part.indexOf('*') >= 0 || part.indexOf('?') >= 0) {\n return new RegExp(part.replace(REGEXP_PARTS, '\\.$1'));\n }\n\n return part;\n};\n\nmodule.exports = function(text, test, separator) {\n var matcher = new WildcardMatcher(text, separator || /[\\/\\.]/);\n if (typeof test != 'undefined') {\n return matcher.match(test);\n }\n\n return matcher;\n};\n",null,"var toString = Object.prototype.toString;\n\nmodule.exports = function kindOf(val) {\n if (val === void 0) return 'undefined';\n if (val === null) return 'null';\n\n var type = typeof val;\n if (type === 'boolean') return 'boolean';\n if (type === 'string') return 'string';\n if (type === 'number') return 'number';\n if (type === 'symbol') return 'symbol';\n if (type === 'function') {\n return isGeneratorFn(val) ? 'generatorfunction' : 'function';\n }\n\n if (isArray(val)) return 'array';\n if (isBuffer(val)) return 'buffer';\n if (isArguments(val)) return 'arguments';\n if (isDate(val)) return 'date';\n if (isError(val)) return 'error';\n if (isRegexp(val)) return 'regexp';\n\n switch (ctorName(val)) {\n case 'Symbol': return 'symbol';\n case 'Promise': return 'promise';\n\n // Set, Map, WeakSet, WeakMap\n case 'WeakMap': return 'weakmap';\n case 'WeakSet': return 'weakset';\n case 'Map': return 'map';\n case 'Set': return 'set';\n\n // 8-bit typed arrays\n case 'Int8Array': return 'int8array';\n case 'Uint8Array': return 'uint8array';\n case 'Uint8ClampedArray': return 'uint8clampedarray';\n\n // 16-bit typed arrays\n case 'Int16Array': return 'int16array';\n case 'Uint16Array': return 'uint16array';\n\n // 32-bit typed arrays\n case 'Int32Array': return 'int32array';\n case 'Uint32Array': return 'uint32array';\n case 'Float32Array': return 'float32array';\n case 'Float64Array': return 'float64array';\n }\n\n if (isGeneratorObj(val)) {\n return 'generator';\n }\n\n // Non-plain objects\n type = toString.call(val);\n switch (type) {\n case '[object Object]': return 'object';\n // iterators\n case '[object Map Iterator]': return 'mapiterator';\n case '[object Set Iterator]': return 'setiterator';\n case '[object String Iterator]': return 'stringiterator';\n case '[object Array Iterator]': return 'arrayiterator';\n }\n\n // other\n return type.slice(8, -1).toLowerCase().replace(/\\s/g, '');\n};\n\nfunction ctorName(val) {\n return typeof val.constructor === 'function' ? val.constructor.name : null;\n}\n\nfunction isArray(val) {\n if (Array.isArray) return Array.isArray(val);\n return val instanceof Array;\n}\n\nfunction isError(val) {\n return val instanceof Error || (typeof val.message === 'string' && val.constructor && typeof val.constructor.stackTraceLimit === 'number');\n}\n\nfunction isDate(val) {\n if (val instanceof Date) return true;\n return typeof val.toDateString === 'function'\n && typeof val.getDate === 'function'\n && typeof val.setDate === 'function';\n}\n\nfunction isRegexp(val) {\n if (val instanceof RegExp) return true;\n return typeof val.flags === 'string'\n && typeof val.ignoreCase === 'boolean'\n && typeof val.multiline === 'boolean'\n && typeof val.global === 'boolean';\n}\n\nfunction isGeneratorFn(name, val) {\n return ctorName(name) === 'GeneratorFunction';\n}\n\nfunction isGeneratorObj(val) {\n return typeof val.throw === 'function'\n && typeof val.return === 'function'\n && typeof val.next === 'function';\n}\n\nfunction isArguments(val) {\n try {\n if (typeof val.length === 'number' && typeof val.callee === 'function') {\n return true;\n }\n } catch (err) {\n if (err.message.indexOf('callee') !== -1) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * If you need to support Safari 5-7 (8-10 yr-old browser),\n * take a look at https://github.com/feross/is-buffer\n */\n\nfunction isBuffer(val) {\n if (val.constructor && typeof val.constructor.isBuffer === 'function') {\n return val.constructor.isBuffer(val);\n }\n return false;\n}\n","/*!\n * shallow-clone <https://github.com/jonschlinkert/shallow-clone>\n *\n * Copyright (c) 2015-present, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n'use strict';\n\nconst valueOf = Symbol.prototype.valueOf;\nconst typeOf = require('kind-of');\n\nfunction clone(val, deep) {\n switch (typeOf(val)) {\n case 'array':\n return val.slice();\n case 'object':\n return Object.assign({}, val);\n case 'date':\n return new val.constructor(Number(val));\n case 'map':\n return new Map(val);\n case 'set':\n return new Set(val);\n case 'buffer':\n return cloneBuffer(val);\n case 'symbol':\n return cloneSymbol(val);\n case 'arraybuffer':\n return cloneArrayBuffer(val);\n case 'float32array':\n case 'float64array':\n case 'int16array':\n case 'int32array':\n case 'int8array':\n case 'uint16array':\n case 'uint32array':\n case 'uint8clampedarray':\n case 'uint8array':\n return cloneTypedArray(val);\n case 'regexp':\n return cloneRegExp(val);\n case 'error':\n return Object.create(val);\n default: {\n return val;\n }\n }\n}\n\nfunction cloneRegExp(val) {\n const flags = val.flags !== void 0 ? val.flags : (/\\w+$/.exec(val) || void 0);\n const re = new val.constructor(val.source, flags);\n re.lastIndex = val.lastIndex;\n return re;\n}\n\nfunction cloneArrayBuffer(val) {\n const res = new val.constructor(val.byteLength);\n new Uint8Array(res).set(new Uint8Array(val));\n return res;\n}\n\nfunction cloneTypedArray(val, deep) {\n return new val.constructor(val.buffer, val.byteOffset, val.length);\n}\n\nfunction cloneBuffer(val) {\n const len = val.length;\n const buf = Buffer.allocUnsafe ? Buffer.allocUnsafe(len) : Buffer.from(len);\n val.copy(buf);\n return buf;\n}\n\nfunction cloneSymbol(val) {\n return valueOf ? Object(valueOf.call(val)) : {};\n}\n\n/**\n * Expose `clone`\n */\n\nmodule.exports = clone;\n","/*!\n * isobject <https://github.com/jonschlinkert/isobject>\n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n'use strict';\n\nmodule.exports = function isObject(val) {\n return val != null && typeof val === 'object' && Array.isArray(val) === false;\n};\n","/*!\n * is-plain-object <https://github.com/jonschlinkert/is-plain-object>\n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n'use strict';\n\nvar isObject = require('isobject');\n\nfunction isObjectObject(o) {\n return isObject(o) === true\n && Object.prototype.toString.call(o) === '[object Object]';\n}\n\nmodule.exports = function isPlainObject(o) {\n var ctor,prot;\n\n if (isObjectObject(o) === false) return false;\n\n // If has modified constructor\n ctor = o.constructor;\n if (typeof ctor !== 'function') return false;\n\n // If has modified prototype\n prot = ctor.prototype;\n if (isObjectObject(prot) === false) return false;\n\n // If constructor does not have an Object-specific method\n if (prot.hasOwnProperty('isPrototypeOf') === false) {\n return false;\n }\n\n // Most likely a plain Object\n return true;\n};\n","'use strict';\n\n/**\n * Module dependenices\n */\n\nconst clone = require('shallow-clone');\nconst typeOf = require('kind-of');\nconst isPlainObject = require('is-plain-object');\n\nfunction cloneDeep(val, instanceClone) {\n switch (typeOf(val)) {\n case 'object':\n return cloneObjectDeep(val, instanceClone);\n case 'array':\n return cloneArrayDeep(val, instanceClone);\n default: {\n return clone(val);\n }\n }\n}\n\nfunction cloneObjectDeep(val, instanceClone) {\n if (typeof instanceClone === 'function') {\n return instanceClone(val);\n }\n if (instanceClone || isPlainObject(val)) {\n const res = new val.constructor();\n for (let key in val) {\n res[key] = cloneDeep(val[key], instanceClone);\n }\n return res;\n }\n return val;\n}\n\nfunction cloneArrayDeep(val, instanceClone) {\n const res = new val.constructor(val.length);\n for (let i = 0; i < val.length; i++) {\n res[i] = cloneDeep(val[i], instanceClone);\n }\n return res;\n}\n\n/**\n * Expose `cloneDeep`\n */\n\nmodule.exports = cloneDeep;\n","module.exports = flatten\nflatten.flatten = flatten\nflatten.unflatten = unflatten\n\nfunction isBuffer (obj) {\n return obj &&\n obj.constructor &&\n (typeof obj.constructor.isBuffer === 'function') &&\n obj.constructor.isBuffer(obj)\n}\n\nfunction keyIdentity (key) {\n return key\n}\n\nfunction flatten (target, opts) {\n opts = opts || {}\n\n const delimiter = opts.delimiter || '.'\n const maxDepth = opts.maxDepth\n const transformKey = opts.transformKey || keyIdentity\n const output = {}\n\n function step (object, prev, currentDepth) {\n currentDepth = currentDepth || 1\n Object.keys(object).forEach(function (key) {\n const value = object[key]\n const isarray = opts.safe && Array.isArray(value)\n const type = Object.prototype.toString.call(value)\n const isbuffer = isBuffer(value)\n const isobject = (\n type === '[object Object]' ||\n type === '[object Array]'\n )\n\n const newKey = prev\n ? prev + delimiter + transformKey(key)\n : transformKey(key)\n\n if (!isarray && !isbuffer && isobject && Object.keys(value).length &&\n (!opts.maxDepth || currentDepth < maxDepth)) {\n return step(value, newKey, currentDepth + 1)\n }\n\n output[newKey] = value\n })\n }\n\n step(target)\n\n return output\n}\n\nfunction unflatten (target, opts) {\n opts = opts || {}\n\n const delimiter = opts.delimiter || '.'\n const overwrite = opts.overwrite || false\n const transformKey = opts.transformKey || keyIdentity\n const result = {}\n\n const isbuffer = isBuffer(target)\n if (isbuffer || Object.prototype.toString.call(target) !== '[object Object]') {\n return target\n }\n\n // safely ensure that the key is\n // an integer.\n function getkey (key) {\n const parsedKey = Number(key)\n\n return (\n isNaN(parsedKey) ||\n key.indexOf('.') !== -1 ||\n opts.object\n ) ? key\n : parsedKey\n }\n\n function addKeys (keyPrefix, recipient, target) {\n return Object.keys(target).reduce(function (result, key) {\n result[keyPrefix + delimiter + key] = target[key]\n\n return result\n }, recipient)\n }\n\n function isEmpty (val) {\n const type = Object.prototype.toString.call(val)\n const isArray = type === '[object Array]'\n const isObject = type === '[object Object]'\n\n if (!val) {\n return true\n } else if (isArray) {\n return !val.length\n } else if (isObject) {\n return !Object.keys(val).length\n }\n }\n\n target = Object.keys(target).reduce(function (result, key) {\n const type = Object.prototype.toString.call(target[key])\n const isObject = (type === '[object Object]' || type === '[object Array]')\n if (!isObject || isEmpty(target[key])) {\n result[key] = target[key]\n return result\n } else {\n return addKeys(\n key,\n result,\n flatten(target[key], opts)\n )\n }\n }, {})\n\n Object.keys(target).forEach(function (key) {\n const split = key.split(delimiter).map(transformKey)\n let key1 = getkey(split.shift())\n let key2 = getkey(split[0])\n let recipient = result\n\n while (key2 !== undefined) {\n if (key1 === '__proto__') {\n return\n }\n\n const type = Object.prototype.toString.call(recipient[key1])\n const isobject = (\n type === '[object Object]' ||\n type === '[object Array]'\n )\n\n // do not write over falsey, non-undefined values if overwrite is false\n if (!overwrite && !isobject && typeof recipient[key1] !== 'undefined') {\n return\n }\n\n if ((overwrite && !isobject) || (!overwrite && recipient[key1] == null)) {\n recipient[key1] = (\n typeof key2 === 'number' &&\n !opts.object ? [] : {}\n )\n }\n\n recipient = recipient[key1]\n if (split.length > 0) {\n key1 = getkey(split.shift())\n key2 = getkey(split[0])\n }\n }\n\n // unflatten again for 'messy objects'\n recipient[key1] = unflatten(target[key], opts)\n })\n\n return result\n}\n",null,null,null,null,null,"import {Compiler} from \"webpack\";\n\nexport const build = (compiler: Compiler) => {\n compiler.run((err, stats) => {\n if (err) {\n console.error('Webpack compilation error:', err);\n process.exit(1);\n }\n\n if (stats?.hasErrors()) {\n console.error(stats.toString({\n colors: true,\n errors: true\n }));\n\n process.exit(1);\n }\n\n console.log(stats?.toString({colors: true}));\n\n compiler.close((closeErr) => {\n if (closeErr) {\n console.error('Webpack close error:', closeErr);\n process.exit(1);\n }\n });\n });\n};\n\nexport const watch = (compiler: Compiler) => {\n const watching = compiler.watch({\n aggregateTimeout: 300,\n ignored: /node_modules/\n }, (err, stats) => {\n if (err) {\n console.error('Webpack watch error:', err);\n process.exit(1);\n }\n\n if (stats?.hasErrors()) {\n console.error(stats.toString({\n colors: true,\n errors: true\n }));\n\n return;\n }\n\n console.log(stats?.toString({colors: true}));\n });\n\n process.on('SIGINT', () => {\n watching.close(() => {\n console.log('Webpack watch mode stopped');\n process.exit(0);\n });\n });\n}","import path from \"path\";\nimport {existsSync} from \"fs\";\nimport dotenv, {type DotenvParseOutput} from 'dotenv';\nimport {loadConfig} from \"c12\";\n\nimport dotenvPlugin from \"../plugins/dotenv\";\nimport contentPlugin from \"../plugins/content\";\nimport backgroundPlugin from \"../plugins/background\";\n\nimport {getConfigFile, getRootPath} from \"../resolvers/path\";\n\nimport {Browser, Config, Mode, OptionalConfig, ReadonlyConfig, UserConfig,} from \"@typing/config\";\nimport {Plugin} from \"@typing/plugin\";\n\n\nconst getUserConfig = async (config: ReadonlyConfig): Promise<UserConfig> => {\n const configFilePath = getConfigFile(config);\n\n if (existsSync(configFilePath)) {\n const {config: userConfig} = await loadConfig<UserConfig>({\n configFile: configFilePath,\n dotenv: true,\n });\n\n if (config.debug) {\n console.log('Loaded user config:', configFilePath);\n }\n\n return userConfig\n } else if (config.debug) {\n console.warn('Config file not found:', configFilePath);\n }\n\n return {};\n}\n\nconst updateLocalDotenv = (config: ReadonlyConfig): DotenvParseOutput => {\n const {mode, app, browser, manifestVersion} = config;\n\n const localVars: DotenvParseOutput = {\n APP: app,\n BROWSER: browser,\n MODE: mode,\n MANIFEST_VERSION: String(manifestVersion),\n };\n\n Object.assign(process.env, localVars);\n\n return localVars;\n}\n\nconst loadDotenv = (config: ReadonlyConfig): DotenvParseOutput => {\n const {mode, app, browser} = config;\n\n const paths = [\n `.env.${mode}.${app}.${browser}.local`,\n `.env.${mode}.${app}.${browser}`,\n `.env.${app}.${browser}.local`,\n `.env.${app}.${browser}`,\n `.env.${app}`,\n `.env.${mode}.${browser}.local`,\n `.env.${mode}.${browser}`,\n `.env.${browser}.local`,\n `.env.${browser}`,\n `.env.${mode}.local`,\n `.env.${mode}`,\n `.env.local`,\n `.env`,\n ].map((file) => path.join(getRootPath(config.inputDir), file));\n\n const {parsed: fileVars = {}} = dotenv.config({path: paths});\n\n return {...fileVars, ...updateLocalDotenv(config)};\n}\n\nexport default async (config: OptionalConfig): Promise<Config> => {\n let {\n debug = false,\n configFile = 'addonbone.config.ts',\n app = 'myapp',\n browser = Browser.Chrome,\n inputDir = '.',\n outputDir = 'dist',\n srcDir = 'src',\n sharedDir = 'shared',\n appsDir = 'apps',\n jsDir = 'js',\n cssDir = 'css',\n assetsDir = 'assets',\n htmlDir = '.',\n manifestVersion = [Browser.Firefox, Browser.Safari].includes(browser) ? 2 : 3,\n mode = Mode.Development,\n analyze = false,\n plugins = [],\n mergeBackground = false,\n mergeContentScripts = false,\n concatContentScripts = true,\n } = config;\n\n let resolvedConfig: Config = {\n debug,\n mode,\n app,\n browser,\n manifestVersion,\n inputDir,\n outputDir,\n srcDir,\n sharedDir,\n appsDir,\n jsDir,\n cssDir,\n assetsDir,\n htmlDir,\n plugins,\n analyze,\n configFile,\n mergeBackground,\n mergeContentScripts,\n concatContentScripts,\n };\n\n let vars = loadDotenv(resolvedConfig);\n\n const {plugins: userPlugins = [], ...userConfig} = await getUserConfig(resolvedConfig);\n\n resolvedConfig = {...resolvedConfig, ...userConfig};\n\n vars = {...vars, ...loadDotenv(resolvedConfig)};\n\n const corePlugins: Plugin[] = [\n dotenvPlugin({vars}),\n // contentPlugin(),\n backgroundPlugin(),\n ];\n\n return {\n ...resolvedConfig,\n plugins: [\n ...plugins,\n ...userPlugins,\n ...corePlugins,\n ]\n };\n}","import {ConfigDefinition} from \"@typing/config\";\nimport {BackgroundDefinition} from \"@typing/background\";\nimport {ContentScriptDefinition} from \"@typing/content\";\nimport {Plugin, PluginDefinition} from \"@typing/plugin\";\n\nexport function defineConfig(config: ConfigDefinition): ConfigDefinition {\n return config;\n}\n\nexport function definePlugin<T>(plugin: (options?: T) => Plugin): (options?: T) => Plugin;\nexport function definePlugin(plugin: Plugin): Plugin;\n\nexport function definePlugin<T>(plugin: PluginDefinition<T>): PluginDefinition<T> {\n return plugin;\n}\n\nexport function defineBackground(options: BackgroundDefinition): BackgroundDefinition {\n return options;\n}\n\nexport function defineContentScript(options: ContentScriptDefinition): ContentScriptDefinition {\n return options;\n}","import webpack from \"webpack\";\nimport {type DotenvParseOutput} from \"dotenv\";\n\nimport {definePlugin} from \"@core/define\";\n\nexport interface DotenvOptions {\n vars: DotenvParseOutput;\n}\n\nexport default definePlugin<DotenvOptions>((options) => {\n const {vars = {}} = options || {};\n\n return {\n webpack: {\n plugins: [\n new webpack.DefinePlugin({\n 'process.env': JSON.stringify(vars)\n })\n ],\n }\n }\n});","import {Compiler} from 'webpack';\n\ntype EntryMap = Record<string, string | string[]>;\n\nexport interface WatchPluginOptions {\n key?: string;\n entry?: EntryMap;\n callback: (files: ReadonlySet<string>) => void | EntryMap | Promise<void | EntryMap>;\n}\n\nclass WatchPlugin {\n public readonly key: string;\n private entry: EntryMap;\n private readonly callback: WatchPluginOptions['callback'];\n\n constructor({key, entry = {}, callback}: WatchPluginOptions) {\n this.entry = entry;\n this.callback = callback;\n this.key = 'watch-plugin:' + (key || Object.keys(this.entry).join(','));\n }\n\n public apply(compiler: Compiler) {\n compiler.hooks.watchRun.tapAsync('WatchPlugin', async (compiler, callback) => {\n try {\n const {modifiedFiles = new Set} = compiler;\n\n const has = this.files.size === 0 || Array.from(modifiedFiles).some(file => this.files.has(file));\n\n if (has) {\n const entry = await this.callback(modifiedFiles);\n\n if (entry) {\n for (const name in this.entry) {\n delete compiler.options.entry[name];\n }\n\n for (const name in entry) {\n compiler.options.entry[name] = entry[name];\n }\n\n this.entry = entry;\n }\n }\n\n callback();\n } catch (e) {\n callback(e as Error);\n }\n });\n }\n\n protected get files(): Set<string> {\n return new Set(Object.values(this.entry).flatMap(value => Array.isArray(value) ? value : [value]));\n }\n}\n\nexport default WatchPlugin;\n","import {mergeWithCustomize} from \"webpack-merge\";\n\nimport WatchPlugin from \"./plugins/WatchPlugin\";\n\nexport default mergeWithCustomize({\n customizeArray: (a: any[], b: any[], key: string) => {\n if (key === 'plugins') {\n const names = new Set();\n\n return [...a, ...b].filter(plugin => {\n let name: string | undefined = plugin?.constructor?.name;\n\n if (plugin instanceof WatchPlugin) {\n name = plugin.key;\n }\n\n if (names.has(name)) return false;\n names.add(name);\n return true;\n });\n }\n\n if (key === 'resolve.plugins') {\n const names = new Set();\n\n return [...a, ...b].filter(plugin => {\n const name = plugin?.constructor?.name;\n if (names.has(name)) return false;\n names.add(name);\n return true;\n });\n }\n\n if (key === 'module.rules') {\n const tests = new Set();\n\n return [...a, ...b].filter(rule => {\n const test = rule?.test?.toString();\n if (tests.has(test)) return false;\n tests.add(test);\n return true;\n });\n }\n\n return undefined;\n }\n});","import ts from 'typescript';\nimport fs from 'fs';\nimport path from \"path\";\n\nimport {EnumMap, ImportMap, ResolverMap, Variable, VariableMap} from \"./types\";\n\nexport default class EntryFile {\n private sourceFile?: ts.SourceFile;\n\n private variables?: VariableMap;\n\n private imports?: ImportMap;\n\n private enums?: EnumMap;\n\n private resolvers?: ResolverMap;\n\n static make<T extends EntryFile>(this: new (file: string) => T, file: string): T {\n return new this(file);\n }\n\n constructor(protected readonly file: string) {\n }\n\n public getSourceFile(): ts.SourceFile {\n if (this.sourceFile) {\n return this.sourceFile;\n }\n\n const sourceCode = fs.readFileSync(this.file, 'utf8');\n\n return this.sourceFile = ts.createSourceFile(\n this.file,\n sourceCode,\n ts.ScriptTarget.ESNext,\n true\n );\n }\n\n public getImports(): ImportMap {\n if (this.imports) {\n return this.imports;\n }\n\n this.imports = new Map();\n\n const parse = (node: ts.Node) => {\n if (ts.isImportDeclaration(node) && node.moduleSpecifier) {\n const importPath = (node.moduleSpecifier as ts.StringLiteral).text;\n\n if (node.importClause && node.importClause.namedBindings && ts.isNamedImports(node.importClause.namedBindings)) {\n node.importClause.namedBindings.elements.forEach(el => {\n console.log(el.name.text, importPath);\n\n\n this.imports?.set(el.name.text, path.resolve(path.dirname(this.file), importPath + '.ts'));\n });\n }\n }\n\n ts.forEachChild(node, parse);\n }\n\n parse(this.getSourceFile());\n\n return this.imports;\n }\n\n public getEnums(): EnumMap {\n if (this.enums) {\n return this.enums;\n }\n\n this.enums = new Map();\n\n const parse = (node: ts.Node) => {\n if (ts.isEnumDeclaration(node)) {\n const enumName = node.name.text;\n const enumProperties: Map<string, string | number> = new Map();\n\n node.members.forEach(member => {\n const key = member.name.getText();\n const value = member.initializer ? member.initializer.getText().replace(/['\"]/g, '') : key;\n\n enumProperties.set(key, value);\n });\n\n this.enums?.set(enumName, enumProperties);\n }\n\n ts.forEachChild(node, parse);\n }\n\n parse(this.getSourceFile());\n\n return this.enums;\n }\n\n public getVariables(): VariableMap {\n if (this.variables) {\n return this.variables;\n }\n\n this.variables = new Map();\n\n const parse = (node: ts.Node) => {\n if (ts.isVariableStatement(node)) {\n const isExported = node.modifiers?.some(modifier => modifier.kind === ts.SyntaxKind.ExportKeyword);\n\n node.declarationList.declarations.forEach(declaration => {\n if (ts.isIdentifier(declaration.name) && declaration.initializer) {\n const name = declaration.name.text;\n const value = this.parseNode(declaration.initializer);\n\n this.variables?.set(name, {\n name,\n value,\n exported: isExported || false\n });\n }\n });\n }\n\n if (ts.isExportDeclaration(node) && node.exportClause && ts.isNamedExports(node.exportClause)) {\n node.exportClause.elements.forEach(el => {\n const name = el.name.text;\n\n if (this.variables?.has(name)) {\n const variable = this.variables?.get(name) as Variable;\n\n this.variables?.set(name, {\n name,\n value: variable.value,\n exported: true\n });\n }\n });\n }\n\n if (ts.isExportAssignment(node)) {\n const expr = node.expression;\n if (ts.isIdentifier(expr) && this.variables?.has(expr.text)) {\n const variable = this.variables?.get(expr.text) as Variable;\n const name = \"default\";\n\n this.variables?.set(name, {\n name,\n value: variable.value,\n exported: true\n });\n }\n }\n\n ts.forEachChild(node, parse);\n };\n\n parse(this.getSourceFile());\n\n return this.variables;\n }\n\n protected findPropertyAccessValue(property: ts.Node): any {\n if (ts.isPropertyAccessExpression(property)) {\n const objectName = property.expression.getText();\n const propertyName = property.name.getText();\n\n const varItem = this.getVariables().get(objectName);\n\n if (varItem) {\n return varItem.value;\n }\n\n const enumItem = this.getEnums().get(objectName);\n\n if (enumItem) {\n return enumItem.get(propertyName);\n }\n\n const importItem = this.getImports().get(objectName);\n\n if (importItem) {\n console.log('FFF->', importItem, ' -> ', propertyName, '->', objectName);\n\n return EntryFile.make(importItem).findPropertyAccessValue(property);\n }\n\n return `${objectName}.${propertyName}`;\n }\n\n return undefined;\n }\n\n protected parseNode(node?: ts.Node): any {\n if (!node) {\n return undefined;\n }\n\n switch (node.kind) {\n case ts.SyntaxKind.StringLiteral:\n return (node as ts.StringLiteral).text;\n case ts.SyntaxKind.TrueKeyword:\n return true;\n case ts.SyntaxKind.FalseKeyword:\n return false;\n case ts.SyntaxKind.NullKeyword:\n return null;\n case ts.SyntaxKind.NumericLiteral:\n return parseFloat((node as ts.NumericLiteral).text);\n case ts.SyntaxKind.Identifier:\n return this.variables?.get((node as ts.Identifier).text)?.value ?? (node as ts.Identifier).text;\n case ts.SyntaxKind.ArrayLiteralExpression:\n return (node as ts.ArrayLiteralExpression).elements.map(element =>\n this.parseNode(element)\n );\n case ts.SyntaxKind.ObjectLiteralExpression:\n return (node as ts.ObjectLiteralExpression).properties\n .filter(\n (property): property is ts.PropertyAssignment =>\n ts.isPropertyAssignment(property) || ts.isShorthandPropertyAssignment(property)\n )\n .reduce((acc, property) => {\n if (ts.isComputedPropertyName(property.name)) {\n return acc;\n }\n\n const key = (property.name as ts.Identifier | ts.StringLiteral).text;\n let value = this.parseNode(property.initializer);\n\n if (typeof value === 'string' && this.variables?.has(value)) {\n value = this.variables?.get(value)?.value;\n }\n\n acc[key] = value;\n\n return acc;\n }, {} as Record<string, any>);\n case ts.SyntaxKind.PropertyAccessExpression: {\n return this.findPropertyAccessValue(node);\n }\n default:\n return undefined;\n }\n }\n}","import {\n forEachChild,\n isCallExpression,\n isExportAssignment,\n isIdentifier,\n isObjectLiteralExpression,\n Node\n} from 'typescript';\n\nimport SourceFile from \"./SourceFile\";\n\nexport default class<T extends Record<string, unknown>> extends SourceFile {\n protected definition?: string;\n\n protected properties: string[] = [];\n\n public setDefinition(definition: string): this {\n this.definition = definition;\n\n return this;\n }\n\n public setProperties(properties: string[]): this {\n this.properties = properties;\n\n return this;\n }\n\n public getOptions(): T {\n return {...this.getOptionsFromVariables(), ...this.getOptionsFromDefinition()};\n }\n\n protected getOptionsFromVariables(): T {\n return Array.from(this.getVariables().values())\n .filter(({name, exported}) => exported && this.properties.includes(name))\n .reduce((config, {name, value}) => ({...config, [name]: value}), {} as T);\n }\n\n protected getOptionsFromDefinition(): T {\n let options = {} as T;\n\n console.log('EEEEEE', this.getImports());\n\n const parse = (node: Node) => {\n if (isExportAssignment(node)) {\n const expr = node.expression;\n\n if (isCallExpression(expr) && isIdentifier(expr.expression)) {\n const functionName = expr.expression.text;\n\n if (functionName === this.definition && expr.arguments.length > 0) {\n const arg = expr.arguments[0];\n\n if (isObjectLiteralExpression(arg)) {\n options = this.parseNode(arg);\n }\n }\n }\n }\n\n forEachChild(node, parse);\n }\n\n parse(this.getSourceFile());\n\n return options;\n }\n}","import OptionFile from \"./OptionFile\";\n\nimport {BackgroundEntrypointOptions} from \"@typing/background\";\nimport {BaseEntrypointOptions} from \"@typing/base\";\n\nconst commonProperties: Array<keyof BaseEntrypointOptions> = [\n 'includeApp',\n 'excludeApp',\n 'includeBrowser',\n 'excludeBrowser',\n];\n\nexport const getBackgroundOptions = (file: string): BackgroundEntrypointOptions => {\n return OptionFile.make(file)\n .setDefinition('defineBackground')\n .setProperties([...commonProperties, 'persistent'])\n .getOptions();\n}","import path from 'path';\n\nimport {ReadonlyConfig} from \"@typing/config\";\n\nexport const getRootPath = (to: string): string => {\n return path.resolve(process.cwd(), to);\n}\n\nexport const getConfigFile = (config: ReadonlyConfig): string => {\n return path.join(config.inputDir, config.configFile);\n}\n\nexport const getSharedPath = (config: ReadonlyConfig): string => {\n return path.join(config.inputDir, config.srcDir, config.sharedDir);\n}\n\nexport const getAppsPath = (config: ReadonlyConfig): string => {\n return path.join(config.inputDir, config.srcDir, config.appsDir, config.app);\n}\n\nexport const getOutputPath = (config: ReadonlyConfig): string => {\n return path.join(config.outputDir, `${config.app}-${config.browser}-mv${config.manifestVersion}`);\n}\n\n// export const getImportPath = (config: ReadonlyConfig, path: string): string => {\n//\n// }","import {Dirent, readdirSync, statSync} from 'fs';\nimport path from 'path';\n\nconst escapeRegExp = (text: string): string =>\n text.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n\nexport const findEntrypointFiles = (\n directory: string,\n entrypoint: string\n): string[] => {\n const files: string[] = [];\n\n const regex = new RegExp(\n `^(?:.*\\\\.)?${escapeRegExp(entrypoint)}\\\\.(ts|tsx|js)$`\n );\n\n const finder = (dir: string): void => {\n let entries: Dirent[];\n\n try {\n entries = readdirSync(dir, {withFileTypes: true});\n } catch (e) {\n console.log('Error reading entrypoint directory:', dir);\n\n return;\n }\n\n for (const entry of entries) {\n const fullPath = path.join(dir, entry.name);\n\n if (entry.isDirectory()) {\n if (entry.name === entrypoint || entry.name.endsWith(`.${entrypoint}`)) {\n const possibleIndexFiles = ['index.ts', 'index.tsx', 'index.js'];\n\n for (const indexFile of possibleIndexFiles) {\n const indexPath = path.join(fullPath, indexFile);\n\n try {\n const stat = statSync(indexPath);\n\n if (stat.isFile()) {\n files.push(indexPath);\n }\n } catch (e) {\n //console.log('Error reading entrypoint index file:', indexPath);\n }\n }\n }\n\n finder(fullPath);\n } else if (entry.isFile()) {\n if (regex.test(entry.name)) {\n files.push(fullPath);\n }\n }\n }\n };\n\n finder(directory);\n\n return files;\n};\n\nexport const findBackgroundFiles = (directory: string): string[] => {\n return findEntrypointFiles(directory, 'background');\n}\n\nexport const findContentFiles = (directory: string): string[] => {\n return findEntrypointFiles(directory, 'content');\n}","import _ from \"lodash\";\n\nimport {\n PluginHandler,\n PluginHandlerKeys,\n PluginHandlerOptions,\n PluginHandlerResult,\n PluginNameHandlerResult\n} from \"@typing/plugin\";\nimport {ReadonlyConfig} from \"@typing/config\";\n\nexport const resolvePluginHandler = async <O extends object, T>(handler: PluginHandler<O, T> | undefined, options: O): Promise<T | undefined> => {\n if (_.isFunction(handler)) {\n const result = handler(options);\n\n if (result instanceof Promise) {\n return await result;\n }\n\n return result;\n }\n\n return handler;\n};\n\n\nexport const processPluginHandler = async function* <K extends PluginHandlerKeys>(config: ReadonlyConfig, key: K, options: PluginHandlerOptions<K>): AsyncGenerator<PluginNameHandlerResult<K>, void, void> {\n const {plugins = []} = config;\n\n for await (const plugin of plugins) {\n const handler = plugin[key] as PluginHandler<PluginHandlerOptions<K>> | undefined;\n\n const result = await resolvePluginHandler(handler, options);\n\n if (result !== undefined) {\n yield {name: plugin.name, result};\n }\n }\n}","import {BaseEntrypointOptions} from \"@typing/base\";\nimport {ReadonlyConfig} from \"@typing/config\";\n\nexport const isValidEntrypointOptions = (options: BaseEntrypointOptions, config: ReadonlyConfig): boolean => {\n const {browser, app} = config;\n\n if (options.includeBrowser?.includes(browser) || options.includeApp?.includes(app)) {\n return true;\n }\n\n return !(options.excludeBrowser?.includes(browser) || options.excludeApp?.includes(app));\n}","import _ from 'lodash';\n\nimport {getBackgroundOptions} from \"@cli/parsers/entrypoint\";\n\nimport {getAppsPath, getSharedPath} from \"@cli/resolvers/path\";\n\nimport {findBackgroundFiles} from \"@cli/utils/entrypoint\";\nimport {processPluginHandler} from \"@cli/utils/plugin\";\nimport {isValidEntrypointOptions} from \"@cli/utils/option\";\n\nimport {BackgroundConfig, BackgroundEntrypointMap} from \"@typing/background\";\nimport {ReadonlyConfig} from \"@typing/config\";\n\n\nconst backgroundFilesToEntries = (files: string[]): BackgroundEntrypointMap => {\n const entries: BackgroundEntrypointMap = new Map;\n\n for (const file of files) {\n entries.set(file, getBackgroundOptions(file));\n }\n\n return entries;\n}\n\nconst findBackgroundEntriesByDir = (dir: string): BackgroundEntrypointMap => {\n return backgroundFilesToEntries(findBackgroundFiles(dir));\n}\n\nconst getBackgroundEntries = async (config: ReadonlyConfig): Promise<BackgroundEntrypointMap> => {\n let entries: BackgroundEntrypointMap = new Map;\n\n const appBackgroundEntries = findBackgroundEntriesByDir(getAppsPath(config));\n\n if (appBackgroundEntries.size > 0) {\n entries = new Map([...entries, ...appBackgroundEntries]);\n\n if (config.debug) {\n console.info('App background added:', appBackgroundEntries);\n }\n }\n\n if (appBackgroundEntries.size > 0 && config.mergeBackground || appBackgroundEntries.size === 0) {\n const sharedBackgroundEntries = findBackgroundEntriesByDir(getSharedPath(config));\n\n if (sharedBackgroundEntries.size > 0) {\n entries = new Map([...entries, ...sharedBackgroundEntries]);\n\n if (config.debug) {\n console.info('Shared background added:', sharedBackgroundEntries);\n }\n }\n }\n\n const pluginBackgroundResult = await Array.fromAsync(processPluginHandler(config, 'background', {\n config,\n entries\n }));\n\n if (pluginBackgroundResult.length > 0) {\n const pluginBackgroundFiles = pluginBackgroundResult.map(({name, result: endpoint}) => {\n if (_.isBoolean(endpoint)) {\n endpoint = 'background';\n }\n\n return require.resolve(`${name}/${endpoint}`);\n });\n\n const pluginBackgroundEntries = backgroundFilesToEntries(pluginBackgroundFiles);\n\n entries = new Map([...entries, ...pluginBackgroundEntries]);\n\n if (config.debug) {\n console.info('Plugin background added:', pluginBackgroundEntries);\n }\n }\n\n return entries;\n}\n\nexport interface BackgroundResult extends Partial<BackgroundConfig> {\n files: string[];\n}\n\nexport default async (config: ReadonlyConfig): Promise<BackgroundResult> => {\n const entries = Array.from(await getBackgroundEntries(config))\n .filter(([_, options]) => isValidEntrypointOptions(options, config))\n\n const files = entries.map(([file]) => file);\n const persistent = entries.some(([_, {persistent}]) => persistent);\n\n return {files, persistent}\n}","import {BackgroundDefinition} from \"adnbn\";\n\nimport * as module from \"virtual:background-entrypoint\";\n\nimport _isFunction from \"lodash/isFunction\";\nimport _isPlainObject from \"lodash/isPlainObject\";\n\ntry {\n const {default: defaultDefinition, ...otherDefinition} = module;\n\n let definition: BackgroundDefinition = otherDefinition;\n\n if (_isPlainObject(defaultDefinition)) {\n definition = {...definition, ...defaultDefinition};\n } else if (_isFunction(defaultDefinition)) {\n definition = {...definition, main: defaultDefinition};\n }\n\n const {main, ...options} = definition;\n\n if (_isFunction(main)) {\n Promise.resolve(main(options)).catch((e) => {\n console.error('The background main function crashed:', e);\n });\n }\n} catch (e) {\n console.error('The background crashed on startup:', e);\n}\n","import fs from 'fs';\nimport path from 'path';\nimport {getRootPath} from \"@cli/resolvers/path\";\n\nimport bg from \"./background.ts?raw\";\n\nconsole.log(bg);\n\n\n\n\n\n\n\n\n\n\n\n\nconst getVirtualModule = (file: string, template: string): string => {\n // const content = fs.readFileSync(path.join(__dirname, `virtual/${template}.js`), 'utf-8');\n\n return bg.replace(`virtual:${template}-entrypoint`, file.replace('.ts', ''));\n}\n\nexport const virtualBackgroundModule = (file: string): string => {\n\n\n return getVirtualModule(file, 'background');\n}","import {Configuration as WebpackConfig} from \"webpack\";\nimport VirtualModulesPlugin from \"webpack-virtual-modules\";\nimport _ from \"lodash\";\n\nimport {definePlugin} from \"@core/define\";\n\nimport WatchPlugin from \"@cli/webpack/plugins/WatchPlugin\";\nimport mergeWebpack from \"@cli/webpack/merge\";\n\nimport background from \"./background\";\n\nimport {Mode} from \"@typing/config\";\nimport {virtualBackgroundModule} from \"@cli/virtual\";\nimport path from \"path\";\n\nexport interface BackgroundOptions {\n name?: string;\n}\n\nexport default definePlugin<BackgroundOptions>(options => {\n const {name = 'background'} = options || {};\n\n let hasBackground: boolean = false;\n let persistent: boolean | undefined;\n\n return {\n name: import.meta.dirname,\n webpack: async ({config, webpack}) => {\n const {files: backgroundFiles, persistent: backgroundPersistent} = await background(config);\n\n const files = backgroundFiles;\n\n if (files.length === 0) {\n if (config.debug) {\n console.warn('Background entries not found');\n }\n\n return {};\n }\n\n hasBackground = true;\n persistent = backgroundPersistent;\n\n const m = files.reduce((m, file) => ({...m, [path.join('virtual', file)]: virtualBackgroundModule(file)}), {});\n\n\n console.log('m', m);\n\n const virtualModules = new VirtualModulesPlugin(m);\n\n\n\n const entry = {[name]: Object.keys(m)};\n\n let resolvedWebpack: WebpackConfig = {\n entry,\n plugins: [virtualModules],\n optimization: {\n splitChunks: {\n chunks(chunk) {\n const {chunks} = webpack.optimization?.splitChunks || {};\n\n if (_.isFunction(chunks) && !chunks(chunk)) {\n return false;\n }\n\n return chunk.name !== name;\n },\n }\n }\n };\n\n if (config.mode === Mode.Development) {\n resolvedWebpack = mergeWebpack(resolvedWebpack, {\n plugins: [\n new WatchPlugin({\n key: name,\n entry,\n callback: async () => {\n const {\n files: backgroundFiles,\n persistent: backgroundPersistent\n } = await background(config);\n\n persistent = backgroundPersistent;\n\n\n for(const file of files) {\n virtualModules.writeModule(file, `console.log(\"${file}\")`);\n }\n\n return {[name]: backgroundFiles};\n }\n }),\n ],\n });\n }\n\n return resolvedWebpack;\n },\n manifest: ({manifest}) => {\n if (hasBackground) {\n manifest.resetBackground({\n entry: name,\n persistent,\n });\n }\n }\n };\n});","import {\n CoreManifest,\n Manifest,\n ManifestBackground,\n ManifestBuilder,\n ManifestContentScript,\n ManifestDependenciesMap,\n ManifestVersion\n} from \"@typing/manifest\";\n\nimport {Browser} from \"@typing/config\";\n\nexport class ManifestError extends Error {\n public constructor(message: string) {\n super('Manifest: ' + message);\n }\n}\n\nexport default abstract class<T extends CoreManifest> implements ManifestBuilder<T> {\n protected name: string = \"__MSG_app_name__\";\n protected shortName: string = \"__MSG_app_short_name__\";\n protected description: string = \"__MSG_app_description__\";\n protected version: string = \"0.0.0\";\n protected background?: ManifestBackground;\n protected contentScripts: Map<string, ManifestContentScript> = new Map();\n protected dependencies: ManifestDependenciesMap = new Map();\n\n public abstract getManifestVersion(): ManifestVersion;\n\n protected abstract buildBackground(): Partial<T> | undefined;\n\n protected abstract buildContentScripts(): Partial<T> | undefined;\n\n protected constructor(protected readonly browser: Browser = Browser.Chrome) {\n }\n\n public setName(name: string): this {\n this.name = name;\n\n return this;\n }\n\n public setShortName(shortName: string): this {\n this.shortName = shortName;\n\n return this;\n }\n\n public setDescription(description: string): this {\n this.description = description;\n\n return this;\n }\n\n public setVersion(version: string): this {\n this.version = version;\n\n return this;\n }\n\n public resetBackground(background: ManifestBackground): this {\n this.background = background;\n\n return this;\n }\n\n public pushContentScript(...content: ManifestContentScript[]): this {\n for (const script of content) {\n this.contentScripts.set(script.entry, script);\n }\n\n return this;\n }\n\n public setDependencies(dependencies: ManifestDependenciesMap): this {\n this.dependencies = dependencies\n\n return this;\n }\n\n private marge<T extends CoreManifest>(manifest: T, ...sources: Array<Partial<T> | undefined>): T {\n sources = sources.filter((source) => source !== undefined);\n\n if (sources.length === 0) {\n return manifest;\n }\n\n return Object.assign({}, manifest, ...sources);\n }\n\n public build(): T {\n let manifest: Manifest = {\n name: this.name,\n short_name: this.shortName,\n description: this.description,\n version: this.version,\n manifest_version: this.getManifestVersion(),\n };\n\n manifest = this.marge(manifest, this.buildBackground(), this.buildContentScripts());\n\n return manifest as T;\n }\n\n public get(): T {\n return this.build();\n }\n}","import ManifestBase, {ManifestError} from \"./ManifestBase\";\n\nimport {ManifestVersion} from \"@typing/manifest\";\nimport {Browser} from \"@typing/config\";\n\ntype ManifestV2 = chrome.runtime.ManifestV2;\n\nexport default class extends ManifestBase<ManifestV2> {\n\n public constructor(browser: Browser) {\n super(browser);\n }\n\n public getManifestVersion(): ManifestVersion {\n return 2;\n }\n\n protected buildBackground(): Partial<ManifestV2> | undefined {\n if (this.background) {\n const {entry, persistent} = this.background;\n\n const dependencies = this.dependencies.get(entry);\n\n if (!dependencies) {\n throw new ManifestError(`Background entry \"${entry}\" not found in dependencies`);\n }\n\n if (dependencies.js.size === 0) {\n throw new ManifestError(`Background entry \"${entry}\" has no dependencies`);\n }\n\n const scripts = Array.from(dependencies.js);\n\n return {background: {scripts, persistent: persistent || undefined}};\n }\n }\n\n protected buildContentScripts(): Partial<ManifestV2> | undefined {\n if (this.contentScripts.size > 0) {\n const contentScripts: ManifestV2['content_scripts'] = Array.from(this.contentScripts, ([_, contentScript]) => ({\n matches: contentScript.matches,\n exclude_matches: contentScript.excludeMatches,\n all_frames: contentScript.allFrames,\n run_at: contentScript.runAt,\n exclude_globs: contentScript.excludeGlobs,\n include_globs: contentScript.includeGlobs,\n }));\n\n return {content_scripts: contentScripts};\n }\n }\n}","import ManifestBase, {ManifestError} from \"./ManifestBase\";\n\nimport {ManifestVersion} from \"@typing/manifest\";\nimport {Browser} from \"@typing/config\";\n\ntype ManifestV3 = chrome.runtime.ManifestV3;\n\nexport default class extends ManifestBase<ManifestV3> {\n public constructor(browser: Browser) {\n super(browser);\n }\n\n public getManifestVersion(): ManifestVersion {\n return 3;\n }\n\n protected buildBackground(): Partial<ManifestV3> | undefined {\n if (this.background) {\n const {entry} = this.background;\n\n const dependencies = this.dependencies.get(entry);\n\n if (!dependencies) {\n throw new ManifestError(`Background entry \"${entry}\" not found in dependencies`);\n }\n\n if (dependencies.js.size === 0) {\n throw new ManifestError(`Background entry \"${entry}\" has no dependencies`);\n }\n\n if (dependencies.js.size > 1) {\n throw new ManifestError(`Background entry \"${entry}\" has more than one dependency`);\n }\n\n const [js] = Array.from(dependencies.js);\n\n return {background: {service_worker: js}};\n }\n }\n\n protected buildContentScripts(): Partial<ManifestV3> | undefined {\n if (this.contentScripts.size > 0) {\n const contentScripts: ManifestV3['content_scripts'] = Array.from(this.contentScripts, ([_, contentScript]) => ({\n matches: contentScript.matches,\n exclude_matches: contentScript.excludeMatches,\n all_frames: contentScript.allFrames,\n run_at: contentScript.runAt,\n exclude_globs: contentScript.excludeGlobs,\n include_globs: contentScript.includeGlobs,\n world: contentScript.world,\n }));\n\n return {content_scripts: contentScripts};\n }\n }\n}","import {ManifestBuilder, ManifestMapping, ManifestVersion} from \"@typing/manifest\";\nimport ManifestV2 from './ManifestV2';\nimport ManifestV3 from './ManifestV3';\n\nimport {Browser} from \"@typing/config\";\n\nexport default <T extends ManifestVersion>(browser: Browser, manifestVersion: T): ManifestBuilder<ManifestMapping[T]> => {\n if (manifestVersion === 2) {\n return new ManifestV2(browser);\n }\n\n return new ManifestV3(browser);\n}","import webpack, {Compilation, Compiler} from 'webpack';\nimport {ManifestBuilder, ManifestDependencies, ManifestDependenciesMap} from \"@typing/manifest\";\n\nclass ManifestPlugin {\n constructor(private readonly manifest: ManifestBuilder) {\n }\n\n apply(compiler: Compiler): void {\n compiler.hooks.compilation.tap('ManifestPlugin', (compilation) => {\n compilation.hooks.processAssets.tap(\n {\n name: 'ManifestPlugin',\n stage: Compilation.PROCESS_ASSETS_STAGE_ADDITIONS\n },\n () => {\n const entryDependencies: ManifestDependenciesMap = new Map();\n\n compilation.entrypoints.forEach((entryPoint, entryName) => {\n const dependencies: ManifestDependencies = {\n assets: new Set(),\n css: new Set(),\n js: new Set(),\n };\n\n const files = entryPoint.getFiles();\n\n files.forEach(fileName => {\n if (fileName.endsWith('.js')) {\n dependencies.js.add(fileName);\n } else if (fileName.endsWith('.css')) {\n dependencies.css.add(fileName);\n }\n });\n\n const chunks = entryPoint.chunks;\n\n chunks.forEach(chunk => {\n chunk.files.forEach(fileName => {\n if (this.isAsset(fileName)) {\n dependencies.assets.add(fileName);\n }\n });\n\n const auxiliaryFiles = chunk.auxiliaryFiles || [];\n auxiliaryFiles.forEach(fileName => {\n if (this.isAsset(fileName)) {\n dependencies.assets.add(fileName);\n }\n });\n });\n\n entryDependencies.set(entryName, dependencies);\n });\n\n const manifest = this.manifest.setDependencies(entryDependencies).get();\n const json = JSON.stringify(manifest, null, 2);\n\n compilation.emitAsset(\n 'manifest.json',\n new webpack.sources.RawSource(json)\n );\n }\n );\n });\n }\n\n private isAsset(file: string): boolean {\n return /\\.(png|jpg|jpeg|gif|svg|woff|woff2|ttf|eot)$/.test(file);\n }\n}\n\nexport default ManifestPlugin;\n","import {Configuration, WebpackPluginInstance} from \"webpack\";\nimport path from \"path\";\n\nimport TsconfigPathsPlugin from \"tsconfig-paths-webpack-plugin\";\nimport MiniCssExtractPlugin from \"mini-css-extract-plugin\";\nimport VirtualModulesPlugin from \"webpack-virtual-modules\";\n\nimport manifestFactory from \"../builders/manifest\";\n\nimport {getOutputPath, getRootPath} from \"./path\";\nimport {processPluginHandler} from \"../utils/plugin\";\n\nimport ManifestPlugin from \"../webpack/plugins/ManifestPlugin\";\nimport WatchPlugin from \"../webpack/plugins/WatchPlugin\";\nimport mergeWebpack from \"../webpack/merge\";\n\nimport {Command, Mode, ReadonlyConfig} from \"@typing/config\";\n\n\nconst getConfigFromPlugins = async (webpack: Configuration, config: ReadonlyConfig): Promise<Configuration> => {\n let mergedConfig: Configuration = {};\n\n for await (const {result: pluginConfig} of processPluginHandler(config, 'webpack', {webpack, config})) {\n mergedConfig = mergeWebpack(mergedConfig, pluginConfig);\n }\n\n return mergedConfig;\n}\n\nconst getConfigForManifest = async (config: ReadonlyConfig): Promise<Configuration> => {\n const manifest = manifestFactory(config.browser, config.manifestVersion);\n\n const update = async () => await Array.fromAsync(processPluginHandler(config, 'manifest', {manifest, config}))\n\n await update();\n\n const plugins: WebpackPluginInstance[] = [];\n\n if (config.mode === Mode.Development) {\n plugins.push(new WatchPlugin({\n key: 'manifest',\n callback: async () => {\n await update();\n }\n }));\n }\n\n plugins.push(new ManifestPlugin(manifest));\n\n return {plugins};\n}\n\nexport default async (command: Command, config: ReadonlyConfig): Promise<Configuration> => {\n let webpack: Configuration = {\n mode: config.mode,\n cache: false,\n output: {\n path: getRootPath(getOutputPath(config)),\n filename: path.join(config.jsDir, '[name].js'),\n assetModuleFilename: path.join(config.assetsDir, '[name]-[hash:4][ext]'),\n },\n resolve: {\n extensions: [\".ts\", \".tsx\", \".js\", \".scss\"],\n plugins: [new TsconfigPathsPlugin()],\n },\n module: {\n rules: [\n {\n test: /\\.tsx?$/,\n use: \"ts-loader\",\n exclude: /node_modules/,\n },\n {\n test: /\\.(scss|css)$/,\n use: [\n MiniCssExtractPlugin.loader,\n {\n loader: \"css-loader\",\n options: {\n modules: {\n localIdentName: \"[local]\"\n },\n }\n },\n {\n loader: \"sass-loader\",\n options: {\n implementation: import(\"sass\"),\n },\n },\n ],\n },\n {\n test: /\\.(png|apng|jpe?g|gif|webp|svg])$/i,\n type: \"asset/resource\",\n },\n ],\n }\n }\n\n webpack = mergeWebpack(\n webpack,\n await getConfigFromPlugins(webpack, config),\n await getConfigForManifest(config),\n );\n\n if (command == Command.Watch) {\n webpack = mergeWebpack(webpack, {\n devtool: 'inline-source-map',\n });\n }\n\n return webpack;\n}","import webpack from 'webpack';\n\nimport {build, watch} from \"./command\";\n\nimport configResolver from \"../../resolvers/config\";\nimport webpackResolver from \"../../resolvers/webpack\";\n\nimport {Command, OptionalConfig} from \"@typing/config\";\n\nexport default async (command: Command, config: OptionalConfig): Promise<void> => {\n const resolverConfig = await configResolver(config);\n const webpackConfig = await webpackResolver(command, resolverConfig);\n\n const compiler = webpack(webpackConfig);\n\n switch (command) {\n case Command.Build:\n build(compiler);\n break;\n\n case Command.Watch:\n watch(compiler);\n break;\n\n default:\n console.error('Unknown command');\n process.exit(1);\n }\n}","{\n \"name\": \"adnbn\",\n \"version\": \"0.0.19\",\n \"description\": \"Cross browser web extension framework with shared code base\",\n \"homepage\": \"https://github.com/addonbone/addonbone\",\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git+https://github.com/addonbone/addonbone.git\"\n },\n \"keywords\": [\n \"addon\",\n \"extension\",\n \"chrome\",\n \"firefox\",\n \"edge\",\n \"opera\",\n \"safari\"\n ],\n \"author\": \"AddonBone\",\n \"license\": \"MIT\",\n \"bugs\": {\n \"url\": \"https://github.com/addonbone/addonbone/issues\"\n },\n \"exports\": {\n \".\": {\n \"types\": \"./dist/index.d.ts\",\n \"import\": \"./dist/index.js\",\n \"require\": \"./dist/index.cjs\"\n }\n },\n \"main\": \"./dist/index.js\",\n \"module\": \"./dist/index.js\",\n \"types\": \"./dist/index.d.ts\",\n \"files\": [\n \"bin\",\n \"dist\"\n ],\n \"bin\": {\n \"adnbn\": \"bin/adnbn.js\"\n },\n \"scripts\": {\n \"adnbn\": \"tsx ./src/cli/index.ts\",\n \"build\": \"tsup\"\n },\n \"devDependencies\": {\n \"@types/generate-json-webpack-plugin\": \"^0.3.7\",\n \"@types/lodash\": \"^4.17.14\",\n \"@types/node\": \"^22.13.1\",\n \"dotenv\": \"^16.4.7\",\n \"esbuild-plugin-raw\": \"^0.1.8\",\n \"fs-extra\": \"^11.3.0\",\n \"ts-node\": \"^10.9.2\",\n \"tsup\": \"^8.3.6\",\n \"tsx\": \"^4.19.2\"\n },\n \"dependencies\": {\n \"@babel/parser\": \"^7.26.9\",\n \"@babel/traverse\": \"^7.26.9\",\n \"@types/chrome\": \"^0.0.299\",\n \"adnbn-plugin-test\": \"^1.0.3\",\n \"c12\": \"^2.0.1\",\n \"cac\": \"^6.7.14\",\n \"css-loader\": \"^7.1.2\",\n \"file-loader\": \"^6.2.0\",\n \"generate-json-webpack-plugin\": \"^2.0.0\",\n \"lodash\": \"^4.17.21\",\n \"mini-css-extract-plugin\": \"^2.9.2\",\n \"sass\": \"^1.83.4\",\n \"sass-loader\": \"^16.0.4\",\n \"ts-loader\": \"^9.5.2\",\n \"tsconfig-paths-webpack-plugin\": \"^4.2.0\",\n \"typescript\": \"^5.7.3\",\n \"utility-types\": \"^3.11.0\",\n \"webpack\": \"^5.97.1\",\n \"webpack-cli\": \"^6.0.1\",\n \"webpack-virtual-modules\": \"^0.6.2\"\n }\n}\n","import cac from 'cac';\n\nimport app from \"./builders/app\";\n\nimport {Browser, Command} from \"@typing/config\";\n\nimport {version} from '../../package.json';\n\nconst cli = cac('adnbn');\n\ncli.option('--debug', 'Enable debug mode');\n\ncli\n .command('init', 'Initialize a new project')\n .action(() => {\n console.log('init is good in cli');\n });\n\ncli\n .command('watch [root]', 'Start watch mode')\n .option('-m, --mode <mode>', 'Set env mode', {default: 'development'})\n .option('-c, --config <config>', 'Path to config file')\n .option('-a, --app <app>', 'Specify an app to run', {default: 'myapp'})\n .option('-b, --browser <browser>', 'Specify a browser')\n .option('--mv2', 'Target manifest v2')\n .action(async (root, options) => {\n await app(Command.Watch, {\n mode: options.mode,\n debug: options.debug,\n app: options.app,\n browser: options.browser,\n manifestVersion: options.mv2 ? 2 : 3,\n inputDir: root,\n configFile: options.config,\n });\n });\n\ncli\n .command('build [root]', 'Build for production')\n .option('-m, --mode <mode>', 'Set env mode', {default: 'production'})\n .option('-c, --config <config>', 'Path to config file')\n .option('-a, --app <app>', 'Specify an app to run', {default: 'myapp'})\n .option('-b, --browser <browser>', 'Specify a browser', {default: Browser.Chrome})\n .option('--mv2', 'Target manifest v2')\n .option('--analyze', 'Visualize extension bundle')\n .action(async (root, options) => {\n await app(Command.Build, {\n mode: options.mode,\n debug: options.debug,\n app: options.app,\n browser: options.browser,\n manifestVersion: options.mv2 ? 2 : 3,\n inputDir: root,\n configFile: options.config,\n analyze: options.analyze,\n });\n });\n\ncli.version(version);\ncli.help();\ncli.parse();"]}
package/dist/index.cjs CHANGED
@@ -54,7 +54,7 @@ var Command = /* @__PURE__ */ ((Command2) => {
54
54
  })(Command || {});
55
55
 
56
56
  // src/index.ts
57
- var some = [1, 2, 3];
57
+ var some = [true, false];
58
58
 
59
59
  exports.Browser = Browser;
60
60
  exports.Command = Command;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/core/define.ts","../src/core/env.ts","../src/types/config.ts","../src/index.ts"],"names":["Browser","Mode","Command"],"mappings":";;;AAKO,SAAS,aAAa,MAA4C,EAAA;AACrE,EAAO,OAAA,MAAA;AACX;AAKO,SAAS,aAAgB,MAAkD,EAAA;AAC9E,EAAO,OAAA,MAAA;AACX;AAEO,SAAS,iBAAiB,OAAqD,EAAA;AAClF,EAAO,OAAA,OAAA;AACX;AAEO,SAAS,oBAAoB,OAA2D,EAAA;AAC3F,EAAO,OAAA,OAAA;AACX;;;ACnBA,IAAM,MAAM,OAAQ,CAAA,GAAA;AAEP,IAAA,MAAA,GAGT,CAAC,GAAA,EAAa,QAAsB,KAAA;AACpC,EAAQ,OAAA,GAAA,CAAI,GAAG,CAAK,IAAA,QAAA;AACxB;AAEO,IAAM,aAAa,MAAe;AACrC,EAAM,MAAA,OAAA,GAAU,OAAgB,SAAS,CAAA;AAEzC,EAAA,IAAI,YAAY,MAAW,EAAA;AACvB,IAAM,MAAA,IAAI,MAAM,wBAAwB,CAAA;AAAA;AAG5C,EAAO,OAAA,OAAA;AACX;AAEO,IAAM,qBAAqB,MAAuB;AACrD,EAAM,MAAA,eAAA,GAAkB,MAAO,CAAA,kBAAA,EAAoB,GAAG,CAAA;AAEtD,EAAA,OAAO,SAAS,eAAe,CAAA;AACnC;;;ACvBY,IAAA,OAAA,qBAAAA,QAAL,KAAA;AACH,EAAAA,SAAA,QAAS,CAAA,GAAA,QAAA;AACT,EAAAA,SAAA,UAAW,CAAA,GAAA,UAAA;AACX,EAAAA,SAAA,MAAO,CAAA,GAAA,MAAA;AACP,EAAAA,SAAA,SAAU,CAAA,GAAA,SAAA;AACV,EAAAA,SAAA,OAAQ,CAAA,GAAA,OAAA;AACR,EAAAA,SAAA,QAAS,CAAA,GAAA,QAAA;AAND,EAAAA,OAAAA,QAAAA;AAAA,CAAA,EAAA,OAAA,IAAA,EAAA;AASA,IAAA,IAAA,qBAAAC,KAAL,KAAA;AACH,EAAAA,MAAA,MAAO,CAAA,GAAA,MAAA;AACP,EAAAA,MAAA,aAAc,CAAA,GAAA,aAAA;AACd,EAAAA,MAAA,YAAa,CAAA,GAAA,YAAA;AAHL,EAAAA,OAAAA,KAAAA;AAAA,CAAA,EAAA,IAAA,IAAA,EAAA;AAMA,IAAA,OAAA,qBAAAC,QAAL,KAAA;AACH,EAAAA,SAAA,OAAQ,CAAA,GAAA,OAAA;AACR,EAAAA,SAAA,OAAQ,CAAA,GAAA,OAAA;AAFA,EAAAA,OAAAA,QAAAA;AAAA,CAAA,EAAA,OAAA,IAAA,EAAA;;;ACfL,IAAM,IAAO,GAAA,CAAC,CAAG,EAAA,CAAA,EAAG,CAAC","file":"index.cjs","sourcesContent":["import {ConfigDefinition} from \"@typing/config\";\nimport {BackgroundDefinition} from \"@typing/background\";\nimport {ContentScriptDefinition} from \"@typing/content\";\nimport {Plugin, PluginDefinition} from \"@typing/plugin\";\n\nexport function defineConfig(config: ConfigDefinition): ConfigDefinition {\n return config;\n}\n\nexport function definePlugin<T>(plugin: (options?: T) => Plugin): (options?: T) => Plugin;\nexport function definePlugin(plugin: Plugin): Plugin;\n\nexport function definePlugin<T>(plugin: PluginDefinition<T>): PluginDefinition<T> {\n return plugin;\n}\n\nexport function defineBackground(options: BackgroundDefinition): BackgroundDefinition {\n return options;\n}\n\nexport function defineContentScript(options: ContentScriptDefinition): ContentScriptDefinition {\n return options;\n}","import {Browser} from \"@typing/config\";\nimport {ManifestVersion} from \"@typing/manifest\";\n\nconst env = process.env;\n\nexport const getEnv: {\n <T extends string>(key: string): T | undefined;\n <T extends string, D>(key: string, defaults: D): T | D;\n} = (key: string, defaults?: string) => {\n return (env[key] ?? defaults) as any;\n};\n\nexport const getBrowser = (): Browser => {\n const browser = getEnv<Browser>('BROWSER');\n\n if (browser === undefined) {\n throw new Error('Browser is not defined');\n }\n\n return browser;\n}\n\nexport const getManifestVersion = (): ManifestVersion => {\n const manifestVersion = getEnv('MANIFEST_VERSION', '3');\n\n return parseInt(manifestVersion) as ManifestVersion;\n}","import {Plugin} from \"@typing/plugin\";\nimport {ManifestVersion} from \"@typing/manifest\";\n\nexport enum Browser {\n Chrome = 'chrome',\n Chromium = 'chromium',\n Edge = 'edge',\n Firefox = 'firefox',\n Opera = 'opera',\n Safari = 'safari',\n}\n\nexport enum Mode {\n None = 'none',\n Development = 'development',\n Production = 'production',\n}\n\nexport enum Command {\n Build = 'build',\n Watch = 'watch',\n}\n\nexport interface Config {\n debug: boolean;\n mode: Mode;\n app: string;\n browser: Browser;\n manifestVersion: ManifestVersion;\n inputDir: string;\n outputDir: string;\n srcDir: string;\n sharedDir: string;\n appsDir: string;\n jsDir: string;\n cssDir: string;\n assetsDir: string;\n htmlDir: string;\n plugins: Plugin[];\n analyze: boolean;\n configFile: string;\n mergeBackground: boolean;\n mergeContentScripts: boolean;\n concatContentScripts: boolean;\n}\n\nexport interface ConfigOptions {\n config: ReadonlyConfig;\n}\n\nexport type OptionalConfig = Partial<Config>;\nexport type UserConfig = Omit<OptionalConfig, 'configFile'>;\nexport type ReadonlyConfig = Readonly<Config>;\n\nexport type UserConfigCallback = (config: ReadonlyConfig) => UserConfig;\nexport type ConfigDefinition = UserConfigCallback | UserConfig;\n\n","export * from \"./core\";\nexport * from \"./types\";\n\nexport const some = [1, 2, 3];"]}
1
+ {"version":3,"sources":["../src/core/define.ts","../src/core/env.ts","../src/types/config.ts","../src/index.ts"],"names":["Browser","Mode","Command"],"mappings":";;;AAKO,SAAS,aAAa,MAA4C,EAAA;AACrE,EAAO,OAAA,MAAA;AACX;AAKO,SAAS,aAAgB,MAAkD,EAAA;AAC9E,EAAO,OAAA,MAAA;AACX;AAEO,SAAS,iBAAiB,OAAqD,EAAA;AAClF,EAAO,OAAA,OAAA;AACX;AAEO,SAAS,oBAAoB,OAA2D,EAAA;AAC3F,EAAO,OAAA,OAAA;AACX;;;ACnBA,IAAM,MAAM,OAAQ,CAAA,GAAA;AAEP,IAAA,MAAA,GAGT,CAAC,GAAA,EAAa,QAAsB,KAAA;AACpC,EAAQ,OAAA,GAAA,CAAI,GAAG,CAAK,IAAA,QAAA;AACxB;AAEO,IAAM,aAAa,MAAe;AACrC,EAAM,MAAA,OAAA,GAAU,OAAgB,SAAS,CAAA;AAEzC,EAAA,IAAI,YAAY,MAAW,EAAA;AACvB,IAAM,MAAA,IAAI,MAAM,wBAAwB,CAAA;AAAA;AAG5C,EAAO,OAAA,OAAA;AACX;AAEO,IAAM,qBAAqB,MAAuB;AACrD,EAAM,MAAA,eAAA,GAAkB,MAAO,CAAA,kBAAA,EAAoB,GAAG,CAAA;AAEtD,EAAA,OAAO,SAAS,eAAe,CAAA;AACnC;;;ACvBY,IAAA,OAAA,qBAAAA,QAAL,KAAA;AACH,EAAAA,SAAA,QAAS,CAAA,GAAA,QAAA;AACT,EAAAA,SAAA,UAAW,CAAA,GAAA,UAAA;AACX,EAAAA,SAAA,MAAO,CAAA,GAAA,MAAA;AACP,EAAAA,SAAA,SAAU,CAAA,GAAA,SAAA;AACV,EAAAA,SAAA,OAAQ,CAAA,GAAA,OAAA;AACR,EAAAA,SAAA,QAAS,CAAA,GAAA,QAAA;AAND,EAAAA,OAAAA,QAAAA;AAAA,CAAA,EAAA,OAAA,IAAA,EAAA;AASA,IAAA,IAAA,qBAAAC,KAAL,KAAA;AACH,EAAAA,MAAA,MAAO,CAAA,GAAA,MAAA;AACP,EAAAA,MAAA,aAAc,CAAA,GAAA,aAAA;AACd,EAAAA,MAAA,YAAa,CAAA,GAAA,YAAA;AAHL,EAAAA,OAAAA,KAAAA;AAAA,CAAA,EAAA,IAAA,IAAA,EAAA;AAMA,IAAA,OAAA,qBAAAC,QAAL,KAAA;AACH,EAAAA,SAAA,OAAQ,CAAA,GAAA,OAAA;AACR,EAAAA,SAAA,OAAQ,CAAA,GAAA,OAAA;AAFA,EAAAA,OAAAA,QAAAA;AAAA,CAAA,EAAA,OAAA,IAAA,EAAA;;;ACfC,IAAA,IAAA,GAAO,CAAC,IAAA,EAAM,KAAK","file":"index.cjs","sourcesContent":["import {ConfigDefinition} from \"@typing/config\";\nimport {BackgroundDefinition} from \"@typing/background\";\nimport {ContentScriptDefinition} from \"@typing/content\";\nimport {Plugin, PluginDefinition} from \"@typing/plugin\";\n\nexport function defineConfig(config: ConfigDefinition): ConfigDefinition {\n return config;\n}\n\nexport function definePlugin<T>(plugin: (options?: T) => Plugin): (options?: T) => Plugin;\nexport function definePlugin(plugin: Plugin): Plugin;\n\nexport function definePlugin<T>(plugin: PluginDefinition<T>): PluginDefinition<T> {\n return plugin;\n}\n\nexport function defineBackground(options: BackgroundDefinition): BackgroundDefinition {\n return options;\n}\n\nexport function defineContentScript(options: ContentScriptDefinition): ContentScriptDefinition {\n return options;\n}","import {Browser} from \"@typing/config\";\nimport {ManifestVersion} from \"@typing/manifest\";\n\nconst env = process.env;\n\nexport const getEnv: {\n <T extends string>(key: string): T | undefined;\n <T extends string, D>(key: string, defaults: D): T | D;\n} = (key: string, defaults?: string) => {\n return (env[key] ?? defaults) as any;\n};\n\nexport const getBrowser = (): Browser => {\n const browser = getEnv<Browser>('BROWSER');\n\n if (browser === undefined) {\n throw new Error('Browser is not defined');\n }\n\n return browser;\n}\n\nexport const getManifestVersion = (): ManifestVersion => {\n const manifestVersion = getEnv('MANIFEST_VERSION', '3');\n\n return parseInt(manifestVersion) as ManifestVersion;\n}","import {Plugin} from \"@typing/plugin\";\nimport {ManifestVersion} from \"@typing/manifest\";\n\nexport enum Browser {\n Chrome = 'chrome',\n Chromium = 'chromium',\n Edge = 'edge',\n Firefox = 'firefox',\n Opera = 'opera',\n Safari = 'safari',\n}\n\nexport enum Mode {\n None = 'none',\n Development = 'development',\n Production = 'production',\n}\n\nexport enum Command {\n Build = 'build',\n Watch = 'watch',\n}\n\nexport interface Config {\n debug: boolean;\n mode: Mode;\n app: string;\n browser: Browser;\n manifestVersion: ManifestVersion;\n inputDir: string;\n outputDir: string;\n srcDir: string;\n sharedDir: string;\n appsDir: string;\n jsDir: string;\n cssDir: string;\n assetsDir: string;\n htmlDir: string;\n plugins: Plugin[];\n analyze: boolean;\n configFile: string;\n mergeBackground: boolean;\n mergeContentScripts: boolean;\n concatContentScripts: boolean;\n}\n\nexport interface ConfigOptions {\n config: ReadonlyConfig;\n}\n\nexport type OptionalConfig = Partial<Config>;\nexport type UserConfig = Omit<OptionalConfig, 'configFile'>;\nexport type ReadonlyConfig = Readonly<Config>;\n\nexport type UserConfigCallback = (config: ReadonlyConfig) => UserConfig;\nexport type ConfigDefinition = UserConfigCallback | UserConfig;\n\n","export * from \"./core\";\nexport * from \"./types\";\n\nexport const some = [true, false];"]}
package/dist/index.d.mts CHANGED
@@ -264,6 +264,6 @@ declare const getEnv: {
264
264
  declare const getBrowser: () => Browser;
265
265
  declare const getManifestVersion: () => ManifestVersion;
266
266
 
267
- declare const some: number[];
267
+ declare const some: boolean[];
268
268
 
269
269
  export { type BackgroundConfig, type BackgroundDefinition, type BackgroundEntrypointMap, type BackgroundEntrypointOptions, type BaseEntrypointOptions, Browser, type ChromeManifest, Command, type Config, type ConfigDefinition, type ConfigOptions, type ContentScriptConfig, type ContentScriptDefinition, type ContentScriptEntrypointMap, type ContentScriptEntrypointOptions, type CoreManifest, type FirefoxManifest, type Manifest, type ManifestBackground, type ManifestBuilder, type ManifestContentScript, type ManifestDependencies, type ManifestDependenciesMap, type ManifestEntry, type ManifestEntryFile, type ManifestMapping, type ManifestVersion, Mode, type OptionalConfig, type Plugin, type PluginBackgroundOptions, type PluginBackgroundResult, type PluginContentOptions, type PluginContentResult, type PluginDefinition, type PluginHandler, type PluginHandlerCallback, type PluginHandlerKeys, type PluginHandlerOptions, type PluginHandlerResult, type PluginHandlerType, type PluginManifestOptions, type PluginNameHandlerResult, type PluginWebpackOptions, type ReadonlyConfig, type SafariManifest, type UserConfig, type UserConfigCallback, defineBackground, defineConfig, defineContentScript, definePlugin, getBrowser, getEnv, getManifestVersion, some };
package/dist/index.d.ts CHANGED
@@ -264,6 +264,6 @@ declare const getEnv: {
264
264
  declare const getBrowser: () => Browser;
265
265
  declare const getManifestVersion: () => ManifestVersion;
266
266
 
267
- declare const some: number[];
267
+ declare const some: boolean[];
268
268
 
269
269
  export { type BackgroundConfig, type BackgroundDefinition, type BackgroundEntrypointMap, type BackgroundEntrypointOptions, type BaseEntrypointOptions, Browser, type ChromeManifest, Command, type Config, type ConfigDefinition, type ConfigOptions, type ContentScriptConfig, type ContentScriptDefinition, type ContentScriptEntrypointMap, type ContentScriptEntrypointOptions, type CoreManifest, type FirefoxManifest, type Manifest, type ManifestBackground, type ManifestBuilder, type ManifestContentScript, type ManifestDependencies, type ManifestDependenciesMap, type ManifestEntry, type ManifestEntryFile, type ManifestMapping, type ManifestVersion, Mode, type OptionalConfig, type Plugin, type PluginBackgroundOptions, type PluginBackgroundResult, type PluginContentOptions, type PluginContentResult, type PluginDefinition, type PluginHandler, type PluginHandlerCallback, type PluginHandlerKeys, type PluginHandlerOptions, type PluginHandlerResult, type PluginHandlerType, type PluginManifestOptions, type PluginNameHandlerResult, type PluginWebpackOptions, type ReadonlyConfig, type SafariManifest, type UserConfig, type UserConfigCallback, defineBackground, defineConfig, defineContentScript, definePlugin, getBrowser, getEnv, getManifestVersion, some };
package/dist/index.js CHANGED
@@ -52,7 +52,7 @@ var Command = /* @__PURE__ */ ((Command2) => {
52
52
  })(Command || {});
53
53
 
54
54
  // src/index.ts
55
- var some = [1, 2, 3];
55
+ var some = [true, false];
56
56
 
57
57
  export { Browser, Command, Mode, defineBackground, defineConfig, defineContentScript, definePlugin, getBrowser, getEnv, getManifestVersion, some };
58
58
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/core/define.ts","../src/core/env.ts","../src/types/config.ts","../src/index.ts"],"names":["Browser","Mode","Command"],"mappings":";AAKO,SAAS,aAAa,MAA4C,EAAA;AACrE,EAAO,OAAA,MAAA;AACX;AAKO,SAAS,aAAgB,MAAkD,EAAA;AAC9E,EAAO,OAAA,MAAA;AACX;AAEO,SAAS,iBAAiB,OAAqD,EAAA;AAClF,EAAO,OAAA,OAAA;AACX;AAEO,SAAS,oBAAoB,OAA2D,EAAA;AAC3F,EAAO,OAAA,OAAA;AACX;;;ACnBA,IAAM,MAAM,OAAQ,CAAA,GAAA;AAEP,IAAA,MAAA,GAGT,CAAC,GAAA,EAAa,QAAsB,KAAA;AACpC,EAAQ,OAAA,GAAA,CAAI,GAAG,CAAK,IAAA,QAAA;AACxB;AAEO,IAAM,aAAa,MAAe;AACrC,EAAM,MAAA,OAAA,GAAU,OAAgB,SAAS,CAAA;AAEzC,EAAA,IAAI,YAAY,MAAW,EAAA;AACvB,IAAM,MAAA,IAAI,MAAM,wBAAwB,CAAA;AAAA;AAG5C,EAAO,OAAA,OAAA;AACX;AAEO,IAAM,qBAAqB,MAAuB;AACrD,EAAM,MAAA,eAAA,GAAkB,MAAO,CAAA,kBAAA,EAAoB,GAAG,CAAA;AAEtD,EAAA,OAAO,SAAS,eAAe,CAAA;AACnC;;;ACvBY,IAAA,OAAA,qBAAAA,QAAL,KAAA;AACH,EAAAA,SAAA,QAAS,CAAA,GAAA,QAAA;AACT,EAAAA,SAAA,UAAW,CAAA,GAAA,UAAA;AACX,EAAAA,SAAA,MAAO,CAAA,GAAA,MAAA;AACP,EAAAA,SAAA,SAAU,CAAA,GAAA,SAAA;AACV,EAAAA,SAAA,OAAQ,CAAA,GAAA,OAAA;AACR,EAAAA,SAAA,QAAS,CAAA,GAAA,QAAA;AAND,EAAAA,OAAAA,QAAAA;AAAA,CAAA,EAAA,OAAA,IAAA,EAAA;AASA,IAAA,IAAA,qBAAAC,KAAL,KAAA;AACH,EAAAA,MAAA,MAAO,CAAA,GAAA,MAAA;AACP,EAAAA,MAAA,aAAc,CAAA,GAAA,aAAA;AACd,EAAAA,MAAA,YAAa,CAAA,GAAA,YAAA;AAHL,EAAAA,OAAAA,KAAAA;AAAA,CAAA,EAAA,IAAA,IAAA,EAAA;AAMA,IAAA,OAAA,qBAAAC,QAAL,KAAA;AACH,EAAAA,SAAA,OAAQ,CAAA,GAAA,OAAA;AACR,EAAAA,SAAA,OAAQ,CAAA,GAAA,OAAA;AAFA,EAAAA,OAAAA,QAAAA;AAAA,CAAA,EAAA,OAAA,IAAA,EAAA;;;ACfL,IAAM,IAAO,GAAA,CAAC,CAAG,EAAA,CAAA,EAAG,CAAC","file":"index.js","sourcesContent":["import {ConfigDefinition} from \"@typing/config\";\nimport {BackgroundDefinition} from \"@typing/background\";\nimport {ContentScriptDefinition} from \"@typing/content\";\nimport {Plugin, PluginDefinition} from \"@typing/plugin\";\n\nexport function defineConfig(config: ConfigDefinition): ConfigDefinition {\n return config;\n}\n\nexport function definePlugin<T>(plugin: (options?: T) => Plugin): (options?: T) => Plugin;\nexport function definePlugin(plugin: Plugin): Plugin;\n\nexport function definePlugin<T>(plugin: PluginDefinition<T>): PluginDefinition<T> {\n return plugin;\n}\n\nexport function defineBackground(options: BackgroundDefinition): BackgroundDefinition {\n return options;\n}\n\nexport function defineContentScript(options: ContentScriptDefinition): ContentScriptDefinition {\n return options;\n}","import {Browser} from \"@typing/config\";\nimport {ManifestVersion} from \"@typing/manifest\";\n\nconst env = process.env;\n\nexport const getEnv: {\n <T extends string>(key: string): T | undefined;\n <T extends string, D>(key: string, defaults: D): T | D;\n} = (key: string, defaults?: string) => {\n return (env[key] ?? defaults) as any;\n};\n\nexport const getBrowser = (): Browser => {\n const browser = getEnv<Browser>('BROWSER');\n\n if (browser === undefined) {\n throw new Error('Browser is not defined');\n }\n\n return browser;\n}\n\nexport const getManifestVersion = (): ManifestVersion => {\n const manifestVersion = getEnv('MANIFEST_VERSION', '3');\n\n return parseInt(manifestVersion) as ManifestVersion;\n}","import {Plugin} from \"@typing/plugin\";\nimport {ManifestVersion} from \"@typing/manifest\";\n\nexport enum Browser {\n Chrome = 'chrome',\n Chromium = 'chromium',\n Edge = 'edge',\n Firefox = 'firefox',\n Opera = 'opera',\n Safari = 'safari',\n}\n\nexport enum Mode {\n None = 'none',\n Development = 'development',\n Production = 'production',\n}\n\nexport enum Command {\n Build = 'build',\n Watch = 'watch',\n}\n\nexport interface Config {\n debug: boolean;\n mode: Mode;\n app: string;\n browser: Browser;\n manifestVersion: ManifestVersion;\n inputDir: string;\n outputDir: string;\n srcDir: string;\n sharedDir: string;\n appsDir: string;\n jsDir: string;\n cssDir: string;\n assetsDir: string;\n htmlDir: string;\n plugins: Plugin[];\n analyze: boolean;\n configFile: string;\n mergeBackground: boolean;\n mergeContentScripts: boolean;\n concatContentScripts: boolean;\n}\n\nexport interface ConfigOptions {\n config: ReadonlyConfig;\n}\n\nexport type OptionalConfig = Partial<Config>;\nexport type UserConfig = Omit<OptionalConfig, 'configFile'>;\nexport type ReadonlyConfig = Readonly<Config>;\n\nexport type UserConfigCallback = (config: ReadonlyConfig) => UserConfig;\nexport type ConfigDefinition = UserConfigCallback | UserConfig;\n\n","export * from \"./core\";\nexport * from \"./types\";\n\nexport const some = [1, 2, 3];"]}
1
+ {"version":3,"sources":["../src/core/define.ts","../src/core/env.ts","../src/types/config.ts","../src/index.ts"],"names":["Browser","Mode","Command"],"mappings":";AAKO,SAAS,aAAa,MAA4C,EAAA;AACrE,EAAO,OAAA,MAAA;AACX;AAKO,SAAS,aAAgB,MAAkD,EAAA;AAC9E,EAAO,OAAA,MAAA;AACX;AAEO,SAAS,iBAAiB,OAAqD,EAAA;AAClF,EAAO,OAAA,OAAA;AACX;AAEO,SAAS,oBAAoB,OAA2D,EAAA;AAC3F,EAAO,OAAA,OAAA;AACX;;;ACnBA,IAAM,MAAM,OAAQ,CAAA,GAAA;AAEP,IAAA,MAAA,GAGT,CAAC,GAAA,EAAa,QAAsB,KAAA;AACpC,EAAQ,OAAA,GAAA,CAAI,GAAG,CAAK,IAAA,QAAA;AACxB;AAEO,IAAM,aAAa,MAAe;AACrC,EAAM,MAAA,OAAA,GAAU,OAAgB,SAAS,CAAA;AAEzC,EAAA,IAAI,YAAY,MAAW,EAAA;AACvB,IAAM,MAAA,IAAI,MAAM,wBAAwB,CAAA;AAAA;AAG5C,EAAO,OAAA,OAAA;AACX;AAEO,IAAM,qBAAqB,MAAuB;AACrD,EAAM,MAAA,eAAA,GAAkB,MAAO,CAAA,kBAAA,EAAoB,GAAG,CAAA;AAEtD,EAAA,OAAO,SAAS,eAAe,CAAA;AACnC;;;ACvBY,IAAA,OAAA,qBAAAA,QAAL,KAAA;AACH,EAAAA,SAAA,QAAS,CAAA,GAAA,QAAA;AACT,EAAAA,SAAA,UAAW,CAAA,GAAA,UAAA;AACX,EAAAA,SAAA,MAAO,CAAA,GAAA,MAAA;AACP,EAAAA,SAAA,SAAU,CAAA,GAAA,SAAA;AACV,EAAAA,SAAA,OAAQ,CAAA,GAAA,OAAA;AACR,EAAAA,SAAA,QAAS,CAAA,GAAA,QAAA;AAND,EAAAA,OAAAA,QAAAA;AAAA,CAAA,EAAA,OAAA,IAAA,EAAA;AASA,IAAA,IAAA,qBAAAC,KAAL,KAAA;AACH,EAAAA,MAAA,MAAO,CAAA,GAAA,MAAA;AACP,EAAAA,MAAA,aAAc,CAAA,GAAA,aAAA;AACd,EAAAA,MAAA,YAAa,CAAA,GAAA,YAAA;AAHL,EAAAA,OAAAA,KAAAA;AAAA,CAAA,EAAA,IAAA,IAAA,EAAA;AAMA,IAAA,OAAA,qBAAAC,QAAL,KAAA;AACH,EAAAA,SAAA,OAAQ,CAAA,GAAA,OAAA;AACR,EAAAA,SAAA,OAAQ,CAAA,GAAA,OAAA;AAFA,EAAAA,OAAAA,QAAAA;AAAA,CAAA,EAAA,OAAA,IAAA,EAAA;;;ACfC,IAAA,IAAA,GAAO,CAAC,IAAA,EAAM,KAAK","file":"index.js","sourcesContent":["import {ConfigDefinition} from \"@typing/config\";\nimport {BackgroundDefinition} from \"@typing/background\";\nimport {ContentScriptDefinition} from \"@typing/content\";\nimport {Plugin, PluginDefinition} from \"@typing/plugin\";\n\nexport function defineConfig(config: ConfigDefinition): ConfigDefinition {\n return config;\n}\n\nexport function definePlugin<T>(plugin: (options?: T) => Plugin): (options?: T) => Plugin;\nexport function definePlugin(plugin: Plugin): Plugin;\n\nexport function definePlugin<T>(plugin: PluginDefinition<T>): PluginDefinition<T> {\n return plugin;\n}\n\nexport function defineBackground(options: BackgroundDefinition): BackgroundDefinition {\n return options;\n}\n\nexport function defineContentScript(options: ContentScriptDefinition): ContentScriptDefinition {\n return options;\n}","import {Browser} from \"@typing/config\";\nimport {ManifestVersion} from \"@typing/manifest\";\n\nconst env = process.env;\n\nexport const getEnv: {\n <T extends string>(key: string): T | undefined;\n <T extends string, D>(key: string, defaults: D): T | D;\n} = (key: string, defaults?: string) => {\n return (env[key] ?? defaults) as any;\n};\n\nexport const getBrowser = (): Browser => {\n const browser = getEnv<Browser>('BROWSER');\n\n if (browser === undefined) {\n throw new Error('Browser is not defined');\n }\n\n return browser;\n}\n\nexport const getManifestVersion = (): ManifestVersion => {\n const manifestVersion = getEnv('MANIFEST_VERSION', '3');\n\n return parseInt(manifestVersion) as ManifestVersion;\n}","import {Plugin} from \"@typing/plugin\";\nimport {ManifestVersion} from \"@typing/manifest\";\n\nexport enum Browser {\n Chrome = 'chrome',\n Chromium = 'chromium',\n Edge = 'edge',\n Firefox = 'firefox',\n Opera = 'opera',\n Safari = 'safari',\n}\n\nexport enum Mode {\n None = 'none',\n Development = 'development',\n Production = 'production',\n}\n\nexport enum Command {\n Build = 'build',\n Watch = 'watch',\n}\n\nexport interface Config {\n debug: boolean;\n mode: Mode;\n app: string;\n browser: Browser;\n manifestVersion: ManifestVersion;\n inputDir: string;\n outputDir: string;\n srcDir: string;\n sharedDir: string;\n appsDir: string;\n jsDir: string;\n cssDir: string;\n assetsDir: string;\n htmlDir: string;\n plugins: Plugin[];\n analyze: boolean;\n configFile: string;\n mergeBackground: boolean;\n mergeContentScripts: boolean;\n concatContentScripts: boolean;\n}\n\nexport interface ConfigOptions {\n config: ReadonlyConfig;\n}\n\nexport type OptionalConfig = Partial<Config>;\nexport type UserConfig = Omit<OptionalConfig, 'configFile'>;\nexport type ReadonlyConfig = Readonly<Config>;\n\nexport type UserConfigCallback = (config: ReadonlyConfig) => UserConfig;\nexport type ConfigDefinition = UserConfigCallback | UserConfig;\n\n","export * from \"./core\";\nexport * from \"./types\";\n\nexport const some = [true, false];"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "adnbn",
3
- "version": "0.0.18",
3
+ "version": "0.0.19",
4
4
  "description": "Cross browser web extension framework with shared code base",
5
5
  "homepage": "https://github.com/addonbone/addonbone",
6
6
  "repository": {