adnbn 0.0.21 → 0.0.23

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.
@@ -1 +1 @@
1
- {"version":3,"sources":["../../node_modules/dotenv/package.json","../../node_modules/dotenv/lib/main.js","../../node_modules/tsconfig-paths/src/filesystem.ts","../../node_modules/tsconfig-paths/src/mapping-entry.ts","../../node_modules/tsconfig-paths/src/try-path.ts","../../node_modules/tsconfig-paths/src/match-path-sync.ts","../../node_modules/tsconfig-paths/src/match-path-async.ts","../../node_modules/json5/dist/index.mjs","../../node_modules/strip-bom/index.js","../../node_modules/tsconfig-paths/src/tsconfig-loader.ts","../../node_modules/tsconfig-paths/src/config-loader.ts","../../node_modules/minimist/index.js","../../node_modules/tsconfig-paths/src/register.ts","../../node_modules/tsconfig-paths/src/index.ts","../../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/parsers/entrypoint/utils/resolveImport.ts","../../src/types/config.ts","../../src/cli/parsers/entrypoint/resolvers/core.ts","../../src/cli/parsers/entrypoint/resolvers/index.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/webpack/plugins/WatchPlugin.ts","../../src/cli/webpack/merge.ts","../../src/cli/resolvers/webpack.ts","../../src/cli/builders/app/index.ts","../../package.json","../../src/cli/index.ts"],"names":["fs","path","version","parse","key","path2","physicalPathPattern","createMatchPath","name","token","c","buffer","stringify","stack","value","JSON5","existsSync","loadConfig","arg","i","target","result","key2","_a","_b","CustomizeRule","mergeWithCustomize","ret","k","v","webpack","ts","Browser","Mode","_c","_","persistent","background_default","m","VirtualModulesPlugin","dotenv","source","Compilation","compiler","TsconfigPathsPlugin","MiniCssExtractPlugin","cac","root"],"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","import * as fs from \"fs\";\n\n/**\n * Typing for the fields of package.json we care about\n */\nexport interface PackageJson {\n [key: string]: string | PackageJson;\n}\n\n/**\n * A function that json from a file\n */\nexport interface ReadJsonSync {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (packageJsonPath: string): any | undefined;\n}\n\nexport interface FileExistsSync {\n (name: string): boolean;\n}\n\nexport interface FileExistsAsync {\n (path: string, callback: (err?: Error, exists?: boolean) => void): void;\n}\n\nexport interface ReadJsonAsyncCallback {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (err?: Error, content?: any): void;\n}\n\nexport interface ReadJsonAsync {\n (path: string, callback: ReadJsonAsyncCallback): void;\n}\n\nexport function fileExistsSync(path: string): boolean {\n // If the file doesn't exist, avoid throwing an exception over the native barrier for every miss\n if (!fs.existsSync(path)) {\n return false;\n }\n try {\n const stats = fs.statSync(path);\n return stats.isFile();\n } catch (err) {\n // If error, assume file did not exist\n return false;\n }\n}\n\n/**\n * Reads package.json from disk\n *\n * @param file Path to package.json\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function readJsonFromDiskSync(packageJsonPath: string): any | undefined {\n if (!fs.existsSync(packageJsonPath)) {\n return undefined;\n }\n // eslint-disable-next-line @typescript-eslint/no-require-imports\n return require(packageJsonPath);\n}\n\nexport function readJsonFromDiskAsync(\n path: string,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n callback: (err?: Error, content?: any) => void\n): void {\n fs.readFile(path, \"utf8\", (err, result) => {\n // If error, assume file did not exist\n if (err || !result) {\n return callback();\n }\n const json = JSON.parse(result);\n return callback(undefined, json);\n });\n}\n\nexport function fileExistsAsync(\n path2: string,\n callback2: (err?: Error, exists?: boolean) => void\n): void {\n fs.stat(path2, (err: Error, stats: fs.Stats) => {\n if (err) {\n // If error assume file does not exist\n return callback2(undefined, false);\n }\n callback2(undefined, stats ? stats.isFile() : false);\n });\n}\n\nexport function removeExtension(path: string): string {\n return path.substring(0, path.lastIndexOf(\".\")) || path;\n}\n","import * as path from \"path\";\n\nexport interface MappingEntry {\n readonly pattern: string;\n readonly paths: ReadonlyArray<string>;\n}\n\nexport interface Paths {\n readonly [key: string]: ReadonlyArray<string>;\n}\n\n/**\n * Converts an absolute baseUrl and paths to an array of absolute mapping entries.\n * The array is sorted by longest prefix.\n * Having an array with entries allows us to keep a sorting order rather than\n * sort by keys each time we use the mappings.\n *\n * @param absoluteBaseUrl\n * @param paths\n * @param addMatchAll\n */\nexport function getAbsoluteMappingEntries(\n absoluteBaseUrl: string,\n paths: Paths,\n addMatchAll: boolean\n): ReadonlyArray<MappingEntry> {\n // Resolve all paths to absolute form once here, and sort them by\n // longest prefix once here, this saves time on each request later.\n // We need to put them in an array to preserve the sorting order.\n const sortedKeys = sortByLongestPrefix(Object.keys(paths));\n const absolutePaths: Array<MappingEntry> = [];\n for (const key of sortedKeys) {\n absolutePaths.push({\n pattern: key,\n paths: paths[key].map((pathToResolve) =>\n path.resolve(absoluteBaseUrl, pathToResolve)\n ),\n });\n }\n // If there is no match-all path specified in the paths section of tsconfig, then try to match\n // all paths relative to baseUrl, this is how typescript works.\n if (!paths[\"*\"] && addMatchAll) {\n absolutePaths.push({\n pattern: \"*\",\n paths: [`${absoluteBaseUrl.replace(/\\/$/, \"\")}/*`],\n });\n }\n\n return absolutePaths;\n}\n\n/**\n * Sort path patterns.\n * If a module name can be matched with multiple patterns then pattern with the longest prefix will be picked.\n */\nfunction sortByLongestPrefix(arr: Array<string>): Array<string> {\n return arr\n .concat()\n .sort((a: string, b: string) => getPrefixLength(b) - getPrefixLength(a));\n}\n\nfunction getPrefixLength(pattern: string): number {\n const prefixLength = pattern.indexOf(\"*\");\n return pattern.substr(0, prefixLength).length;\n}\n","import * as path from \"path\";\nimport { MappingEntry } from \"./mapping-entry\";\nimport { dirname } from \"path\";\nimport { removeExtension } from \"./filesystem\";\n\nexport interface TryPath {\n readonly type: \"file\" | \"extension\" | \"index\" | \"package\";\n readonly path: string;\n}\n\n/**\n * Builds a list of all physical paths to try by:\n * 1. Check for file named exactly as request.\n * 2. Check for files named as request ending in any of the extensions.\n * 3. Check for file specified in package.json's main property.\n * 4. Check for files named as request ending in \"index\" with any of the extensions.\n */\nexport function getPathsToTry(\n extensions: ReadonlyArray<string>,\n absolutePathMappings: ReadonlyArray<MappingEntry>,\n requestedModule: string\n): ReadonlyArray<TryPath> | undefined {\n if (!absolutePathMappings || !requestedModule || requestedModule[0] === \".\") {\n return undefined;\n }\n\n const pathsToTry: Array<TryPath> = [];\n for (const entry of absolutePathMappings) {\n const starMatch =\n entry.pattern === requestedModule\n ? \"\"\n : matchStar(entry.pattern, requestedModule);\n if (starMatch !== undefined) {\n for (const physicalPathPattern of entry.paths) {\n const physicalPath = physicalPathPattern.replace(\"*\", starMatch);\n pathsToTry.push({ type: \"file\", path: physicalPath });\n pathsToTry.push(\n ...extensions.map(\n (e) => ({ type: \"extension\", path: physicalPath + e } as TryPath)\n )\n );\n pathsToTry.push({\n type: \"package\",\n path: path.join(physicalPath, \"/package.json\"),\n });\n const indexPath = path.join(physicalPath, \"/index\");\n pathsToTry.push(\n ...extensions.map(\n (e) => ({ type: \"index\", path: indexPath + e } as TryPath)\n )\n );\n }\n }\n }\n return pathsToTry.length === 0 ? undefined : pathsToTry;\n}\n\n// Not sure why we don't just return the full found path?\nexport function getStrippedPath(tryPath: TryPath): string {\n return tryPath.type === \"index\"\n ? dirname(tryPath.path)\n : tryPath.type === \"file\"\n ? tryPath.path\n : tryPath.type === \"extension\"\n ? removeExtension(tryPath.path)\n : tryPath.type === \"package\"\n ? tryPath.path\n : exhaustiveTypeException(tryPath.type);\n}\n\nexport function exhaustiveTypeException(check: never): never {\n throw new Error(`Unknown type ${check}`);\n}\n\n/**\n * Matches pattern with a single star against search.\n * Star must match at least one character to be considered a match.\n *\n * @param patttern for example \"foo*\"\n * @param search for example \"fooawesomebar\"\n * @returns the part of search that * matches, or undefined if no match.\n */\nfunction matchStar(pattern: string, search: string): string | undefined {\n if (search.length < pattern.length) {\n return undefined;\n }\n if (pattern === \"*\") {\n return search;\n }\n const star = pattern.indexOf(\"*\");\n if (star === -1) {\n return undefined;\n }\n const part1 = pattern.substring(0, star);\n const part2 = pattern.substring(star + 1);\n if (search.substr(0, star) !== part1) {\n return undefined;\n }\n if (search.substr(search.length - part2.length) !== part2) {\n return undefined;\n }\n return search.substr(star, search.length - part2.length);\n}\n","import * as path from \"path\";\nimport * as Filesystem from \"./filesystem\";\nimport * as MappingEntry from \"./mapping-entry\";\nimport * as TryPath from \"./try-path\";\n\n/**\n * Function that can match a path\n */\nexport interface MatchPath {\n (\n requestedModule: string,\n readJson?: Filesystem.ReadJsonSync,\n fileExists?: (name: string) => boolean,\n extensions?: ReadonlyArray<string>\n ): string | undefined;\n}\n\n/**\n * Creates a function that can resolve paths according to tsconfig paths property.\n *\n * @param absoluteBaseUrl Absolute version of baseUrl as specified in tsconfig.\n * @param paths The paths as specified in tsconfig.\n * @param mainFields A list of package.json field names to try when resolving module files. Select a nested field using an array of field names.\n * @param addMatchAll Add a match-all \"*\" rule if none is present\n * @returns a function that can resolve paths.\n */\nexport function createMatchPath(\n absoluteBaseUrl: string,\n paths: { [key: string]: Array<string> },\n mainFields: (string | string[])[] = [\"main\"],\n addMatchAll: boolean = true\n): MatchPath {\n const absolutePaths = MappingEntry.getAbsoluteMappingEntries(\n absoluteBaseUrl,\n paths,\n addMatchAll\n );\n\n return (\n requestedModule: string,\n readJson?: Filesystem.ReadJsonSync,\n fileExists?: Filesystem.FileExistsSync,\n extensions?: Array<string>\n ) =>\n matchFromAbsolutePaths(\n absolutePaths,\n requestedModule,\n readJson,\n fileExists,\n extensions,\n mainFields\n );\n}\n\n/**\n * Finds a path from tsconfig that matches a module load request.\n *\n * @param absolutePathMappings The paths to try as specified in tsconfig but resolved to absolute form.\n * @param requestedModule The required module name.\n * @param readJson Function that can read json from a path (useful for testing).\n * @param fileExists Function that checks for existence of a file at a path (useful for testing).\n * @param extensions File extensions to probe for (useful for testing).\n * @param mainFields A list of package.json field names to try when resolving module files. Select a nested field using an array of field names.\n * @returns the found path, or undefined if no path was found.\n */\nexport function matchFromAbsolutePaths(\n absolutePathMappings: ReadonlyArray<MappingEntry.MappingEntry>,\n requestedModule: string,\n readJson: Filesystem.ReadJsonSync = Filesystem.readJsonFromDiskSync,\n fileExists: Filesystem.FileExistsSync = Filesystem.fileExistsSync,\n extensions: Array<string> = Object.keys(require.extensions),\n mainFields: (string | string[])[] = [\"main\"]\n): string | undefined {\n const tryPaths = TryPath.getPathsToTry(\n extensions,\n absolutePathMappings,\n requestedModule\n );\n\n if (!tryPaths) {\n return undefined;\n }\n\n return findFirstExistingPath(tryPaths, readJson, fileExists, mainFields);\n}\n\nfunction findFirstExistingMainFieldMappedFile(\n packageJson: Filesystem.PackageJson,\n mainFields: (string | string[])[],\n packageJsonPath: string,\n fileExists: Filesystem.FileExistsSync\n): string | undefined {\n for (let index = 0; index < mainFields.length; index++) {\n const mainFieldSelector = mainFields[index];\n const candidateMapping =\n typeof mainFieldSelector === \"string\"\n ? packageJson[mainFieldSelector]\n : mainFieldSelector.reduce((obj, key) => obj[key], packageJson);\n if (candidateMapping && typeof candidateMapping === \"string\") {\n const candidateFilePath = path.join(\n path.dirname(packageJsonPath),\n candidateMapping\n );\n if (fileExists(candidateFilePath)) {\n return candidateFilePath;\n }\n }\n }\n\n return undefined;\n}\n\nfunction findFirstExistingPath(\n tryPaths: ReadonlyArray<TryPath.TryPath>,\n readJson: Filesystem.ReadJsonSync = Filesystem.readJsonFromDiskSync,\n fileExists: Filesystem.FileExistsSync,\n mainFields: (string | string[])[] = [\"main\"]\n): string | undefined {\n for (const tryPath of tryPaths) {\n if (\n tryPath.type === \"file\" ||\n tryPath.type === \"extension\" ||\n tryPath.type === \"index\"\n ) {\n if (fileExists(tryPath.path)) {\n return TryPath.getStrippedPath(tryPath);\n }\n } else if (tryPath.type === \"package\") {\n const packageJson: Filesystem.PackageJson = readJson(tryPath.path);\n if (packageJson) {\n const mainFieldMappedFile = findFirstExistingMainFieldMappedFile(\n packageJson,\n mainFields,\n tryPath.path,\n fileExists\n );\n if (mainFieldMappedFile) {\n return mainFieldMappedFile;\n }\n }\n } else {\n TryPath.exhaustiveTypeException(tryPath.type);\n }\n }\n return undefined;\n}\n","import * as path from \"path\";\nimport * as TryPath from \"./try-path\";\nimport * as MappingEntry from \"./mapping-entry\";\nimport * as Filesystem from \"./filesystem\";\n\n/**\n * Function that can match a path async\n */\nexport interface MatchPathAsync {\n (\n requestedModule: string,\n readJson: Filesystem.ReadJsonAsync | undefined,\n fileExists: Filesystem.FileExistsAsync | undefined,\n extensions: ReadonlyArray<string> | undefined,\n callback: MatchPathAsyncCallback\n ): void;\n}\n\nexport interface MatchPathAsyncCallback {\n // eslint-disable-next-line no-shadow\n (err?: Error, path?: string): void;\n}\n\n/**\n * See the sync version for docs.\n */\nexport function createMatchPathAsync(\n absoluteBaseUrl: string,\n paths: { [key: string]: Array<string> },\n mainFields: (string | string[])[] = [\"main\"],\n addMatchAll: boolean = true\n): MatchPathAsync {\n const absolutePaths = MappingEntry.getAbsoluteMappingEntries(\n absoluteBaseUrl,\n paths,\n addMatchAll\n );\n\n return (\n requestedModule: string,\n readJson: Filesystem.ReadJsonAsync | undefined,\n fileExists: Filesystem.FileExistsAsync | undefined,\n extensions: ReadonlyArray<string> | undefined,\n callback: MatchPathAsyncCallback\n ) =>\n matchFromAbsolutePathsAsync(\n absolutePaths,\n requestedModule,\n readJson,\n fileExists,\n extensions,\n callback,\n mainFields\n );\n}\n\n/**\n * See the sync version for docs.\n */\nexport function matchFromAbsolutePathsAsync(\n absolutePathMappings: ReadonlyArray<MappingEntry.MappingEntry>,\n requestedModule: string,\n readJson: Filesystem.ReadJsonAsync = Filesystem.readJsonFromDiskAsync,\n fileExists: Filesystem.FileExistsAsync = Filesystem.fileExistsAsync,\n extensions: ReadonlyArray<string> = Object.keys(require.extensions),\n callback: MatchPathAsyncCallback,\n mainFields: (string | string[])[] = [\"main\"]\n): void {\n const tryPaths = TryPath.getPathsToTry(\n extensions,\n absolutePathMappings,\n requestedModule\n );\n\n if (!tryPaths) {\n return callback();\n }\n\n findFirstExistingPath(\n tryPaths,\n readJson,\n fileExists,\n callback,\n 0,\n mainFields\n );\n}\n\nfunction findFirstExistingMainFieldMappedFile(\n packageJson: Filesystem.PackageJson,\n mainFields: (string | string[])[],\n packageJsonPath: string,\n fileExistsAsync: Filesystem.FileExistsAsync,\n doneCallback: (err?: Error, filepath?: string) => void,\n index: number = 0\n): void {\n if (index >= mainFields.length) {\n return doneCallback(undefined, undefined);\n }\n\n const tryNext = (): void =>\n findFirstExistingMainFieldMappedFile(\n packageJson,\n mainFields,\n packageJsonPath,\n fileExistsAsync,\n doneCallback,\n index + 1\n );\n\n const mainFieldSelector = mainFields[index];\n const mainFieldMapping =\n typeof mainFieldSelector === \"string\"\n ? packageJson[mainFieldSelector]\n : mainFieldSelector.reduce((obj, key) => obj[key], packageJson);\n if (typeof mainFieldMapping !== \"string\") {\n // Skip mappings that are not pointers to replacement files\n return tryNext();\n }\n\n const mappedFilePath = path.join(\n path.dirname(packageJsonPath),\n mainFieldMapping\n );\n fileExistsAsync(mappedFilePath, (err?: Error, exists?: boolean) => {\n if (err) {\n return doneCallback(err);\n }\n if (exists) {\n return doneCallback(undefined, mappedFilePath);\n }\n return tryNext();\n });\n}\n\n// Recursive loop to probe for physical files\nfunction findFirstExistingPath(\n tryPaths: ReadonlyArray<TryPath.TryPath>,\n readJson: Filesystem.ReadJsonAsync,\n fileExists: Filesystem.FileExistsAsync,\n doneCallback: MatchPathAsyncCallback,\n index: number = 0,\n mainFields: (string | string[])[] = [\"main\"]\n): void {\n const tryPath = tryPaths[index];\n if (\n tryPath.type === \"file\" ||\n tryPath.type === \"extension\" ||\n tryPath.type === \"index\"\n ) {\n fileExists(tryPath.path, (err: Error, exists: boolean) => {\n if (err) {\n return doneCallback(err);\n }\n if (exists) {\n return doneCallback(undefined, TryPath.getStrippedPath(tryPath));\n }\n if (index === tryPaths.length - 1) {\n return doneCallback();\n }\n // Continue with the next path\n return findFirstExistingPath(\n tryPaths,\n readJson,\n fileExists,\n doneCallback,\n index + 1,\n mainFields\n );\n });\n } else if (tryPath.type === \"package\") {\n readJson(tryPath.path, (err, packageJson) => {\n if (err) {\n return doneCallback(err);\n }\n if (packageJson) {\n return findFirstExistingMainFieldMappedFile(\n packageJson,\n mainFields,\n tryPath.path,\n fileExists,\n (mainFieldErr?: Error, mainFieldMappedFile?: string) => {\n if (mainFieldErr) {\n return doneCallback(mainFieldErr);\n }\n if (mainFieldMappedFile) {\n return doneCallback(undefined, mainFieldMappedFile);\n }\n\n // No field in package json was a valid option. Continue with the next path.\n return findFirstExistingPath(\n tryPaths,\n readJson,\n fileExists,\n doneCallback,\n index + 1,\n mainFields\n );\n }\n );\n }\n\n // This is async code, we need to return unconditionally, otherwise the code still falls\n // through and keeps recursing. While this might work in general, libraries that use neo-async\n // like Webpack will actually not allow you to call the same callback twice.\n //\n // An example of where this caused issues:\n // https://github.com/dividab/tsconfig-paths-webpack-plugin/issues/11\n //\n // Continue with the next path\n return findFirstExistingPath(\n tryPaths,\n readJson,\n fileExists,\n doneCallback,\n index + 1,\n mainFields\n );\n });\n } else {\n TryPath.exhaustiveTypeException(tryPath.type);\n }\n}\n","// This is a generated file. Do not edit.\nvar Space_Separator = /[\\u1680\\u2000-\\u200A\\u202F\\u205F\\u3000]/;\nvar ID_Start = /[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086A\\u08A0-\\u08B4\\u08B6-\\u08BD\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u09FC\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C60\\u0C61\\u0C80\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D54-\\u0D56\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u1884\\u1887-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1C80-\\u1C88\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312E\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FEA\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7AE\\uA7B0-\\uA7B7\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB65\\uAB70-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDD40-\\uDD74\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDF00-\\uDF1F\\uDF2D-\\uDF4A\\uDF50-\\uDF75\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF\\uDFD1-\\uDFD5]|\\uD801[\\uDC00-\\uDC9D\\uDCB0-\\uDCD3\\uDCD8-\\uDCFB\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00\\uDE10-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE33\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE4\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2]|\\uD804[\\uDC03-\\uDC37\\uDC83-\\uDCAF\\uDCD0-\\uDCE8\\uDD03-\\uDD26\\uDD50-\\uDD72\\uDD76\\uDD83-\\uDDB2\\uDDC1-\\uDDC4\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE2B\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEDE\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3D\\uDF50\\uDF5D-\\uDF61]|\\uD805[\\uDC00-\\uDC34\\uDC47-\\uDC4A\\uDC80-\\uDCAF\\uDCC4\\uDCC5\\uDCC7\\uDD80-\\uDDAE\\uDDD8-\\uDDDB\\uDE00-\\uDE2F\\uDE44\\uDE80-\\uDEAA\\uDF00-\\uDF19]|\\uD806[\\uDCA0-\\uDCDF\\uDCFF\\uDE00\\uDE0B-\\uDE32\\uDE3A\\uDE50\\uDE5C-\\uDE83\\uDE86-\\uDE89\\uDEC0-\\uDEF8]|\\uD807[\\uDC00-\\uDC08\\uDC0A-\\uDC2E\\uDC40\\uDC72-\\uDC8F\\uDD00-\\uDD06\\uDD08\\uDD09\\uDD0B-\\uDD30\\uDD46]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC00-\\uDC6E\\uDC80-\\uDD43]|[\\uD80C\\uD81C-\\uD820\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872\\uD874-\\uD879][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDED0-\\uDEED\\uDF00-\\uDF2F\\uDF40-\\uDF43\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDF00-\\uDF44\\uDF50\\uDF93-\\uDF9F\\uDFE0\\uDFE1]|\\uD821[\\uDC00-\\uDFEC]|\\uD822[\\uDC00-\\uDEF2]|\\uD82C[\\uDC00-\\uDD1E\\uDD70-\\uDEFB]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB]|\\uD83A[\\uDC00-\\uDCC4\\uDD00-\\uDD43]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD869[\\uDC00-\\uDED6\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF34\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1\\uDEB0-\\uDFFF]|\\uD87A[\\uDC00-\\uDFE0]|\\uD87E[\\uDC00-\\uDE1D]/;\nvar ID_Continue = /[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0300-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u0483-\\u0487\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0610-\\u061A\\u0620-\\u0669\\u066E-\\u06D3\\u06D5-\\u06DC\\u06DF-\\u06E8\\u06EA-\\u06FC\\u06FF\\u0710-\\u074A\\u074D-\\u07B1\\u07C0-\\u07F5\\u07FA\\u0800-\\u082D\\u0840-\\u085B\\u0860-\\u086A\\u08A0-\\u08B4\\u08B6-\\u08BD\\u08D4-\\u08E1\\u08E3-\\u0963\\u0966-\\u096F\\u0971-\\u0983\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BC-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CE\\u09D7\\u09DC\\u09DD\\u09DF-\\u09E3\\u09E6-\\u09F1\\u09FC\\u0A01-\\u0A03\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A75\\u0A81-\\u0A83\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABC-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AD0\\u0AE0-\\u0AE3\\u0AE6-\\u0AEF\\u0AF9-\\u0AFF\\u0B01-\\u0B03\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3C-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B5C\\u0B5D\\u0B5F-\\u0B63\\u0B66-\\u0B6F\\u0B71\\u0B82\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD0\\u0BD7\\u0BE6-\\u0BEF\\u0C00-\\u0C03\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C58-\\u0C5A\\u0C60-\\u0C63\\u0C66-\\u0C6F\\u0C80-\\u0C83\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBC-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CDE\\u0CE0-\\u0CE3\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D00-\\u0D03\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4E\\u0D54-\\u0D57\\u0D5F-\\u0D63\\u0D66-\\u0D6F\\u0D7A-\\u0D7F\\u0D82\\u0D83\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2\\u0DF3\\u0E01-\\u0E3A\\u0E40-\\u0E4E\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB9\\u0EBB-\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F18\\u0F19\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F39\\u0F3E-\\u0F47\\u0F49-\\u0F6C\\u0F71-\\u0F84\\u0F86-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u1000-\\u1049\\u1050-\\u109D\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u135D-\\u135F\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176C\\u176E-\\u1770\\u1772\\u1773\\u1780-\\u17D3\\u17D7\\u17DC\\u17DD\\u17E0-\\u17E9\\u180B-\\u180D\\u1810-\\u1819\\u1820-\\u1877\\u1880-\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1920-\\u192B\\u1930-\\u193B\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19D9\\u1A00-\\u1A1B\\u1A20-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1AB0-\\u1ABD\\u1B00-\\u1B4B\\u1B50-\\u1B59\\u1B6B-\\u1B73\\u1B80-\\u1BF3\\u1C00-\\u1C37\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1C80-\\u1C88\\u1CD0-\\u1CD2\\u1CD4-\\u1CF9\\u1D00-\\u1DF9\\u1DFB-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u203F\\u2040\\u2054\\u2071\\u207F\\u2090-\\u209C\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D7F-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2DE0-\\u2DFF\\u2E2F\\u3005-\\u3007\\u3021-\\u302F\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u3099\\u309A\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312E\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FEA\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66F\\uA674-\\uA67D\\uA67F-\\uA6F1\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7AE\\uA7B0-\\uA7B7\\uA7F7-\\uA827\\uA840-\\uA873\\uA880-\\uA8C5\\uA8D0-\\uA8D9\\uA8E0-\\uA8F7\\uA8FB\\uA8FD\\uA900-\\uA92D\\uA930-\\uA953\\uA960-\\uA97C\\uA980-\\uA9C0\\uA9CF-\\uA9D9\\uA9E0-\\uA9FE\\uAA00-\\uAA36\\uAA40-\\uAA4D\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A-\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEF\\uAAF2-\\uAAF6\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB65\\uAB70-\\uABEA\\uABEC\\uABED\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF3F\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDD40-\\uDD74\\uDDFD\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDEE0\\uDF00-\\uDF1F\\uDF2D-\\uDF4A\\uDF50-\\uDF7A\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF\\uDFD1-\\uDFD5]|\\uD801[\\uDC00-\\uDC9D\\uDCA0-\\uDCA9\\uDCB0-\\uDCD3\\uDCD8-\\uDCFB\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE33\\uDE38-\\uDE3A\\uDE3F\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE6\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2]|\\uD804[\\uDC00-\\uDC46\\uDC66-\\uDC6F\\uDC7F-\\uDCBA\\uDCD0-\\uDCE8\\uDCF0-\\uDCF9\\uDD00-\\uDD34\\uDD36-\\uDD3F\\uDD50-\\uDD73\\uDD76\\uDD80-\\uDDC4\\uDDCA-\\uDDCC\\uDDD0-\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE37\\uDE3E\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEEA\\uDEF0-\\uDEF9\\uDF00-\\uDF03\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3C-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF50\\uDF57\\uDF5D-\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDC00-\\uDC4A\\uDC50-\\uDC59\\uDC80-\\uDCC5\\uDCC7\\uDCD0-\\uDCD9\\uDD80-\\uDDB5\\uDDB8-\\uDDC0\\uDDD8-\\uDDDD\\uDE00-\\uDE40\\uDE44\\uDE50-\\uDE59\\uDE80-\\uDEB7\\uDEC0-\\uDEC9\\uDF00-\\uDF19\\uDF1D-\\uDF2B\\uDF30-\\uDF39]|\\uD806[\\uDCA0-\\uDCE9\\uDCFF\\uDE00-\\uDE3E\\uDE47\\uDE50-\\uDE83\\uDE86-\\uDE99\\uDEC0-\\uDEF8]|\\uD807[\\uDC00-\\uDC08\\uDC0A-\\uDC36\\uDC38-\\uDC40\\uDC50-\\uDC59\\uDC72-\\uDC8F\\uDC92-\\uDCA7\\uDCA9-\\uDCB6\\uDD00-\\uDD06\\uDD08\\uDD09\\uDD0B-\\uDD36\\uDD3A\\uDD3C\\uDD3D\\uDD3F-\\uDD47\\uDD50-\\uDD59]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC00-\\uDC6E\\uDC80-\\uDD43]|[\\uD80C\\uD81C-\\uD820\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872\\uD874-\\uD879][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDE60-\\uDE69\\uDED0-\\uDEED\\uDEF0-\\uDEF4\\uDF00-\\uDF36\\uDF40-\\uDF43\\uDF50-\\uDF59\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDF00-\\uDF44\\uDF50-\\uDF7E\\uDF8F-\\uDF9F\\uDFE0\\uDFE1]|\\uD821[\\uDC00-\\uDFEC]|\\uD822[\\uDC00-\\uDEF2]|\\uD82C[\\uDC00-\\uDD1E\\uDD70-\\uDEFB]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99\\uDC9D\\uDC9E]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD72\\uDD7B-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB\\uDFCE-\\uDFFF]|\\uD836[\\uDE00-\\uDE36\\uDE3B-\\uDE6C\\uDE75\\uDE84\\uDE9B-\\uDE9F\\uDEA1-\\uDEAF]|\\uD838[\\uDC00-\\uDC06\\uDC08-\\uDC18\\uDC1B-\\uDC21\\uDC23\\uDC24\\uDC26-\\uDC2A]|\\uD83A[\\uDC00-\\uDCC4\\uDCD0-\\uDCD6\\uDD00-\\uDD4A\\uDD50-\\uDD59]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD869[\\uDC00-\\uDED6\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF34\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1\\uDEB0-\\uDFFF]|\\uD87A[\\uDC00-\\uDFE0]|\\uD87E[\\uDC00-\\uDE1D]|\\uDB40[\\uDD00-\\uDDEF]/;\n\nvar unicode = {\n\tSpace_Separator: Space_Separator,\n\tID_Start: ID_Start,\n\tID_Continue: ID_Continue\n};\n\nvar util = {\n isSpaceSeparator (c) {\n return typeof c === 'string' && unicode.Space_Separator.test(c)\n },\n\n isIdStartChar (c) {\n return typeof c === 'string' && (\n (c >= 'a' && c <= 'z') ||\n (c >= 'A' && c <= 'Z') ||\n (c === '$') || (c === '_') ||\n unicode.ID_Start.test(c)\n )\n },\n\n isIdContinueChar (c) {\n return typeof c === 'string' && (\n (c >= 'a' && c <= 'z') ||\n (c >= 'A' && c <= 'Z') ||\n (c >= '0' && c <= '9') ||\n (c === '$') || (c === '_') ||\n (c === '\\u200C') || (c === '\\u200D') ||\n unicode.ID_Continue.test(c)\n )\n },\n\n isDigit (c) {\n return typeof c === 'string' && /[0-9]/.test(c)\n },\n\n isHexDigit (c) {\n return typeof c === 'string' && /[0-9A-Fa-f]/.test(c)\n },\n};\n\nlet source;\nlet parseState;\nlet stack;\nlet pos;\nlet line;\nlet column;\nlet token;\nlet key;\nlet root;\n\nvar parse = function parse (text, reviver) {\n source = String(text);\n parseState = 'start';\n stack = [];\n pos = 0;\n line = 1;\n column = 0;\n token = undefined;\n key = undefined;\n root = undefined;\n\n do {\n token = lex();\n\n // This code is unreachable.\n // if (!parseStates[parseState]) {\n // throw invalidParseState()\n // }\n\n parseStates[parseState]();\n } while (token.type !== 'eof')\n\n if (typeof reviver === 'function') {\n return internalize({'': root}, '', reviver)\n }\n\n return root\n};\n\nfunction internalize (holder, name, reviver) {\n const value = holder[name];\n if (value != null && typeof value === 'object') {\n if (Array.isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n const key = String(i);\n const replacement = internalize(value, key, reviver);\n if (replacement === undefined) {\n delete value[key];\n } else {\n Object.defineProperty(value, key, {\n value: replacement,\n writable: true,\n enumerable: true,\n configurable: true,\n });\n }\n }\n } else {\n for (const key in value) {\n const replacement = internalize(value, key, reviver);\n if (replacement === undefined) {\n delete value[key];\n } else {\n Object.defineProperty(value, key, {\n value: replacement,\n writable: true,\n enumerable: true,\n configurable: true,\n });\n }\n }\n }\n }\n\n return reviver.call(holder, name, value)\n}\n\nlet lexState;\nlet buffer;\nlet doubleQuote;\nlet sign;\nlet c;\n\nfunction lex () {\n lexState = 'default';\n buffer = '';\n doubleQuote = false;\n sign = 1;\n\n for (;;) {\n c = peek();\n\n // This code is unreachable.\n // if (!lexStates[lexState]) {\n // throw invalidLexState(lexState)\n // }\n\n const token = lexStates[lexState]();\n if (token) {\n return token\n }\n }\n}\n\nfunction peek () {\n if (source[pos]) {\n return String.fromCodePoint(source.codePointAt(pos))\n }\n}\n\nfunction read () {\n const c = peek();\n\n if (c === '\\n') {\n line++;\n column = 0;\n } else if (c) {\n column += c.length;\n } else {\n column++;\n }\n\n if (c) {\n pos += c.length;\n }\n\n return c\n}\n\nconst lexStates = {\n default () {\n switch (c) {\n case '\\t':\n case '\\v':\n case '\\f':\n case ' ':\n case '\\u00A0':\n case '\\uFEFF':\n case '\\n':\n case '\\r':\n case '\\u2028':\n case '\\u2029':\n read();\n return\n\n case '/':\n read();\n lexState = 'comment';\n return\n\n case undefined:\n read();\n return newToken('eof')\n }\n\n if (util.isSpaceSeparator(c)) {\n read();\n return\n }\n\n // This code is unreachable.\n // if (!lexStates[parseState]) {\n // throw invalidLexState(parseState)\n // }\n\n return lexStates[parseState]()\n },\n\n comment () {\n switch (c) {\n case '*':\n read();\n lexState = 'multiLineComment';\n return\n\n case '/':\n read();\n lexState = 'singleLineComment';\n return\n }\n\n throw invalidChar(read())\n },\n\n multiLineComment () {\n switch (c) {\n case '*':\n read();\n lexState = 'multiLineCommentAsterisk';\n return\n\n case undefined:\n throw invalidChar(read())\n }\n\n read();\n },\n\n multiLineCommentAsterisk () {\n switch (c) {\n case '*':\n read();\n return\n\n case '/':\n read();\n lexState = 'default';\n return\n\n case undefined:\n throw invalidChar(read())\n }\n\n read();\n lexState = 'multiLineComment';\n },\n\n singleLineComment () {\n switch (c) {\n case '\\n':\n case '\\r':\n case '\\u2028':\n case '\\u2029':\n read();\n lexState = 'default';\n return\n\n case undefined:\n read();\n return newToken('eof')\n }\n\n read();\n },\n\n value () {\n switch (c) {\n case '{':\n case '[':\n return newToken('punctuator', read())\n\n case 'n':\n read();\n literal('ull');\n return newToken('null', null)\n\n case 't':\n read();\n literal('rue');\n return newToken('boolean', true)\n\n case 'f':\n read();\n literal('alse');\n return newToken('boolean', false)\n\n case '-':\n case '+':\n if (read() === '-') {\n sign = -1;\n }\n\n lexState = 'sign';\n return\n\n case '.':\n buffer = read();\n lexState = 'decimalPointLeading';\n return\n\n case '0':\n buffer = read();\n lexState = 'zero';\n return\n\n case '1':\n case '2':\n case '3':\n case '4':\n case '5':\n case '6':\n case '7':\n case '8':\n case '9':\n buffer = read();\n lexState = 'decimalInteger';\n return\n\n case 'I':\n read();\n literal('nfinity');\n return newToken('numeric', Infinity)\n\n case 'N':\n read();\n literal('aN');\n return newToken('numeric', NaN)\n\n case '\"':\n case \"'\":\n doubleQuote = (read() === '\"');\n buffer = '';\n lexState = 'string';\n return\n }\n\n throw invalidChar(read())\n },\n\n identifierNameStartEscape () {\n if (c !== 'u') {\n throw invalidChar(read())\n }\n\n read();\n const u = unicodeEscape();\n switch (u) {\n case '$':\n case '_':\n break\n\n default:\n if (!util.isIdStartChar(u)) {\n throw invalidIdentifier()\n }\n\n break\n }\n\n buffer += u;\n lexState = 'identifierName';\n },\n\n identifierName () {\n switch (c) {\n case '$':\n case '_':\n case '\\u200C':\n case '\\u200D':\n buffer += read();\n return\n\n case '\\\\':\n read();\n lexState = 'identifierNameEscape';\n return\n }\n\n if (util.isIdContinueChar(c)) {\n buffer += read();\n return\n }\n\n return newToken('identifier', buffer)\n },\n\n identifierNameEscape () {\n if (c !== 'u') {\n throw invalidChar(read())\n }\n\n read();\n const u = unicodeEscape();\n switch (u) {\n case '$':\n case '_':\n case '\\u200C':\n case '\\u200D':\n break\n\n default:\n if (!util.isIdContinueChar(u)) {\n throw invalidIdentifier()\n }\n\n break\n }\n\n buffer += u;\n lexState = 'identifierName';\n },\n\n sign () {\n switch (c) {\n case '.':\n buffer = read();\n lexState = 'decimalPointLeading';\n return\n\n case '0':\n buffer = read();\n lexState = 'zero';\n return\n\n case '1':\n case '2':\n case '3':\n case '4':\n case '5':\n case '6':\n case '7':\n case '8':\n case '9':\n buffer = read();\n lexState = 'decimalInteger';\n return\n\n case 'I':\n read();\n literal('nfinity');\n return newToken('numeric', sign * Infinity)\n\n case 'N':\n read();\n literal('aN');\n return newToken('numeric', NaN)\n }\n\n throw invalidChar(read())\n },\n\n zero () {\n switch (c) {\n case '.':\n buffer += read();\n lexState = 'decimalPoint';\n return\n\n case 'e':\n case 'E':\n buffer += read();\n lexState = 'decimalExponent';\n return\n\n case 'x':\n case 'X':\n buffer += read();\n lexState = 'hexadecimal';\n return\n }\n\n return newToken('numeric', sign * 0)\n },\n\n decimalInteger () {\n switch (c) {\n case '.':\n buffer += read();\n lexState = 'decimalPoint';\n return\n\n case 'e':\n case 'E':\n buffer += read();\n lexState = 'decimalExponent';\n return\n }\n\n if (util.isDigit(c)) {\n buffer += read();\n return\n }\n\n return newToken('numeric', sign * Number(buffer))\n },\n\n decimalPointLeading () {\n if (util.isDigit(c)) {\n buffer += read();\n lexState = 'decimalFraction';\n return\n }\n\n throw invalidChar(read())\n },\n\n decimalPoint () {\n switch (c) {\n case 'e':\n case 'E':\n buffer += read();\n lexState = 'decimalExponent';\n return\n }\n\n if (util.isDigit(c)) {\n buffer += read();\n lexState = 'decimalFraction';\n return\n }\n\n return newToken('numeric', sign * Number(buffer))\n },\n\n decimalFraction () {\n switch (c) {\n case 'e':\n case 'E':\n buffer += read();\n lexState = 'decimalExponent';\n return\n }\n\n if (util.isDigit(c)) {\n buffer += read();\n return\n }\n\n return newToken('numeric', sign * Number(buffer))\n },\n\n decimalExponent () {\n switch (c) {\n case '+':\n case '-':\n buffer += read();\n lexState = 'decimalExponentSign';\n return\n }\n\n if (util.isDigit(c)) {\n buffer += read();\n lexState = 'decimalExponentInteger';\n return\n }\n\n throw invalidChar(read())\n },\n\n decimalExponentSign () {\n if (util.isDigit(c)) {\n buffer += read();\n lexState = 'decimalExponentInteger';\n return\n }\n\n throw invalidChar(read())\n },\n\n decimalExponentInteger () {\n if (util.isDigit(c)) {\n buffer += read();\n return\n }\n\n return newToken('numeric', sign * Number(buffer))\n },\n\n hexadecimal () {\n if (util.isHexDigit(c)) {\n buffer += read();\n lexState = 'hexadecimalInteger';\n return\n }\n\n throw invalidChar(read())\n },\n\n hexadecimalInteger () {\n if (util.isHexDigit(c)) {\n buffer += read();\n return\n }\n\n return newToken('numeric', sign * Number(buffer))\n },\n\n string () {\n switch (c) {\n case '\\\\':\n read();\n buffer += escape();\n return\n\n case '\"':\n if (doubleQuote) {\n read();\n return newToken('string', buffer)\n }\n\n buffer += read();\n return\n\n case \"'\":\n if (!doubleQuote) {\n read();\n return newToken('string', buffer)\n }\n\n buffer += read();\n return\n\n case '\\n':\n case '\\r':\n throw invalidChar(read())\n\n case '\\u2028':\n case '\\u2029':\n separatorChar(c);\n break\n\n case undefined:\n throw invalidChar(read())\n }\n\n buffer += read();\n },\n\n start () {\n switch (c) {\n case '{':\n case '[':\n return newToken('punctuator', read())\n\n // This code is unreachable since the default lexState handles eof.\n // case undefined:\n // return newToken('eof')\n }\n\n lexState = 'value';\n },\n\n beforePropertyName () {\n switch (c) {\n case '$':\n case '_':\n buffer = read();\n lexState = 'identifierName';\n return\n\n case '\\\\':\n read();\n lexState = 'identifierNameStartEscape';\n return\n\n case '}':\n return newToken('punctuator', read())\n\n case '\"':\n case \"'\":\n doubleQuote = (read() === '\"');\n lexState = 'string';\n return\n }\n\n if (util.isIdStartChar(c)) {\n buffer += read();\n lexState = 'identifierName';\n return\n }\n\n throw invalidChar(read())\n },\n\n afterPropertyName () {\n if (c === ':') {\n return newToken('punctuator', read())\n }\n\n throw invalidChar(read())\n },\n\n beforePropertyValue () {\n lexState = 'value';\n },\n\n afterPropertyValue () {\n switch (c) {\n case ',':\n case '}':\n return newToken('punctuator', read())\n }\n\n throw invalidChar(read())\n },\n\n beforeArrayValue () {\n if (c === ']') {\n return newToken('punctuator', read())\n }\n\n lexState = 'value';\n },\n\n afterArrayValue () {\n switch (c) {\n case ',':\n case ']':\n return newToken('punctuator', read())\n }\n\n throw invalidChar(read())\n },\n\n end () {\n // This code is unreachable since it's handled by the default lexState.\n // if (c === undefined) {\n // read()\n // return newToken('eof')\n // }\n\n throw invalidChar(read())\n },\n};\n\nfunction newToken (type, value) {\n return {\n type,\n value,\n line,\n column,\n }\n}\n\nfunction literal (s) {\n for (const c of s) {\n const p = peek();\n\n if (p !== c) {\n throw invalidChar(read())\n }\n\n read();\n }\n}\n\nfunction escape () {\n const c = peek();\n switch (c) {\n case 'b':\n read();\n return '\\b'\n\n case 'f':\n read();\n return '\\f'\n\n case 'n':\n read();\n return '\\n'\n\n case 'r':\n read();\n return '\\r'\n\n case 't':\n read();\n return '\\t'\n\n case 'v':\n read();\n return '\\v'\n\n case '0':\n read();\n if (util.isDigit(peek())) {\n throw invalidChar(read())\n }\n\n return '\\0'\n\n case 'x':\n read();\n return hexEscape()\n\n case 'u':\n read();\n return unicodeEscape()\n\n case '\\n':\n case '\\u2028':\n case '\\u2029':\n read();\n return ''\n\n case '\\r':\n read();\n if (peek() === '\\n') {\n read();\n }\n\n return ''\n\n case '1':\n case '2':\n case '3':\n case '4':\n case '5':\n case '6':\n case '7':\n case '8':\n case '9':\n throw invalidChar(read())\n\n case undefined:\n throw invalidChar(read())\n }\n\n return read()\n}\n\nfunction hexEscape () {\n let buffer = '';\n let c = peek();\n\n if (!util.isHexDigit(c)) {\n throw invalidChar(read())\n }\n\n buffer += read();\n\n c = peek();\n if (!util.isHexDigit(c)) {\n throw invalidChar(read())\n }\n\n buffer += read();\n\n return String.fromCodePoint(parseInt(buffer, 16))\n}\n\nfunction unicodeEscape () {\n let buffer = '';\n let count = 4;\n\n while (count-- > 0) {\n const c = peek();\n if (!util.isHexDigit(c)) {\n throw invalidChar(read())\n }\n\n buffer += read();\n }\n\n return String.fromCodePoint(parseInt(buffer, 16))\n}\n\nconst parseStates = {\n start () {\n if (token.type === 'eof') {\n throw invalidEOF()\n }\n\n push();\n },\n\n beforePropertyName () {\n switch (token.type) {\n case 'identifier':\n case 'string':\n key = token.value;\n parseState = 'afterPropertyName';\n return\n\n case 'punctuator':\n // This code is unreachable since it's handled by the lexState.\n // if (token.value !== '}') {\n // throw invalidToken()\n // }\n\n pop();\n return\n\n case 'eof':\n throw invalidEOF()\n }\n\n // This code is unreachable since it's handled by the lexState.\n // throw invalidToken()\n },\n\n afterPropertyName () {\n // This code is unreachable since it's handled by the lexState.\n // if (token.type !== 'punctuator' || token.value !== ':') {\n // throw invalidToken()\n // }\n\n if (token.type === 'eof') {\n throw invalidEOF()\n }\n\n parseState = 'beforePropertyValue';\n },\n\n beforePropertyValue () {\n if (token.type === 'eof') {\n throw invalidEOF()\n }\n\n push();\n },\n\n beforeArrayValue () {\n if (token.type === 'eof') {\n throw invalidEOF()\n }\n\n if (token.type === 'punctuator' && token.value === ']') {\n pop();\n return\n }\n\n push();\n },\n\n afterPropertyValue () {\n // This code is unreachable since it's handled by the lexState.\n // if (token.type !== 'punctuator') {\n // throw invalidToken()\n // }\n\n if (token.type === 'eof') {\n throw invalidEOF()\n }\n\n switch (token.value) {\n case ',':\n parseState = 'beforePropertyName';\n return\n\n case '}':\n pop();\n }\n\n // This code is unreachable since it's handled by the lexState.\n // throw invalidToken()\n },\n\n afterArrayValue () {\n // This code is unreachable since it's handled by the lexState.\n // if (token.type !== 'punctuator') {\n // throw invalidToken()\n // }\n\n if (token.type === 'eof') {\n throw invalidEOF()\n }\n\n switch (token.value) {\n case ',':\n parseState = 'beforeArrayValue';\n return\n\n case ']':\n pop();\n }\n\n // This code is unreachable since it's handled by the lexState.\n // throw invalidToken()\n },\n\n end () {\n // This code is unreachable since it's handled by the lexState.\n // if (token.type !== 'eof') {\n // throw invalidToken()\n // }\n },\n};\n\nfunction push () {\n let value;\n\n switch (token.type) {\n case 'punctuator':\n switch (token.value) {\n case '{':\n value = {};\n break\n\n case '[':\n value = [];\n break\n }\n\n break\n\n case 'null':\n case 'boolean':\n case 'numeric':\n case 'string':\n value = token.value;\n break\n\n // This code is unreachable.\n // default:\n // throw invalidToken()\n }\n\n if (root === undefined) {\n root = value;\n } else {\n const parent = stack[stack.length - 1];\n if (Array.isArray(parent)) {\n parent.push(value);\n } else {\n Object.defineProperty(parent, key, {\n value,\n writable: true,\n enumerable: true,\n configurable: true,\n });\n }\n }\n\n if (value !== null && typeof value === 'object') {\n stack.push(value);\n\n if (Array.isArray(value)) {\n parseState = 'beforeArrayValue';\n } else {\n parseState = 'beforePropertyName';\n }\n } else {\n const current = stack[stack.length - 1];\n if (current == null) {\n parseState = 'end';\n } else if (Array.isArray(current)) {\n parseState = 'afterArrayValue';\n } else {\n parseState = 'afterPropertyValue';\n }\n }\n}\n\nfunction pop () {\n stack.pop();\n\n const current = stack[stack.length - 1];\n if (current == null) {\n parseState = 'end';\n } else if (Array.isArray(current)) {\n parseState = 'afterArrayValue';\n } else {\n parseState = 'afterPropertyValue';\n }\n}\n\n// This code is unreachable.\n// function invalidParseState () {\n// return new Error(`JSON5: invalid parse state '${parseState}'`)\n// }\n\n// This code is unreachable.\n// function invalidLexState (state) {\n// return new Error(`JSON5: invalid lex state '${state}'`)\n// }\n\nfunction invalidChar (c) {\n if (c === undefined) {\n return syntaxError(`JSON5: invalid end of input at ${line}:${column}`)\n }\n\n return syntaxError(`JSON5: invalid character '${formatChar(c)}' at ${line}:${column}`)\n}\n\nfunction invalidEOF () {\n return syntaxError(`JSON5: invalid end of input at ${line}:${column}`)\n}\n\n// This code is unreachable.\n// function invalidToken () {\n// if (token.type === 'eof') {\n// return syntaxError(`JSON5: invalid end of input at ${line}:${column}`)\n// }\n\n// const c = String.fromCodePoint(token.value.codePointAt(0))\n// return syntaxError(`JSON5: invalid character '${formatChar(c)}' at ${line}:${column}`)\n// }\n\nfunction invalidIdentifier () {\n column -= 5;\n return syntaxError(`JSON5: invalid identifier character at ${line}:${column}`)\n}\n\nfunction separatorChar (c) {\n console.warn(`JSON5: '${formatChar(c)}' in strings is not valid ECMAScript; consider escaping`);\n}\n\nfunction formatChar (c) {\n const replacements = {\n \"'\": \"\\\\'\",\n '\"': '\\\\\"',\n '\\\\': '\\\\\\\\',\n '\\b': '\\\\b',\n '\\f': '\\\\f',\n '\\n': '\\\\n',\n '\\r': '\\\\r',\n '\\t': '\\\\t',\n '\\v': '\\\\v',\n '\\0': '\\\\0',\n '\\u2028': '\\\\u2028',\n '\\u2029': '\\\\u2029',\n };\n\n if (replacements[c]) {\n return replacements[c]\n }\n\n if (c < ' ') {\n const hexString = c.charCodeAt(0).toString(16);\n return '\\\\x' + ('00' + hexString).substring(hexString.length)\n }\n\n return c\n}\n\nfunction syntaxError (message) {\n const err = new SyntaxError(message);\n err.lineNumber = line;\n err.columnNumber = column;\n return err\n}\n\nvar stringify = function stringify (value, replacer, space) {\n const stack = [];\n let indent = '';\n let propertyList;\n let replacerFunc;\n let gap = '';\n let quote;\n\n if (\n replacer != null &&\n typeof replacer === 'object' &&\n !Array.isArray(replacer)\n ) {\n space = replacer.space;\n quote = replacer.quote;\n replacer = replacer.replacer;\n }\n\n if (typeof replacer === 'function') {\n replacerFunc = replacer;\n } else if (Array.isArray(replacer)) {\n propertyList = [];\n for (const v of replacer) {\n let item;\n\n if (typeof v === 'string') {\n item = v;\n } else if (\n typeof v === 'number' ||\n v instanceof String ||\n v instanceof Number\n ) {\n item = String(v);\n }\n\n if (item !== undefined && propertyList.indexOf(item) < 0) {\n propertyList.push(item);\n }\n }\n }\n\n if (space instanceof Number) {\n space = Number(space);\n } else if (space instanceof String) {\n space = String(space);\n }\n\n if (typeof space === 'number') {\n if (space > 0) {\n space = Math.min(10, Math.floor(space));\n gap = ' '.substr(0, space);\n }\n } else if (typeof space === 'string') {\n gap = space.substr(0, 10);\n }\n\n return serializeProperty('', {'': value})\n\n function serializeProperty (key, holder) {\n let value = holder[key];\n if (value != null) {\n if (typeof value.toJSON5 === 'function') {\n value = value.toJSON5(key);\n } else if (typeof value.toJSON === 'function') {\n value = value.toJSON(key);\n }\n }\n\n if (replacerFunc) {\n value = replacerFunc.call(holder, key, value);\n }\n\n if (value instanceof Number) {\n value = Number(value);\n } else if (value instanceof String) {\n value = String(value);\n } else if (value instanceof Boolean) {\n value = value.valueOf();\n }\n\n switch (value) {\n case null: return 'null'\n case true: return 'true'\n case false: return 'false'\n }\n\n if (typeof value === 'string') {\n return quoteString(value, false)\n }\n\n if (typeof value === 'number') {\n return String(value)\n }\n\n if (typeof value === 'object') {\n return Array.isArray(value) ? serializeArray(value) : serializeObject(value)\n }\n\n return undefined\n }\n\n function quoteString (value) {\n const quotes = {\n \"'\": 0.1,\n '\"': 0.2,\n };\n\n const replacements = {\n \"'\": \"\\\\'\",\n '\"': '\\\\\"',\n '\\\\': '\\\\\\\\',\n '\\b': '\\\\b',\n '\\f': '\\\\f',\n '\\n': '\\\\n',\n '\\r': '\\\\r',\n '\\t': '\\\\t',\n '\\v': '\\\\v',\n '\\0': '\\\\0',\n '\\u2028': '\\\\u2028',\n '\\u2029': '\\\\u2029',\n };\n\n let product = '';\n\n for (let i = 0; i < value.length; i++) {\n const c = value[i];\n switch (c) {\n case \"'\":\n case '\"':\n quotes[c]++;\n product += c;\n continue\n\n case '\\0':\n if (util.isDigit(value[i + 1])) {\n product += '\\\\x00';\n continue\n }\n }\n\n if (replacements[c]) {\n product += replacements[c];\n continue\n }\n\n if (c < ' ') {\n let hexString = c.charCodeAt(0).toString(16);\n product += '\\\\x' + ('00' + hexString).substring(hexString.length);\n continue\n }\n\n product += c;\n }\n\n const quoteChar = quote || Object.keys(quotes).reduce((a, b) => (quotes[a] < quotes[b]) ? a : b);\n\n product = product.replace(new RegExp(quoteChar, 'g'), replacements[quoteChar]);\n\n return quoteChar + product + quoteChar\n }\n\n function serializeObject (value) {\n if (stack.indexOf(value) >= 0) {\n throw TypeError('Converting circular structure to JSON5')\n }\n\n stack.push(value);\n\n let stepback = indent;\n indent = indent + gap;\n\n let keys = propertyList || Object.keys(value);\n let partial = [];\n for (const key of keys) {\n const propertyString = serializeProperty(key, value);\n if (propertyString !== undefined) {\n let member = serializeKey(key) + ':';\n if (gap !== '') {\n member += ' ';\n }\n member += propertyString;\n partial.push(member);\n }\n }\n\n let final;\n if (partial.length === 0) {\n final = '{}';\n } else {\n let properties;\n if (gap === '') {\n properties = partial.join(',');\n final = '{' + properties + '}';\n } else {\n let separator = ',\\n' + indent;\n properties = partial.join(separator);\n final = '{\\n' + indent + properties + ',\\n' + stepback + '}';\n }\n }\n\n stack.pop();\n indent = stepback;\n return final\n }\n\n function serializeKey (key) {\n if (key.length === 0) {\n return quoteString(key, true)\n }\n\n const firstChar = String.fromCodePoint(key.codePointAt(0));\n if (!util.isIdStartChar(firstChar)) {\n return quoteString(key, true)\n }\n\n for (let i = firstChar.length; i < key.length; i++) {\n if (!util.isIdContinueChar(String.fromCodePoint(key.codePointAt(i)))) {\n return quoteString(key, true)\n }\n }\n\n return key\n }\n\n function serializeArray (value) {\n if (stack.indexOf(value) >= 0) {\n throw TypeError('Converting circular structure to JSON5')\n }\n\n stack.push(value);\n\n let stepback = indent;\n indent = indent + gap;\n\n let partial = [];\n for (let i = 0; i < value.length; i++) {\n const propertyString = serializeProperty(String(i), value);\n partial.push((propertyString !== undefined) ? propertyString : 'null');\n }\n\n let final;\n if (partial.length === 0) {\n final = '[]';\n } else {\n if (gap === '') {\n let properties = partial.join(',');\n final = '[' + properties + ']';\n } else {\n let separator = ',\\n' + indent;\n let properties = partial.join(separator);\n final = '[\\n' + indent + properties + ',\\n' + stepback + ']';\n }\n }\n\n stack.pop();\n indent = stepback;\n return final\n }\n};\n\nconst JSON5 = {\n parse,\n stringify,\n};\n\nvar lib = JSON5;\n\nexport default lib;\n","'use strict';\nmodule.exports = x => {\n\tif (typeof x !== 'string') {\n\t\tthrow new TypeError('Expected a string, got ' + typeof x);\n\t}\n\n\t// Catches EFBBBF (UTF-8 BOM) because the buffer-to-string\n\t// conversion translates it to FEFF (UTF-16 BOM)\n\tif (x.charCodeAt(0) === 0xFEFF) {\n\t\treturn x.slice(1);\n\t}\n\n\treturn x;\n};\n","import * as path from \"path\";\nimport * as fs from \"fs\";\n// eslint-disable-next-line @typescript-eslint/no-require-imports\nimport JSON5 = require(\"json5\");\n// eslint-disable-next-line @typescript-eslint/no-require-imports\nimport StripBom = require(\"strip-bom\");\n\n/**\n * Typing for the parts of tsconfig that we care about\n */\nexport interface Tsconfig {\n extends?: string | string[];\n compilerOptions?: {\n baseUrl?: string;\n paths?: { [key: string]: Array<string> };\n strict?: boolean;\n };\n}\n\nexport interface TsConfigLoaderResult {\n tsConfigPath: string | undefined;\n baseUrl: string | undefined;\n paths: { [key: string]: Array<string> } | undefined;\n}\n\nexport interface TsConfigLoaderParams {\n getEnv: (key: string) => string | undefined;\n cwd: string;\n loadSync?(\n cwd: string,\n filename?: string,\n baseUrl?: string\n ): TsConfigLoaderResult;\n}\n\nexport function tsConfigLoader({\n getEnv,\n cwd,\n loadSync = loadSyncDefault,\n}: TsConfigLoaderParams): TsConfigLoaderResult {\n const TS_NODE_PROJECT = getEnv(\"TS_NODE_PROJECT\");\n const TS_NODE_BASEURL = getEnv(\"TS_NODE_BASEURL\");\n\n // tsconfig.loadSync handles if TS_NODE_PROJECT is a file or directory\n // and also overrides baseURL if TS_NODE_BASEURL is available.\n const loadResult = loadSync(cwd, TS_NODE_PROJECT, TS_NODE_BASEURL);\n return loadResult;\n}\n\nfunction loadSyncDefault(\n cwd: string,\n filename?: string,\n baseUrl?: string\n): TsConfigLoaderResult {\n // Tsconfig.loadSync uses path.resolve. This is why we can use an absolute path as filename\n\n const configPath = resolveConfigPath(cwd, filename);\n\n if (!configPath) {\n return {\n tsConfigPath: undefined,\n baseUrl: undefined,\n paths: undefined,\n };\n }\n const config = loadTsconfig(configPath);\n\n return {\n tsConfigPath: configPath,\n baseUrl:\n baseUrl ||\n (config && config.compilerOptions && config.compilerOptions.baseUrl),\n paths: config && config.compilerOptions && config.compilerOptions.paths,\n };\n}\n\nfunction resolveConfigPath(cwd: string, filename?: string): string | undefined {\n if (filename) {\n const absolutePath = fs.lstatSync(filename).isDirectory()\n ? path.resolve(filename, \"./tsconfig.json\")\n : path.resolve(cwd, filename);\n\n return absolutePath;\n }\n\n if (fs.statSync(cwd).isFile()) {\n return path.resolve(cwd);\n }\n\n const configAbsolutePath = walkForTsConfig(cwd);\n return configAbsolutePath ? path.resolve(configAbsolutePath) : undefined;\n}\nexport function walkForTsConfig(\n directory: string,\n readdirSync: (path: string) => string[] = fs.readdirSync\n): string | undefined {\n const files = readdirSync(directory);\n const filesToCheck = [\"tsconfig.json\", \"jsconfig.json\"];\n for (const fileToCheck of filesToCheck) {\n if (files.indexOf(fileToCheck) !== -1) {\n return path.join(directory, fileToCheck);\n }\n }\n\n const parentDirectory = path.dirname(directory);\n\n // If we reached the top\n if (directory === parentDirectory) {\n return undefined;\n }\n\n return walkForTsConfig(parentDirectory, readdirSync);\n}\n\nexport function loadTsconfig(\n configFilePath: string,\n // eslint-disable-next-line no-shadow\n existsSync: (path: string) => boolean = fs.existsSync,\n readFileSync: (filename: string) => string = (filename: string) =>\n fs.readFileSync(filename, \"utf8\")\n): Tsconfig | undefined {\n if (!existsSync(configFilePath)) {\n return undefined;\n }\n\n const configString = readFileSync(configFilePath);\n const cleanedJson = StripBom(configString);\n let config: Tsconfig;\n try {\n config = JSON5.parse(cleanedJson);\n } catch (e) {\n throw new Error(`${configFilePath} is malformed ${e.message}`);\n }\n\n let extendedConfig = config.extends;\n if (extendedConfig) {\n let base: Tsconfig;\n\n if (Array.isArray(extendedConfig)) {\n base = extendedConfig.reduce(\n (currBase, extendedConfigElement) =>\n mergeTsconfigs(\n currBase,\n loadTsconfigFromExtends(\n configFilePath,\n extendedConfigElement,\n existsSync,\n readFileSync\n )\n ),\n {}\n );\n } else {\n base = loadTsconfigFromExtends(\n configFilePath,\n extendedConfig,\n existsSync,\n readFileSync\n );\n }\n\n return mergeTsconfigs(base, config);\n }\n return config;\n}\n\n/**\n * Intended to be called only from loadTsconfig.\n * Parameters don't have defaults because they should use the same as loadTsconfig.\n */\nfunction loadTsconfigFromExtends(\n configFilePath: string,\n extendedConfigValue: string,\n // eslint-disable-next-line no-shadow\n existsSync: (path: string) => boolean,\n readFileSync: (filename: string) => string\n): Tsconfig {\n if (\n typeof extendedConfigValue === \"string\" &&\n extendedConfigValue.indexOf(\".json\") === -1\n ) {\n extendedConfigValue += \".json\";\n }\n const currentDir = path.dirname(configFilePath);\n let extendedConfigPath = path.join(currentDir, extendedConfigValue);\n if (\n extendedConfigValue.indexOf(\"/\") !== -1 &&\n extendedConfigValue.indexOf(\".\") !== -1 &&\n !existsSync(extendedConfigPath)\n ) {\n extendedConfigPath = path.join(\n currentDir,\n \"node_modules\",\n extendedConfigValue\n );\n }\n\n const config =\n loadTsconfig(extendedConfigPath, existsSync, readFileSync) || {};\n\n // baseUrl should be interpreted as relative to extendedConfigPath,\n // but we need to update it so it is relative to the original tsconfig being loaded\n if (config.compilerOptions?.baseUrl) {\n const extendsDir = path.dirname(extendedConfigValue);\n config.compilerOptions.baseUrl = path.join(\n extendsDir,\n config.compilerOptions.baseUrl\n );\n }\n\n return config;\n}\n\nfunction mergeTsconfigs(\n base: Tsconfig | undefined,\n config: Tsconfig | undefined\n): Tsconfig {\n base = base || {};\n config = config || {};\n\n return {\n ...base,\n ...config,\n compilerOptions: {\n ...base.compilerOptions,\n ...config.compilerOptions,\n },\n };\n}\n","import * as TsConfigLoader2 from \"./tsconfig-loader\";\nimport * as path from \"path\";\n\nexport interface ExplicitParams {\n baseUrl: string;\n paths: { [key: string]: Array<string> };\n mainFields?: (string | string[])[];\n addMatchAll?: boolean;\n}\n\nexport type TsConfigLoader = (\n params: TsConfigLoader2.TsConfigLoaderParams\n) => TsConfigLoader2.TsConfigLoaderResult;\n\nexport interface ConfigLoaderParams {\n cwd: string;\n explicitParams?: ExplicitParams;\n tsConfigLoader?: TsConfigLoader;\n}\n\nexport interface ConfigLoaderSuccessResult {\n resultType: \"success\";\n configFileAbsolutePath: string;\n baseUrl?: string;\n absoluteBaseUrl: string;\n paths: { [key: string]: Array<string> };\n mainFields?: (string | string[])[];\n addMatchAll?: boolean;\n}\n\nexport interface ConfigLoaderFailResult {\n resultType: \"failed\";\n message: string;\n}\n\nexport type ConfigLoaderResult =\n | ConfigLoaderSuccessResult\n | ConfigLoaderFailResult;\n\nexport function loadConfig(cwd: string = process.cwd()): ConfigLoaderResult {\n return configLoader({ cwd });\n}\n\nexport function configLoader({\n cwd,\n explicitParams,\n tsConfigLoader = TsConfigLoader2.tsConfigLoader,\n}: ConfigLoaderParams): ConfigLoaderResult {\n if (explicitParams) {\n const absoluteBaseUrl = path.isAbsolute(explicitParams.baseUrl)\n ? explicitParams.baseUrl\n : path.join(cwd, explicitParams.baseUrl);\n\n return {\n resultType: \"success\",\n configFileAbsolutePath: \"\",\n baseUrl: explicitParams.baseUrl,\n absoluteBaseUrl,\n paths: explicitParams.paths,\n mainFields: explicitParams.mainFields,\n addMatchAll: explicitParams.addMatchAll,\n };\n }\n\n // Load tsconfig and create path matching function\n const loadResult = tsConfigLoader({\n cwd,\n getEnv: (key: string) => process.env[key],\n });\n\n if (!loadResult.tsConfigPath) {\n return {\n resultType: \"failed\",\n message: \"Couldn't find tsconfig.json\",\n };\n }\n\n return {\n resultType: \"success\",\n configFileAbsolutePath: loadResult.tsConfigPath,\n baseUrl: loadResult.baseUrl,\n absoluteBaseUrl: path.resolve(\n path.dirname(loadResult.tsConfigPath),\n loadResult.baseUrl || \"\"\n ),\n paths: loadResult.paths || {},\n addMatchAll: loadResult.baseUrl !== undefined,\n };\n}\n","'use strict';\n\nfunction hasKey(obj, keys) {\n\tvar o = obj;\n\tkeys.slice(0, -1).forEach(function (key) {\n\t\to = o[key] || {};\n\t});\n\n\tvar key = keys[keys.length - 1];\n\treturn key in o;\n}\n\nfunction isNumber(x) {\n\tif (typeof x === 'number') { return true; }\n\tif ((/^0x[0-9a-f]+$/i).test(x)) { return true; }\n\treturn (/^[-+]?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(e[-+]?\\d+)?$/).test(x);\n}\n\nfunction isConstructorOrProto(obj, key) {\n\treturn (key === 'constructor' && typeof obj[key] === 'function') || key === '__proto__';\n}\n\nmodule.exports = function (args, opts) {\n\tif (!opts) { opts = {}; }\n\n\tvar flags = {\n\t\tbools: {},\n\t\tstrings: {},\n\t\tunknownFn: null,\n\t};\n\n\tif (typeof opts.unknown === 'function') {\n\t\tflags.unknownFn = opts.unknown;\n\t}\n\n\tif (typeof opts.boolean === 'boolean' && opts.boolean) {\n\t\tflags.allBools = true;\n\t} else {\n\t\t[].concat(opts.boolean).filter(Boolean).forEach(function (key) {\n\t\t\tflags.bools[key] = true;\n\t\t});\n\t}\n\n\tvar aliases = {};\n\n\tfunction aliasIsBoolean(key) {\n\t\treturn aliases[key].some(function (x) {\n\t\t\treturn flags.bools[x];\n\t\t});\n\t}\n\n\tObject.keys(opts.alias || {}).forEach(function (key) {\n\t\taliases[key] = [].concat(opts.alias[key]);\n\t\taliases[key].forEach(function (x) {\n\t\t\taliases[x] = [key].concat(aliases[key].filter(function (y) {\n\t\t\t\treturn x !== y;\n\t\t\t}));\n\t\t});\n\t});\n\n\t[].concat(opts.string).filter(Boolean).forEach(function (key) {\n\t\tflags.strings[key] = true;\n\t\tif (aliases[key]) {\n\t\t\t[].concat(aliases[key]).forEach(function (k) {\n\t\t\t\tflags.strings[k] = true;\n\t\t\t});\n\t\t}\n\t});\n\n\tvar defaults = opts.default || {};\n\n\tvar argv = { _: [] };\n\n\tfunction argDefined(key, arg) {\n\t\treturn (flags.allBools && (/^--[^=]+$/).test(arg))\n\t\t\t|| flags.strings[key]\n\t\t\t|| flags.bools[key]\n\t\t\t|| aliases[key];\n\t}\n\n\tfunction setKey(obj, keys, value) {\n\t\tvar o = obj;\n\t\tfor (var i = 0; i < keys.length - 1; i++) {\n\t\t\tvar key = keys[i];\n\t\t\tif (isConstructorOrProto(o, key)) { return; }\n\t\t\tif (o[key] === undefined) { o[key] = {}; }\n\t\t\tif (\n\t\t\t\to[key] === Object.prototype\n\t\t\t\t|| o[key] === Number.prototype\n\t\t\t\t|| o[key] === String.prototype\n\t\t\t) {\n\t\t\t\to[key] = {};\n\t\t\t}\n\t\t\tif (o[key] === Array.prototype) { o[key] = []; }\n\t\t\to = o[key];\n\t\t}\n\n\t\tvar lastKey = keys[keys.length - 1];\n\t\tif (isConstructorOrProto(o, lastKey)) { return; }\n\t\tif (\n\t\t\to === Object.prototype\n\t\t\t|| o === Number.prototype\n\t\t\t|| o === String.prototype\n\t\t) {\n\t\t\to = {};\n\t\t}\n\t\tif (o === Array.prototype) { o = []; }\n\t\tif (o[lastKey] === undefined || flags.bools[lastKey] || typeof o[lastKey] === 'boolean') {\n\t\t\to[lastKey] = value;\n\t\t} else if (Array.isArray(o[lastKey])) {\n\t\t\to[lastKey].push(value);\n\t\t} else {\n\t\t\to[lastKey] = [o[lastKey], value];\n\t\t}\n\t}\n\n\tfunction setArg(key, val, arg) {\n\t\tif (arg && flags.unknownFn && !argDefined(key, arg)) {\n\t\t\tif (flags.unknownFn(arg) === false) { return; }\n\t\t}\n\n\t\tvar value = !flags.strings[key] && isNumber(val)\n\t\t\t? Number(val)\n\t\t\t: val;\n\t\tsetKey(argv, key.split('.'), value);\n\n\t\t(aliases[key] || []).forEach(function (x) {\n\t\t\tsetKey(argv, x.split('.'), value);\n\t\t});\n\t}\n\n\tObject.keys(flags.bools).forEach(function (key) {\n\t\tsetArg(key, defaults[key] === undefined ? false : defaults[key]);\n\t});\n\n\tvar notFlags = [];\n\n\tif (args.indexOf('--') !== -1) {\n\t\tnotFlags = args.slice(args.indexOf('--') + 1);\n\t\targs = args.slice(0, args.indexOf('--'));\n\t}\n\n\tfor (var i = 0; i < args.length; i++) {\n\t\tvar arg = args[i];\n\t\tvar key;\n\t\tvar next;\n\n\t\tif ((/^--.+=/).test(arg)) {\n\t\t\t// Using [\\s\\S] instead of . because js doesn't support the\n\t\t\t// 'dotall' regex modifier. See:\n\t\t\t// http://stackoverflow.com/a/1068308/13216\n\t\t\tvar m = arg.match(/^--([^=]+)=([\\s\\S]*)$/);\n\t\t\tkey = m[1];\n\t\t\tvar value = m[2];\n\t\t\tif (flags.bools[key]) {\n\t\t\t\tvalue = value !== 'false';\n\t\t\t}\n\t\t\tsetArg(key, value, arg);\n\t\t} else if ((/^--no-.+/).test(arg)) {\n\t\t\tkey = arg.match(/^--no-(.+)/)[1];\n\t\t\tsetArg(key, false, arg);\n\t\t} else if ((/^--.+/).test(arg)) {\n\t\t\tkey = arg.match(/^--(.+)/)[1];\n\t\t\tnext = args[i + 1];\n\t\t\tif (\n\t\t\t\tnext !== undefined\n\t\t\t\t&& !(/^(-|--)[^-]/).test(next)\n\t\t\t\t&& !flags.bools[key]\n\t\t\t\t&& !flags.allBools\n\t\t\t\t&& (aliases[key] ? !aliasIsBoolean(key) : true)\n\t\t\t) {\n\t\t\t\tsetArg(key, next, arg);\n\t\t\t\ti += 1;\n\t\t\t} else if ((/^(true|false)$/).test(next)) {\n\t\t\t\tsetArg(key, next === 'true', arg);\n\t\t\t\ti += 1;\n\t\t\t} else {\n\t\t\t\tsetArg(key, flags.strings[key] ? '' : true, arg);\n\t\t\t}\n\t\t} else if ((/^-[^-]+/).test(arg)) {\n\t\t\tvar letters = arg.slice(1, -1).split('');\n\n\t\t\tvar broken = false;\n\t\t\tfor (var j = 0; j < letters.length; j++) {\n\t\t\t\tnext = arg.slice(j + 2);\n\n\t\t\t\tif (next === '-') {\n\t\t\t\t\tsetArg(letters[j], next, arg);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif ((/[A-Za-z]/).test(letters[j]) && next[0] === '=') {\n\t\t\t\t\tsetArg(letters[j], next.slice(1), arg);\n\t\t\t\t\tbroken = true;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t(/[A-Za-z]/).test(letters[j])\n\t\t\t\t\t&& (/-?\\d+(\\.\\d*)?(e-?\\d+)?$/).test(next)\n\t\t\t\t) {\n\t\t\t\t\tsetArg(letters[j], next, arg);\n\t\t\t\t\tbroken = true;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tif (letters[j + 1] && letters[j + 1].match(/\\W/)) {\n\t\t\t\t\tsetArg(letters[j], arg.slice(j + 2), arg);\n\t\t\t\t\tbroken = true;\n\t\t\t\t\tbreak;\n\t\t\t\t} else {\n\t\t\t\t\tsetArg(letters[j], flags.strings[letters[j]] ? '' : true, arg);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tkey = arg.slice(-1)[0];\n\t\t\tif (!broken && key !== '-') {\n\t\t\t\tif (\n\t\t\t\t\targs[i + 1]\n\t\t\t\t\t&& !(/^(-|--)[^-]/).test(args[i + 1])\n\t\t\t\t\t&& !flags.bools[key]\n\t\t\t\t\t&& (aliases[key] ? !aliasIsBoolean(key) : true)\n\t\t\t\t) {\n\t\t\t\t\tsetArg(key, args[i + 1], arg);\n\t\t\t\t\ti += 1;\n\t\t\t\t} else if (args[i + 1] && (/^(true|false)$/).test(args[i + 1])) {\n\t\t\t\t\tsetArg(key, args[i + 1] === 'true', arg);\n\t\t\t\t\ti += 1;\n\t\t\t\t} else {\n\t\t\t\t\tsetArg(key, flags.strings[key] ? '' : true, arg);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tif (!flags.unknownFn || flags.unknownFn(arg) !== false) {\n\t\t\t\targv._.push(flags.strings._ || !isNumber(arg) ? arg : Number(arg));\n\t\t\t}\n\t\t\tif (opts.stopEarly) {\n\t\t\t\targv._.push.apply(argv._, args.slice(i + 1));\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tObject.keys(defaults).forEach(function (k) {\n\t\tif (!hasKey(argv, k.split('.'))) {\n\t\t\tsetKey(argv, k.split('.'), defaults[k]);\n\n\t\t\t(aliases[k] || []).forEach(function (x) {\n\t\t\t\tsetKey(argv, x.split('.'), defaults[k]);\n\t\t\t});\n\t\t}\n\t});\n\n\tif (opts['--']) {\n\t\targv['--'] = notFlags.slice();\n\t} else {\n\t\tnotFlags.forEach(function (k) {\n\t\t\targv._.push(k);\n\t\t});\n\t}\n\n\treturn argv;\n};\n","import { createMatchPath } from \"./match-path-sync\";\nimport { configLoader, ExplicitParams } from \"./config-loader\";\n\nconst noOp = (): void => void 0;\n\nfunction getCoreModules(\n builtinModules: string[] | undefined\n): { [key: string]: boolean } {\n builtinModules = builtinModules || [\n \"assert\",\n \"buffer\",\n \"child_process\",\n \"cluster\",\n \"crypto\",\n \"dgram\",\n \"dns\",\n \"domain\",\n \"events\",\n \"fs\",\n \"http\",\n \"https\",\n \"net\",\n \"os\",\n \"path\",\n \"punycode\",\n \"querystring\",\n \"readline\",\n \"stream\",\n \"string_decoder\",\n \"tls\",\n \"tty\",\n \"url\",\n \"util\",\n \"v8\",\n \"vm\",\n \"zlib\",\n ];\n\n const coreModules: { [key: string]: boolean } = {};\n for (let module of builtinModules) {\n coreModules[module] = true;\n }\n\n return coreModules;\n}\n\nexport interface RegisterParams extends ExplicitParams {\n /**\n * Defaults to `--project` CLI flag or `process.cwd()`\n */\n cwd?: string;\n}\n\n/**\n * Installs a custom module load function that can adhere to paths in tsconfig.\n * Returns a function to undo paths registration.\n */\nexport function register(params?: RegisterParams): () => void {\n let cwd: string | undefined;\n let explicitParams: ExplicitParams | undefined;\n if (params) {\n cwd = params.cwd;\n if (params.baseUrl || params.paths) {\n explicitParams = params;\n }\n } else {\n // eslint-disable-next-line\n const minimist = require(\"minimist\");\n const argv = minimist(process.argv.slice(2), {\n // eslint-disable-next-line id-denylist\n string: [\"project\"],\n alias: {\n project: [\"P\"],\n },\n });\n cwd = argv.project;\n }\n\n const configLoaderResult = configLoader({\n cwd: cwd ?? process.cwd(),\n explicitParams,\n });\n\n if (configLoaderResult.resultType === \"failed\") {\n console.warn(\n `${configLoaderResult.message}. tsconfig-paths will be skipped`\n );\n\n return noOp;\n }\n\n const matchPath = createMatchPath(\n configLoaderResult.absoluteBaseUrl,\n configLoaderResult.paths,\n configLoaderResult.mainFields,\n configLoaderResult.addMatchAll\n );\n\n // Patch node's module loading\n // eslint-disable-next-line @typescript-eslint/no-require-imports,@typescript-eslint/no-var-requires\n const Module = require(\"module\");\n // eslint-disable-next-line no-underscore-dangle\n const originalResolveFilename = Module._resolveFilename;\n const coreModules = getCoreModules(Module.builtinModules);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any,no-underscore-dangle\n Module._resolveFilename = function (request: string, _parent: any): string {\n const isCoreModule = coreModules.hasOwnProperty(request);\n if (!isCoreModule) {\n const found = matchPath(request);\n if (found) {\n const modifiedArguments = [found, ...[].slice.call(arguments, 1)]; // Passes all arguments. Even those that is not specified above.\n return originalResolveFilename.apply(this, modifiedArguments);\n }\n }\n return originalResolveFilename.apply(this, arguments);\n };\n\n return () => {\n // Return node's module loading to original state.\n // eslint-disable-next-line no-underscore-dangle\n Module._resolveFilename = originalResolveFilename;\n };\n}\n","// register is used from register.js in root dir\nexport {\n createMatchPath,\n matchFromAbsolutePaths,\n MatchPath,\n} from \"./match-path-sync\";\nexport {\n createMatchPathAsync,\n matchFromAbsolutePathsAsync,\n MatchPathAsync,\n} from \"./match-path-async\";\nexport { register } from \"./register\";\nexport {\n loadConfig,\n ConfigLoaderResult,\n ConfigLoaderSuccessResult,\n ConfigLoaderFailResult,\n} from \"./config-loader\";\nexport {\n ReadJsonSync,\n ReadJsonAsync,\n FileExistsSync,\n FileExistsAsync,\n} from \"./filesystem\";\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 {existsSync} from \"fs\";\nimport dotenv, {type DotenvParseOutput} from 'dotenv';\nimport {loadConfig} from \"c12\";\n\nimport dotenvPlugin from \"../plugins/dotenv\";\nimport backgroundPlugin from \"../plugins/background\";\n\nimport {getAppsPath, getConfigFile, getInputPath} 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, browser} = config;\n\n const preset = [\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 ];\n\n const appPaths = preset.map((file) => getAppsPath(config, file));\n const rootPaths = preset.map((file) => getInputPath(config, file));\n\n const paths = [...appPaths, ...rootPaths];\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 fs from \"fs\";\nimport ts from \"typescript\";\nimport path from \"path\";\nimport {createMatchPath} from \"tsconfig-paths\";\n\ninterface ResolveOptions {\n tsconfigPath?: string;\n baseDir?: string;\n}\n\nfunction findFileWithExtensions(basePath: string, exts: string[]): string | null {\n for (const ext of exts) {\n const candidate = basePath + ext;\n if (fs.existsSync(candidate)) {\n return candidate;\n }\n }\n return null;\n}\n\nexport default (importPath: string, options: ResolveOptions = {}): string => {\n const {tsconfigPath = \"tsconfig.json\", baseDir = process.cwd()} = options;\n const configFile = path.isAbsolute(tsconfigPath) ? tsconfigPath : path.resolve(baseDir, tsconfigPath);\n\n if (!fs.existsSync(configFile)) {\n throw new Error(`Cannot find tsconfig.json at: ${configFile}`);\n }\n\n const tsconfigRaw = ts.readConfigFile(configFile, (p) => fs.readFileSync(p, \"utf8\"));\n\n const parseConfigHost: ts.ParseConfigHost = {\n fileExists: fs.existsSync,\n readFile: (p) => fs.readFileSync(p, \"utf8\"),\n readDirectory: ts.sys.readDirectory,\n useCaseSensitiveFileNames: true\n };\n\n const parsedConfig = ts.parseJsonConfigFileContent(\n tsconfigRaw.config,\n parseConfigHost,\n path.dirname(configFile)\n );\n\n const matchPath = createMatchPath(\n parsedConfig.options.baseUrl || \".\",\n parsedConfig.options.paths || {}\n );\n\n if (importPath.startsWith(\".\") || importPath.startsWith(\"/\")) {\n const resolvedLocal = path.resolve(baseDir, importPath);\n\n if (fs.existsSync(resolvedLocal)) {\n return resolvedLocal;\n }\n\n const candidate = resolvedLocal.endsWith(\".ts\") || resolvedLocal.endsWith(\".tsx\")\n ? resolvedLocal\n : findFileWithExtensions(resolvedLocal, [\".ts\", \".tsx\"]);\n\n if (candidate && fs.existsSync(candidate)) {\n return candidate;\n }\n\n throw new Error(`File not found at path \"${resolvedLocal}\" or with .ts/.tsx extensions`);\n }\n\n const aliased = matchPath(importPath);\n\n if (aliased && fs.existsSync(aliased)) {\n return path.resolve(aliased);\n }\n\n if (aliased) {\n const candidate = aliased.endsWith(\".ts\") || aliased.endsWith(\".tsx\")\n ? aliased\n : findFileWithExtensions(aliased, [\".ts\", \".tsx\"]);\n\n if (candidate && fs.existsSync(candidate)) {\n return path.resolve(candidate);\n }\n }\n\n try {\n if (importPath === 'adnbn') {\n return importPath;\n }\n\n return require.resolve(importPath, {paths: [baseDir]});\n } catch {\n throw new Error(`Cannot resolve \"${importPath}\" as a local path, alias, or npm package from \"${baseDir}\"`);\n }\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","import {Browser, Mode} from \"@typing/config\";\nimport {Resolver} from \"../types\";\n\nconst name = 'adnbn';\n\nexport default (): Resolver[] => {\n const resolvers: Resolver[] = [];\n\n Object.entries(Browser).forEach(([key, value]) => {\n resolvers.push({\n from: name,\n target: 'Browser',\n name: key,\n value,\n });\n });\n\n Object.entries(Mode).forEach(([key, value]) => {\n resolvers.push({\n from: name,\n target: 'Mode',\n name: key,\n value,\n });\n });\n\n return resolvers;\n};","import core from \"./core\";\nimport {Resolver} from \"../types\";\n\nexport default (resolvers: Resolver[]) => (form: string, target: string, name: string): any => {\n return [\n ...resolvers,\n ...core()\n ].find(resolver => resolver.from === form && resolver.target === target && resolver.name === name)?.value;\n}","import ts from 'typescript';\nimport fs from 'fs';\nimport path from \"path\";\n\nimport resolveImport from \"./utils/resolveImport\";\n\nimport {EnumMap, ImportMap, Variable, VariableMap} from \"./types\";\nimport resolvers from \"./resolvers\";\nimport {Browser} from \"@typing/config\";\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 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 this.imports?.set(el.name.text, resolveImport(importPath));\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 resolveValue(from: string, target:string, name:string): any {\n return resolvers([])(from, target, name);\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 const resolverItem = this.resolveValue(importItem, objectName, propertyName);\n\n if (resolverItem) {\n return resolverItem;\n }\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 ts 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 const parse = (node: ts.Node) => {\n if (ts.isExportAssignment(node)) {\n const expr = node.expression;\n\n if (ts.isCallExpression(expr) && ts.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 (ts.isObjectLiteralExpression(arg)) {\n options = this.parseNode(arg);\n }\n }\n }\n }\n\n ts.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 {EntrypointOptions} from \"@typing/entrypoint\";\n\nconst commonProperties: Array<keyof EntrypointOptions> = [\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 getSharedPath = (config: ReadonlyConfig, to?: string): string => {\n return path.join(config.inputDir, config.srcDir, config.sharedDir, to ?? '');\n}\n\nexport const getAppsPath = (config: ReadonlyConfig, to?: string): string => {\n return path.join(config.inputDir, config.srcDir, config.appsDir, config.app, to ?? '');\n}\n\nexport const getInputPath = (config: ReadonlyConfig, to?: string): string => {\n return path.join(config.inputDir, to ?? '');\n}\n\nexport const getOutputPath = (config: ReadonlyConfig): string => {\n return path.join(config.outputDir, `${config.app}-${config.browser}-mv${config.manifestVersion}`);\n}\n\nexport const getConfigFile = (config: ReadonlyConfig): string => {\n return getInputPath(config, config.configFile);\n}","import fs, {type Dirent} from 'fs';\nimport path from 'path';\n\nimport {EntrypointFile} from \"@typing/entrypoint\";\n\nconst escapeRegExp = (text: string): string =>\n text.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n\nconst pathToImport = (filePath: string): string => {\n const {dir, name, ext} = path.parse(filePath);\n\n if (name === 'index' && (ext === '.ts' || ext === '.tsx')) {\n return dir;\n }\n\n return path.join(dir, name);\n}\n\nexport const findEntrypointFiles = (\n directory: string,\n entrypoint: string\n): EntrypointFile[] => {\n const files: EntrypointFile[] = [];\n\n const regex = new RegExp(\n `^(?:.*\\\\.)?${escapeRegExp(entrypoint)}\\\\.(ts|tsx)$`\n );\n\n const finder = (dir: string): void => {\n let entries: Dirent[];\n\n try {\n entries = fs.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'];\n\n for (const indexFile of possibleIndexFiles) {\n const indexPath = path.join(fullPath, indexFile);\n\n try {\n const stat = fs.statSync(indexPath);\n\n if (stat.isFile()) {\n files.push({file: indexPath, import: pathToImport(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({file: fullPath, import: pathToImport(fullPath)});\n }\n }\n }\n };\n\n finder(directory);\n\n return files;\n};\n\nexport const findBackgroundFiles = (directory: string): EntrypointFile[] => {\n return findEntrypointFiles(directory, 'background');\n}\n\nexport const findContentFiles = (directory: string): EntrypointFile[] => {\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 {EntrypointOptions} from \"@typing/entrypoint\";\nimport {ReadonlyConfig} from \"@typing/config\";\n\nexport const isValidEntrypointOptions = (options: EntrypointOptions, 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\";\nimport {EntrypointFile} from \"@typing/entrypoint\";\n\nconst backgroundFilesToEntries = (files: EntrypointFile[]): BackgroundEntrypointMap => {\n const entries: BackgroundEntrypointMap = new Map;\n\n for (const file of files) {\n entries.set(file, getBackgroundOptions(file.file));\n }\n\n return entries;\n}\n\nconst findBackgroundEntriesByDir = (dir: string): BackgroundEntrypointMap => {\n console.log('QQQQQQQQQ', findBackgroundFiles(dir));\n\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}): EntrypointFile => {\n if (_.isBoolean(endpoint)) {\n endpoint = 'background';\n }\n\n const resolved = `${name}/${endpoint}`;\n\n return {\n file: require.resolve(resolved, {paths: [process.cwd()]}),\n import: resolved,\n }\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: EntrypointFile[];\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 * as module from \"virtual:background-entrypoint\";\nimport {type BackgroundDefinition} from \"adnbn\";\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 // @ts-ignore\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\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);\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.import)]: virtualBackgroundModule(file.import)}), {});\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.import, `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 {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 {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 },\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.20\",\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 \"@types/chrome\": \"^0.0.299\",\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/tsconfig-paths/src/filesystem.ts","../../node_modules/tsconfig-paths/src/mapping-entry.ts","../../node_modules/tsconfig-paths/src/try-path.ts","../../node_modules/tsconfig-paths/src/match-path-sync.ts","../../node_modules/tsconfig-paths/src/match-path-async.ts","../../node_modules/json5/dist/index.mjs","../../node_modules/strip-bom/index.js","../../node_modules/tsconfig-paths/src/tsconfig-loader.ts","../../node_modules/tsconfig-paths/src/config-loader.ts","../../node_modules/minimist/index.js","../../node_modules/tsconfig-paths/src/register.ts","../../node_modules/tsconfig-paths/src/index.ts","../../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/parsers/entrypoint/utils/resolveImport.ts","../../src/types/manifest.ts","../../src/types/config.ts","../../src/cli/parsers/entrypoint/resolvers/core.ts","../../src/cli/parsers/entrypoint/resolvers/index.ts","../../src/cli/parsers/entrypoint/SourceFile.ts","../../src/cli/parsers/entrypoint/OptionFile.ts","../../src/cli/parsers/entrypoint/index.ts","../../src/cli/resolvers/plugin.ts","../../src/cli/utils/option.ts","../../src/cli/plugins/background/entrypoint/background.ts","../../src/cli/plugins/background/entrypoint/command.ts","raw-loader:./background.ts?raw","raw-loader:./command.ts?raw","../../src/cli/virtual/index.ts","../../src/cli/webpack/plugins/EntrypointPlugin.ts","../../src/cli/resolvers/path.ts","../../src/types/entrypoint.ts","../../src/cli/resolvers/entrypoint.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/webpack/plugins/WatchPlugin.ts","../../src/cli/webpack/utils/mergeConfig.ts","../../src/cli/resolvers/webpack.ts","../../src/cli/builders/app/index.ts","../../package.json","../../src/cli/index.ts"],"names":["fs","path","version","parse","key","path2","physicalPathPattern","createMatchPath","name","token","c","buffer","stringify","stack","value","JSON5","existsSync","loadConfig","arg","i","target","result","key2","_a","_b","CustomizeRule","mergeWithCustomize","ret","k","v","webpack","ts","z","_","Browser","Mode","Command","_c","background_default","command_default","VirtualModulesPlugin","compiler","modules","dotenv","source","commands","Compilation","TsconfigPathsPlugin","MiniCssExtractPlugin","CleanWebpackPlugin","cac","root"],"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","import * as fs from \"fs\";\n\n/**\n * Typing for the fields of package.json we care about\n */\nexport interface PackageJson {\n [key: string]: string | PackageJson;\n}\n\n/**\n * A function that json from a file\n */\nexport interface ReadJsonSync {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (packageJsonPath: string): any | undefined;\n}\n\nexport interface FileExistsSync {\n (name: string): boolean;\n}\n\nexport interface FileExistsAsync {\n (path: string, callback: (err?: Error, exists?: boolean) => void): void;\n}\n\nexport interface ReadJsonAsyncCallback {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (err?: Error, content?: any): void;\n}\n\nexport interface ReadJsonAsync {\n (path: string, callback: ReadJsonAsyncCallback): void;\n}\n\nexport function fileExistsSync(path: string): boolean {\n // If the file doesn't exist, avoid throwing an exception over the native barrier for every miss\n if (!fs.existsSync(path)) {\n return false;\n }\n try {\n const stats = fs.statSync(path);\n return stats.isFile();\n } catch (err) {\n // If error, assume file did not exist\n return false;\n }\n}\n\n/**\n * Reads package.json from disk\n *\n * @param file Path to package.json\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function readJsonFromDiskSync(packageJsonPath: string): any | undefined {\n if (!fs.existsSync(packageJsonPath)) {\n return undefined;\n }\n // eslint-disable-next-line @typescript-eslint/no-require-imports\n return require(packageJsonPath);\n}\n\nexport function readJsonFromDiskAsync(\n path: string,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n callback: (err?: Error, content?: any) => void\n): void {\n fs.readFile(path, \"utf8\", (err, result) => {\n // If error, assume file did not exist\n if (err || !result) {\n return callback();\n }\n const json = JSON.parse(result);\n return callback(undefined, json);\n });\n}\n\nexport function fileExistsAsync(\n path2: string,\n callback2: (err?: Error, exists?: boolean) => void\n): void {\n fs.stat(path2, (err: Error, stats: fs.Stats) => {\n if (err) {\n // If error assume file does not exist\n return callback2(undefined, false);\n }\n callback2(undefined, stats ? stats.isFile() : false);\n });\n}\n\nexport function removeExtension(path: string): string {\n return path.substring(0, path.lastIndexOf(\".\")) || path;\n}\n","import * as path from \"path\";\n\nexport interface MappingEntry {\n readonly pattern: string;\n readonly paths: ReadonlyArray<string>;\n}\n\nexport interface Paths {\n readonly [key: string]: ReadonlyArray<string>;\n}\n\n/**\n * Converts an absolute baseUrl and paths to an array of absolute mapping entries.\n * The array is sorted by longest prefix.\n * Having an array with entries allows us to keep a sorting order rather than\n * sort by keys each time we use the mappings.\n *\n * @param absoluteBaseUrl\n * @param paths\n * @param addMatchAll\n */\nexport function getAbsoluteMappingEntries(\n absoluteBaseUrl: string,\n paths: Paths,\n addMatchAll: boolean\n): ReadonlyArray<MappingEntry> {\n // Resolve all paths to absolute form once here, and sort them by\n // longest prefix once here, this saves time on each request later.\n // We need to put them in an array to preserve the sorting order.\n const sortedKeys = sortByLongestPrefix(Object.keys(paths));\n const absolutePaths: Array<MappingEntry> = [];\n for (const key of sortedKeys) {\n absolutePaths.push({\n pattern: key,\n paths: paths[key].map((pathToResolve) =>\n path.resolve(absoluteBaseUrl, pathToResolve)\n ),\n });\n }\n // If there is no match-all path specified in the paths section of tsconfig, then try to match\n // all paths relative to baseUrl, this is how typescript works.\n if (!paths[\"*\"] && addMatchAll) {\n absolutePaths.push({\n pattern: \"*\",\n paths: [`${absoluteBaseUrl.replace(/\\/$/, \"\")}/*`],\n });\n }\n\n return absolutePaths;\n}\n\n/**\n * Sort path patterns.\n * If a module name can be matched with multiple patterns then pattern with the longest prefix will be picked.\n */\nfunction sortByLongestPrefix(arr: Array<string>): Array<string> {\n return arr\n .concat()\n .sort((a: string, b: string) => getPrefixLength(b) - getPrefixLength(a));\n}\n\nfunction getPrefixLength(pattern: string): number {\n const prefixLength = pattern.indexOf(\"*\");\n return pattern.substr(0, prefixLength).length;\n}\n","import * as path from \"path\";\nimport { MappingEntry } from \"./mapping-entry\";\nimport { dirname } from \"path\";\nimport { removeExtension } from \"./filesystem\";\n\nexport interface TryPath {\n readonly type: \"file\" | \"extension\" | \"index\" | \"package\";\n readonly path: string;\n}\n\n/**\n * Builds a list of all physical paths to try by:\n * 1. Check for file named exactly as request.\n * 2. Check for files named as request ending in any of the extensions.\n * 3. Check for file specified in package.json's main property.\n * 4. Check for files named as request ending in \"index\" with any of the extensions.\n */\nexport function getPathsToTry(\n extensions: ReadonlyArray<string>,\n absolutePathMappings: ReadonlyArray<MappingEntry>,\n requestedModule: string\n): ReadonlyArray<TryPath> | undefined {\n if (!absolutePathMappings || !requestedModule || requestedModule[0] === \".\") {\n return undefined;\n }\n\n const pathsToTry: Array<TryPath> = [];\n for (const entry of absolutePathMappings) {\n const starMatch =\n entry.pattern === requestedModule\n ? \"\"\n : matchStar(entry.pattern, requestedModule);\n if (starMatch !== undefined) {\n for (const physicalPathPattern of entry.paths) {\n const physicalPath = physicalPathPattern.replace(\"*\", starMatch);\n pathsToTry.push({ type: \"file\", path: physicalPath });\n pathsToTry.push(\n ...extensions.map(\n (e) => ({ type: \"extension\", path: physicalPath + e } as TryPath)\n )\n );\n pathsToTry.push({\n type: \"package\",\n path: path.join(physicalPath, \"/package.json\"),\n });\n const indexPath = path.join(physicalPath, \"/index\");\n pathsToTry.push(\n ...extensions.map(\n (e) => ({ type: \"index\", path: indexPath + e } as TryPath)\n )\n );\n }\n }\n }\n return pathsToTry.length === 0 ? undefined : pathsToTry;\n}\n\n// Not sure why we don't just return the full found path?\nexport function getStrippedPath(tryPath: TryPath): string {\n return tryPath.type === \"index\"\n ? dirname(tryPath.path)\n : tryPath.type === \"file\"\n ? tryPath.path\n : tryPath.type === \"extension\"\n ? removeExtension(tryPath.path)\n : tryPath.type === \"package\"\n ? tryPath.path\n : exhaustiveTypeException(tryPath.type);\n}\n\nexport function exhaustiveTypeException(check: never): never {\n throw new Error(`Unknown type ${check}`);\n}\n\n/**\n * Matches pattern with a single star against search.\n * Star must match at least one character to be considered a match.\n *\n * @param patttern for example \"foo*\"\n * @param search for example \"fooawesomebar\"\n * @returns the part of search that * matches, or undefined if no match.\n */\nfunction matchStar(pattern: string, search: string): string | undefined {\n if (search.length < pattern.length) {\n return undefined;\n }\n if (pattern === \"*\") {\n return search;\n }\n const star = pattern.indexOf(\"*\");\n if (star === -1) {\n return undefined;\n }\n const part1 = pattern.substring(0, star);\n const part2 = pattern.substring(star + 1);\n if (search.substr(0, star) !== part1) {\n return undefined;\n }\n if (search.substr(search.length - part2.length) !== part2) {\n return undefined;\n }\n return search.substr(star, search.length - part2.length);\n}\n","import * as path from \"path\";\nimport * as Filesystem from \"./filesystem\";\nimport * as MappingEntry from \"./mapping-entry\";\nimport * as TryPath from \"./try-path\";\n\n/**\n * Function that can match a path\n */\nexport interface MatchPath {\n (\n requestedModule: string,\n readJson?: Filesystem.ReadJsonSync,\n fileExists?: (name: string) => boolean,\n extensions?: ReadonlyArray<string>\n ): string | undefined;\n}\n\n/**\n * Creates a function that can resolve paths according to tsconfig paths property.\n *\n * @param absoluteBaseUrl Absolute version of baseUrl as specified in tsconfig.\n * @param paths The paths as specified in tsconfig.\n * @param mainFields A list of package.json field names to try when resolving module files. Select a nested field using an array of field names.\n * @param addMatchAll Add a match-all \"*\" rule if none is present\n * @returns a function that can resolve paths.\n */\nexport function createMatchPath(\n absoluteBaseUrl: string,\n paths: { [key: string]: Array<string> },\n mainFields: (string | string[])[] = [\"main\"],\n addMatchAll: boolean = true\n): MatchPath {\n const absolutePaths = MappingEntry.getAbsoluteMappingEntries(\n absoluteBaseUrl,\n paths,\n addMatchAll\n );\n\n return (\n requestedModule: string,\n readJson?: Filesystem.ReadJsonSync,\n fileExists?: Filesystem.FileExistsSync,\n extensions?: Array<string>\n ) =>\n matchFromAbsolutePaths(\n absolutePaths,\n requestedModule,\n readJson,\n fileExists,\n extensions,\n mainFields\n );\n}\n\n/**\n * Finds a path from tsconfig that matches a module load request.\n *\n * @param absolutePathMappings The paths to try as specified in tsconfig but resolved to absolute form.\n * @param requestedModule The required module name.\n * @param readJson Function that can read json from a path (useful for testing).\n * @param fileExists Function that checks for existence of a file at a path (useful for testing).\n * @param extensions File extensions to probe for (useful for testing).\n * @param mainFields A list of package.json field names to try when resolving module files. Select a nested field using an array of field names.\n * @returns the found path, or undefined if no path was found.\n */\nexport function matchFromAbsolutePaths(\n absolutePathMappings: ReadonlyArray<MappingEntry.MappingEntry>,\n requestedModule: string,\n readJson: Filesystem.ReadJsonSync = Filesystem.readJsonFromDiskSync,\n fileExists: Filesystem.FileExistsSync = Filesystem.fileExistsSync,\n extensions: Array<string> = Object.keys(require.extensions),\n mainFields: (string | string[])[] = [\"main\"]\n): string | undefined {\n const tryPaths = TryPath.getPathsToTry(\n extensions,\n absolutePathMappings,\n requestedModule\n );\n\n if (!tryPaths) {\n return undefined;\n }\n\n return findFirstExistingPath(tryPaths, readJson, fileExists, mainFields);\n}\n\nfunction findFirstExistingMainFieldMappedFile(\n packageJson: Filesystem.PackageJson,\n mainFields: (string | string[])[],\n packageJsonPath: string,\n fileExists: Filesystem.FileExistsSync\n): string | undefined {\n for (let index = 0; index < mainFields.length; index++) {\n const mainFieldSelector = mainFields[index];\n const candidateMapping =\n typeof mainFieldSelector === \"string\"\n ? packageJson[mainFieldSelector]\n : mainFieldSelector.reduce((obj, key) => obj[key], packageJson);\n if (candidateMapping && typeof candidateMapping === \"string\") {\n const candidateFilePath = path.join(\n path.dirname(packageJsonPath),\n candidateMapping\n );\n if (fileExists(candidateFilePath)) {\n return candidateFilePath;\n }\n }\n }\n\n return undefined;\n}\n\nfunction findFirstExistingPath(\n tryPaths: ReadonlyArray<TryPath.TryPath>,\n readJson: Filesystem.ReadJsonSync = Filesystem.readJsonFromDiskSync,\n fileExists: Filesystem.FileExistsSync,\n mainFields: (string | string[])[] = [\"main\"]\n): string | undefined {\n for (const tryPath of tryPaths) {\n if (\n tryPath.type === \"file\" ||\n tryPath.type === \"extension\" ||\n tryPath.type === \"index\"\n ) {\n if (fileExists(tryPath.path)) {\n return TryPath.getStrippedPath(tryPath);\n }\n } else if (tryPath.type === \"package\") {\n const packageJson: Filesystem.PackageJson = readJson(tryPath.path);\n if (packageJson) {\n const mainFieldMappedFile = findFirstExistingMainFieldMappedFile(\n packageJson,\n mainFields,\n tryPath.path,\n fileExists\n );\n if (mainFieldMappedFile) {\n return mainFieldMappedFile;\n }\n }\n } else {\n TryPath.exhaustiveTypeException(tryPath.type);\n }\n }\n return undefined;\n}\n","import * as path from \"path\";\nimport * as TryPath from \"./try-path\";\nimport * as MappingEntry from \"./mapping-entry\";\nimport * as Filesystem from \"./filesystem\";\n\n/**\n * Function that can match a path async\n */\nexport interface MatchPathAsync {\n (\n requestedModule: string,\n readJson: Filesystem.ReadJsonAsync | undefined,\n fileExists: Filesystem.FileExistsAsync | undefined,\n extensions: ReadonlyArray<string> | undefined,\n callback: MatchPathAsyncCallback\n ): void;\n}\n\nexport interface MatchPathAsyncCallback {\n // eslint-disable-next-line no-shadow\n (err?: Error, path?: string): void;\n}\n\n/**\n * See the sync version for docs.\n */\nexport function createMatchPathAsync(\n absoluteBaseUrl: string,\n paths: { [key: string]: Array<string> },\n mainFields: (string | string[])[] = [\"main\"],\n addMatchAll: boolean = true\n): MatchPathAsync {\n const absolutePaths = MappingEntry.getAbsoluteMappingEntries(\n absoluteBaseUrl,\n paths,\n addMatchAll\n );\n\n return (\n requestedModule: string,\n readJson: Filesystem.ReadJsonAsync | undefined,\n fileExists: Filesystem.FileExistsAsync | undefined,\n extensions: ReadonlyArray<string> | undefined,\n callback: MatchPathAsyncCallback\n ) =>\n matchFromAbsolutePathsAsync(\n absolutePaths,\n requestedModule,\n readJson,\n fileExists,\n extensions,\n callback,\n mainFields\n );\n}\n\n/**\n * See the sync version for docs.\n */\nexport function matchFromAbsolutePathsAsync(\n absolutePathMappings: ReadonlyArray<MappingEntry.MappingEntry>,\n requestedModule: string,\n readJson: Filesystem.ReadJsonAsync = Filesystem.readJsonFromDiskAsync,\n fileExists: Filesystem.FileExistsAsync = Filesystem.fileExistsAsync,\n extensions: ReadonlyArray<string> = Object.keys(require.extensions),\n callback: MatchPathAsyncCallback,\n mainFields: (string | string[])[] = [\"main\"]\n): void {\n const tryPaths = TryPath.getPathsToTry(\n extensions,\n absolutePathMappings,\n requestedModule\n );\n\n if (!tryPaths) {\n return callback();\n }\n\n findFirstExistingPath(\n tryPaths,\n readJson,\n fileExists,\n callback,\n 0,\n mainFields\n );\n}\n\nfunction findFirstExistingMainFieldMappedFile(\n packageJson: Filesystem.PackageJson,\n mainFields: (string | string[])[],\n packageJsonPath: string,\n fileExistsAsync: Filesystem.FileExistsAsync,\n doneCallback: (err?: Error, filepath?: string) => void,\n index: number = 0\n): void {\n if (index >= mainFields.length) {\n return doneCallback(undefined, undefined);\n }\n\n const tryNext = (): void =>\n findFirstExistingMainFieldMappedFile(\n packageJson,\n mainFields,\n packageJsonPath,\n fileExistsAsync,\n doneCallback,\n index + 1\n );\n\n const mainFieldSelector = mainFields[index];\n const mainFieldMapping =\n typeof mainFieldSelector === \"string\"\n ? packageJson[mainFieldSelector]\n : mainFieldSelector.reduce((obj, key) => obj[key], packageJson);\n if (typeof mainFieldMapping !== \"string\") {\n // Skip mappings that are not pointers to replacement files\n return tryNext();\n }\n\n const mappedFilePath = path.join(\n path.dirname(packageJsonPath),\n mainFieldMapping\n );\n fileExistsAsync(mappedFilePath, (err?: Error, exists?: boolean) => {\n if (err) {\n return doneCallback(err);\n }\n if (exists) {\n return doneCallback(undefined, mappedFilePath);\n }\n return tryNext();\n });\n}\n\n// Recursive loop to probe for physical files\nfunction findFirstExistingPath(\n tryPaths: ReadonlyArray<TryPath.TryPath>,\n readJson: Filesystem.ReadJsonAsync,\n fileExists: Filesystem.FileExistsAsync,\n doneCallback: MatchPathAsyncCallback,\n index: number = 0,\n mainFields: (string | string[])[] = [\"main\"]\n): void {\n const tryPath = tryPaths[index];\n if (\n tryPath.type === \"file\" ||\n tryPath.type === \"extension\" ||\n tryPath.type === \"index\"\n ) {\n fileExists(tryPath.path, (err: Error, exists: boolean) => {\n if (err) {\n return doneCallback(err);\n }\n if (exists) {\n return doneCallback(undefined, TryPath.getStrippedPath(tryPath));\n }\n if (index === tryPaths.length - 1) {\n return doneCallback();\n }\n // Continue with the next path\n return findFirstExistingPath(\n tryPaths,\n readJson,\n fileExists,\n doneCallback,\n index + 1,\n mainFields\n );\n });\n } else if (tryPath.type === \"package\") {\n readJson(tryPath.path, (err, packageJson) => {\n if (err) {\n return doneCallback(err);\n }\n if (packageJson) {\n return findFirstExistingMainFieldMappedFile(\n packageJson,\n mainFields,\n tryPath.path,\n fileExists,\n (mainFieldErr?: Error, mainFieldMappedFile?: string) => {\n if (mainFieldErr) {\n return doneCallback(mainFieldErr);\n }\n if (mainFieldMappedFile) {\n return doneCallback(undefined, mainFieldMappedFile);\n }\n\n // No field in package json was a valid option. Continue with the next path.\n return findFirstExistingPath(\n tryPaths,\n readJson,\n fileExists,\n doneCallback,\n index + 1,\n mainFields\n );\n }\n );\n }\n\n // This is async code, we need to return unconditionally, otherwise the code still falls\n // through and keeps recursing. While this might work in general, libraries that use neo-async\n // like Webpack will actually not allow you to call the same callback twice.\n //\n // An example of where this caused issues:\n // https://github.com/dividab/tsconfig-paths-webpack-plugin/issues/11\n //\n // Continue with the next path\n return findFirstExistingPath(\n tryPaths,\n readJson,\n fileExists,\n doneCallback,\n index + 1,\n mainFields\n );\n });\n } else {\n TryPath.exhaustiveTypeException(tryPath.type);\n }\n}\n","// This is a generated file. Do not edit.\nvar Space_Separator = /[\\u1680\\u2000-\\u200A\\u202F\\u205F\\u3000]/;\nvar ID_Start = /[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086A\\u08A0-\\u08B4\\u08B6-\\u08BD\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u09FC\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C60\\u0C61\\u0C80\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D54-\\u0D56\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u1884\\u1887-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1C80-\\u1C88\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312E\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FEA\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7AE\\uA7B0-\\uA7B7\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB65\\uAB70-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDD40-\\uDD74\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDF00-\\uDF1F\\uDF2D-\\uDF4A\\uDF50-\\uDF75\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF\\uDFD1-\\uDFD5]|\\uD801[\\uDC00-\\uDC9D\\uDCB0-\\uDCD3\\uDCD8-\\uDCFB\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00\\uDE10-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE33\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE4\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2]|\\uD804[\\uDC03-\\uDC37\\uDC83-\\uDCAF\\uDCD0-\\uDCE8\\uDD03-\\uDD26\\uDD50-\\uDD72\\uDD76\\uDD83-\\uDDB2\\uDDC1-\\uDDC4\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE2B\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEDE\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3D\\uDF50\\uDF5D-\\uDF61]|\\uD805[\\uDC00-\\uDC34\\uDC47-\\uDC4A\\uDC80-\\uDCAF\\uDCC4\\uDCC5\\uDCC7\\uDD80-\\uDDAE\\uDDD8-\\uDDDB\\uDE00-\\uDE2F\\uDE44\\uDE80-\\uDEAA\\uDF00-\\uDF19]|\\uD806[\\uDCA0-\\uDCDF\\uDCFF\\uDE00\\uDE0B-\\uDE32\\uDE3A\\uDE50\\uDE5C-\\uDE83\\uDE86-\\uDE89\\uDEC0-\\uDEF8]|\\uD807[\\uDC00-\\uDC08\\uDC0A-\\uDC2E\\uDC40\\uDC72-\\uDC8F\\uDD00-\\uDD06\\uDD08\\uDD09\\uDD0B-\\uDD30\\uDD46]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC00-\\uDC6E\\uDC80-\\uDD43]|[\\uD80C\\uD81C-\\uD820\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872\\uD874-\\uD879][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDED0-\\uDEED\\uDF00-\\uDF2F\\uDF40-\\uDF43\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDF00-\\uDF44\\uDF50\\uDF93-\\uDF9F\\uDFE0\\uDFE1]|\\uD821[\\uDC00-\\uDFEC]|\\uD822[\\uDC00-\\uDEF2]|\\uD82C[\\uDC00-\\uDD1E\\uDD70-\\uDEFB]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB]|\\uD83A[\\uDC00-\\uDCC4\\uDD00-\\uDD43]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD869[\\uDC00-\\uDED6\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF34\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1\\uDEB0-\\uDFFF]|\\uD87A[\\uDC00-\\uDFE0]|\\uD87E[\\uDC00-\\uDE1D]/;\nvar ID_Continue = /[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0300-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u0483-\\u0487\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0610-\\u061A\\u0620-\\u0669\\u066E-\\u06D3\\u06D5-\\u06DC\\u06DF-\\u06E8\\u06EA-\\u06FC\\u06FF\\u0710-\\u074A\\u074D-\\u07B1\\u07C0-\\u07F5\\u07FA\\u0800-\\u082D\\u0840-\\u085B\\u0860-\\u086A\\u08A0-\\u08B4\\u08B6-\\u08BD\\u08D4-\\u08E1\\u08E3-\\u0963\\u0966-\\u096F\\u0971-\\u0983\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BC-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CE\\u09D7\\u09DC\\u09DD\\u09DF-\\u09E3\\u09E6-\\u09F1\\u09FC\\u0A01-\\u0A03\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A75\\u0A81-\\u0A83\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABC-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AD0\\u0AE0-\\u0AE3\\u0AE6-\\u0AEF\\u0AF9-\\u0AFF\\u0B01-\\u0B03\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3C-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B5C\\u0B5D\\u0B5F-\\u0B63\\u0B66-\\u0B6F\\u0B71\\u0B82\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD0\\u0BD7\\u0BE6-\\u0BEF\\u0C00-\\u0C03\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C58-\\u0C5A\\u0C60-\\u0C63\\u0C66-\\u0C6F\\u0C80-\\u0C83\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBC-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CDE\\u0CE0-\\u0CE3\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D00-\\u0D03\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4E\\u0D54-\\u0D57\\u0D5F-\\u0D63\\u0D66-\\u0D6F\\u0D7A-\\u0D7F\\u0D82\\u0D83\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2\\u0DF3\\u0E01-\\u0E3A\\u0E40-\\u0E4E\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB9\\u0EBB-\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F18\\u0F19\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F39\\u0F3E-\\u0F47\\u0F49-\\u0F6C\\u0F71-\\u0F84\\u0F86-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u1000-\\u1049\\u1050-\\u109D\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u135D-\\u135F\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176C\\u176E-\\u1770\\u1772\\u1773\\u1780-\\u17D3\\u17D7\\u17DC\\u17DD\\u17E0-\\u17E9\\u180B-\\u180D\\u1810-\\u1819\\u1820-\\u1877\\u1880-\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1920-\\u192B\\u1930-\\u193B\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19D9\\u1A00-\\u1A1B\\u1A20-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1AB0-\\u1ABD\\u1B00-\\u1B4B\\u1B50-\\u1B59\\u1B6B-\\u1B73\\u1B80-\\u1BF3\\u1C00-\\u1C37\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1C80-\\u1C88\\u1CD0-\\u1CD2\\u1CD4-\\u1CF9\\u1D00-\\u1DF9\\u1DFB-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u203F\\u2040\\u2054\\u2071\\u207F\\u2090-\\u209C\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D7F-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2DE0-\\u2DFF\\u2E2F\\u3005-\\u3007\\u3021-\\u302F\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u3099\\u309A\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312E\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FEA\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66F\\uA674-\\uA67D\\uA67F-\\uA6F1\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7AE\\uA7B0-\\uA7B7\\uA7F7-\\uA827\\uA840-\\uA873\\uA880-\\uA8C5\\uA8D0-\\uA8D9\\uA8E0-\\uA8F7\\uA8FB\\uA8FD\\uA900-\\uA92D\\uA930-\\uA953\\uA960-\\uA97C\\uA980-\\uA9C0\\uA9CF-\\uA9D9\\uA9E0-\\uA9FE\\uAA00-\\uAA36\\uAA40-\\uAA4D\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A-\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEF\\uAAF2-\\uAAF6\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB65\\uAB70-\\uABEA\\uABEC\\uABED\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF3F\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDD40-\\uDD74\\uDDFD\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDEE0\\uDF00-\\uDF1F\\uDF2D-\\uDF4A\\uDF50-\\uDF7A\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF\\uDFD1-\\uDFD5]|\\uD801[\\uDC00-\\uDC9D\\uDCA0-\\uDCA9\\uDCB0-\\uDCD3\\uDCD8-\\uDCFB\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE33\\uDE38-\\uDE3A\\uDE3F\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE6\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2]|\\uD804[\\uDC00-\\uDC46\\uDC66-\\uDC6F\\uDC7F-\\uDCBA\\uDCD0-\\uDCE8\\uDCF0-\\uDCF9\\uDD00-\\uDD34\\uDD36-\\uDD3F\\uDD50-\\uDD73\\uDD76\\uDD80-\\uDDC4\\uDDCA-\\uDDCC\\uDDD0-\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE37\\uDE3E\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEEA\\uDEF0-\\uDEF9\\uDF00-\\uDF03\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3C-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF50\\uDF57\\uDF5D-\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDC00-\\uDC4A\\uDC50-\\uDC59\\uDC80-\\uDCC5\\uDCC7\\uDCD0-\\uDCD9\\uDD80-\\uDDB5\\uDDB8-\\uDDC0\\uDDD8-\\uDDDD\\uDE00-\\uDE40\\uDE44\\uDE50-\\uDE59\\uDE80-\\uDEB7\\uDEC0-\\uDEC9\\uDF00-\\uDF19\\uDF1D-\\uDF2B\\uDF30-\\uDF39]|\\uD806[\\uDCA0-\\uDCE9\\uDCFF\\uDE00-\\uDE3E\\uDE47\\uDE50-\\uDE83\\uDE86-\\uDE99\\uDEC0-\\uDEF8]|\\uD807[\\uDC00-\\uDC08\\uDC0A-\\uDC36\\uDC38-\\uDC40\\uDC50-\\uDC59\\uDC72-\\uDC8F\\uDC92-\\uDCA7\\uDCA9-\\uDCB6\\uDD00-\\uDD06\\uDD08\\uDD09\\uDD0B-\\uDD36\\uDD3A\\uDD3C\\uDD3D\\uDD3F-\\uDD47\\uDD50-\\uDD59]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC00-\\uDC6E\\uDC80-\\uDD43]|[\\uD80C\\uD81C-\\uD820\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872\\uD874-\\uD879][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDE60-\\uDE69\\uDED0-\\uDEED\\uDEF0-\\uDEF4\\uDF00-\\uDF36\\uDF40-\\uDF43\\uDF50-\\uDF59\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDF00-\\uDF44\\uDF50-\\uDF7E\\uDF8F-\\uDF9F\\uDFE0\\uDFE1]|\\uD821[\\uDC00-\\uDFEC]|\\uD822[\\uDC00-\\uDEF2]|\\uD82C[\\uDC00-\\uDD1E\\uDD70-\\uDEFB]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99\\uDC9D\\uDC9E]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD72\\uDD7B-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB\\uDFCE-\\uDFFF]|\\uD836[\\uDE00-\\uDE36\\uDE3B-\\uDE6C\\uDE75\\uDE84\\uDE9B-\\uDE9F\\uDEA1-\\uDEAF]|\\uD838[\\uDC00-\\uDC06\\uDC08-\\uDC18\\uDC1B-\\uDC21\\uDC23\\uDC24\\uDC26-\\uDC2A]|\\uD83A[\\uDC00-\\uDCC4\\uDCD0-\\uDCD6\\uDD00-\\uDD4A\\uDD50-\\uDD59]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD869[\\uDC00-\\uDED6\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF34\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1\\uDEB0-\\uDFFF]|\\uD87A[\\uDC00-\\uDFE0]|\\uD87E[\\uDC00-\\uDE1D]|\\uDB40[\\uDD00-\\uDDEF]/;\n\nvar unicode = {\n\tSpace_Separator: Space_Separator,\n\tID_Start: ID_Start,\n\tID_Continue: ID_Continue\n};\n\nvar util = {\n isSpaceSeparator (c) {\n return typeof c === 'string' && unicode.Space_Separator.test(c)\n },\n\n isIdStartChar (c) {\n return typeof c === 'string' && (\n (c >= 'a' && c <= 'z') ||\n (c >= 'A' && c <= 'Z') ||\n (c === '$') || (c === '_') ||\n unicode.ID_Start.test(c)\n )\n },\n\n isIdContinueChar (c) {\n return typeof c === 'string' && (\n (c >= 'a' && c <= 'z') ||\n (c >= 'A' && c <= 'Z') ||\n (c >= '0' && c <= '9') ||\n (c === '$') || (c === '_') ||\n (c === '\\u200C') || (c === '\\u200D') ||\n unicode.ID_Continue.test(c)\n )\n },\n\n isDigit (c) {\n return typeof c === 'string' && /[0-9]/.test(c)\n },\n\n isHexDigit (c) {\n return typeof c === 'string' && /[0-9A-Fa-f]/.test(c)\n },\n};\n\nlet source;\nlet parseState;\nlet stack;\nlet pos;\nlet line;\nlet column;\nlet token;\nlet key;\nlet root;\n\nvar parse = function parse (text, reviver) {\n source = String(text);\n parseState = 'start';\n stack = [];\n pos = 0;\n line = 1;\n column = 0;\n token = undefined;\n key = undefined;\n root = undefined;\n\n do {\n token = lex();\n\n // This code is unreachable.\n // if (!parseStates[parseState]) {\n // throw invalidParseState()\n // }\n\n parseStates[parseState]();\n } while (token.type !== 'eof')\n\n if (typeof reviver === 'function') {\n return internalize({'': root}, '', reviver)\n }\n\n return root\n};\n\nfunction internalize (holder, name, reviver) {\n const value = holder[name];\n if (value != null && typeof value === 'object') {\n if (Array.isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n const key = String(i);\n const replacement = internalize(value, key, reviver);\n if (replacement === undefined) {\n delete value[key];\n } else {\n Object.defineProperty(value, key, {\n value: replacement,\n writable: true,\n enumerable: true,\n configurable: true,\n });\n }\n }\n } else {\n for (const key in value) {\n const replacement = internalize(value, key, reviver);\n if (replacement === undefined) {\n delete value[key];\n } else {\n Object.defineProperty(value, key, {\n value: replacement,\n writable: true,\n enumerable: true,\n configurable: true,\n });\n }\n }\n }\n }\n\n return reviver.call(holder, name, value)\n}\n\nlet lexState;\nlet buffer;\nlet doubleQuote;\nlet sign;\nlet c;\n\nfunction lex () {\n lexState = 'default';\n buffer = '';\n doubleQuote = false;\n sign = 1;\n\n for (;;) {\n c = peek();\n\n // This code is unreachable.\n // if (!lexStates[lexState]) {\n // throw invalidLexState(lexState)\n // }\n\n const token = lexStates[lexState]();\n if (token) {\n return token\n }\n }\n}\n\nfunction peek () {\n if (source[pos]) {\n return String.fromCodePoint(source.codePointAt(pos))\n }\n}\n\nfunction read () {\n const c = peek();\n\n if (c === '\\n') {\n line++;\n column = 0;\n } else if (c) {\n column += c.length;\n } else {\n column++;\n }\n\n if (c) {\n pos += c.length;\n }\n\n return c\n}\n\nconst lexStates = {\n default () {\n switch (c) {\n case '\\t':\n case '\\v':\n case '\\f':\n case ' ':\n case '\\u00A0':\n case '\\uFEFF':\n case '\\n':\n case '\\r':\n case '\\u2028':\n case '\\u2029':\n read();\n return\n\n case '/':\n read();\n lexState = 'comment';\n return\n\n case undefined:\n read();\n return newToken('eof')\n }\n\n if (util.isSpaceSeparator(c)) {\n read();\n return\n }\n\n // This code is unreachable.\n // if (!lexStates[parseState]) {\n // throw invalidLexState(parseState)\n // }\n\n return lexStates[parseState]()\n },\n\n comment () {\n switch (c) {\n case '*':\n read();\n lexState = 'multiLineComment';\n return\n\n case '/':\n read();\n lexState = 'singleLineComment';\n return\n }\n\n throw invalidChar(read())\n },\n\n multiLineComment () {\n switch (c) {\n case '*':\n read();\n lexState = 'multiLineCommentAsterisk';\n return\n\n case undefined:\n throw invalidChar(read())\n }\n\n read();\n },\n\n multiLineCommentAsterisk () {\n switch (c) {\n case '*':\n read();\n return\n\n case '/':\n read();\n lexState = 'default';\n return\n\n case undefined:\n throw invalidChar(read())\n }\n\n read();\n lexState = 'multiLineComment';\n },\n\n singleLineComment () {\n switch (c) {\n case '\\n':\n case '\\r':\n case '\\u2028':\n case '\\u2029':\n read();\n lexState = 'default';\n return\n\n case undefined:\n read();\n return newToken('eof')\n }\n\n read();\n },\n\n value () {\n switch (c) {\n case '{':\n case '[':\n return newToken('punctuator', read())\n\n case 'n':\n read();\n literal('ull');\n return newToken('null', null)\n\n case 't':\n read();\n literal('rue');\n return newToken('boolean', true)\n\n case 'f':\n read();\n literal('alse');\n return newToken('boolean', false)\n\n case '-':\n case '+':\n if (read() === '-') {\n sign = -1;\n }\n\n lexState = 'sign';\n return\n\n case '.':\n buffer = read();\n lexState = 'decimalPointLeading';\n return\n\n case '0':\n buffer = read();\n lexState = 'zero';\n return\n\n case '1':\n case '2':\n case '3':\n case '4':\n case '5':\n case '6':\n case '7':\n case '8':\n case '9':\n buffer = read();\n lexState = 'decimalInteger';\n return\n\n case 'I':\n read();\n literal('nfinity');\n return newToken('numeric', Infinity)\n\n case 'N':\n read();\n literal('aN');\n return newToken('numeric', NaN)\n\n case '\"':\n case \"'\":\n doubleQuote = (read() === '\"');\n buffer = '';\n lexState = 'string';\n return\n }\n\n throw invalidChar(read())\n },\n\n identifierNameStartEscape () {\n if (c !== 'u') {\n throw invalidChar(read())\n }\n\n read();\n const u = unicodeEscape();\n switch (u) {\n case '$':\n case '_':\n break\n\n default:\n if (!util.isIdStartChar(u)) {\n throw invalidIdentifier()\n }\n\n break\n }\n\n buffer += u;\n lexState = 'identifierName';\n },\n\n identifierName () {\n switch (c) {\n case '$':\n case '_':\n case '\\u200C':\n case '\\u200D':\n buffer += read();\n return\n\n case '\\\\':\n read();\n lexState = 'identifierNameEscape';\n return\n }\n\n if (util.isIdContinueChar(c)) {\n buffer += read();\n return\n }\n\n return newToken('identifier', buffer)\n },\n\n identifierNameEscape () {\n if (c !== 'u') {\n throw invalidChar(read())\n }\n\n read();\n const u = unicodeEscape();\n switch (u) {\n case '$':\n case '_':\n case '\\u200C':\n case '\\u200D':\n break\n\n default:\n if (!util.isIdContinueChar(u)) {\n throw invalidIdentifier()\n }\n\n break\n }\n\n buffer += u;\n lexState = 'identifierName';\n },\n\n sign () {\n switch (c) {\n case '.':\n buffer = read();\n lexState = 'decimalPointLeading';\n return\n\n case '0':\n buffer = read();\n lexState = 'zero';\n return\n\n case '1':\n case '2':\n case '3':\n case '4':\n case '5':\n case '6':\n case '7':\n case '8':\n case '9':\n buffer = read();\n lexState = 'decimalInteger';\n return\n\n case 'I':\n read();\n literal('nfinity');\n return newToken('numeric', sign * Infinity)\n\n case 'N':\n read();\n literal('aN');\n return newToken('numeric', NaN)\n }\n\n throw invalidChar(read())\n },\n\n zero () {\n switch (c) {\n case '.':\n buffer += read();\n lexState = 'decimalPoint';\n return\n\n case 'e':\n case 'E':\n buffer += read();\n lexState = 'decimalExponent';\n return\n\n case 'x':\n case 'X':\n buffer += read();\n lexState = 'hexadecimal';\n return\n }\n\n return newToken('numeric', sign * 0)\n },\n\n decimalInteger () {\n switch (c) {\n case '.':\n buffer += read();\n lexState = 'decimalPoint';\n return\n\n case 'e':\n case 'E':\n buffer += read();\n lexState = 'decimalExponent';\n return\n }\n\n if (util.isDigit(c)) {\n buffer += read();\n return\n }\n\n return newToken('numeric', sign * Number(buffer))\n },\n\n decimalPointLeading () {\n if (util.isDigit(c)) {\n buffer += read();\n lexState = 'decimalFraction';\n return\n }\n\n throw invalidChar(read())\n },\n\n decimalPoint () {\n switch (c) {\n case 'e':\n case 'E':\n buffer += read();\n lexState = 'decimalExponent';\n return\n }\n\n if (util.isDigit(c)) {\n buffer += read();\n lexState = 'decimalFraction';\n return\n }\n\n return newToken('numeric', sign * Number(buffer))\n },\n\n decimalFraction () {\n switch (c) {\n case 'e':\n case 'E':\n buffer += read();\n lexState = 'decimalExponent';\n return\n }\n\n if (util.isDigit(c)) {\n buffer += read();\n return\n }\n\n return newToken('numeric', sign * Number(buffer))\n },\n\n decimalExponent () {\n switch (c) {\n case '+':\n case '-':\n buffer += read();\n lexState = 'decimalExponentSign';\n return\n }\n\n if (util.isDigit(c)) {\n buffer += read();\n lexState = 'decimalExponentInteger';\n return\n }\n\n throw invalidChar(read())\n },\n\n decimalExponentSign () {\n if (util.isDigit(c)) {\n buffer += read();\n lexState = 'decimalExponentInteger';\n return\n }\n\n throw invalidChar(read())\n },\n\n decimalExponentInteger () {\n if (util.isDigit(c)) {\n buffer += read();\n return\n }\n\n return newToken('numeric', sign * Number(buffer))\n },\n\n hexadecimal () {\n if (util.isHexDigit(c)) {\n buffer += read();\n lexState = 'hexadecimalInteger';\n return\n }\n\n throw invalidChar(read())\n },\n\n hexadecimalInteger () {\n if (util.isHexDigit(c)) {\n buffer += read();\n return\n }\n\n return newToken('numeric', sign * Number(buffer))\n },\n\n string () {\n switch (c) {\n case '\\\\':\n read();\n buffer += escape();\n return\n\n case '\"':\n if (doubleQuote) {\n read();\n return newToken('string', buffer)\n }\n\n buffer += read();\n return\n\n case \"'\":\n if (!doubleQuote) {\n read();\n return newToken('string', buffer)\n }\n\n buffer += read();\n return\n\n case '\\n':\n case '\\r':\n throw invalidChar(read())\n\n case '\\u2028':\n case '\\u2029':\n separatorChar(c);\n break\n\n case undefined:\n throw invalidChar(read())\n }\n\n buffer += read();\n },\n\n start () {\n switch (c) {\n case '{':\n case '[':\n return newToken('punctuator', read())\n\n // This code is unreachable since the default lexState handles eof.\n // case undefined:\n // return newToken('eof')\n }\n\n lexState = 'value';\n },\n\n beforePropertyName () {\n switch (c) {\n case '$':\n case '_':\n buffer = read();\n lexState = 'identifierName';\n return\n\n case '\\\\':\n read();\n lexState = 'identifierNameStartEscape';\n return\n\n case '}':\n return newToken('punctuator', read())\n\n case '\"':\n case \"'\":\n doubleQuote = (read() === '\"');\n lexState = 'string';\n return\n }\n\n if (util.isIdStartChar(c)) {\n buffer += read();\n lexState = 'identifierName';\n return\n }\n\n throw invalidChar(read())\n },\n\n afterPropertyName () {\n if (c === ':') {\n return newToken('punctuator', read())\n }\n\n throw invalidChar(read())\n },\n\n beforePropertyValue () {\n lexState = 'value';\n },\n\n afterPropertyValue () {\n switch (c) {\n case ',':\n case '}':\n return newToken('punctuator', read())\n }\n\n throw invalidChar(read())\n },\n\n beforeArrayValue () {\n if (c === ']') {\n return newToken('punctuator', read())\n }\n\n lexState = 'value';\n },\n\n afterArrayValue () {\n switch (c) {\n case ',':\n case ']':\n return newToken('punctuator', read())\n }\n\n throw invalidChar(read())\n },\n\n end () {\n // This code is unreachable since it's handled by the default lexState.\n // if (c === undefined) {\n // read()\n // return newToken('eof')\n // }\n\n throw invalidChar(read())\n },\n};\n\nfunction newToken (type, value) {\n return {\n type,\n value,\n line,\n column,\n }\n}\n\nfunction literal (s) {\n for (const c of s) {\n const p = peek();\n\n if (p !== c) {\n throw invalidChar(read())\n }\n\n read();\n }\n}\n\nfunction escape () {\n const c = peek();\n switch (c) {\n case 'b':\n read();\n return '\\b'\n\n case 'f':\n read();\n return '\\f'\n\n case 'n':\n read();\n return '\\n'\n\n case 'r':\n read();\n return '\\r'\n\n case 't':\n read();\n return '\\t'\n\n case 'v':\n read();\n return '\\v'\n\n case '0':\n read();\n if (util.isDigit(peek())) {\n throw invalidChar(read())\n }\n\n return '\\0'\n\n case 'x':\n read();\n return hexEscape()\n\n case 'u':\n read();\n return unicodeEscape()\n\n case '\\n':\n case '\\u2028':\n case '\\u2029':\n read();\n return ''\n\n case '\\r':\n read();\n if (peek() === '\\n') {\n read();\n }\n\n return ''\n\n case '1':\n case '2':\n case '3':\n case '4':\n case '5':\n case '6':\n case '7':\n case '8':\n case '9':\n throw invalidChar(read())\n\n case undefined:\n throw invalidChar(read())\n }\n\n return read()\n}\n\nfunction hexEscape () {\n let buffer = '';\n let c = peek();\n\n if (!util.isHexDigit(c)) {\n throw invalidChar(read())\n }\n\n buffer += read();\n\n c = peek();\n if (!util.isHexDigit(c)) {\n throw invalidChar(read())\n }\n\n buffer += read();\n\n return String.fromCodePoint(parseInt(buffer, 16))\n}\n\nfunction unicodeEscape () {\n let buffer = '';\n let count = 4;\n\n while (count-- > 0) {\n const c = peek();\n if (!util.isHexDigit(c)) {\n throw invalidChar(read())\n }\n\n buffer += read();\n }\n\n return String.fromCodePoint(parseInt(buffer, 16))\n}\n\nconst parseStates = {\n start () {\n if (token.type === 'eof') {\n throw invalidEOF()\n }\n\n push();\n },\n\n beforePropertyName () {\n switch (token.type) {\n case 'identifier':\n case 'string':\n key = token.value;\n parseState = 'afterPropertyName';\n return\n\n case 'punctuator':\n // This code is unreachable since it's handled by the lexState.\n // if (token.value !== '}') {\n // throw invalidToken()\n // }\n\n pop();\n return\n\n case 'eof':\n throw invalidEOF()\n }\n\n // This code is unreachable since it's handled by the lexState.\n // throw invalidToken()\n },\n\n afterPropertyName () {\n // This code is unreachable since it's handled by the lexState.\n // if (token.type !== 'punctuator' || token.value !== ':') {\n // throw invalidToken()\n // }\n\n if (token.type === 'eof') {\n throw invalidEOF()\n }\n\n parseState = 'beforePropertyValue';\n },\n\n beforePropertyValue () {\n if (token.type === 'eof') {\n throw invalidEOF()\n }\n\n push();\n },\n\n beforeArrayValue () {\n if (token.type === 'eof') {\n throw invalidEOF()\n }\n\n if (token.type === 'punctuator' && token.value === ']') {\n pop();\n return\n }\n\n push();\n },\n\n afterPropertyValue () {\n // This code is unreachable since it's handled by the lexState.\n // if (token.type !== 'punctuator') {\n // throw invalidToken()\n // }\n\n if (token.type === 'eof') {\n throw invalidEOF()\n }\n\n switch (token.value) {\n case ',':\n parseState = 'beforePropertyName';\n return\n\n case '}':\n pop();\n }\n\n // This code is unreachable since it's handled by the lexState.\n // throw invalidToken()\n },\n\n afterArrayValue () {\n // This code is unreachable since it's handled by the lexState.\n // if (token.type !== 'punctuator') {\n // throw invalidToken()\n // }\n\n if (token.type === 'eof') {\n throw invalidEOF()\n }\n\n switch (token.value) {\n case ',':\n parseState = 'beforeArrayValue';\n return\n\n case ']':\n pop();\n }\n\n // This code is unreachable since it's handled by the lexState.\n // throw invalidToken()\n },\n\n end () {\n // This code is unreachable since it's handled by the lexState.\n // if (token.type !== 'eof') {\n // throw invalidToken()\n // }\n },\n};\n\nfunction push () {\n let value;\n\n switch (token.type) {\n case 'punctuator':\n switch (token.value) {\n case '{':\n value = {};\n break\n\n case '[':\n value = [];\n break\n }\n\n break\n\n case 'null':\n case 'boolean':\n case 'numeric':\n case 'string':\n value = token.value;\n break\n\n // This code is unreachable.\n // default:\n // throw invalidToken()\n }\n\n if (root === undefined) {\n root = value;\n } else {\n const parent = stack[stack.length - 1];\n if (Array.isArray(parent)) {\n parent.push(value);\n } else {\n Object.defineProperty(parent, key, {\n value,\n writable: true,\n enumerable: true,\n configurable: true,\n });\n }\n }\n\n if (value !== null && typeof value === 'object') {\n stack.push(value);\n\n if (Array.isArray(value)) {\n parseState = 'beforeArrayValue';\n } else {\n parseState = 'beforePropertyName';\n }\n } else {\n const current = stack[stack.length - 1];\n if (current == null) {\n parseState = 'end';\n } else if (Array.isArray(current)) {\n parseState = 'afterArrayValue';\n } else {\n parseState = 'afterPropertyValue';\n }\n }\n}\n\nfunction pop () {\n stack.pop();\n\n const current = stack[stack.length - 1];\n if (current == null) {\n parseState = 'end';\n } else if (Array.isArray(current)) {\n parseState = 'afterArrayValue';\n } else {\n parseState = 'afterPropertyValue';\n }\n}\n\n// This code is unreachable.\n// function invalidParseState () {\n// return new Error(`JSON5: invalid parse state '${parseState}'`)\n// }\n\n// This code is unreachable.\n// function invalidLexState (state) {\n// return new Error(`JSON5: invalid lex state '${state}'`)\n// }\n\nfunction invalidChar (c) {\n if (c === undefined) {\n return syntaxError(`JSON5: invalid end of input at ${line}:${column}`)\n }\n\n return syntaxError(`JSON5: invalid character '${formatChar(c)}' at ${line}:${column}`)\n}\n\nfunction invalidEOF () {\n return syntaxError(`JSON5: invalid end of input at ${line}:${column}`)\n}\n\n// This code is unreachable.\n// function invalidToken () {\n// if (token.type === 'eof') {\n// return syntaxError(`JSON5: invalid end of input at ${line}:${column}`)\n// }\n\n// const c = String.fromCodePoint(token.value.codePointAt(0))\n// return syntaxError(`JSON5: invalid character '${formatChar(c)}' at ${line}:${column}`)\n// }\n\nfunction invalidIdentifier () {\n column -= 5;\n return syntaxError(`JSON5: invalid identifier character at ${line}:${column}`)\n}\n\nfunction separatorChar (c) {\n console.warn(`JSON5: '${formatChar(c)}' in strings is not valid ECMAScript; consider escaping`);\n}\n\nfunction formatChar (c) {\n const replacements = {\n \"'\": \"\\\\'\",\n '\"': '\\\\\"',\n '\\\\': '\\\\\\\\',\n '\\b': '\\\\b',\n '\\f': '\\\\f',\n '\\n': '\\\\n',\n '\\r': '\\\\r',\n '\\t': '\\\\t',\n '\\v': '\\\\v',\n '\\0': '\\\\0',\n '\\u2028': '\\\\u2028',\n '\\u2029': '\\\\u2029',\n };\n\n if (replacements[c]) {\n return replacements[c]\n }\n\n if (c < ' ') {\n const hexString = c.charCodeAt(0).toString(16);\n return '\\\\x' + ('00' + hexString).substring(hexString.length)\n }\n\n return c\n}\n\nfunction syntaxError (message) {\n const err = new SyntaxError(message);\n err.lineNumber = line;\n err.columnNumber = column;\n return err\n}\n\nvar stringify = function stringify (value, replacer, space) {\n const stack = [];\n let indent = '';\n let propertyList;\n let replacerFunc;\n let gap = '';\n let quote;\n\n if (\n replacer != null &&\n typeof replacer === 'object' &&\n !Array.isArray(replacer)\n ) {\n space = replacer.space;\n quote = replacer.quote;\n replacer = replacer.replacer;\n }\n\n if (typeof replacer === 'function') {\n replacerFunc = replacer;\n } else if (Array.isArray(replacer)) {\n propertyList = [];\n for (const v of replacer) {\n let item;\n\n if (typeof v === 'string') {\n item = v;\n } else if (\n typeof v === 'number' ||\n v instanceof String ||\n v instanceof Number\n ) {\n item = String(v);\n }\n\n if (item !== undefined && propertyList.indexOf(item) < 0) {\n propertyList.push(item);\n }\n }\n }\n\n if (space instanceof Number) {\n space = Number(space);\n } else if (space instanceof String) {\n space = String(space);\n }\n\n if (typeof space === 'number') {\n if (space > 0) {\n space = Math.min(10, Math.floor(space));\n gap = ' '.substr(0, space);\n }\n } else if (typeof space === 'string') {\n gap = space.substr(0, 10);\n }\n\n return serializeProperty('', {'': value})\n\n function serializeProperty (key, holder) {\n let value = holder[key];\n if (value != null) {\n if (typeof value.toJSON5 === 'function') {\n value = value.toJSON5(key);\n } else if (typeof value.toJSON === 'function') {\n value = value.toJSON(key);\n }\n }\n\n if (replacerFunc) {\n value = replacerFunc.call(holder, key, value);\n }\n\n if (value instanceof Number) {\n value = Number(value);\n } else if (value instanceof String) {\n value = String(value);\n } else if (value instanceof Boolean) {\n value = value.valueOf();\n }\n\n switch (value) {\n case null: return 'null'\n case true: return 'true'\n case false: return 'false'\n }\n\n if (typeof value === 'string') {\n return quoteString(value, false)\n }\n\n if (typeof value === 'number') {\n return String(value)\n }\n\n if (typeof value === 'object') {\n return Array.isArray(value) ? serializeArray(value) : serializeObject(value)\n }\n\n return undefined\n }\n\n function quoteString (value) {\n const quotes = {\n \"'\": 0.1,\n '\"': 0.2,\n };\n\n const replacements = {\n \"'\": \"\\\\'\",\n '\"': '\\\\\"',\n '\\\\': '\\\\\\\\',\n '\\b': '\\\\b',\n '\\f': '\\\\f',\n '\\n': '\\\\n',\n '\\r': '\\\\r',\n '\\t': '\\\\t',\n '\\v': '\\\\v',\n '\\0': '\\\\0',\n '\\u2028': '\\\\u2028',\n '\\u2029': '\\\\u2029',\n };\n\n let product = '';\n\n for (let i = 0; i < value.length; i++) {\n const c = value[i];\n switch (c) {\n case \"'\":\n case '\"':\n quotes[c]++;\n product += c;\n continue\n\n case '\\0':\n if (util.isDigit(value[i + 1])) {\n product += '\\\\x00';\n continue\n }\n }\n\n if (replacements[c]) {\n product += replacements[c];\n continue\n }\n\n if (c < ' ') {\n let hexString = c.charCodeAt(0).toString(16);\n product += '\\\\x' + ('00' + hexString).substring(hexString.length);\n continue\n }\n\n product += c;\n }\n\n const quoteChar = quote || Object.keys(quotes).reduce((a, b) => (quotes[a] < quotes[b]) ? a : b);\n\n product = product.replace(new RegExp(quoteChar, 'g'), replacements[quoteChar]);\n\n return quoteChar + product + quoteChar\n }\n\n function serializeObject (value) {\n if (stack.indexOf(value) >= 0) {\n throw TypeError('Converting circular structure to JSON5')\n }\n\n stack.push(value);\n\n let stepback = indent;\n indent = indent + gap;\n\n let keys = propertyList || Object.keys(value);\n let partial = [];\n for (const key of keys) {\n const propertyString = serializeProperty(key, value);\n if (propertyString !== undefined) {\n let member = serializeKey(key) + ':';\n if (gap !== '') {\n member += ' ';\n }\n member += propertyString;\n partial.push(member);\n }\n }\n\n let final;\n if (partial.length === 0) {\n final = '{}';\n } else {\n let properties;\n if (gap === '') {\n properties = partial.join(',');\n final = '{' + properties + '}';\n } else {\n let separator = ',\\n' + indent;\n properties = partial.join(separator);\n final = '{\\n' + indent + properties + ',\\n' + stepback + '}';\n }\n }\n\n stack.pop();\n indent = stepback;\n return final\n }\n\n function serializeKey (key) {\n if (key.length === 0) {\n return quoteString(key, true)\n }\n\n const firstChar = String.fromCodePoint(key.codePointAt(0));\n if (!util.isIdStartChar(firstChar)) {\n return quoteString(key, true)\n }\n\n for (let i = firstChar.length; i < key.length; i++) {\n if (!util.isIdContinueChar(String.fromCodePoint(key.codePointAt(i)))) {\n return quoteString(key, true)\n }\n }\n\n return key\n }\n\n function serializeArray (value) {\n if (stack.indexOf(value) >= 0) {\n throw TypeError('Converting circular structure to JSON5')\n }\n\n stack.push(value);\n\n let stepback = indent;\n indent = indent + gap;\n\n let partial = [];\n for (let i = 0; i < value.length; i++) {\n const propertyString = serializeProperty(String(i), value);\n partial.push((propertyString !== undefined) ? propertyString : 'null');\n }\n\n let final;\n if (partial.length === 0) {\n final = '[]';\n } else {\n if (gap === '') {\n let properties = partial.join(',');\n final = '[' + properties + ']';\n } else {\n let separator = ',\\n' + indent;\n let properties = partial.join(separator);\n final = '[\\n' + indent + properties + ',\\n' + stepback + ']';\n }\n }\n\n stack.pop();\n indent = stepback;\n return final\n }\n};\n\nconst JSON5 = {\n parse,\n stringify,\n};\n\nvar lib = JSON5;\n\nexport default lib;\n","'use strict';\nmodule.exports = x => {\n\tif (typeof x !== 'string') {\n\t\tthrow new TypeError('Expected a string, got ' + typeof x);\n\t}\n\n\t// Catches EFBBBF (UTF-8 BOM) because the buffer-to-string\n\t// conversion translates it to FEFF (UTF-16 BOM)\n\tif (x.charCodeAt(0) === 0xFEFF) {\n\t\treturn x.slice(1);\n\t}\n\n\treturn x;\n};\n","import * as path from \"path\";\nimport * as fs from \"fs\";\n// eslint-disable-next-line @typescript-eslint/no-require-imports\nimport JSON5 = require(\"json5\");\n// eslint-disable-next-line @typescript-eslint/no-require-imports\nimport StripBom = require(\"strip-bom\");\n\n/**\n * Typing for the parts of tsconfig that we care about\n */\nexport interface Tsconfig {\n extends?: string | string[];\n compilerOptions?: {\n baseUrl?: string;\n paths?: { [key: string]: Array<string> };\n strict?: boolean;\n };\n}\n\nexport interface TsConfigLoaderResult {\n tsConfigPath: string | undefined;\n baseUrl: string | undefined;\n paths: { [key: string]: Array<string> } | undefined;\n}\n\nexport interface TsConfigLoaderParams {\n getEnv: (key: string) => string | undefined;\n cwd: string;\n loadSync?(\n cwd: string,\n filename?: string,\n baseUrl?: string\n ): TsConfigLoaderResult;\n}\n\nexport function tsConfigLoader({\n getEnv,\n cwd,\n loadSync = loadSyncDefault,\n}: TsConfigLoaderParams): TsConfigLoaderResult {\n const TS_NODE_PROJECT = getEnv(\"TS_NODE_PROJECT\");\n const TS_NODE_BASEURL = getEnv(\"TS_NODE_BASEURL\");\n\n // tsconfig.loadSync handles if TS_NODE_PROJECT is a file or directory\n // and also overrides baseURL if TS_NODE_BASEURL is available.\n const loadResult = loadSync(cwd, TS_NODE_PROJECT, TS_NODE_BASEURL);\n return loadResult;\n}\n\nfunction loadSyncDefault(\n cwd: string,\n filename?: string,\n baseUrl?: string\n): TsConfigLoaderResult {\n // Tsconfig.loadSync uses path.resolve. This is why we can use an absolute path as filename\n\n const configPath = resolveConfigPath(cwd, filename);\n\n if (!configPath) {\n return {\n tsConfigPath: undefined,\n baseUrl: undefined,\n paths: undefined,\n };\n }\n const config = loadTsconfig(configPath);\n\n return {\n tsConfigPath: configPath,\n baseUrl:\n baseUrl ||\n (config && config.compilerOptions && config.compilerOptions.baseUrl),\n paths: config && config.compilerOptions && config.compilerOptions.paths,\n };\n}\n\nfunction resolveConfigPath(cwd: string, filename?: string): string | undefined {\n if (filename) {\n const absolutePath = fs.lstatSync(filename).isDirectory()\n ? path.resolve(filename, \"./tsconfig.json\")\n : path.resolve(cwd, filename);\n\n return absolutePath;\n }\n\n if (fs.statSync(cwd).isFile()) {\n return path.resolve(cwd);\n }\n\n const configAbsolutePath = walkForTsConfig(cwd);\n return configAbsolutePath ? path.resolve(configAbsolutePath) : undefined;\n}\nexport function walkForTsConfig(\n directory: string,\n readdirSync: (path: string) => string[] = fs.readdirSync\n): string | undefined {\n const files = readdirSync(directory);\n const filesToCheck = [\"tsconfig.json\", \"jsconfig.json\"];\n for (const fileToCheck of filesToCheck) {\n if (files.indexOf(fileToCheck) !== -1) {\n return path.join(directory, fileToCheck);\n }\n }\n\n const parentDirectory = path.dirname(directory);\n\n // If we reached the top\n if (directory === parentDirectory) {\n return undefined;\n }\n\n return walkForTsConfig(parentDirectory, readdirSync);\n}\n\nexport function loadTsconfig(\n configFilePath: string,\n // eslint-disable-next-line no-shadow\n existsSync: (path: string) => boolean = fs.existsSync,\n readFileSync: (filename: string) => string = (filename: string) =>\n fs.readFileSync(filename, \"utf8\")\n): Tsconfig | undefined {\n if (!existsSync(configFilePath)) {\n return undefined;\n }\n\n const configString = readFileSync(configFilePath);\n const cleanedJson = StripBom(configString);\n let config: Tsconfig;\n try {\n config = JSON5.parse(cleanedJson);\n } catch (e) {\n throw new Error(`${configFilePath} is malformed ${e.message}`);\n }\n\n let extendedConfig = config.extends;\n if (extendedConfig) {\n let base: Tsconfig;\n\n if (Array.isArray(extendedConfig)) {\n base = extendedConfig.reduce(\n (currBase, extendedConfigElement) =>\n mergeTsconfigs(\n currBase,\n loadTsconfigFromExtends(\n configFilePath,\n extendedConfigElement,\n existsSync,\n readFileSync\n )\n ),\n {}\n );\n } else {\n base = loadTsconfigFromExtends(\n configFilePath,\n extendedConfig,\n existsSync,\n readFileSync\n );\n }\n\n return mergeTsconfigs(base, config);\n }\n return config;\n}\n\n/**\n * Intended to be called only from loadTsconfig.\n * Parameters don't have defaults because they should use the same as loadTsconfig.\n */\nfunction loadTsconfigFromExtends(\n configFilePath: string,\n extendedConfigValue: string,\n // eslint-disable-next-line no-shadow\n existsSync: (path: string) => boolean,\n readFileSync: (filename: string) => string\n): Tsconfig {\n if (\n typeof extendedConfigValue === \"string\" &&\n extendedConfigValue.indexOf(\".json\") === -1\n ) {\n extendedConfigValue += \".json\";\n }\n const currentDir = path.dirname(configFilePath);\n let extendedConfigPath = path.join(currentDir, extendedConfigValue);\n if (\n extendedConfigValue.indexOf(\"/\") !== -1 &&\n extendedConfigValue.indexOf(\".\") !== -1 &&\n !existsSync(extendedConfigPath)\n ) {\n extendedConfigPath = path.join(\n currentDir,\n \"node_modules\",\n extendedConfigValue\n );\n }\n\n const config =\n loadTsconfig(extendedConfigPath, existsSync, readFileSync) || {};\n\n // baseUrl should be interpreted as relative to extendedConfigPath,\n // but we need to update it so it is relative to the original tsconfig being loaded\n if (config.compilerOptions?.baseUrl) {\n const extendsDir = path.dirname(extendedConfigValue);\n config.compilerOptions.baseUrl = path.join(\n extendsDir,\n config.compilerOptions.baseUrl\n );\n }\n\n return config;\n}\n\nfunction mergeTsconfigs(\n base: Tsconfig | undefined,\n config: Tsconfig | undefined\n): Tsconfig {\n base = base || {};\n config = config || {};\n\n return {\n ...base,\n ...config,\n compilerOptions: {\n ...base.compilerOptions,\n ...config.compilerOptions,\n },\n };\n}\n","import * as TsConfigLoader2 from \"./tsconfig-loader\";\nimport * as path from \"path\";\n\nexport interface ExplicitParams {\n baseUrl: string;\n paths: { [key: string]: Array<string> };\n mainFields?: (string | string[])[];\n addMatchAll?: boolean;\n}\n\nexport type TsConfigLoader = (\n params: TsConfigLoader2.TsConfigLoaderParams\n) => TsConfigLoader2.TsConfigLoaderResult;\n\nexport interface ConfigLoaderParams {\n cwd: string;\n explicitParams?: ExplicitParams;\n tsConfigLoader?: TsConfigLoader;\n}\n\nexport interface ConfigLoaderSuccessResult {\n resultType: \"success\";\n configFileAbsolutePath: string;\n baseUrl?: string;\n absoluteBaseUrl: string;\n paths: { [key: string]: Array<string> };\n mainFields?: (string | string[])[];\n addMatchAll?: boolean;\n}\n\nexport interface ConfigLoaderFailResult {\n resultType: \"failed\";\n message: string;\n}\n\nexport type ConfigLoaderResult =\n | ConfigLoaderSuccessResult\n | ConfigLoaderFailResult;\n\nexport function loadConfig(cwd: string = process.cwd()): ConfigLoaderResult {\n return configLoader({ cwd });\n}\n\nexport function configLoader({\n cwd,\n explicitParams,\n tsConfigLoader = TsConfigLoader2.tsConfigLoader,\n}: ConfigLoaderParams): ConfigLoaderResult {\n if (explicitParams) {\n const absoluteBaseUrl = path.isAbsolute(explicitParams.baseUrl)\n ? explicitParams.baseUrl\n : path.join(cwd, explicitParams.baseUrl);\n\n return {\n resultType: \"success\",\n configFileAbsolutePath: \"\",\n baseUrl: explicitParams.baseUrl,\n absoluteBaseUrl,\n paths: explicitParams.paths,\n mainFields: explicitParams.mainFields,\n addMatchAll: explicitParams.addMatchAll,\n };\n }\n\n // Load tsconfig and create path matching function\n const loadResult = tsConfigLoader({\n cwd,\n getEnv: (key: string) => process.env[key],\n });\n\n if (!loadResult.tsConfigPath) {\n return {\n resultType: \"failed\",\n message: \"Couldn't find tsconfig.json\",\n };\n }\n\n return {\n resultType: \"success\",\n configFileAbsolutePath: loadResult.tsConfigPath,\n baseUrl: loadResult.baseUrl,\n absoluteBaseUrl: path.resolve(\n path.dirname(loadResult.tsConfigPath),\n loadResult.baseUrl || \"\"\n ),\n paths: loadResult.paths || {},\n addMatchAll: loadResult.baseUrl !== undefined,\n };\n}\n","'use strict';\n\nfunction hasKey(obj, keys) {\n\tvar o = obj;\n\tkeys.slice(0, -1).forEach(function (key) {\n\t\to = o[key] || {};\n\t});\n\n\tvar key = keys[keys.length - 1];\n\treturn key in o;\n}\n\nfunction isNumber(x) {\n\tif (typeof x === 'number') { return true; }\n\tif ((/^0x[0-9a-f]+$/i).test(x)) { return true; }\n\treturn (/^[-+]?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(e[-+]?\\d+)?$/).test(x);\n}\n\nfunction isConstructorOrProto(obj, key) {\n\treturn (key === 'constructor' && typeof obj[key] === 'function') || key === '__proto__';\n}\n\nmodule.exports = function (args, opts) {\n\tif (!opts) { opts = {}; }\n\n\tvar flags = {\n\t\tbools: {},\n\t\tstrings: {},\n\t\tunknownFn: null,\n\t};\n\n\tif (typeof opts.unknown === 'function') {\n\t\tflags.unknownFn = opts.unknown;\n\t}\n\n\tif (typeof opts.boolean === 'boolean' && opts.boolean) {\n\t\tflags.allBools = true;\n\t} else {\n\t\t[].concat(opts.boolean).filter(Boolean).forEach(function (key) {\n\t\t\tflags.bools[key] = true;\n\t\t});\n\t}\n\n\tvar aliases = {};\n\n\tfunction aliasIsBoolean(key) {\n\t\treturn aliases[key].some(function (x) {\n\t\t\treturn flags.bools[x];\n\t\t});\n\t}\n\n\tObject.keys(opts.alias || {}).forEach(function (key) {\n\t\taliases[key] = [].concat(opts.alias[key]);\n\t\taliases[key].forEach(function (x) {\n\t\t\taliases[x] = [key].concat(aliases[key].filter(function (y) {\n\t\t\t\treturn x !== y;\n\t\t\t}));\n\t\t});\n\t});\n\n\t[].concat(opts.string).filter(Boolean).forEach(function (key) {\n\t\tflags.strings[key] = true;\n\t\tif (aliases[key]) {\n\t\t\t[].concat(aliases[key]).forEach(function (k) {\n\t\t\t\tflags.strings[k] = true;\n\t\t\t});\n\t\t}\n\t});\n\n\tvar defaults = opts.default || {};\n\n\tvar argv = { _: [] };\n\n\tfunction argDefined(key, arg) {\n\t\treturn (flags.allBools && (/^--[^=]+$/).test(arg))\n\t\t\t|| flags.strings[key]\n\t\t\t|| flags.bools[key]\n\t\t\t|| aliases[key];\n\t}\n\n\tfunction setKey(obj, keys, value) {\n\t\tvar o = obj;\n\t\tfor (var i = 0; i < keys.length - 1; i++) {\n\t\t\tvar key = keys[i];\n\t\t\tif (isConstructorOrProto(o, key)) { return; }\n\t\t\tif (o[key] === undefined) { o[key] = {}; }\n\t\t\tif (\n\t\t\t\to[key] === Object.prototype\n\t\t\t\t|| o[key] === Number.prototype\n\t\t\t\t|| o[key] === String.prototype\n\t\t\t) {\n\t\t\t\to[key] = {};\n\t\t\t}\n\t\t\tif (o[key] === Array.prototype) { o[key] = []; }\n\t\t\to = o[key];\n\t\t}\n\n\t\tvar lastKey = keys[keys.length - 1];\n\t\tif (isConstructorOrProto(o, lastKey)) { return; }\n\t\tif (\n\t\t\to === Object.prototype\n\t\t\t|| o === Number.prototype\n\t\t\t|| o === String.prototype\n\t\t) {\n\t\t\to = {};\n\t\t}\n\t\tif (o === Array.prototype) { o = []; }\n\t\tif (o[lastKey] === undefined || flags.bools[lastKey] || typeof o[lastKey] === 'boolean') {\n\t\t\to[lastKey] = value;\n\t\t} else if (Array.isArray(o[lastKey])) {\n\t\t\to[lastKey].push(value);\n\t\t} else {\n\t\t\to[lastKey] = [o[lastKey], value];\n\t\t}\n\t}\n\n\tfunction setArg(key, val, arg) {\n\t\tif (arg && flags.unknownFn && !argDefined(key, arg)) {\n\t\t\tif (flags.unknownFn(arg) === false) { return; }\n\t\t}\n\n\t\tvar value = !flags.strings[key] && isNumber(val)\n\t\t\t? Number(val)\n\t\t\t: val;\n\t\tsetKey(argv, key.split('.'), value);\n\n\t\t(aliases[key] || []).forEach(function (x) {\n\t\t\tsetKey(argv, x.split('.'), value);\n\t\t});\n\t}\n\n\tObject.keys(flags.bools).forEach(function (key) {\n\t\tsetArg(key, defaults[key] === undefined ? false : defaults[key]);\n\t});\n\n\tvar notFlags = [];\n\n\tif (args.indexOf('--') !== -1) {\n\t\tnotFlags = args.slice(args.indexOf('--') + 1);\n\t\targs = args.slice(0, args.indexOf('--'));\n\t}\n\n\tfor (var i = 0; i < args.length; i++) {\n\t\tvar arg = args[i];\n\t\tvar key;\n\t\tvar next;\n\n\t\tif ((/^--.+=/).test(arg)) {\n\t\t\t// Using [\\s\\S] instead of . because js doesn't support the\n\t\t\t// 'dotall' regex modifier. See:\n\t\t\t// http://stackoverflow.com/a/1068308/13216\n\t\t\tvar m = arg.match(/^--([^=]+)=([\\s\\S]*)$/);\n\t\t\tkey = m[1];\n\t\t\tvar value = m[2];\n\t\t\tif (flags.bools[key]) {\n\t\t\t\tvalue = value !== 'false';\n\t\t\t}\n\t\t\tsetArg(key, value, arg);\n\t\t} else if ((/^--no-.+/).test(arg)) {\n\t\t\tkey = arg.match(/^--no-(.+)/)[1];\n\t\t\tsetArg(key, false, arg);\n\t\t} else if ((/^--.+/).test(arg)) {\n\t\t\tkey = arg.match(/^--(.+)/)[1];\n\t\t\tnext = args[i + 1];\n\t\t\tif (\n\t\t\t\tnext !== undefined\n\t\t\t\t&& !(/^(-|--)[^-]/).test(next)\n\t\t\t\t&& !flags.bools[key]\n\t\t\t\t&& !flags.allBools\n\t\t\t\t&& (aliases[key] ? !aliasIsBoolean(key) : true)\n\t\t\t) {\n\t\t\t\tsetArg(key, next, arg);\n\t\t\t\ti += 1;\n\t\t\t} else if ((/^(true|false)$/).test(next)) {\n\t\t\t\tsetArg(key, next === 'true', arg);\n\t\t\t\ti += 1;\n\t\t\t} else {\n\t\t\t\tsetArg(key, flags.strings[key] ? '' : true, arg);\n\t\t\t}\n\t\t} else if ((/^-[^-]+/).test(arg)) {\n\t\t\tvar letters = arg.slice(1, -1).split('');\n\n\t\t\tvar broken = false;\n\t\t\tfor (var j = 0; j < letters.length; j++) {\n\t\t\t\tnext = arg.slice(j + 2);\n\n\t\t\t\tif (next === '-') {\n\t\t\t\t\tsetArg(letters[j], next, arg);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif ((/[A-Za-z]/).test(letters[j]) && next[0] === '=') {\n\t\t\t\t\tsetArg(letters[j], next.slice(1), arg);\n\t\t\t\t\tbroken = true;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t(/[A-Za-z]/).test(letters[j])\n\t\t\t\t\t&& (/-?\\d+(\\.\\d*)?(e-?\\d+)?$/).test(next)\n\t\t\t\t) {\n\t\t\t\t\tsetArg(letters[j], next, arg);\n\t\t\t\t\tbroken = true;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tif (letters[j + 1] && letters[j + 1].match(/\\W/)) {\n\t\t\t\t\tsetArg(letters[j], arg.slice(j + 2), arg);\n\t\t\t\t\tbroken = true;\n\t\t\t\t\tbreak;\n\t\t\t\t} else {\n\t\t\t\t\tsetArg(letters[j], flags.strings[letters[j]] ? '' : true, arg);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tkey = arg.slice(-1)[0];\n\t\t\tif (!broken && key !== '-') {\n\t\t\t\tif (\n\t\t\t\t\targs[i + 1]\n\t\t\t\t\t&& !(/^(-|--)[^-]/).test(args[i + 1])\n\t\t\t\t\t&& !flags.bools[key]\n\t\t\t\t\t&& (aliases[key] ? !aliasIsBoolean(key) : true)\n\t\t\t\t) {\n\t\t\t\t\tsetArg(key, args[i + 1], arg);\n\t\t\t\t\ti += 1;\n\t\t\t\t} else if (args[i + 1] && (/^(true|false)$/).test(args[i + 1])) {\n\t\t\t\t\tsetArg(key, args[i + 1] === 'true', arg);\n\t\t\t\t\ti += 1;\n\t\t\t\t} else {\n\t\t\t\t\tsetArg(key, flags.strings[key] ? '' : true, arg);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tif (!flags.unknownFn || flags.unknownFn(arg) !== false) {\n\t\t\t\targv._.push(flags.strings._ || !isNumber(arg) ? arg : Number(arg));\n\t\t\t}\n\t\t\tif (opts.stopEarly) {\n\t\t\t\targv._.push.apply(argv._, args.slice(i + 1));\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tObject.keys(defaults).forEach(function (k) {\n\t\tif (!hasKey(argv, k.split('.'))) {\n\t\t\tsetKey(argv, k.split('.'), defaults[k]);\n\n\t\t\t(aliases[k] || []).forEach(function (x) {\n\t\t\t\tsetKey(argv, x.split('.'), defaults[k]);\n\t\t\t});\n\t\t}\n\t});\n\n\tif (opts['--']) {\n\t\targv['--'] = notFlags.slice();\n\t} else {\n\t\tnotFlags.forEach(function (k) {\n\t\t\targv._.push(k);\n\t\t});\n\t}\n\n\treturn argv;\n};\n","import { createMatchPath } from \"./match-path-sync\";\nimport { configLoader, ExplicitParams } from \"./config-loader\";\n\nconst noOp = (): void => void 0;\n\nfunction getCoreModules(\n builtinModules: string[] | undefined\n): { [key: string]: boolean } {\n builtinModules = builtinModules || [\n \"assert\",\n \"buffer\",\n \"child_process\",\n \"cluster\",\n \"crypto\",\n \"dgram\",\n \"dns\",\n \"domain\",\n \"events\",\n \"fs\",\n \"http\",\n \"https\",\n \"net\",\n \"os\",\n \"path\",\n \"punycode\",\n \"querystring\",\n \"readline\",\n \"stream\",\n \"string_decoder\",\n \"tls\",\n \"tty\",\n \"url\",\n \"util\",\n \"v8\",\n \"vm\",\n \"zlib\",\n ];\n\n const coreModules: { [key: string]: boolean } = {};\n for (let module of builtinModules) {\n coreModules[module] = true;\n }\n\n return coreModules;\n}\n\nexport interface RegisterParams extends ExplicitParams {\n /**\n * Defaults to `--project` CLI flag or `process.cwd()`\n */\n cwd?: string;\n}\n\n/**\n * Installs a custom module load function that can adhere to paths in tsconfig.\n * Returns a function to undo paths registration.\n */\nexport function register(params?: RegisterParams): () => void {\n let cwd: string | undefined;\n let explicitParams: ExplicitParams | undefined;\n if (params) {\n cwd = params.cwd;\n if (params.baseUrl || params.paths) {\n explicitParams = params;\n }\n } else {\n // eslint-disable-next-line\n const minimist = require(\"minimist\");\n const argv = minimist(process.argv.slice(2), {\n // eslint-disable-next-line id-denylist\n string: [\"project\"],\n alias: {\n project: [\"P\"],\n },\n });\n cwd = argv.project;\n }\n\n const configLoaderResult = configLoader({\n cwd: cwd ?? process.cwd(),\n explicitParams,\n });\n\n if (configLoaderResult.resultType === \"failed\") {\n console.warn(\n `${configLoaderResult.message}. tsconfig-paths will be skipped`\n );\n\n return noOp;\n }\n\n const matchPath = createMatchPath(\n configLoaderResult.absoluteBaseUrl,\n configLoaderResult.paths,\n configLoaderResult.mainFields,\n configLoaderResult.addMatchAll\n );\n\n // Patch node's module loading\n // eslint-disable-next-line @typescript-eslint/no-require-imports,@typescript-eslint/no-var-requires\n const Module = require(\"module\");\n // eslint-disable-next-line no-underscore-dangle\n const originalResolveFilename = Module._resolveFilename;\n const coreModules = getCoreModules(Module.builtinModules);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any,no-underscore-dangle\n Module._resolveFilename = function (request: string, _parent: any): string {\n const isCoreModule = coreModules.hasOwnProperty(request);\n if (!isCoreModule) {\n const found = matchPath(request);\n if (found) {\n const modifiedArguments = [found, ...[].slice.call(arguments, 1)]; // Passes all arguments. Even those that is not specified above.\n return originalResolveFilename.apply(this, modifiedArguments);\n }\n }\n return originalResolveFilename.apply(this, arguments);\n };\n\n return () => {\n // Return node's module loading to original state.\n // eslint-disable-next-line no-underscore-dangle\n Module._resolveFilename = originalResolveFilename;\n };\n}\n","// register is used from register.js in root dir\nexport {\n createMatchPath,\n matchFromAbsolutePaths,\n MatchPath,\n} from \"./match-path-sync\";\nexport {\n createMatchPathAsync,\n matchFromAbsolutePathsAsync,\n MatchPathAsync,\n} from \"./match-path-async\";\nexport { register } from \"./register\";\nexport {\n loadConfig,\n ConfigLoaderResult,\n ConfigLoaderSuccessResult,\n ConfigLoaderFailResult,\n} from \"./config-loader\";\nexport {\n ReadJsonSync,\n ReadJsonAsync,\n FileExistsSync,\n FileExistsAsync,\n} from \"./filesystem\";\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 {existsSync} from \"fs\";\nimport dotenv, {type DotenvParseOutput} from 'dotenv';\nimport {loadConfig} from \"c12\";\n\nimport dotenvPlugin from \"../plugins/dotenv\";\nimport backgroundPlugin from \"../plugins/background\";\n\nimport {getAppsPath, getConfigFile, getInputPath} from \"../resolvers/path\";\n\nimport {Browser, Command, Config, Mode, OptionalConfig, ReadonlyConfig, UserConfig, ConfigSchema} 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, browser} = config;\n\n const preset = [\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 ];\n\n const appPaths = preset.map((file) => getAppsPath(config, file));\n const rootPaths = preset.map((file) => getInputPath(config, file));\n\n const paths = [...appPaths, ...rootPaths];\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 command = Command.Build,\n debug = false,\n configFile = 'adnbn.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 mergeCommands = false,\n mergeContentScripts = false,\n concatContentScripts = true,\n } = config;\n\n let resolvedConfig: Config = {\n command,\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 mergeCommands,\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 resolvedConfig = {\n ...resolvedConfig,\n plugins: [\n ...plugins,\n ...userPlugins,\n ...corePlugins,\n ]\n };\n\n resolvedConfig = ConfigSchema.parse(resolvedConfig);\n\n console.log('resolvedConfig', resolvedConfig);\n\n return resolvedConfig;\n}","import {ConfigDefinition} from \"@typing/config\";\nimport {BackgroundDefinition} from \"@typing/background\";\nimport {ContentScriptDefinition} from \"@typing/content\";\nimport {Plugin, PluginDefinition} from \"@typing/plugin\";\nimport {CommandDefinition} from \"@typing/command\";\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 defineCommand(options: CommandDefinition): CommandDefinition {\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 name: import.meta.dirname,\n webpack: {\n plugins: [\n new webpack.DefinePlugin({\n 'process.env': JSON.stringify(vars)\n })\n ],\n }\n }\n});","import fs from \"fs\";\nimport ts from \"typescript\";\nimport path from \"path\";\nimport {createMatchPath} from \"tsconfig-paths\";\n\ninterface ResolveOptions {\n tsconfigPath?: string;\n baseDir?: string;\n}\n\nfunction findFileWithExtensions(basePath: string, exts: string[]): string | null {\n for (const ext of exts) {\n const candidate = basePath + ext;\n if (fs.existsSync(candidate)) {\n return candidate;\n }\n }\n return null;\n}\n\nexport default (importPath: string, options: ResolveOptions = {}): string => {\n const {tsconfigPath = \"tsconfig.json\", baseDir = process.cwd()} = options;\n const configFile = path.isAbsolute(tsconfigPath) ? tsconfigPath : path.resolve(baseDir, tsconfigPath);\n\n if (!fs.existsSync(configFile)) {\n throw new Error(`Cannot find tsconfig.json at: ${configFile}`);\n }\n\n const tsconfigRaw = ts.readConfigFile(configFile, (p) => fs.readFileSync(p, \"utf8\"));\n\n const parseConfigHost: ts.ParseConfigHost = {\n fileExists: fs.existsSync,\n readFile: (p) => fs.readFileSync(p, \"utf8\"),\n readDirectory: ts.sys.readDirectory,\n useCaseSensitiveFileNames: true\n };\n\n const parsedConfig = ts.parseJsonConfigFileContent(\n tsconfigRaw.config,\n parseConfigHost,\n path.dirname(configFile)\n );\n\n const matchPath = createMatchPath(\n parsedConfig.options.baseUrl || \".\",\n parsedConfig.options.paths || {}\n );\n\n if (importPath.startsWith(\".\") || importPath.startsWith(\"/\")) {\n const resolvedLocal = path.resolve(baseDir, importPath);\n\n if (fs.existsSync(resolvedLocal)) {\n return resolvedLocal;\n }\n\n const candidate = resolvedLocal.endsWith(\".ts\") || resolvedLocal.endsWith(\".tsx\")\n ? resolvedLocal\n : findFileWithExtensions(resolvedLocal, [\".ts\", \".tsx\"]);\n\n if (candidate && fs.existsSync(candidate)) {\n return candidate;\n }\n\n throw new Error(`File not found at path \"${resolvedLocal}\" or with .ts/.tsx extensions`);\n }\n\n const aliased = matchPath(importPath);\n\n if (aliased && fs.existsSync(aliased)) {\n return path.resolve(aliased);\n }\n\n if (aliased) {\n const candidate = aliased.endsWith(\".ts\") || aliased.endsWith(\".tsx\")\n ? aliased\n : findFileWithExtensions(aliased, [\".ts\", \".tsx\"]);\n\n if (candidate && fs.existsSync(candidate)) {\n return path.resolve(candidate);\n }\n }\n\n try {\n if (importPath === 'adnbn') {\n return importPath;\n }\n\n return require.resolve(importPath, {paths: [baseDir]});\n } catch {\n throw new Error(`Cannot resolve \"${importPath}\" as a local path, alias, or npm package from \"${baseDir}\"`);\n }\n}","import {z} from \"zod\";\nimport _ from \"lodash\";\n\nimport {ContentScriptConfig} from \"@typing/content\";\nimport {BackgroundConfig} from \"@typing/background\";\nimport {CommandConfig} from \"@typing/command\";\n\ntype ManifestCommon = chrome.runtime.Manifest;\ntype ManifestBase = chrome.runtime.ManifestBase;\ntype ManifestV3 = chrome.runtime.ManifestV3;\ntype ManifestV2 = chrome.runtime.ManifestV2;\n\ntype ManifestFixed<T extends ManifestBase> = Omit<T, 'manifest_version'> & {\n manifest_version: ManifestVersion\n};\n\ninterface ManifestUnstable {\n permissions?: (chrome.runtime.ManifestPermissions | (string & Record<never, never>))[];\n web_accessible_resources?: string[] | chrome.runtime.ManifestV3['web_accessible_resources'];\n}\n\nexport const ManifestVersionSchema = z.union([z.literal(2), z.literal(3)]);\n\nexport type ManifestVersion = z.infer<typeof ManifestVersionSchema>;\n\nexport type ManifestMapping = {\n [Key in ManifestVersion]: Key extends 2 ? ManifestFixed<ManifestV2> : ManifestFixed<ManifestV3>;\n};\n\nexport type CoreManifest = ManifestFixed<ManifestBase>;\n\nexport type ChromeManifest = ManifestFixed<ManifestCommon>;\n\nexport type FirefoxManifest = ChromeManifest & {\n action?: chrome.runtime.ManifestV3['action'] & {\n browser_style?: boolean;\n };\n browser_action?: chrome.runtime.ManifestV2['browser_action'] & {\n browser_style?: boolean;\n };\n page_action?: chrome.runtime.ManifestV2['page_action'] & {\n browser_style?: boolean;\n };\n browser_specific_settings?: {\n gecko?: {\n id?: string;\n strict_min_version?: string;\n strict_max_version?: string;\n update_url?: string;\n };\n gecko_android?: {\n strict_min_version?: string;\n strict_max_version?: string;\n };\n }\n} & ManifestUnstable;\n\nexport type SafariManifest = ChromeManifest & {\n browser_specific_settings?: {\n safari?: {\n strict_min_version?: string;\n strict_max_version?: string;\n };\n };\n} & ManifestUnstable;\n\nexport type Manifest = ChromeManifest | FirefoxManifest | SafariManifest;\n\nexport interface ManifestBuilder<T extends CoreManifest = Manifest> {\n setVersion(version: string): this;\n\n setName(name: string): this;\n\n setShortName(shortName: string): this;\n\n setDescription(description: string): this;\n\n setBackground(background?: ManifestBackground): this;\n\n setCommands(commands?: ManifestCommandMap): this;\n\n setContentScripts(contentScripts?: ManifestContentScriptMap): this;\n\n setDependencies(dependencies: ManifestDependenciesMap): this;\n\n get(): T;\n}\n\nexport const ManifestBuilderSchema = z.custom<ManifestBuilder>((value) => {\n return (\n _.isObject(value) &&\n !_.isPlainObject(value) &&\n !_.isArray(value) &&\n !_.isNull(value) &&\n !_.isUndefined(value)\n );\n});\n\nexport interface ManifestEntry {\n entry: string,\n}\n\nexport interface ManifestEntryFile extends ManifestEntry {\n file: string,\n}\n\nexport type ManifestBackground = ManifestEntry & BackgroundConfig;\n\nexport type ManifestContentScript = ManifestEntry & ContentScriptConfig;\nexport type ManifestContentScriptMap = Map<string, ManifestContentScript>;\n\nexport type ManifestCommand = CommandConfig;\nexport type ManifestCommandMap = Set<ManifestCommand>;\n\nexport interface ManifestDependencies {\n js: Set<string>;\n css: Set<string>;\n assets: Set<string>;\n}\n\nexport type ManifestDependenciesMap = Map<string, ManifestDependencies>;\n","import {z} from \"zod\";\nimport {ManifestVersionSchema} from \"@typing/manifest\";\nimport {Plugin} from \"@typing/plugin\";\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 const ConfigSchema = z.object({\n debug: z.boolean(),\n command: z.nativeEnum(Command),\n mode: z.nativeEnum(Mode),\n app: z.string(),\n browser: z.nativeEnum(Browser),\n manifestVersion: ManifestVersionSchema,\n inputDir: z.string(),\n outputDir: z.string(),\n srcDir: z.string(),\n sharedDir: z.string(),\n appsDir: z.string(),\n jsDir: z.string(),\n cssDir: z.string(),\n assetsDir: z.string(),\n htmlDir: z.string(),\n plugins: z.array(z.any()),\n analyze: z.boolean(),\n configFile: z.string(),\n mergeBackground: z.boolean(),\n mergeCommands: z.boolean(),\n mergeContentScripts: z.boolean(),\n concatContentScripts: z.boolean(),\n});\n\nexport const ReadonlyConfigSchema = ConfigSchema.readonly();\nexport const OptionalConfigSchema = ConfigSchema.partial();\nexport const UserConfigSchema = OptionalConfigSchema.omit({\n configFile: true,\n command: true\n});\n\nexport const ConfigOptionsSchema = z.object({\n config: ReadonlyConfigSchema,\n});\n\nexport const UserConfigCallbackSchema = z.function()\n .args(z.object({config: ReadonlyConfigSchema}))\n .returns(UserConfigSchema);\n\nexport const ConfigDefinitionSchema = z.union([\n UserConfigCallbackSchema,\n UserConfigSchema\n]);\n\nexport type Config = z.infer<typeof ConfigSchema>;\nexport type ConfigOptions = z.infer<typeof ConfigOptionsSchema>;\nexport type OptionalConfig = z.infer<typeof OptionalConfigSchema>;\nexport type UserConfig = z.infer<typeof UserConfigSchema>;\nexport type ReadonlyConfig = z.infer<typeof ReadonlyConfigSchema>;\nexport type ConfigDefinition = z.infer<typeof ConfigDefinitionSchema>;\n\n","import {Browser, Mode, Command} from \"@typing/config\";\nimport {Resolver} from \"../types\";\n\nconst name = 'adnbn';\n\nexport default (): Resolver[] => {\n const resolvers: Resolver[] = [];\n\n Object.entries(Browser).forEach(([key, value]) => {\n resolvers.push({\n from: name,\n target: 'Browser',\n name: key,\n value,\n });\n });\n\n Object.entries(Mode).forEach(([key, value]) => {\n resolvers.push({\n from: name,\n target: 'Mode',\n name: key,\n value,\n });\n });\n\n Object.entries(Command).forEach(([key, value]) => {\n resolvers.push({\n from: name,\n target: 'Command',\n name: key,\n value,\n });\n });\n\n return resolvers;\n};","import core from \"./core\";\nimport {Resolver} from \"../types\";\n\nexport default (resolvers: Resolver[]) => (form: string, target: string, name: string): any => {\n return [\n ...resolvers,\n ...core()\n ].find(resolver => resolver.from === form && resolver.target === target && resolver.name === name)?.value;\n}","import ts from 'typescript';\nimport fs from 'fs';\n\nimport resolveImport from \"./utils/resolveImport\";\n\nimport {EnumMap, ImportMap, Variable, VariableMap} from \"./types\";\nimport resolvers from \"./resolvers\";\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 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 this.imports?.set(el.name.text, resolveImport(importPath));\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 resolveValue(from: string, target: string, name: string): any {\n return resolvers([])(from, target, name);\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 const resolverItem = this.resolveValue(importItem, objectName, propertyName);\n\n if (resolverItem) {\n return resolverItem;\n }\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 ts 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 const parse = (node: ts.Node) => {\n if (ts.isExportAssignment(node)) {\n const expr = node.expression;\n\n if (ts.isCallExpression(expr) && ts.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 (ts.isObjectLiteralExpression(arg)) {\n options = this.parseNode(arg);\n }\n }\n }\n }\n\n ts.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 {EntrypointOptions} from \"@typing/entrypoint\";\nimport {CommandEntrypointOptions} from \"@typing/command\";\n\nconst commonProperties: Array<keyof EntrypointOptions> = [\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}\n\nexport const getCommandOptions = (file: string): CommandEntrypointOptions => {\n return OptionFile.make(file)\n .setDefinition('defineCommand')\n .setProperties([\n ...commonProperties,\n 'name',\n 'description',\n 'global',\n 'defaultKey',\n 'windowsKey',\n 'macKey',\n 'chromeosKey',\n 'linuxKey'\n ])\n .getOptions();\n}","import _ from \"lodash\";\nimport path from \"path\";\n\nimport {\n PluginEntrypointKeys,\n PluginHandler,\n PluginHandlerKeys,\n PluginHandlerOptions,\n PluginNameHandlerResult\n} from \"@typing/plugin\";\nimport {ReadonlyConfig} from \"@typing/config\";\nimport {EntrypointFile} from \"@typing/entrypoint\";\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}\n\nexport const getPluginEntrypointFiles = async <K extends PluginEntrypointKeys>(config: ReadonlyConfig, key: K): Promise<Set<EntrypointFile>> => {\n const pluginResult = await Array.fromAsync(processPluginHandler(config, key, {\n config,\n }));\n\n if (pluginResult.length > 0) {\n const pluginFiles = pluginResult.reduce((files, {name, result}) => {\n let endpoints: Array<string | EntrypointFile> = [];\n\n if (_.isBoolean(result)) {\n endpoints = [key];\n } else if (_.isString(result) || _.isPlainObject(result)) {\n endpoints = [result as string | EntrypointFile];\n } else if (_.isArray(result)) {\n endpoints = result;\n } else if (result instanceof Set) {\n endpoints = Array.from(result);\n }\n\n const endpointFiles: EntrypointFile[] = [];\n\n for (const endpoint of endpoints) {\n if (_.isString(endpoint)) {\n const resolved = path.join(name, endpoint);\n\n endpointFiles.push({\n file: require.resolve(resolved, {paths: [process.cwd()]}),\n import: resolved,\n external: true\n });\n } else {\n endpointFiles.push(endpoint);\n }\n }\n\n return [...files, ...endpointFiles];\n }, [] as EntrypointFile[]);\n\n return new Set(pluginFiles);\n }\n\n return new Set();\n}","import {EntrypointOptions} from \"@typing/entrypoint\";\nimport {ReadonlyConfig} from \"@typing/config\";\n\nexport const isValidEntrypointOptions = (options: EntrypointOptions, config: ReadonlyConfig): boolean => {\n const {browser, app} = config;\n const {includeBrowser = [], includeApp = [], excludeBrowser = [], excludeApp = []} = options;\n\n if (includeBrowser.length > 0 && !includeBrowser.includes(browser)) {\n return false;\n }\n\n if (includeApp.length > 0 && !includeApp.includes(app)) {\n return false;\n }\n\n if (excludeBrowser.length > 0 && excludeBrowser.includes(browser)) {\n return false;\n }\n\n return !(excludeApp.length > 0 && excludeApp.includes(app));\n}","import {getBackgroundOptions} from \"@cli/parsers/entrypoint\";\nimport {getPluginEntrypointFiles} from \"@cli/resolvers/plugin\";\nimport {isValidEntrypointOptions} from \"@cli/utils/option\";\n\nimport {EntrypointFile} from \"@typing/entrypoint\";\nimport {ReadonlyConfig} from \"@typing/config\";\nimport {BackgroundEntrypointMap} from \"@typing/background\";\n\nconst backgroundFilesToEntries = (files: Set<EntrypointFile>): BackgroundEntrypointMap => {\n const entries: BackgroundEntrypointMap = new Map;\n\n for (const file of files) {\n entries.set(file, getBackgroundOptions(file.file));\n }\n\n return entries;\n}\n\nexport default async (config: ReadonlyConfig): Promise<BackgroundEntrypointMap> => {\n let entries: BackgroundEntrypointMap = new Map;\n\n const pluginBackgroundFiles = await getPluginEntrypointFiles(config, 'background');\n\n if (pluginBackgroundFiles.size > 0) {\n const pluginBackgroundEntries = backgroundFilesToEntries(pluginBackgroundFiles);\n\n entries = new Map(\n [...pluginBackgroundEntries]\n .filter(([_, options]) => isValidEntrypointOptions(options, config))\n );\n\n if (config.debug) {\n console.info('Plugin background entries:', pluginBackgroundEntries);\n }\n }\n\n return entries;\n}","import {getCommandOptions} from \"@cli/parsers/entrypoint\";\n\nimport {getPluginEntrypointFiles} from \"@cli/resolvers/plugin\";\nimport {isValidEntrypointOptions} from \"@cli/utils/option\";\n\nimport {EntrypointFile} from \"@typing/entrypoint\";\nimport {ReadonlyConfig} from \"@typing/config\";\nimport {CommandEntrypointMap} from \"@typing/command\";\n\nconst registeredCommands = new Set<string>();\n\nconst generateUniqueName = (name: string): string => {\n let commandName = name;\n let counter = 1;\n\n while (registeredCommands.has(commandName)) {\n commandName = `${name}${counter}`;\n counter++;\n }\n\n registeredCommands.add(commandName);\n\n return commandName;\n}\n\nconst extractNameFromFile = (file: EntrypointFile): string => {\n const fileName = file.file.split('/').pop() ?? '';\n\n const commandName = fileName.match(/^index\\.(ts|tsx)$/) ? 'command' : fileName.replace(/\\.command\\.(ts|tsx)$/, '').replace(/\\.(ts|tsx)$/, '');\n\n return generateUniqueName(commandName ?? 'command');\n}\n\nconst commandFilesToEntries = (files: Set<EntrypointFile>): CommandEntrypointMap => {\n const entries: CommandEntrypointMap = new Map;\n\n for (const file of files) {\n const {name, ...options} = getCommandOptions(file.file);\n\n entries.set(file, {\n name: name ? generateUniqueName(name) : extractNameFromFile(file),\n ...options,\n });\n }\n\n registeredCommands.clear();\n\n return entries;\n}\n\nexport default async (config: ReadonlyConfig): Promise<CommandEntrypointMap> => {\n let entries: CommandEntrypointMap = new Map;\n\n const pluginCommandFiles = await getPluginEntrypointFiles(config, 'command');\n\n if (pluginCommandFiles.size > 0) {\n const pluginCommandEntries = commandFilesToEntries(pluginCommandFiles);\n\n entries = new Map(\n [...pluginCommandEntries]\n .filter(([_, options]) => isValidEntrypointOptions(options, config))\n );\n\n if (config.debug) {\n console.info('Plugin command entries:', pluginCommandEntries);\n }\n }\n\n return entries;\n}","//@ts-ignore\nimport {type 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","//@ts-ignore\nimport {type CommandDefinition} from \"adnbn\";\n//@ts-ignore\nimport {onCommand} from \"adnbn/browser\";\n\nimport * as module from \"virtual:command-entrypoint\";\n\nimport _isFunction from \"lodash/isFunction\";\nimport _isPlainObject from \"lodash/isPlainObject\";\nimport _isString from \"lodash/isString\";\nimport _isEmpty from \"lodash/isEmpty\";\n\ntry {\n const staticName = 'virtual:command-name';\n\n const {default: defaultDefinition, ...otherDefinition} = module;\n\n let definition: Partial<CommandDefinition> = 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, name = staticName, ...options} = definition;\n\n if (!_isFunction(main)) {\n throw new Error('The command entrypoint must export a main function');\n }\n\n if (!_isString(name) || _isEmpty(name)) {\n throw new Error('The command entrypoint must export a name string');\n }\n\n onCommand((command, tab) => {\n try {\n if (command === name) {\n Promise.resolve(main({name, ...options}, tab)).catch((e) => {\n console.error('The command main async function crashed:', e);\n });\n }\n } catch (e) {\n console.error('The command main function crashed:', e);\n }\n });\n} catch (e) {\n console.error('The command crashed on startup:', e);\n}\n","import background from \"./background.ts?raw\";\nimport command from \"./command.ts?raw\";\nimport {EntrypointFile} from \"@typing/entrypoint\";\n\nconst templates = {background, command};\n\nconst getVirtualModule = (file: EntrypointFile, template: keyof typeof templates): string => {\n return templates[template].replace(`virtual:${template}-entrypoint`, file.import);\n}\n\nexport const virtualBackgroundModule = (file: EntrypointFile): string => {\n return getVirtualModule(file, 'background');\n}\n\nexport const virtualCommandModule = (file: EntrypointFile, name: string): string => {\n return getVirtualModule(file, 'command').replace('virtual:command-name', name);\n}","import _ from \"lodash\"\nimport path from \"path\";\n\nimport {Compiler, EntryNormalized} from 'webpack';\nimport VirtualModulesPlugin from 'webpack-virtual-modules';\n\nimport {EntrypointFile} from \"@typing/entrypoint\";\n\nexport type EntrypointPluginEntries = Record<string, EntrypointFile[]>;\n\nexport type EntrypointPluginTemplate = (file: EntrypointFile) => string;\n\nexport type EntrypointPluginUpdate = (files: ReadonlySet<string>) => Promise<EntrypointPluginEntries>;\n\nexport interface EntrypointPluginModule {\n /**\n * Virtual module name, used in the webpack entry and virtual module.\n */\n name: string;\n\n /**\n * Virtual module content.\n */\n module: string;\n}\n\nexport type EntrypointPluginModules = Map<EntrypointFile, EntrypointPluginModule>;\n\nexport type EntrypointPluginEntryModules = Map<string, EntrypointPluginModules>;\n\nclass EntrypointPlugin {\n private _plugin?: VirtualModulesPlugin;\n private _modules?: EntrypointPluginEntryModules;\n\n protected template?: EntrypointPluginTemplate;\n protected update?: EntrypointPluginUpdate;\n\n public static filename(file: EntrypointFile): string {\n let name = file.file;\n\n if (file.external) {\n const {ext} = path.parse(name);\n name = file.import + ext;\n }\n\n return path.join('virtual', name);\n }\n\n protected get plugin(): VirtualModulesPlugin {\n if (this._plugin) {\n return this._plugin;\n }\n\n const modules = Object.fromEntries(this.getModuleContents(this.modules));\n\n return this._plugin = new VirtualModulesPlugin(modules);\n }\n\n protected get modules(): EntrypointPluginEntryModules {\n return this._modules ??= this.createModules(this.entries);\n }\n\n protected get watchFiles(): ReadonlySet<string> {\n const files = Array.from(this.modules.values())\n .flatMap(modules => Array.from(modules.keys()))\n .filter(({external}) => !external)\n .map(({file}) => file);\n\n return new Set(files);\n }\n\n constructor(\n private readonly entries: EntrypointPluginEntries = {},\n public readonly key: string\n ) {\n\n }\n\n public virtual(template: EntrypointPluginTemplate): this {\n this.template = template;\n\n return this;\n }\n\n public watch(update: EntrypointPluginUpdate): this {\n this.update = update;\n\n return this;\n }\n\n public apply(compiler: Compiler): void {\n this.plugin.apply(compiler);\n\n compiler.hooks.entryOption.tap('EntrypointPlugin', (_, entry) => {\n this.hookEntryOption(entry);\n });\n\n if (this.update) {\n compiler.hooks.watchRun.tapAsync('EntrypointPlugin', (compiler, callback) => {\n this.hookWatchRun(compiler).then(() => callback()).catch(callback);\n });\n }\n }\n\n protected hookEntryOption(entry: EntryNormalized): void {\n if (_.isPlainObject(entry)) {\n this.modules.entries().forEach(([name, modules]) => {\n let currentFiles = structuredClone(entry[name] ?? []);\n\n if ('import' in currentFiles) {\n currentFiles = currentFiles.import;\n }\n\n currentFiles.push(...Array.from(modules.values(), ({name}) => name));\n\n entry[name] = {\n import: _.uniq(currentFiles)\n };\n });\n } else {\n throw new Error('EntrypointPlugin: entry is not an object');\n }\n }\n\n protected async hookWatchRun(compiler: Compiler): Promise<void> {\n const {modifiedFiles = new Set} = compiler;\n\n const watchFiles = this.watchFiles;\n\n const needUpdate = Array.from(modifiedFiles).some(file => {\n if (path.isAbsolute(file)) {\n file = path.relative(compiler.context, file);\n }\n\n return watchFiles.has(file);\n });\n\n if (!needUpdate) {\n return;\n }\n\n const updatedEntries = await this.update!(modifiedFiles);\n\n const updatedModules = this.createModules(updatedEntries);\n\n const currentContents = this.getModuleContents(this.modules);\n const updatedContents = this.getModuleContents(updatedModules);\n\n const removedContents = new Map(\n Array.from(currentContents).filter(([key]) => !updatedContents.has(key))\n );\n\n const addedContents = new Map(\n Array.from(updatedContents).filter(([key]) => !currentContents.has(key))\n );\n\n if (removedContents.size > 0 || addedContents.size > 0) {\n removedContents.keys().forEach(name => {\n this.plugin.writeModule(name, '');\n });\n\n addedContents.forEach((content, name) => {\n this.plugin.writeModule(name, content);\n });\n\n updatedModules.entries().forEach(([name, modules]) => {\n let entry: string[] = structuredClone(compiler.options.entry[name]);\n\n if ('import' in entry) {\n entry = entry.import as string[];\n }\n\n entry = entry.filter(file => !removedContents.has(file));\n\n entry.push(...Array.from(modules.values(), ({name}) => name));\n\n compiler.options.entry[name] = _.uniq(entry);\n });\n }\n\n this._modules = updatedModules;\n }\n\n\n protected createModules(entries: EntrypointPluginEntries): EntrypointPluginEntryModules {\n const entryModules: EntrypointPluginEntryModules = new Map();\n\n _.forEach(entries, (files, name) => {\n const modules: EntrypointPluginModules = new Map();\n\n _.forEach(files, (file) => {\n modules.set(file, {\n name: EntrypointPlugin.filename(file),\n module: this.template ? this.template(file) : '',\n });\n });\n\n entryModules.set(name, modules);\n });\n\n return entryModules;\n }\n\n protected getModuleContents(modules: EntrypointPluginEntryModules): Map<string, string> {\n const content = new Map<string, string>();\n\n modules.values().forEach((modules) => {\n modules.forEach(({name, module}) => {\n content.set(name, module);\n });\n });\n\n return content;\n }\n}\n\nexport default EntrypointPlugin;\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 getSharedPath = (config: ReadonlyConfig, to?: string): string => {\n return path.join(config.inputDir, config.srcDir, config.sharedDir, to ?? '');\n}\n\nexport const getAppsPath = (config: ReadonlyConfig, to?: string): string => {\n return path.join(config.inputDir, config.srcDir, config.appsDir, config.app, to ?? '');\n}\n\nexport const getInputPath = (config: ReadonlyConfig, to?: string): string => {\n return path.join(config.inputDir, to ?? '');\n}\n\nexport const getOutputPath = (config: ReadonlyConfig): string => {\n return path.join(config.outputDir, `${config.app}-${config.browser}-mv${config.manifestVersion}`);\n}\n\nexport const getConfigFile = (config: ReadonlyConfig): string => {\n return getInputPath(config, config.configFile);\n}","import {z} from \"zod\";\n\nimport {Browser} from \"@typing/config\";\n\nexport enum EntrypointType {\n Background = 'background',\n Command = 'command',\n ContentScript = 'content',\n OptionsPage = 'options',\n Popup = 'popup',\n Sidebar = 'sidebar',\n}\n\nexport const EntrypointOptionsSchema = z.object({\n /**\n * List of target browsers to include this entrypoint in. Defaults to being included in all\n * builds. Cannot be used with `exclude`. You must choose one of the two options.\n *\n * @default undefined\n */\n includeBrowser: z.array(z.nativeEnum(Browser)).optional(),\n /**\n * List of target browsers to exclude this entrypoint from. Cannot be used with `include`. You\n * must choose one of the two options.\n *\n * @default undefined\n */\n excludeBrowser: z.array(z.nativeEnum(Browser)).optional(),\n /**\n * List of target apps to include this entrypoint in. Defaults to being included in all builds.\n * Cannot be used with `excludeApp`. You must choose one of the two options.\n *\n * @default undefined\n */\n includeApp: z.array(z.string()).optional(),\n /**\n * List of target apps to exclude this entrypoint from. Cannot be used with `includeApp`. You\n * must choose one of the two options.\n *\n * @default undefined\n */\n excludeApp: z.array(z.string()).optional(),\n});\n\nexport const EntrypointFileSchema = z.object({\n file: z.string(),\n import: z.string(),\n external: z.boolean().optional(),\n});\n\nexport type EntrypointOptions = z.infer<typeof EntrypointOptionsSchema>;\n\nexport type EntrypointFile = z.infer<typeof EntrypointFileSchema>;","import fs, {type Dirent} from 'fs';\nimport path from 'path';\n\nimport {getAppsPath, getSharedPath} from \"./path\";\n\nimport {EntrypointFile, EntrypointType} from \"@typing/entrypoint\";\nimport {ReadonlyConfig} from \"@typing/config\";\n\nconst escapeRegExp = (text: string): string =>\n text.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n\nexport const pathToImport = (filePath: string): string => {\n const {dir, name, ext} = path.parse(filePath);\n\n if (name === 'index' && (ext === '.ts' || ext === '.tsx')) {\n return dir;\n }\n\n return path.join(dir, name);\n}\n\nexport const findEntrypointFiles = (\n directory: string,\n entrypoint: EntrypointType\n): Set<EntrypointFile> => {\n const files: EntrypointFile[] = [];\n\n const regex = new RegExp(\n `^(?:.*\\\\.)?${escapeRegExp(entrypoint)}\\\\.(ts|tsx)$`\n );\n\n const finder = (dir: string): void => {\n let entries: Dirent[];\n\n try {\n entries = fs.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'];\n\n for (const indexFile of possibleIndexFiles) {\n const indexPath = path.join(fullPath, indexFile);\n\n try {\n const stat = fs.statSync(indexPath);\n\n if (stat.isFile()) {\n files.push({file: indexPath, import: pathToImport(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({file: fullPath, import: pathToImport(fullPath)});\n }\n }\n }\n };\n\n finder(directory);\n\n return new Set(files);\n};\n\nexport const getEntrypointFiles = (config: ReadonlyConfig, entrypoint: EntrypointType): Set<EntrypointFile> => {\n let files = new Set<EntrypointFile>();\n\n const appFiles = findEntrypointFiles(getAppsPath(config), entrypoint);\n\n if (appFiles.size > 0) {\n files = appFiles;\n\n if (config.debug) {\n console.info('App files added:', appFiles);\n }\n }\n\n const mergeShared: boolean = {\n [EntrypointType.Background]: config.mergeBackground,\n [EntrypointType.Command]: config.mergeCommands,\n }[entrypoint];\n\n if (appFiles.size > 0 && mergeShared || appFiles.size === 0) {\n const sharedFiles = findEntrypointFiles(getSharedPath(config), entrypoint);\n\n if (sharedFiles.size > 0) {\n files = new Set([...files, ...sharedFiles]);\n\n if (config.debug) {\n console.info('Shared files added:', sharedFiles);\n }\n }\n }\n\n return files;\n}","import _ from \"lodash\";\n\nimport {Configuration as WebpackConfig} from \"webpack\";\n\nimport getBackgroundEntrypoint from \"./entrypoint/background\";\nimport getCommandEntrypoint from \"./entrypoint/command\";\n\nimport {definePlugin} from \"@core/define\";\nimport {virtualBackgroundModule, virtualCommandModule} from \"@cli/virtual\";\n\nimport EntrypointPlugin, {EntrypointPluginEntries} from \"@cli/webpack/plugins/EntrypointPlugin\";\n\nimport {getEntrypointFiles} from \"@cli/resolvers/entrypoint\";\n\nimport {BackgroundEntrypointMap} from \"@typing/background\";\nimport {Command} from \"@typing/config\";\nimport {EntrypointType} from \"@typing/entrypoint\";\nimport {CommandEntrypointMap} from \"@typing/command\";\nimport {ManifestCommand, ManifestCommandMap} from \"@typing/manifest\";\n\nconst name = 'background';\n\nconst isPersistent = (background?: BackgroundEntrypointMap): boolean => {\n if (!background) {\n return false;\n }\n\n return Array.from(background.values()).some(({persistent}) => persistent);\n}\n\nconst getCommands = (command?: CommandEntrypointMap): ManifestCommandMap | undefined => {\n if (!command || command.size === 0) {\n return undefined;\n }\n\n return new Set<ManifestCommand>(command.values());\n}\n\nconst getEntry = (entrypoint: BackgroundEntrypointMap | CommandEntrypointMap): EntrypointPluginEntries => {\n return {[name]: Array.from(entrypoint.keys())};\n}\n\nexport default definePlugin(() => {\n let backgroundEntrypoint: BackgroundEntrypointMap | undefined;\n let commandEntrypoint: CommandEntrypointMap | undefined;\n\n return {\n name: import.meta.dirname,\n background: ({config}) => getEntrypointFiles(config, EntrypointType.Background),\n command: ({config}) => getEntrypointFiles(config, EntrypointType.Command),\n webpack: async ({config, webpack}) => {\n backgroundEntrypoint = await getBackgroundEntrypoint(config);\n commandEntrypoint = await getCommandEntrypoint(config);\n\n if (backgroundEntrypoint.size === 0 && commandEntrypoint.size === 0) {\n if (config.debug) {\n console.warn('Background or command entries not found');\n }\n\n return {};\n }\n\n const backgroundEntrypointPlugin = (new EntrypointPlugin(getEntry(backgroundEntrypoint), 'background-entrypoint'))\n .virtual(file => virtualBackgroundModule(file));\n\n const commandEntrypointPlugin = (new EntrypointPlugin(getEntry(commandEntrypoint), 'command-entrypoint'))\n .virtual(file => {\n if (!commandEntrypoint) {\n throw new Error('Command entrypoint is not defined');\n }\n\n const name = commandEntrypoint.get(file)?.name;\n\n if (!name) {\n throw new Error('Command name is not defined');\n }\n\n return virtualCommandModule(file, name);\n });\n\n if (config.command === Command.Watch) {\n backgroundEntrypointPlugin.watch(async () => {\n backgroundEntrypoint = await getBackgroundEntrypoint(config);\n\n return getEntry(backgroundEntrypoint);\n });\n\n commandEntrypointPlugin.watch(async () => {\n commandEntrypoint = await getCommandEntrypoint(config);\n\n return getEntry(commandEntrypoint);\n });\n }\n\n let resolvedWebpack: WebpackConfig = {\n plugins: [backgroundEntrypointPlugin, commandEntrypointPlugin],\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 return resolvedWebpack;\n },\n manifest: ({manifest}) => {\n manifest\n .setBackground(backgroundEntrypoint || commandEntrypoint ? {\n entry: name,\n persistent: isPersistent(backgroundEntrypoint),\n } : undefined)\n .setCommands(getCommands(commandEntrypoint));\n }\n };\n});","import {\n CoreManifest,\n Manifest,\n ManifestBackground,\n ManifestBuilder,\n ManifestCommandMap,\n ManifestContentScriptMap,\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 commands: ManifestCommandMap = new Set();\n protected contentScripts: ManifestContentScriptMap = 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 setBackground(background?: ManifestBackground): this {\n this.background = background;\n\n return this;\n }\n\n public setCommands(commands?: ManifestCommandMap): this {\n this.commands = commands || new Set();\n\n return this;\n }\n\n public setContentScripts(contentScripts?: ManifestContentScriptMap): this {\n this.contentScripts = contentScripts || new Map();\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(\n manifest,\n this.buildBackground(),\n this.buildCommands(),\n this.buildContentScripts()\n );\n\n return manifest as T;\n }\n\n protected buildCommands(): Partial<CoreManifest> | undefined {\n if (this.commands.size > 0) {\n const commands = Array.from(this.commands).reduce((commands, command) => {\n const item = {\n suggested_key: {\n default: command?.defaultKey,\n windows: command?.windowsKey,\n mac: command?.macKey,\n chromeos: command?.chromeosKey,\n linux: command?.linuxKey,\n },\n description: command?.description || command.name,\n global: command?.global,\n };\n\n return {...commands, [command.name]: item};\n }, {} as T['commands']);\n\n return {commands};\n }\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 {Compiler} from 'webpack';\n\nexport type WatchPluginCallback = (files: ReadonlySet<string>) => Promise<void>;\n\nclass WatchPlugin {\n constructor(private readonly callback: WatchPluginCallback, public readonly key: string) {\n }\n\n public apply(compiler: Compiler): void {\n compiler.hooks.watchRun.tapAsync('WatchPlugin', async (compiler, callback) => {\n try {\n const {modifiedFiles = new Set} = compiler;\n\n await this.callback(modifiedFiles);\n\n callback();\n } catch (e) {\n callback(e as Error);\n }\n });\n }\n}\n\nexport default WatchPlugin;\n","import {mergeWithCustomize} from \"webpack-merge\";\n\nimport WatchPlugin from \"../plugins/WatchPlugin\";\nimport EntrypointPlugin from \"../plugins/EntrypointPlugin\";\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 || plugin instanceof EntrypointPlugin) {\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 {Configuration, WebpackPluginInstance} from \"webpack\";\nimport path from \"path\";\n\nimport TsconfigPathsPlugin from \"tsconfig-paths-webpack-plugin\";\nimport MiniCssExtractPlugin from \"mini-css-extract-plugin\";\nimport {CleanWebpackPlugin} from \"clean-webpack-plugin\";\n\nimport manifestFactory from \"../builders/manifest\";\n\nimport {getOutputPath, getRootPath} from \"./path\";\nimport {processPluginHandler} from \"./plugin\";\n\nimport ManifestPlugin from \"../webpack/plugins/ManifestPlugin\";\nimport WatchPlugin from \"../webpack/plugins/WatchPlugin\";\nimport mergeWebpack from \"../webpack/utils/mergeConfig\";\n\nimport {Command, ReadonlyConfig} from \"@typing/config\";\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.command === Command.Watch) {\n plugins.push(new WatchPlugin(async () => {\n await update();\n }, 'manifest'));\n }\n\n plugins.push(new ManifestPlugin(manifest));\n\n return {plugins};\n}\n\nexport default async (config: ReadonlyConfig): Promise<Configuration> => {\n let webpack: Configuration = {\n entry: {},\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 },\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: /\\.svg$/,\n use: ['@svgr/webpack', 'url-loader'],\n // issuer: /\\.[jt]sx?$/,\n },\n {\n test: /\\.(png|apng|jpe?g|gif|webp)$/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 (config.command == Command.Watch) {\n webpack = mergeWebpack(webpack, {\n devtool: 'inline-source-map',\n });\n }\n\n if (config.command == Command.Build) {\n webpack = mergeWebpack(webpack, {\n plugins: [\n new CleanWebpackPlugin(),\n ],\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 (config: OptionalConfig): Promise<void> => {\n const resolverConfig = await configResolver(config);\n const webpackConfig = await webpackResolver(resolverConfig);\n\n const compiler = webpack(webpackConfig);\n\n switch (resolverConfig.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.22\",\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 \"./browser\": {\n \"types\": \"./dist/browser/index.d.ts\",\n \"import\": \"./dist/browser/index.js\",\n \"require\": \"./dist/browser/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 \"@types/webpack\": \"^5.28.5\",\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 \"@svgr/webpack\": \"^8.1.0\",\n \"@types/chrome\": \"^0.0.299\",\n \"c12\": \"^2.0.1\",\n \"cac\": \"^6.7.14\",\n \"clean-webpack-plugin\": \"^4.0.0\",\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 \"zod\": \"^3.24.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({\n command: 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({\n command: 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();"]}