@plugjs/tsrun 0.5.23 → 0.5.26

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cli.mjs CHANGED
@@ -1118,3 +1118,4 @@ yargs-parser/build/lib/index.js:
1118
1118
  * SPDX-License-Identifier: ISC
1119
1119
  *)
1120
1120
  */
1121
+ //# sourceMappingURL=cli.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/cli.mts", "../node_modules/yargs-parser/build/lib/index.js", "../node_modules/yargs-parser/build/lib/string-utils.js", "../node_modules/yargs-parser/build/lib/tokenize-arg-string.js", "../node_modules/yargs-parser/build/lib/yargs-parser-types.js", "../node_modules/yargs-parser/build/lib/yargs-parser.js", "../src/parser.mts"],
4
+ "sourcesContent": ["import _childProcess from 'node:child_process'\nimport _module from 'node:module'\nimport _url from 'node:url'\nimport _util from 'node:util'\n\nimport _yargs from './parser.mjs'\n\n/* ========================================================================== *\n * EXPORTS *\n * ========================================================================== */\n\n/** Bundled-in `yargs-parser` */\nexport const yargsParser = _yargs\n\n/**\n * Wrap around the `main` process of a CLI.\n *\n * This function must be invoked with a script URL (the `import.meta.url`\n * variable of the script being executed) and a callback, which will be invoked\n * once the proper environment for TypeScript has been setup.\n *\n * The callback _might_ return a promise (can be asynchronous) which will be\n * awaited for potential rejections.\n */\nexport function main(\n scriptUrl: string,\n callback: (args: string[]) => void | Promise<void>,\n): void {\n const require = _module.createRequire(import.meta.url)\n const debug = _util.debuglog('plug:cli')\n\n /* Always enable source maps support */\n process.setSourceMapsEnabled(true)\n\n /* Process command line arguments, filtering any \"--force-...\" */\n const args = process.argv.slice(2).filter((arg: string): boolean => {\n if (arg === '--force-esm') {\n process.env.__TS_LOADER_FORCE_TYPE = 'module'\n return false\n } else if (arg === '--force-cjs') {\n process.env.__TS_LOADER_FORCE_TYPE = 'commonjs'\n return false\n } else {\n return true\n }\n })\n\n /* Assume that Typescript loading is _not_ enabled */\n let typeScriptEnabled = false\n\n /* If we have the \"_module.register\" hook in place we can work in-process */\n if (typeof _module.register === 'function') {\n debug('Enabling in-process TypeScript loader')\n\n /* Register the ESM loader and immediately require the CJS loader */\n _module.register('./loader-module.mjs', import.meta.url)\n require('./loader-commonjs.cjs')\n\n /* Add our preloader to the \"execArgv\" arguments to support forking */\n process.execArgv.push(`--import=${require.resolve('./preload.mjs')}`)\n\n /* Yep, typescript is enabled */\n typeScriptEnabled = true\n }\n\n /* If we don't have TypeScript enabled check the NodeJS command line */\n if (! typeScriptEnabled) {\n const cjsLoader = require.resolve('./loader-commonjs.cjs')\n const esmLoader = require.resolve('./loader-module.mjs')\n\n if (process.execArgv.includes(`--experimental-loader=${esmLoader}`)) {\n typeScriptEnabled = true\n } else if (process.execArgv.includes(`--loader=${esmLoader}`)) {\n typeScriptEnabled = true\n } else {\n process.execArgv.push(`--experimental-loader=${esmLoader}`)\n process.execArgv.push(`--require=${cjsLoader}`)\n process.execArgv.push('--no-warnings')\n typeScriptEnabled = false\n }\n }\n\n\n /* If TypeScript is enabled, then we can simply run now! */\n if (typeScriptEnabled) {\n /* Wrap into a promise to better catch errors from the real \"main\" */\n Promise.resolve().then(async () => {\n process.exitCode = 0\n await callback(args)\n }).catch((error) => {\n console.error(error)\n process.exitCode = 1\n\n setTimeout(() => {\n console.log('\\n\\nProcess %d did not exit in 5 seconds', process.pid)\n process.exit(2)\n }, 5000).unref()\n })\n\n return\n }\n\n /* If TypeScript is not enabled, then we have to fork with the new execArgh! */\n const script = _url.fileURLToPath(scriptUrl)\n debug('Forking', process.execPath, ...process.execArgv, script, ...process.argv.slice(2))\n const child = _childProcess.fork(script, [ ...process.argv.slice(2) ], {\n stdio: [ 'inherit', 'inherit', 'inherit', 'ipc' ],\n execArgv: process.execArgv,\n })\n\n /* Monitor child process... */\n child.on('error', (error) => {\n console.log('Error respawning CLI', error)\n process.exit(1)\n })\n\n child.on('exit', (code, signal) => {\n if (signal) {\n console.log(`CLI process exited with signal ${signal}`)\n process.exit(1)\n } else if (typeof code !== 'number') {\n console.log('CLI process failed for an unknown reason')\n process.exit(1)\n } else {\n process.exit(code)\n }\n })\n}\n", "/**\n * @fileoverview Main entrypoint for libraries using yargs-parser in Node.js\n * CJS and ESM environments.\n *\n * @license\n * Copyright (c) 2016, Contributors\n * SPDX-License-Identifier: ISC\n */\nvar _a, _b, _c;\nimport { format } from 'util';\nimport { normalize, resolve } from 'path';\nimport { camelCase, decamelize, looksLikeNumber } from './string-utils.js';\nimport { YargsParser } from './yargs-parser.js';\nimport { readFileSync } from 'fs';\n// See https://github.com/yargs/yargs-parser#supported-nodejs-versions for our\n// version support policy. The YARGS_MIN_NODE_VERSION is used for testing only.\nconst minNodeVersion = (process && process.env && process.env.YARGS_MIN_NODE_VERSION)\n ? Number(process.env.YARGS_MIN_NODE_VERSION)\n : 12;\nconst nodeVersion = (_b = (_a = process === null || process === void 0 ? void 0 : process.versions) === null || _a === void 0 ? void 0 : _a.node) !== null && _b !== void 0 ? _b : (_c = process === null || process === void 0 ? void 0 : process.version) === null || _c === void 0 ? void 0 : _c.slice(1);\nif (nodeVersion) {\n const major = Number(nodeVersion.match(/^([^.]+)/)[1]);\n if (major < minNodeVersion) {\n throw Error(`yargs parser supports a minimum Node.js version of ${minNodeVersion}. Read our version support policy: https://github.com/yargs/yargs-parser#supported-nodejs-versions`);\n }\n}\n// Creates a yargs-parser instance using Node.js standard libraries:\nconst env = process ? process.env : {};\nconst parser = new YargsParser({\n cwd: process.cwd,\n env: () => {\n return env;\n },\n format,\n normalize,\n resolve,\n // TODO: figure out a way to combine ESM and CJS coverage, such that\n // we can exercise all the lines below:\n require: (path) => {\n if (typeof require !== 'undefined') {\n return require(path);\n }\n else if (path.match(/\\.json$/)) {\n // Addresses: https://github.com/yargs/yargs/issues/2040\n return JSON.parse(readFileSync(path, 'utf8'));\n }\n else {\n throw Error('only .json config files are supported in ESM');\n }\n }\n});\nconst yargsParser = function Parser(args, opts) {\n const result = parser.parse(args.slice(), opts);\n return result.argv;\n};\nyargsParser.detailed = function (args, opts) {\n return parser.parse(args.slice(), opts);\n};\nyargsParser.camelCase = camelCase;\nyargsParser.decamelize = decamelize;\nyargsParser.looksLikeNumber = looksLikeNumber;\nexport default yargsParser;\n", "/**\n * @license\n * Copyright (c) 2016, Contributors\n * SPDX-License-Identifier: ISC\n */\nexport function camelCase(str) {\n // Handle the case where an argument is provided as camel case, e.g., fooBar.\n // by ensuring that the string isn't already mixed case:\n const isCamelCase = str !== str.toLowerCase() && str !== str.toUpperCase();\n if (!isCamelCase) {\n str = str.toLowerCase();\n }\n if (str.indexOf('-') === -1 && str.indexOf('_') === -1) {\n return str;\n }\n else {\n let camelcase = '';\n let nextChrUpper = false;\n const leadingHyphens = str.match(/^-+/);\n for (let i = leadingHyphens ? leadingHyphens[0].length : 0; i < str.length; i++) {\n let chr = str.charAt(i);\n if (nextChrUpper) {\n nextChrUpper = false;\n chr = chr.toUpperCase();\n }\n if (i !== 0 && (chr === '-' || chr === '_')) {\n nextChrUpper = true;\n }\n else if (chr !== '-' && chr !== '_') {\n camelcase += chr;\n }\n }\n return camelcase;\n }\n}\nexport function decamelize(str, joinString) {\n const lowercase = str.toLowerCase();\n joinString = joinString || '-';\n let notCamelcase = '';\n for (let i = 0; i < str.length; i++) {\n const chrLower = lowercase.charAt(i);\n const chrString = str.charAt(i);\n if (chrLower !== chrString && i > 0) {\n notCamelcase += `${joinString}${lowercase.charAt(i)}`;\n }\n else {\n notCamelcase += chrString;\n }\n }\n return notCamelcase;\n}\nexport function looksLikeNumber(x) {\n if (x === null || x === undefined)\n return false;\n // if loaded from config, may already be a number.\n if (typeof x === 'number')\n return true;\n // hexadecimal.\n if (/^0x[0-9a-f]+$/i.test(x))\n return true;\n // don't treat 0123 as a number; as it drops the leading '0'.\n if (/^0[^.]/.test(x))\n return false;\n return /^[-]?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(e[-+]?\\d+)?$/.test(x);\n}\n", "/**\n * @license\n * Copyright (c) 2016, Contributors\n * SPDX-License-Identifier: ISC\n */\n// take an un-split argv string and tokenize it.\nexport function tokenizeArgString(argString) {\n if (Array.isArray(argString)) {\n return argString.map(e => typeof e !== 'string' ? e + '' : e);\n }\n argString = argString.trim();\n let i = 0;\n let prevC = null;\n let c = null;\n let opening = null;\n const args = [];\n for (let ii = 0; ii < argString.length; ii++) {\n prevC = c;\n c = argString.charAt(ii);\n // split on spaces unless we're in quotes.\n if (c === ' ' && !opening) {\n if (!(prevC === ' ')) {\n i++;\n }\n continue;\n }\n // don't split the string if we're in matching\n // opening or closing single and double quotes.\n if (c === opening) {\n opening = null;\n }\n else if ((c === \"'\" || c === '\"') && !opening) {\n opening = c;\n }\n if (!args[i])\n args[i] = '';\n args[i] += c;\n }\n return args;\n}\n", "/**\n * @license\n * Copyright (c) 2016, Contributors\n * SPDX-License-Identifier: ISC\n */\nexport var DefaultValuesForTypeKey;\n(function (DefaultValuesForTypeKey) {\n DefaultValuesForTypeKey[\"BOOLEAN\"] = \"boolean\";\n DefaultValuesForTypeKey[\"STRING\"] = \"string\";\n DefaultValuesForTypeKey[\"NUMBER\"] = \"number\";\n DefaultValuesForTypeKey[\"ARRAY\"] = \"array\";\n})(DefaultValuesForTypeKey || (DefaultValuesForTypeKey = {}));\n", "/**\n * @license\n * Copyright (c) 2016, Contributors\n * SPDX-License-Identifier: ISC\n */\nimport { tokenizeArgString } from './tokenize-arg-string.js';\nimport { DefaultValuesForTypeKey } from './yargs-parser-types.js';\nimport { camelCase, decamelize, looksLikeNumber } from './string-utils.js';\nlet mixin;\nexport class YargsParser {\n constructor(_mixin) {\n mixin = _mixin;\n }\n parse(argsInput, options) {\n const opts = Object.assign({\n alias: undefined,\n array: undefined,\n boolean: undefined,\n config: undefined,\n configObjects: undefined,\n configuration: undefined,\n coerce: undefined,\n count: undefined,\n default: undefined,\n envPrefix: undefined,\n narg: undefined,\n normalize: undefined,\n string: undefined,\n number: undefined,\n __: undefined,\n key: undefined\n }, options);\n // allow a string argument to be passed in rather\n // than an argv array.\n const args = tokenizeArgString(argsInput);\n // tokenizeArgString adds extra quotes to args if argsInput is a string\n // only strip those extra quotes in processValue if argsInput is a string\n const inputIsString = typeof argsInput === 'string';\n // aliases might have transitive relationships, normalize this.\n const aliases = combineAliases(Object.assign(Object.create(null), opts.alias));\n const configuration = Object.assign({\n 'boolean-negation': true,\n 'camel-case-expansion': true,\n 'combine-arrays': false,\n 'dot-notation': true,\n 'duplicate-arguments-array': true,\n 'flatten-duplicate-arrays': true,\n 'greedy-arrays': true,\n 'halt-at-non-option': false,\n 'nargs-eats-options': false,\n 'negation-prefix': 'no-',\n 'parse-numbers': true,\n 'parse-positional-numbers': true,\n 'populate--': false,\n 'set-placeholder-key': false,\n 'short-option-groups': true,\n 'strip-aliased': false,\n 'strip-dashed': false,\n 'unknown-options-as-args': false\n }, opts.configuration);\n const defaults = Object.assign(Object.create(null), opts.default);\n const configObjects = opts.configObjects || [];\n const envPrefix = opts.envPrefix;\n const notFlagsOption = configuration['populate--'];\n const notFlagsArgv = notFlagsOption ? '--' : '_';\n const newAliases = Object.create(null);\n const defaulted = Object.create(null);\n // allow a i18n handler to be passed in, default to a fake one (util.format).\n const __ = opts.__ || mixin.format;\n const flags = {\n aliases: Object.create(null),\n arrays: Object.create(null),\n bools: Object.create(null),\n strings: Object.create(null),\n numbers: Object.create(null),\n counts: Object.create(null),\n normalize: Object.create(null),\n configs: Object.create(null),\n nargs: Object.create(null),\n coercions: Object.create(null),\n keys: []\n };\n const negative = /^-([0-9]+(\\.[0-9]+)?|\\.[0-9]+)$/;\n const negatedBoolean = new RegExp('^--' + configuration['negation-prefix'] + '(.+)');\n [].concat(opts.array || []).filter(Boolean).forEach(function (opt) {\n const key = typeof opt === 'object' ? opt.key : opt;\n // assign to flags[bools|strings|numbers]\n const assignment = Object.keys(opt).map(function (key) {\n const arrayFlagKeys = {\n boolean: 'bools',\n string: 'strings',\n number: 'numbers'\n };\n return arrayFlagKeys[key];\n }).filter(Boolean).pop();\n // assign key to be coerced\n if (assignment) {\n flags[assignment][key] = true;\n }\n flags.arrays[key] = true;\n flags.keys.push(key);\n });\n [].concat(opts.boolean || []).filter(Boolean).forEach(function (key) {\n flags.bools[key] = true;\n flags.keys.push(key);\n });\n [].concat(opts.string || []).filter(Boolean).forEach(function (key) {\n flags.strings[key] = true;\n flags.keys.push(key);\n });\n [].concat(opts.number || []).filter(Boolean).forEach(function (key) {\n flags.numbers[key] = true;\n flags.keys.push(key);\n });\n [].concat(opts.count || []).filter(Boolean).forEach(function (key) {\n flags.counts[key] = true;\n flags.keys.push(key);\n });\n [].concat(opts.normalize || []).filter(Boolean).forEach(function (key) {\n flags.normalize[key] = true;\n flags.keys.push(key);\n });\n if (typeof opts.narg === 'object') {\n Object.entries(opts.narg).forEach(([key, value]) => {\n if (typeof value === 'number') {\n flags.nargs[key] = value;\n flags.keys.push(key);\n }\n });\n }\n if (typeof opts.coerce === 'object') {\n Object.entries(opts.coerce).forEach(([key, value]) => {\n if (typeof value === 'function') {\n flags.coercions[key] = value;\n flags.keys.push(key);\n }\n });\n }\n if (typeof opts.config !== 'undefined') {\n if (Array.isArray(opts.config) || typeof opts.config === 'string') {\n ;\n [].concat(opts.config).filter(Boolean).forEach(function (key) {\n flags.configs[key] = true;\n });\n }\n else if (typeof opts.config === 'object') {\n Object.entries(opts.config).forEach(([key, value]) => {\n if (typeof value === 'boolean' || typeof value === 'function') {\n flags.configs[key] = value;\n }\n });\n }\n }\n // create a lookup table that takes into account all\n // combinations of aliases: {f: ['foo'], foo: ['f']}\n extendAliases(opts.key, aliases, opts.default, flags.arrays);\n // apply default values to all aliases.\n Object.keys(defaults).forEach(function (key) {\n (flags.aliases[key] || []).forEach(function (alias) {\n defaults[alias] = defaults[key];\n });\n });\n let error = null;\n checkConfiguration();\n let notFlags = [];\n const argv = Object.assign(Object.create(null), { _: [] });\n // TODO(bcoe): for the first pass at removing object prototype we didn't\n // remove all prototypes from objects returned by this API, we might want\n // to gradually move towards doing so.\n const argvReturn = {};\n for (let i = 0; i < args.length; i++) {\n const arg = args[i];\n const truncatedArg = arg.replace(/^-{3,}/, '---');\n let broken;\n let key;\n let letters;\n let m;\n let next;\n let value;\n // any unknown option (except for end-of-options, \"--\")\n if (arg !== '--' && /^-/.test(arg) && isUnknownOptionAsArg(arg)) {\n pushPositional(arg);\n // ---, ---=, ----, etc,\n }\n else if (truncatedArg.match(/^---+(=|$)/)) {\n // options without key name are invalid.\n pushPositional(arg);\n continue;\n // -- separated by =\n }\n else if (arg.match(/^--.+=/) || (!configuration['short-option-groups'] && arg.match(/^-.+=/))) {\n // Using [\\s\\S] instead of . because js doesn't support the\n // 'dotall' regex modifier. See:\n // http://stackoverflow.com/a/1068308/13216\n m = arg.match(/^--?([^=]+)=([\\s\\S]*)$/);\n // arrays format = '--f=a b c'\n if (m !== null && Array.isArray(m) && m.length >= 3) {\n if (checkAllAliases(m[1], flags.arrays)) {\n i = eatArray(i, m[1], args, m[2]);\n }\n else if (checkAllAliases(m[1], flags.nargs) !== false) {\n // nargs format = '--f=monkey washing cat'\n i = eatNargs(i, m[1], args, m[2]);\n }\n else {\n setArg(m[1], m[2], true);\n }\n }\n }\n else if (arg.match(negatedBoolean) && configuration['boolean-negation']) {\n m = arg.match(negatedBoolean);\n if (m !== null && Array.isArray(m) && m.length >= 2) {\n key = m[1];\n setArg(key, checkAllAliases(key, flags.arrays) ? [false] : false);\n }\n // -- separated by space.\n }\n else if (arg.match(/^--.+/) || (!configuration['short-option-groups'] && arg.match(/^-[^-]+/))) {\n m = arg.match(/^--?(.+)/);\n if (m !== null && Array.isArray(m) && m.length >= 2) {\n key = m[1];\n if (checkAllAliases(key, flags.arrays)) {\n // array format = '--foo a b c'\n i = eatArray(i, key, args);\n }\n else if (checkAllAliases(key, flags.nargs) !== false) {\n // nargs format = '--foo a b c'\n // should be truthy even if: flags.nargs[key] === 0\n i = eatNargs(i, key, args);\n }\n else {\n next = args[i + 1];\n if (next !== undefined && (!next.match(/^-/) ||\n next.match(negative)) &&\n !checkAllAliases(key, flags.bools) &&\n !checkAllAliases(key, flags.counts)) {\n setArg(key, next);\n i++;\n }\n else if (/^(true|false)$/.test(next)) {\n setArg(key, next);\n i++;\n }\n else {\n setArg(key, defaultValue(key));\n }\n }\n }\n // dot-notation flag separated by '='.\n }\n else if (arg.match(/^-.\\..+=/)) {\n m = arg.match(/^-([^=]+)=([\\s\\S]*)$/);\n if (m !== null && Array.isArray(m) && m.length >= 3) {\n setArg(m[1], m[2]);\n }\n // dot-notation flag separated by space.\n }\n else if (arg.match(/^-.\\..+/) && !arg.match(negative)) {\n next = args[i + 1];\n m = arg.match(/^-(.\\..+)/);\n if (m !== null && Array.isArray(m) && m.length >= 2) {\n key = m[1];\n if (next !== undefined && !next.match(/^-/) &&\n !checkAllAliases(key, flags.bools) &&\n !checkAllAliases(key, flags.counts)) {\n setArg(key, next);\n i++;\n }\n else {\n setArg(key, defaultValue(key));\n }\n }\n }\n else if (arg.match(/^-[^-]+/) && !arg.match(negative)) {\n letters = arg.slice(1, -1).split('');\n broken = false;\n for (let j = 0; j < letters.length; j++) {\n next = arg.slice(j + 2);\n if (letters[j + 1] && letters[j + 1] === '=') {\n value = arg.slice(j + 3);\n key = letters[j];\n if (checkAllAliases(key, flags.arrays)) {\n // array format = '-f=a b c'\n i = eatArray(i, key, args, value);\n }\n else if (checkAllAliases(key, flags.nargs) !== false) {\n // nargs format = '-f=monkey washing cat'\n i = eatNargs(i, key, args, value);\n }\n else {\n setArg(key, value);\n }\n broken = true;\n break;\n }\n if (next === '-') {\n setArg(letters[j], next);\n continue;\n }\n // current letter is an alphabetic character and next value is a number\n if (/[A-Za-z]/.test(letters[j]) &&\n /^-?\\d+(\\.\\d*)?(e-?\\d+)?$/.test(next) &&\n checkAllAliases(next, flags.bools) === false) {\n setArg(letters[j], next);\n broken = true;\n break;\n }\n if (letters[j + 1] && letters[j + 1].match(/\\W/)) {\n setArg(letters[j], next);\n broken = true;\n break;\n }\n else {\n setArg(letters[j], defaultValue(letters[j]));\n }\n }\n key = arg.slice(-1)[0];\n if (!broken && key !== '-') {\n if (checkAllAliases(key, flags.arrays)) {\n // array format = '-f a b c'\n i = eatArray(i, key, args);\n }\n else if (checkAllAliases(key, flags.nargs) !== false) {\n // nargs format = '-f a b c'\n // should be truthy even if: flags.nargs[key] === 0\n i = eatNargs(i, key, args);\n }\n else {\n next = args[i + 1];\n if (next !== undefined && (!/^(-|--)[^-]/.test(next) ||\n next.match(negative)) &&\n !checkAllAliases(key, flags.bools) &&\n !checkAllAliases(key, flags.counts)) {\n setArg(key, next);\n i++;\n }\n else if (/^(true|false)$/.test(next)) {\n setArg(key, next);\n i++;\n }\n else {\n setArg(key, defaultValue(key));\n }\n }\n }\n }\n else if (arg.match(/^-[0-9]$/) &&\n arg.match(negative) &&\n checkAllAliases(arg.slice(1), flags.bools)) {\n // single-digit boolean alias, e.g: xargs -0\n key = arg.slice(1);\n setArg(key, defaultValue(key));\n }\n else if (arg === '--') {\n notFlags = args.slice(i + 1);\n break;\n }\n else if (configuration['halt-at-non-option']) {\n notFlags = args.slice(i);\n break;\n }\n else {\n pushPositional(arg);\n }\n }\n // order of precedence:\n // 1. command line arg\n // 2. value from env var\n // 3. value from config file\n // 4. value from config objects\n // 5. configured default value\n applyEnvVars(argv, true); // special case: check env vars that point to config file\n applyEnvVars(argv, false);\n setConfig(argv);\n setConfigObjects();\n applyDefaultsAndAliases(argv, flags.aliases, defaults, true);\n applyCoercions(argv);\n if (configuration['set-placeholder-key'])\n setPlaceholderKeys(argv);\n // for any counts either not in args or without an explicit default, set to 0\n Object.keys(flags.counts).forEach(function (key) {\n if (!hasKey(argv, key.split('.')))\n setArg(key, 0);\n });\n // '--' defaults to undefined.\n if (notFlagsOption && notFlags.length)\n argv[notFlagsArgv] = [];\n notFlags.forEach(function (key) {\n argv[notFlagsArgv].push(key);\n });\n if (configuration['camel-case-expansion'] && configuration['strip-dashed']) {\n Object.keys(argv).filter(key => key !== '--' && key.includes('-')).forEach(key => {\n delete argv[key];\n });\n }\n if (configuration['strip-aliased']) {\n ;\n [].concat(...Object.keys(aliases).map(k => aliases[k])).forEach(alias => {\n if (configuration['camel-case-expansion'] && alias.includes('-')) {\n delete argv[alias.split('.').map(prop => camelCase(prop)).join('.')];\n }\n delete argv[alias];\n });\n }\n // Push argument into positional array, applying numeric coercion:\n function pushPositional(arg) {\n const maybeCoercedNumber = maybeCoerceNumber('_', arg);\n if (typeof maybeCoercedNumber === 'string' || typeof maybeCoercedNumber === 'number') {\n argv._.push(maybeCoercedNumber);\n }\n }\n // how many arguments should we consume, based\n // on the nargs option?\n function eatNargs(i, key, args, argAfterEqualSign) {\n let ii;\n let toEat = checkAllAliases(key, flags.nargs);\n // NaN has a special meaning for the array type, indicating that one or\n // more values are expected.\n toEat = typeof toEat !== 'number' || isNaN(toEat) ? 1 : toEat;\n if (toEat === 0) {\n if (!isUndefined(argAfterEqualSign)) {\n error = Error(__('Argument unexpected for: %s', key));\n }\n setArg(key, defaultValue(key));\n return i;\n }\n let available = isUndefined(argAfterEqualSign) ? 0 : 1;\n if (configuration['nargs-eats-options']) {\n // classic behavior, yargs eats positional and dash arguments.\n if (args.length - (i + 1) + available < toEat) {\n error = Error(__('Not enough arguments following: %s', key));\n }\n available = toEat;\n }\n else {\n // nargs will not consume flag arguments, e.g., -abc, --foo,\n // and terminates when one is observed.\n for (ii = i + 1; ii < args.length; ii++) {\n if (!args[ii].match(/^-[^0-9]/) || args[ii].match(negative) || isUnknownOptionAsArg(args[ii]))\n available++;\n else\n break;\n }\n if (available < toEat)\n error = Error(__('Not enough arguments following: %s', key));\n }\n let consumed = Math.min(available, toEat);\n if (!isUndefined(argAfterEqualSign) && consumed > 0) {\n setArg(key, argAfterEqualSign);\n consumed--;\n }\n for (ii = i + 1; ii < (consumed + i + 1); ii++) {\n setArg(key, args[ii]);\n }\n return (i + consumed);\n }\n // if an option is an array, eat all non-hyphenated arguments\n // following it... YUM!\n // e.g., --foo apple banana cat becomes [\"apple\", \"banana\", \"cat\"]\n function eatArray(i, key, args, argAfterEqualSign) {\n let argsToSet = [];\n let next = argAfterEqualSign || args[i + 1];\n // If both array and nargs are configured, enforce the nargs count:\n const nargsCount = checkAllAliases(key, flags.nargs);\n if (checkAllAliases(key, flags.bools) && !(/^(true|false)$/.test(next))) {\n argsToSet.push(true);\n }\n else if (isUndefined(next) ||\n (isUndefined(argAfterEqualSign) && /^-/.test(next) && !negative.test(next) && !isUnknownOptionAsArg(next))) {\n // for keys without value ==> argsToSet remains an empty []\n // set user default value, if available\n if (defaults[key] !== undefined) {\n const defVal = defaults[key];\n argsToSet = Array.isArray(defVal) ? defVal : [defVal];\n }\n }\n else {\n // value in --option=value is eaten as is\n if (!isUndefined(argAfterEqualSign)) {\n argsToSet.push(processValue(key, argAfterEqualSign, true));\n }\n for (let ii = i + 1; ii < args.length; ii++) {\n if ((!configuration['greedy-arrays'] && argsToSet.length > 0) ||\n (nargsCount && typeof nargsCount === 'number' && argsToSet.length >= nargsCount))\n break;\n next = args[ii];\n if (/^-/.test(next) && !negative.test(next) && !isUnknownOptionAsArg(next))\n break;\n i = ii;\n argsToSet.push(processValue(key, next, inputIsString));\n }\n }\n // If both array and nargs are configured, create an error if less than\n // nargs positionals were found. NaN has special meaning, indicating\n // that at least one value is required (more are okay).\n if (typeof nargsCount === 'number' && ((nargsCount && argsToSet.length < nargsCount) ||\n (isNaN(nargsCount) && argsToSet.length === 0))) {\n error = Error(__('Not enough arguments following: %s', key));\n }\n setArg(key, argsToSet);\n return i;\n }\n function setArg(key, val, shouldStripQuotes = inputIsString) {\n if (/-/.test(key) && configuration['camel-case-expansion']) {\n const alias = key.split('.').map(function (prop) {\n return camelCase(prop);\n }).join('.');\n addNewAlias(key, alias);\n }\n const value = processValue(key, val, shouldStripQuotes);\n const splitKey = key.split('.');\n setKey(argv, splitKey, value);\n // handle populating aliases of the full key\n if (flags.aliases[key]) {\n flags.aliases[key].forEach(function (x) {\n const keyProperties = x.split('.');\n setKey(argv, keyProperties, value);\n });\n }\n // handle populating aliases of the first element of the dot-notation key\n if (splitKey.length > 1 && configuration['dot-notation']) {\n ;\n (flags.aliases[splitKey[0]] || []).forEach(function (x) {\n let keyProperties = x.split('.');\n // expand alias with nested objects in key\n const a = [].concat(splitKey);\n a.shift(); // nuke the old key.\n keyProperties = keyProperties.concat(a);\n // populate alias only if is not already an alias of the full key\n // (already populated above)\n if (!(flags.aliases[key] || []).includes(keyProperties.join('.'))) {\n setKey(argv, keyProperties, value);\n }\n });\n }\n // Set normalize getter and setter when key is in 'normalize' but isn't an array\n if (checkAllAliases(key, flags.normalize) && !checkAllAliases(key, flags.arrays)) {\n const keys = [key].concat(flags.aliases[key] || []);\n keys.forEach(function (key) {\n Object.defineProperty(argvReturn, key, {\n enumerable: true,\n get() {\n return val;\n },\n set(value) {\n val = typeof value === 'string' ? mixin.normalize(value) : value;\n }\n });\n });\n }\n }\n function addNewAlias(key, alias) {\n if (!(flags.aliases[key] && flags.aliases[key].length)) {\n flags.aliases[key] = [alias];\n newAliases[alias] = true;\n }\n if (!(flags.aliases[alias] && flags.aliases[alias].length)) {\n addNewAlias(alias, key);\n }\n }\n function processValue(key, val, shouldStripQuotes) {\n // strings may be quoted, clean this up as we assign values.\n if (shouldStripQuotes) {\n val = stripQuotes(val);\n }\n // handle parsing boolean arguments --foo=true --bar false.\n if (checkAllAliases(key, flags.bools) || checkAllAliases(key, flags.counts)) {\n if (typeof val === 'string')\n val = val === 'true';\n }\n let value = Array.isArray(val)\n ? val.map(function (v) { return maybeCoerceNumber(key, v); })\n : maybeCoerceNumber(key, val);\n // increment a count given as arg (either no value or value parsed as boolean)\n if (checkAllAliases(key, flags.counts) && (isUndefined(value) || typeof value === 'boolean')) {\n value = increment();\n }\n // Set normalized value when key is in 'normalize' and in 'arrays'\n if (checkAllAliases(key, flags.normalize) && checkAllAliases(key, flags.arrays)) {\n if (Array.isArray(val))\n value = val.map((val) => { return mixin.normalize(val); });\n else\n value = mixin.normalize(val);\n }\n return value;\n }\n function maybeCoerceNumber(key, value) {\n if (!configuration['parse-positional-numbers'] && key === '_')\n return value;\n if (!checkAllAliases(key, flags.strings) && !checkAllAliases(key, flags.bools) && !Array.isArray(value)) {\n const shouldCoerceNumber = looksLikeNumber(value) && configuration['parse-numbers'] && (Number.isSafeInteger(Math.floor(parseFloat(`${value}`))));\n if (shouldCoerceNumber || (!isUndefined(value) && checkAllAliases(key, flags.numbers))) {\n value = Number(value);\n }\n }\n return value;\n }\n // set args from config.json file, this should be\n // applied last so that defaults can be applied.\n function setConfig(argv) {\n const configLookup = Object.create(null);\n // expand defaults/aliases, in-case any happen to reference\n // the config.json file.\n applyDefaultsAndAliases(configLookup, flags.aliases, defaults);\n Object.keys(flags.configs).forEach(function (configKey) {\n const configPath = argv[configKey] || configLookup[configKey];\n if (configPath) {\n try {\n let config = null;\n const resolvedConfigPath = mixin.resolve(mixin.cwd(), configPath);\n const resolveConfig = flags.configs[configKey];\n if (typeof resolveConfig === 'function') {\n try {\n config = resolveConfig(resolvedConfigPath);\n }\n catch (e) {\n config = e;\n }\n if (config instanceof Error) {\n error = config;\n return;\n }\n }\n else {\n config = mixin.require(resolvedConfigPath);\n }\n setConfigObject(config);\n }\n catch (ex) {\n // Deno will receive a PermissionDenied error if an attempt is\n // made to load config without the --allow-read flag:\n if (ex.name === 'PermissionDenied')\n error = ex;\n else if (argv[configKey])\n error = Error(__('Invalid JSON config file: %s', configPath));\n }\n }\n });\n }\n // set args from config object.\n // it recursively checks nested objects.\n function setConfigObject(config, prev) {\n Object.keys(config).forEach(function (key) {\n const value = config[key];\n const fullKey = prev ? prev + '.' + key : key;\n // if the value is an inner object and we have dot-notation\n // enabled, treat inner objects in config the same as\n // heavily nested dot notations (foo.bar.apple).\n if (typeof value === 'object' && value !== null && !Array.isArray(value) && configuration['dot-notation']) {\n // if the value is an object but not an array, check nested object\n setConfigObject(value, fullKey);\n }\n else {\n // setting arguments via CLI takes precedence over\n // values within the config file.\n if (!hasKey(argv, fullKey.split('.')) || (checkAllAliases(fullKey, flags.arrays) && configuration['combine-arrays'])) {\n setArg(fullKey, value);\n }\n }\n });\n }\n // set all config objects passed in opts\n function setConfigObjects() {\n if (typeof configObjects !== 'undefined') {\n configObjects.forEach(function (configObject) {\n setConfigObject(configObject);\n });\n }\n }\n function applyEnvVars(argv, configOnly) {\n if (typeof envPrefix === 'undefined')\n return;\n const prefix = typeof envPrefix === 'string' ? envPrefix : '';\n const env = mixin.env();\n Object.keys(env).forEach(function (envVar) {\n if (prefix === '' || envVar.lastIndexOf(prefix, 0) === 0) {\n // get array of nested keys and convert them to camel case\n const keys = envVar.split('__').map(function (key, i) {\n if (i === 0) {\n key = key.substring(prefix.length);\n }\n return camelCase(key);\n });\n if (((configOnly && flags.configs[keys.join('.')]) || !configOnly) && !hasKey(argv, keys)) {\n setArg(keys.join('.'), env[envVar]);\n }\n }\n });\n }\n function applyCoercions(argv) {\n let coerce;\n const applied = new Set();\n Object.keys(argv).forEach(function (key) {\n if (!applied.has(key)) { // If we haven't already coerced this option via one of its aliases\n coerce = checkAllAliases(key, flags.coercions);\n if (typeof coerce === 'function') {\n try {\n const value = maybeCoerceNumber(key, coerce(argv[key]));\n ([].concat(flags.aliases[key] || [], key)).forEach(ali => {\n applied.add(ali);\n argv[ali] = value;\n });\n }\n catch (err) {\n error = err;\n }\n }\n }\n });\n }\n function setPlaceholderKeys(argv) {\n flags.keys.forEach((key) => {\n // don't set placeholder keys for dot notation options 'foo.bar'.\n if (~key.indexOf('.'))\n return;\n if (typeof argv[key] === 'undefined')\n argv[key] = undefined;\n });\n return argv;\n }\n function applyDefaultsAndAliases(obj, aliases, defaults, canLog = false) {\n Object.keys(defaults).forEach(function (key) {\n if (!hasKey(obj, key.split('.'))) {\n setKey(obj, key.split('.'), defaults[key]);\n if (canLog)\n defaulted[key] = true;\n (aliases[key] || []).forEach(function (x) {\n if (hasKey(obj, x.split('.')))\n return;\n setKey(obj, x.split('.'), defaults[key]);\n });\n }\n });\n }\n function hasKey(obj, keys) {\n let o = obj;\n if (!configuration['dot-notation'])\n keys = [keys.join('.')];\n keys.slice(0, -1).forEach(function (key) {\n o = (o[key] || {});\n });\n const key = keys[keys.length - 1];\n if (typeof o !== 'object')\n return false;\n else\n return key in o;\n }\n function setKey(obj, keys, value) {\n let o = obj;\n if (!configuration['dot-notation'])\n keys = [keys.join('.')];\n keys.slice(0, -1).forEach(function (key) {\n // TODO(bcoe): in the next major version of yargs, switch to\n // Object.create(null) for dot notation:\n key = sanitizeKey(key);\n if (typeof o === 'object' && o[key] === undefined) {\n o[key] = {};\n }\n if (typeof o[key] !== 'object' || Array.isArray(o[key])) {\n // ensure that o[key] is an array, and that the last item is an empty object.\n if (Array.isArray(o[key])) {\n o[key].push({});\n }\n else {\n o[key] = [o[key], {}];\n }\n // we want to update the empty object at the end of the o[key] array, so set o to that object\n o = o[key][o[key].length - 1];\n }\n else {\n o = o[key];\n }\n });\n // TODO(bcoe): in the next major version of yargs, switch to\n // Object.create(null) for dot notation:\n const key = sanitizeKey(keys[keys.length - 1]);\n const isTypeArray = checkAllAliases(keys.join('.'), flags.arrays);\n const isValueArray = Array.isArray(value);\n let duplicate = configuration['duplicate-arguments-array'];\n // nargs has higher priority than duplicate\n if (!duplicate && checkAllAliases(key, flags.nargs)) {\n duplicate = true;\n if ((!isUndefined(o[key]) && flags.nargs[key] === 1) || (Array.isArray(o[key]) && o[key].length === flags.nargs[key])) {\n o[key] = undefined;\n }\n }\n if (value === increment()) {\n o[key] = increment(o[key]);\n }\n else if (Array.isArray(o[key])) {\n if (duplicate && isTypeArray && isValueArray) {\n o[key] = configuration['flatten-duplicate-arrays'] ? o[key].concat(value) : (Array.isArray(o[key][0]) ? o[key] : [o[key]]).concat([value]);\n }\n else if (!duplicate && Boolean(isTypeArray) === Boolean(isValueArray)) {\n o[key] = value;\n }\n else {\n o[key] = o[key].concat([value]);\n }\n }\n else if (o[key] === undefined && isTypeArray) {\n o[key] = isValueArray ? value : [value];\n }\n else if (duplicate && !(o[key] === undefined ||\n checkAllAliases(key, flags.counts) ||\n checkAllAliases(key, flags.bools))) {\n o[key] = [o[key], value];\n }\n else {\n o[key] = value;\n }\n }\n // extend the aliases list with inferred aliases.\n function extendAliases(...args) {\n args.forEach(function (obj) {\n Object.keys(obj || {}).forEach(function (key) {\n // short-circuit if we've already added a key\n // to the aliases array, for example it might\n // exist in both 'opts.default' and 'opts.key'.\n if (flags.aliases[key])\n return;\n flags.aliases[key] = [].concat(aliases[key] || []);\n // For \"--option-name\", also set argv.optionName\n flags.aliases[key].concat(key).forEach(function (x) {\n if (/-/.test(x) && configuration['camel-case-expansion']) {\n const c = camelCase(x);\n if (c !== key && flags.aliases[key].indexOf(c) === -1) {\n flags.aliases[key].push(c);\n newAliases[c] = true;\n }\n }\n });\n // For \"--optionName\", also set argv['option-name']\n flags.aliases[key].concat(key).forEach(function (x) {\n if (x.length > 1 && /[A-Z]/.test(x) && configuration['camel-case-expansion']) {\n const c = decamelize(x, '-');\n if (c !== key && flags.aliases[key].indexOf(c) === -1) {\n flags.aliases[key].push(c);\n newAliases[c] = true;\n }\n }\n });\n flags.aliases[key].forEach(function (x) {\n flags.aliases[x] = [key].concat(flags.aliases[key].filter(function (y) {\n return x !== y;\n }));\n });\n });\n });\n }\n function checkAllAliases(key, flag) {\n const toCheck = [].concat(flags.aliases[key] || [], key);\n const keys = Object.keys(flag);\n const setAlias = toCheck.find(key => keys.includes(key));\n return setAlias ? flag[setAlias] : false;\n }\n function hasAnyFlag(key) {\n const flagsKeys = Object.keys(flags);\n const toCheck = [].concat(flagsKeys.map(k => flags[k]));\n return toCheck.some(function (flag) {\n return Array.isArray(flag) ? flag.includes(key) : flag[key];\n });\n }\n function hasFlagsMatching(arg, ...patterns) {\n const toCheck = [].concat(...patterns);\n return toCheck.some(function (pattern) {\n const match = arg.match(pattern);\n return match && hasAnyFlag(match[1]);\n });\n }\n // based on a simplified version of the short flag group parsing logic\n function hasAllShortFlags(arg) {\n // if this is a negative number, or doesn't start with a single hyphen, it's not a short flag group\n if (arg.match(negative) || !arg.match(/^-[^-]+/)) {\n return false;\n }\n let hasAllFlags = true;\n let next;\n const letters = arg.slice(1).split('');\n for (let j = 0; j < letters.length; j++) {\n next = arg.slice(j + 2);\n if (!hasAnyFlag(letters[j])) {\n hasAllFlags = false;\n break;\n }\n if ((letters[j + 1] && letters[j + 1] === '=') ||\n next === '-' ||\n (/[A-Za-z]/.test(letters[j]) && /^-?\\d+(\\.\\d*)?(e-?\\d+)?$/.test(next)) ||\n (letters[j + 1] && letters[j + 1].match(/\\W/))) {\n break;\n }\n }\n return hasAllFlags;\n }\n function isUnknownOptionAsArg(arg) {\n return configuration['unknown-options-as-args'] && isUnknownOption(arg);\n }\n function isUnknownOption(arg) {\n arg = arg.replace(/^-{3,}/, '--');\n // ignore negative numbers\n if (arg.match(negative)) {\n return false;\n }\n // if this is a short option group and all of them are configured, it isn't unknown\n if (hasAllShortFlags(arg)) {\n return false;\n }\n // e.g. '--count=2'\n const flagWithEquals = /^-+([^=]+?)=[\\s\\S]*$/;\n // e.g. '-a' or '--arg'\n const normalFlag = /^-+([^=]+?)$/;\n // e.g. '-a-'\n const flagEndingInHyphen = /^-+([^=]+?)-$/;\n // e.g. '-abc123'\n const flagEndingInDigits = /^-+([^=]+?\\d+)$/;\n // e.g. '-a/usr/local'\n const flagEndingInNonWordCharacters = /^-+([^=]+?)\\W+.*$/;\n // check the different types of flag styles, including negatedBoolean, a pattern defined near the start of the parse method\n return !hasFlagsMatching(arg, flagWithEquals, negatedBoolean, normalFlag, flagEndingInHyphen, flagEndingInDigits, flagEndingInNonWordCharacters);\n }\n // make a best effort to pick a default value\n // for an option based on name and type.\n function defaultValue(key) {\n if (!checkAllAliases(key, flags.bools) &&\n !checkAllAliases(key, flags.counts) &&\n `${key}` in defaults) {\n return defaults[key];\n }\n else {\n return defaultForType(guessType(key));\n }\n }\n // return a default value, given the type of a flag.,\n function defaultForType(type) {\n const def = {\n [DefaultValuesForTypeKey.BOOLEAN]: true,\n [DefaultValuesForTypeKey.STRING]: '',\n [DefaultValuesForTypeKey.NUMBER]: undefined,\n [DefaultValuesForTypeKey.ARRAY]: []\n };\n return def[type];\n }\n // given a flag, enforce a default type.\n function guessType(key) {\n let type = DefaultValuesForTypeKey.BOOLEAN;\n if (checkAllAliases(key, flags.strings))\n type = DefaultValuesForTypeKey.STRING;\n else if (checkAllAliases(key, flags.numbers))\n type = DefaultValuesForTypeKey.NUMBER;\n else if (checkAllAliases(key, flags.bools))\n type = DefaultValuesForTypeKey.BOOLEAN;\n else if (checkAllAliases(key, flags.arrays))\n type = DefaultValuesForTypeKey.ARRAY;\n return type;\n }\n function isUndefined(num) {\n return num === undefined;\n }\n // check user configuration settings for inconsistencies\n function checkConfiguration() {\n // count keys should not be set as array/narg\n Object.keys(flags.counts).find(key => {\n if (checkAllAliases(key, flags.arrays)) {\n error = Error(__('Invalid configuration: %s, opts.count excludes opts.array.', key));\n return true;\n }\n else if (checkAllAliases(key, flags.nargs)) {\n error = Error(__('Invalid configuration: %s, opts.count excludes opts.narg.', key));\n return true;\n }\n return false;\n });\n }\n return {\n aliases: Object.assign({}, flags.aliases),\n argv: Object.assign(argvReturn, argv),\n configuration: configuration,\n defaulted: Object.assign({}, defaulted),\n error: error,\n newAliases: Object.assign({}, newAliases)\n };\n }\n}\n// if any aliases reference each other, we should\n// merge them together.\nfunction combineAliases(aliases) {\n const aliasArrays = [];\n const combined = Object.create(null);\n let change = true;\n // turn alias lookup hash {key: ['alias1', 'alias2']} into\n // a simple array ['key', 'alias1', 'alias2']\n Object.keys(aliases).forEach(function (key) {\n aliasArrays.push([].concat(aliases[key], key));\n });\n // combine arrays until zero changes are\n // made in an iteration.\n while (change) {\n change = false;\n for (let i = 0; i < aliasArrays.length; i++) {\n for (let ii = i + 1; ii < aliasArrays.length; ii++) {\n const intersect = aliasArrays[i].filter(function (v) {\n return aliasArrays[ii].indexOf(v) !== -1;\n });\n if (intersect.length) {\n aliasArrays[i] = aliasArrays[i].concat(aliasArrays[ii]);\n aliasArrays.splice(ii, 1);\n change = true;\n break;\n }\n }\n }\n }\n // map arrays back to the hash-lookup (de-dupe while\n // we're at it).\n aliasArrays.forEach(function (aliasArray) {\n aliasArray = aliasArray.filter(function (v, i, self) {\n return self.indexOf(v) === i;\n });\n const lastAlias = aliasArray.pop();\n if (lastAlias !== undefined && typeof lastAlias === 'string') {\n combined[lastAlias] = aliasArray;\n }\n });\n return combined;\n}\n// this function should only be called when a count is given as an arg\n// it is NOT called to set a default value\n// thus we can start the count at 1 instead of 0\nfunction increment(orig) {\n return orig !== undefined ? orig + 1 : 1;\n}\n// TODO(bcoe): in the next major version of yargs, switch to\n// Object.create(null) for dot notation:\nfunction sanitizeKey(key) {\n if (key === '__proto__')\n return '___proto___';\n return key;\n}\nfunction stripQuotes(val) {\n return (typeof val === 'string' &&\n (val[0] === \"'\" || val[0] === '\"') &&\n val[val.length - 1] === val[0])\n ? val.substring(1, val.length - 1)\n : val;\n}\n", "import _yargs from 'yargs-parser'\nexport default _yargs\n"],
5
+ "mappings": "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",
6
+ "names": ["DefaultValuesForTypeKey", "key", "args", "value", "val", "argv", "env", "aliases", "defaults", "yargsParser", "require"]
7
+ }
@@ -174,7 +174,7 @@ import_node_module.default._resolveFilename = function(request, parent, ...args)
174
174
  const result = _oldResolveFilename.call(this, tsrequest, parent, ...args);
175
175
  logMessage(CJS, `Resolution for "${request}" intercepted as "${tsrequest}`);
176
176
  return result;
177
- } catch (discard) {
177
+ } catch {
178
178
  throw error;
179
179
  }
180
180
  }
@@ -183,3 +183,4 @@ import_node_module.default._resolveFilename = function(request, parent, ...args)
183
183
  };
184
184
  import_node_module.default._extensions[".ts"] = import_node_module.default._extensions[".cts"] = loader;
185
185
  logMessage(CJS, "TypeScript loader for CommonJS loaded");
186
+ //# sourceMappingURL=loader-commonjs.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/loader-commonjs.cts", "../src/loader-shared.ts"],
4
+ "sourcesContent": ["// NodeJS dependencies\nimport _module from 'node:module'\nimport _path from 'node:path'\n\nimport {\n CJS,\n ESM,\n esbTranpile,\n logMessage,\n moduleType,\n throwError,\n} from './loader-shared'\n\n/* ========================================================================== *\n * CJS VERSION *\n * ========================================================================== */\n\n/** The extension handler type, loading CJS modules */\ntype ExtensionHandler = (module: NodeJS.Module, filename: string) => void\n\n/* Add the `_compile(...)` method to NodeJS' `Module` interface */\ndeclare global {\n // eslint-disable-next-line @typescript-eslint/no-namespace\n namespace NodeJS {\n interface Module {\n _compile: (contents: string, filename: string) => void\n }\n }\n}\n\n/**\n * Add the `_extensions[...]` and `resolveFilename(...)` members to the\n * definition of `node:module`.\n */\ndeclare module 'node:module' {\n const _extensions: Record<`.${string}`, ExtensionHandler>\n function _resolveFilename(\n request: string,\n parent: _module | undefined,\n isMain: boolean,\n options?: any,\n ): string\n}\n\n/* ========================================================================== */\n\nconst _type = moduleType(CJS)\n\nconst loader: ExtensionHandler = (module, filename): void => {\n logMessage(CJS, `Attempting to load \"${filename}\"`)\n\n /* Figure our the extension (\".ts\" or \".cts\")... */\n const ext = _path.extname(filename)\n\n /* If the file is a \".ts\", we need to figure out the default type */\n if (ext === '.ts') {\n /* If the _default_ module type is CJS then load as such! */\n if (_type === ESM) {\n throwError(CJS, `Must use import to load ES Module: ${filename}`, { code: 'ERR_REQUIRE_ESM' })\n }\n } else if (ext !== '.cts') {\n throwError(CJS, `Unsupported filename \"${filename}\"`)\n }\n\n const source = esbTranpile(filename, CJS)\n\n /* Let node do its thing, but wrap any error it throws */\n try {\n module._compile(source, filename)\n } catch (cause) {\n console.error(`Error compiling module \"${filename}\"`, cause)\n }\n}\n\n/**\n * Replace _module._resolveFilename with our own.\n *\n * This is a _HACK BEYOND REDEMPTION_ and I'm ashamed of even _thinking_ about\n * it, but, well, it makes things work.\n *\n * TypeScript allows us to import \"./foo.js\", and internally resolves this to\n * \"./foo.ts\" (yeah, nice, right?) and while we normally wouldn't want to deal\n * with this kind of stuff, the \"node16\" module resolution mode _forces_ us to\n * use this syntax.\n *\n * And we _need_ the \"node16\" module resolution to properly consume \"export\n * conditions\" from other packages. Since ESBuild's plugins only work in async\n * mode, changing those import statements on the fly is out of the question, so\n * we need to hack our way into Node's own resolver.\n *\n * See my post: https://twitter.com/ianosh/status/1559484168685379590\n * ESBuild related fix: https://github.com/evanw/esbuild/commit/0cdc005e3d1c765a084f206741bc4bff78e30ec4\n */\nconst _oldResolveFilename = _module._resolveFilename\n_module._resolveFilename = function(\n request: string,\n parent: _module | undefined,\n ...args: [ isMain: boolean, options: any ]\n): any {\n try {\n /* First call the old _resolveFilename to see what Node thinks */\n return _oldResolveFilename.call(this, request, parent, ...args)\n } catch (error: any) {\n /* If the error was anything but \"MODULE_NOT_FOUND\" bail out */\n if (error.code !== 'MODULE_NOT_FOUND') throw error\n\n /* Check if the \"request\" ends with \".js\", \".mjs\" or \".cjs\" */\n const match = request.match(/(.*)(\\.[mc]?js$)/)\n\n /*\n * If the file matches our extension, _and_ we have a parent, we simply\n * try with a new extension (e.g. \".js\" becomes \".ts\")...\n */\n if (parent && match) {\n const [ , name, ext ] = match\n const tsrequest = name + ext!.replace('js', 'ts')\n try {\n const result = _oldResolveFilename.call(this, tsrequest, parent, ...args)\n logMessage(CJS, `Resolution for \"${request}\" intercepted as \"${tsrequest}`)\n return result\n } catch {\n throw error // throw the _original_ error in this case\n }\n }\n\n /* We have no parent, or we don't match our extension, throw! */\n throw error\n }\n}\n\n/* ========================================================================== */\n\n/* Remember to load our loader for .TS/.CTS as CommonJS modules */\n_module._extensions['.ts'] = _module._extensions['.cts'] = loader\nlogMessage(CJS, 'TypeScript loader for CommonJS loaded')\n", "/* eslint-disable @typescript-eslint/no-unsafe-function-type */\n/* ========================================================================== *\n * HACK BEYOND REDEMPTION: TRANSPILE .ts FILES (the esm loader) *\n * -------------------------------------------------------------------------- *\n * Use ESBuild to quickly transpile TypeScript files into JavaScript. *\n * *\n * The plan as it stands is as follows: *\n * - `.mts` files always get transpiled to ESM modules *\n * - `.cts` files always get transpiled to CJS modules *\n * - `.ts` files are treanspiled according to what's in `package.json` *\n * *\n * Additionally, when transpiling to ESM modules, we can't rely on the magic *\n * that Node's `require(...)` call uses to figure out which file to import. *\n * We need to _actually verify_ on disk what's the correct file to import. *\n * *\n * This is a single module, only available as ESM, and it will _both_ behave *\n * as a NodeJS' loader, _and_ inject the CJS extension handlers (hack) found *\n * in the `_extensions` of `node:module` (same as `require.extensions`). *\n * ========================================================================== */\n\n// NodeJS dependencies\nimport _fs from 'node:fs'\nimport _path from 'node:path'\nimport _util from 'node:util'\n\n// ESBuild is the only external dependency\nimport _esbuild from 'esbuild'\n\n/* ========================================================================== *\n * CONSTANTS AND TYPES *\n * ========================================================================== */\n\n/** Supported types from `package.json` */\nexport type Type = 'commonjs' | 'module'\n/** Constant identifying a `commonjs` module */\nexport const CJS = 'commonjs' as const\n/** Constant identifying an ESM `module` */\nexport const ESM = 'module' as const\n\n/* ========================================================================== *\n * DEBUGGING AND ERRORS *\n * ========================================================================== */\n\n/** Setup debugging */\nconst _debugLog = _util.debuglog('plug:ts-loader')\nconst _debug = _debugLog.enabled\n\n/** Emit some logs if `DEBUG_TS_LOADER` is set to `true` */\nexport function logMessage(mode: Type, arg: string, ...args: any []): void {\n if (! _debug) return\n\n const t = mode === ESM ? 'esm' : mode === CJS ? 'cjs' : '---'\n _debugLog(`[${t}] ${arg}`, ...args)\n}\n\n/** Fail miserably */\nexport function throwError(\n mode: Type,\n message: string,\n options: { start?: Function, code?: string, cause?: any } = {},\n): never {\n const t = mode === ESM ? 'esm' : mode === CJS ? 'cjs' : '---'\n const prefix = `[ts-loader|${t}|pid=${process.pid}]`\n\n const { start = throwError, ...extra } = options\n const error = new Error(`${prefix} ${message}`)\n Error.captureStackTrace(error, start)\n Object.assign(error, extra)\n\n throw error\n}\n\n/* ========================================================================== *\n * MODULE TYPES AND FORCING TYPE *\n * ========================================================================== */\n\n/**\n * Determine the current module type to transpile .TS files as looking at the\n * `__TS_LOADER_FORCE_TYPE` environment variable (used by PlugJS and CLI) or,\n * if unspecified, looking at the `type` field in the `package.json` file.\n */\nexport function moduleType(mode: Type): Type {\n if (process.env.__TS_LOADER_FORCE_TYPE) {\n const type = process.env.__TS_LOADER_FORCE_TYPE\n if ((type === CJS) || (type === ESM)) {\n logMessage(mode, `Forcing type to \"${type}\" from environment`)\n return type\n } else {\n throwError(mode, `Invalid type \"${process.env.__TS_LOADER_FORCE_TYPE}\"`)\n }\n }\n\n const _findType = (directory: string): Type => {\n const packageFile = _path.join(directory, 'package.json')\n try {\n const packageData = _fs.readFileSync(packageFile, 'utf-8')\n const packageJson = JSON.parse(packageData)\n const packageType = packageJson.type\n switch (packageType) {\n case undefined:\n logMessage(mode, `File \"${packageFile}\" does not declare a default type`)\n return CJS\n\n case CJS:\n case ESM:\n logMessage(mode, `File \"${packageFile}\" declares type as \"${CJS}\"`)\n return packageType\n\n default:\n logMessage(mode, `File \"${packageFile}\" specifies unknown type \"${packageType}\"`)\n return CJS\n }\n } catch (cause: any) {\n if ((cause.code !== 'ENOENT') && (cause.code !== 'EISDIR')) {\n throwError(mode, `Unable to read or parse \"${packageFile}\"`, { cause, start: _findType })\n }\n }\n\n const parent = _path.dirname(directory)\n if (directory !== parent) return _findType(directory)\n\n logMessage(mode, `Type defaulted to \"${CJS}\"`)\n return CJS\n }\n\n return _findType(process.cwd())\n}\n\n/* ========================================================================== *\n * ESBUILD HELPERS *\n * ========================================================================== */\n\n/**\n * Take an ESBuild `BuildResult` or `BuildFailure` (they both have arrays\n * of `Message` in both `warnings` and `errors`), format them and print them\n * out nicely. Then fail if any error was detected.\n */\nfunction _esbReport(\n kind: 'error' | 'warning',\n messages: _esbuild.Message[] = [],\n): void {\n const output = process.stderr\n const options = { color: !!output.isTTY, terminalWidth: output.columns || 80 }\n\n const array = _esbuild.formatMessagesSync(messages, { kind, ...options })\n array.forEach((message) => output.write(`${message}\\n`))\n}\n\n/**\n * Transpile with ESBuild\n */\nexport function esbTranpile(filename: string, type: Type): string {\n logMessage(type, `Transpiling \"${filename}\" as \"${type}\"`)\n\n const [ format, __fileurl ] = type === ESM ?\n [ 'esm', 'import.meta.url' ] as const :\n [ 'cjs', '__filename' ] as const\n\n /* ESbuild options */\n const options: _esbuild.TransformOptions = {\n sourcefile: filename, // the original filename we're parsing\n format, // what are we actually transpiling to???\n loader: 'ts', // the format is always \"typescript\"\n sourcemap: 'inline', // always inline source maps\n sourcesContent: false, // do not include sources content in sourcemap\n platform: 'node', // d'oh! :-)\n minifyWhitespace: true, // https://github.com/evanw/esbuild/releases/tag/v0.16.14\n logLevel: 'silent', // catching those in our _esbReport below\n target: `node${process.versions['node']}`, // target _this_ version\n define: { __fileurl }, // from \"globals.d.ts\"\n }\n\n /* Emit a line on the console when loading in debug mode */\n if (_debug) {\n if (format === 'esm') {\n options.banner = `;(await import('node:util')).debuglog('plug:ts-loader')('[esm] Loaded \"%s\"', ${__fileurl});`\n } else if (format === 'cjs') {\n options.banner = `;require('node:util').debuglog('plug:ts-loader')('[cjs] Loaded \"%s\"', ${__fileurl});`\n }\n }\n\n /* Transpile our TypeScript file into some JavaScript stuff */\n let result\n try {\n const source = _fs.readFileSync(filename, 'utf-8')\n result = _esbuild.transformSync(source, options)\n } catch (cause: any) {\n _esbReport('error', (cause as _esbuild.TransformFailure).errors)\n _esbReport('warning', (cause as _esbuild.TransformFailure).warnings)\n throwError(type, `ESBuild error transpiling \"${filename}\"`, { cause, start: esbTranpile })\n }\n\n /* Log transpile warnings if debugging */\n if (_debug) _esbReport('warning', result.warnings)\n\n /* Done! */\n return result.code\n}\n\n\n/* ========================================================================== *\n * UTILITIES *\n * ========================================================================== */\n\n/* Returns a boolean indicating whether the specified file exists or not */\nexport function isFile(path: string): boolean {\n try {\n return _fs.statSync(path).isFile()\n } catch {\n return false\n }\n}\n\n/* Returns a boolean indicating whether the specified directory exists or not */\nexport function isDirectory(path: string): boolean {\n try {\n return _fs.statSync(path).isDirectory()\n } catch {\n return false\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["import_node_path", "_util", "_path", "_fs", "_esbuild", "module", "_path", "_module"]
7
+ }
@@ -119,14 +119,14 @@ function esbTranpile(filename, type) {
119
119
  function isFile(path) {
120
120
  try {
121
121
  return _fs.statSync(path).isFile();
122
- } catch (error) {
122
+ } catch {
123
123
  return false;
124
124
  }
125
125
  }
126
126
  function isDirectory(path) {
127
127
  try {
128
128
  return _fs.statSync(path).isDirectory();
129
- } catch (error) {
129
+ } catch {
130
130
  return false;
131
131
  }
132
132
  }
@@ -201,3 +201,4 @@ export {
201
201
  load,
202
202
  resolve
203
203
  };
204
+ //# sourceMappingURL=loader-module.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/loader-module.mts", "../src/loader-shared.ts"],
4
+ "sourcesContent": ["import _path from 'node:path'\nimport _url from 'node:url'\n\nimport {\n CJS,\n ESM,\n esbTranpile,\n isDirectory,\n isFile,\n logMessage,\n moduleType,\n} from './loader-shared'\n\n/* ========================================================================== *\n * ESM VERSION *\n * ========================================================================== */\n\n/** The formats that can be handled by NodeJS' loader */\ntype Format = 'builtin' | 'commonjs' | 'json' | 'module' | 'wasm'\n\n/* ========================================================================== */\n\n/** The type identifying a NodeJS' loader `resolve` hook. */\ntype ResolveHook = (\n /** Whatever was requested to be imported (module, relative file, ...). */\n specifier: string,\n /** Context information around this `resolve` hook call. */\n context: ResolveContext,\n /** The subsequent resolve hook in the chain, or the Node.js default one. */\n nextResolve: ResolveNext,\n) => ResolveResult | Promise<ResolveResult>\n\n/** Context information around a `resolve` hook call. */\ninterface ResolveContext {\n importAssertions: object\n /** Export conditions of the relevant `package.json`. */\n conditions: string[]\n /** The module importing this one, or undefined if this is the entry point. */\n parentURL?: string | undefined\n}\n\n/** The subsequent resolve hook in the chain, or the Node.js default one. */\ntype ResolveNext = (specifier: string, context: ResolveContext) => ResolveResult | Promise<ResolveResult>\n\n/** A type describing the required results from a `resolve` hook */\ninterface ResolveResult {\n /** The absolute URL to which this input resolves. */\n url: string\n /** A format hint to the `load` hook (it might be ignored). */\n format?: Format | null | undefined\n /** A signal that this hook intends to terminate the chain of resolve hooks. */\n shortCircuit?: boolean | undefined\n}\n\n/* ========================================================================== */\n\n/** The type identifying a NodeJS' loader `load` hook. */\ntype LoadHook = (\n /** The URL returned by the resolve chain. */\n url: string,\n /** Context information around this `load` hook call. */\n context: LoadContext,\n /** The subsequent load hook in the chain, or the Node.js default one. */\n nextLoad: LoadNext,\n) => LoadResult | Promise<LoadResult>\n\n/** Context information around a `load` hook call. */\ninterface LoadContext {\n importAssertions: object\n /** Export conditions of the relevant `package.json` */\n conditions: string[]\n /** The format hint from the `resolve` hook. */\n format?: ResolveResult['format']\n}\n\n/** The subsequent load hook in the chain, or the Node.js default one. */\ntype LoadNext = (url: string, context: LoadContext) => LoadResult | Promise<LoadResult>\n\n/** A type describing the required results from a `resolve` hook */\ntype LoadResult = {\n /** The format of the code being loaded. */\n format: Format\n /** A signal that this hook intends to terminate the chain of load hooks. */\n shortCircuit?: boolean | undefined\n} & ({\n format: 'builtin' | 'commonjs'\n /** When the source is `builtin` or `commonjs` no source must be returned */\n source?: never | undefined\n} | {\n format: 'json' | 'module'\n /** When the source is `json` or `module` the source can include strings */\n source: string | ArrayBuffer | NodeJS.TypedArray\n} | {\n format: 'wasm'\n /** When the source is `wasm` the source must not be a string */\n source: ArrayBuffer | NodeJS.TypedArray\n})\n\n/* ========================================================================== */\n\nconst _type = moduleType(CJS)\n\n/**\n * Our main `resolve` hook: here we need to check for a couple of options\n * when importing \"\"\n */\nexport const resolve: ResolveHook = (specifier, context, nextResolve): ResolveResult | Promise<ResolveResult> => {\n logMessage(ESM, `Resolving \"${specifier}\" from \"${context.parentURL}\"`)\n\n /* We only resolve relative paths (\"./xxx\" or \"../xxx\") */\n if (! specifier.match(/^\\.\\.?\\//)) return nextResolve(specifier, context)\n\n /* We only resolve if we _do_ have a parent URL and it's a file */\n const parentURL = context.parentURL\n if (! parentURL) return nextResolve(specifier, context)\n if (! parentURL.startsWith('file:')) return nextResolve(specifier, context)\n\n /* We only resolve here if the importer is a \".ts\" or \".mts\" file */\n if (! parentURL.match(/\\.m?ts$/)) return nextResolve(specifier, context)\n\n /* The resolved URL is the specifier resolved against the parent */\n const url = new URL(specifier, parentURL).href\n const path = _url.fileURLToPath(url)\n\n /*\n * Here we are sure that:\n *\n * 1) we are resolving a local path (not a module)\n * 2) the importer is a file, ending with \".ts\" or \".mts\"\n *\n * Now we can check if \"import 'foo'\" resolves to:\n *\n * 1) directly to a file, e.g. \"import './foo.js'\" or \"import './foo.mts'\"\n * 2) import a \"pseudo-JS file\", e.g. \"import './foo.js'\" becomes \"import './foo.ts'\"\n * 3) imports a file without extension as if it were \"import './foo.ts'\"\n * 4) imports a directory as in \"import './foo/index.ts'\"\n *\n * We resolve the _final_ specifier that will be passed to the next resolver\n * for further potential resolution accordingly.\n *\n * We start with the easiest case: is this a real file on the disk?\n */\n if (isFile(path)) {\n logMessage(ESM, `Positive match for \"${specifier}\" as \"${path}\" (1)`)\n return nextResolve(specifier, context) // straight on\n }\n\n /*\n * TypeScript allows us to import \"./foo.js\", and internally resolves this to\n * \"./foo.ts\" (yeah, nice, right?) and while we normally wouldn't want to deal\n * with this kind of stuff, the \"node16\" module resolution mode _forces_ us to\n * use this syntax.\n */\n const match = specifier.match(/(.*)(\\.[mc]?js$)/)\n if (match) {\n const [ , base, ext ] = match\n const tsspecifier = base + ext!.replace('js', 'ts')\n const tsurl = new URL(tsspecifier, parentURL).href\n const tspath = _url.fileURLToPath(tsurl)\n\n if (isFile(tspath)) {\n logMessage(ESM, `Positive match for \"${specifier}\" as \"${tspath}\" (2)`)\n return nextResolve(tsspecifier, context) // straight on\n }\n }\n\n /* Check if the import is actually a file with a \".ts\" extension */\n if (isFile(`${path}.ts`)) {\n logMessage(ESM, `Positive match for \"${specifier}.ts\" as \"${path}.ts\" (3)`)\n return nextResolve(`${specifier}.ts`, context)\n }\n\n /* If the file is a directory, then see if we have an \"index.ts\" in there */\n if (isDirectory(path)) {\n const file = _path.resolve(path, 'index.ts') // resolve, as path is absolute\n if (isFile(file)) {\n logMessage(ESM, `Positive match for \"${specifier}\" as \"${file}\" (4)`)\n const spec = _url.pathToFileURL(file).pathname\n return nextResolve(spec, context)\n }\n }\n\n /* There's really nothing else we can do */\n return nextResolve(specifier, context)\n}\n\n/** Our main `load` hook */\nexport const load: LoadHook = (url, context, nextLoad): LoadResult | Promise<LoadResult> => {\n logMessage(ESM, `Attempting to load \"${url}\"`)\n\n /* We only load from disk, so ignore everything else */\n if (! url.startsWith('file:')) return nextLoad(url, context)\n\n /* Figure our the extension (especially \".ts\", \".mts\" or \".cts\")... */\n const ext = url.match(/\\.[cm]?ts$/)?.[0]\n\n /* Quick and easy bail-outs for non-TS or \".cts\" (always `commonjs`) */\n if (! ext) return nextLoad(url, context)\n\n if (ext === '.cts') {\n logMessage(ESM, `Switching type from \"module\" to \"commonjs\" for \"${url}\"`)\n logMessage(ESM, 'Please note that named import WILL NOT WORK in this case, as Node.js performs a')\n logMessage(ESM, 'static analisys on the CommonJS source code, and this file is transpiled from.')\n logMessage(ESM, 'TypeScript to CommonJS dynamically.')\n return { format: CJS, shortCircuit: true }\n }\n\n /* Convert the url into a file name, any error gets ignored */\n const filename = _url.fileURLToPath(url)\n\n /* If the file is a \".ts\", we need to figure out the default type */\n if (ext === '.ts') {\n if (_type === CJS) {\n logMessage(ESM, `Switching type from \"module\" to \"commonjs\" for \"${url}\"`)\n logMessage(ESM, 'Please note that named import WILL NOT WORK in this case, as Node.js performs a')\n logMessage(ESM, 'static analisys on the CommonJS source code, and this file is transpiled from.')\n logMessage(ESM, 'TypeScript to CommonJS dynamically.')\n return { format: CJS, shortCircuit: true }\n }\n }\n\n /* Transpile with ESBuild and return our source code */\n const source = esbTranpile(filename, ESM)\n return { source, format: ESM, shortCircuit: true }\n}\n\n/* ========================================================================== */\n\n/* Simply output the fact that we were loaded */\nlogMessage(ESM, 'TypeScript loader for ES Modules loaded')\n", "/* eslint-disable @typescript-eslint/no-unsafe-function-type */\n/* ========================================================================== *\n * HACK BEYOND REDEMPTION: TRANSPILE .ts FILES (the esm loader) *\n * -------------------------------------------------------------------------- *\n * Use ESBuild to quickly transpile TypeScript files into JavaScript. *\n * *\n * The plan as it stands is as follows: *\n * - `.mts` files always get transpiled to ESM modules *\n * - `.cts` files always get transpiled to CJS modules *\n * - `.ts` files are treanspiled according to what's in `package.json` *\n * *\n * Additionally, when transpiling to ESM modules, we can't rely on the magic *\n * that Node's `require(...)` call uses to figure out which file to import. *\n * We need to _actually verify_ on disk what's the correct file to import. *\n * *\n * This is a single module, only available as ESM, and it will _both_ behave *\n * as a NodeJS' loader, _and_ inject the CJS extension handlers (hack) found *\n * in the `_extensions` of `node:module` (same as `require.extensions`). *\n * ========================================================================== */\n\n// NodeJS dependencies\nimport _fs from 'node:fs'\nimport _path from 'node:path'\nimport _util from 'node:util'\n\n// ESBuild is the only external dependency\nimport _esbuild from 'esbuild'\n\n/* ========================================================================== *\n * CONSTANTS AND TYPES *\n * ========================================================================== */\n\n/** Supported types from `package.json` */\nexport type Type = 'commonjs' | 'module'\n/** Constant identifying a `commonjs` module */\nexport const CJS = 'commonjs' as const\n/** Constant identifying an ESM `module` */\nexport const ESM = 'module' as const\n\n/* ========================================================================== *\n * DEBUGGING AND ERRORS *\n * ========================================================================== */\n\n/** Setup debugging */\nconst _debugLog = _util.debuglog('plug:ts-loader')\nconst _debug = _debugLog.enabled\n\n/** Emit some logs if `DEBUG_TS_LOADER` is set to `true` */\nexport function logMessage(mode: Type, arg: string, ...args: any []): void {\n if (! _debug) return\n\n const t = mode === ESM ? 'esm' : mode === CJS ? 'cjs' : '---'\n _debugLog(`[${t}] ${arg}`, ...args)\n}\n\n/** Fail miserably */\nexport function throwError(\n mode: Type,\n message: string,\n options: { start?: Function, code?: string, cause?: any } = {},\n): never {\n const t = mode === ESM ? 'esm' : mode === CJS ? 'cjs' : '---'\n const prefix = `[ts-loader|${t}|pid=${process.pid}]`\n\n const { start = throwError, ...extra } = options\n const error = new Error(`${prefix} ${message}`)\n Error.captureStackTrace(error, start)\n Object.assign(error, extra)\n\n throw error\n}\n\n/* ========================================================================== *\n * MODULE TYPES AND FORCING TYPE *\n * ========================================================================== */\n\n/**\n * Determine the current module type to transpile .TS files as looking at the\n * `__TS_LOADER_FORCE_TYPE` environment variable (used by PlugJS and CLI) or,\n * if unspecified, looking at the `type` field in the `package.json` file.\n */\nexport function moduleType(mode: Type): Type {\n if (process.env.__TS_LOADER_FORCE_TYPE) {\n const type = process.env.__TS_LOADER_FORCE_TYPE\n if ((type === CJS) || (type === ESM)) {\n logMessage(mode, `Forcing type to \"${type}\" from environment`)\n return type\n } else {\n throwError(mode, `Invalid type \"${process.env.__TS_LOADER_FORCE_TYPE}\"`)\n }\n }\n\n const _findType = (directory: string): Type => {\n const packageFile = _path.join(directory, 'package.json')\n try {\n const packageData = _fs.readFileSync(packageFile, 'utf-8')\n const packageJson = JSON.parse(packageData)\n const packageType = packageJson.type\n switch (packageType) {\n case undefined:\n logMessage(mode, `File \"${packageFile}\" does not declare a default type`)\n return CJS\n\n case CJS:\n case ESM:\n logMessage(mode, `File \"${packageFile}\" declares type as \"${CJS}\"`)\n return packageType\n\n default:\n logMessage(mode, `File \"${packageFile}\" specifies unknown type \"${packageType}\"`)\n return CJS\n }\n } catch (cause: any) {\n if ((cause.code !== 'ENOENT') && (cause.code !== 'EISDIR')) {\n throwError(mode, `Unable to read or parse \"${packageFile}\"`, { cause, start: _findType })\n }\n }\n\n const parent = _path.dirname(directory)\n if (directory !== parent) return _findType(directory)\n\n logMessage(mode, `Type defaulted to \"${CJS}\"`)\n return CJS\n }\n\n return _findType(process.cwd())\n}\n\n/* ========================================================================== *\n * ESBUILD HELPERS *\n * ========================================================================== */\n\n/**\n * Take an ESBuild `BuildResult` or `BuildFailure` (they both have arrays\n * of `Message` in both `warnings` and `errors`), format them and print them\n * out nicely. Then fail if any error was detected.\n */\nfunction _esbReport(\n kind: 'error' | 'warning',\n messages: _esbuild.Message[] = [],\n): void {\n const output = process.stderr\n const options = { color: !!output.isTTY, terminalWidth: output.columns || 80 }\n\n const array = _esbuild.formatMessagesSync(messages, { kind, ...options })\n array.forEach((message) => output.write(`${message}\\n`))\n}\n\n/**\n * Transpile with ESBuild\n */\nexport function esbTranpile(filename: string, type: Type): string {\n logMessage(type, `Transpiling \"${filename}\" as \"${type}\"`)\n\n const [ format, __fileurl ] = type === ESM ?\n [ 'esm', 'import.meta.url' ] as const :\n [ 'cjs', '__filename' ] as const\n\n /* ESbuild options */\n const options: _esbuild.TransformOptions = {\n sourcefile: filename, // the original filename we're parsing\n format, // what are we actually transpiling to???\n loader: 'ts', // the format is always \"typescript\"\n sourcemap: 'inline', // always inline source maps\n sourcesContent: false, // do not include sources content in sourcemap\n platform: 'node', // d'oh! :-)\n minifyWhitespace: true, // https://github.com/evanw/esbuild/releases/tag/v0.16.14\n logLevel: 'silent', // catching those in our _esbReport below\n target: `node${process.versions['node']}`, // target _this_ version\n define: { __fileurl }, // from \"globals.d.ts\"\n }\n\n /* Emit a line on the console when loading in debug mode */\n if (_debug) {\n if (format === 'esm') {\n options.banner = `;(await import('node:util')).debuglog('plug:ts-loader')('[esm] Loaded \"%s\"', ${__fileurl});`\n } else if (format === 'cjs') {\n options.banner = `;require('node:util').debuglog('plug:ts-loader')('[cjs] Loaded \"%s\"', ${__fileurl});`\n }\n }\n\n /* Transpile our TypeScript file into some JavaScript stuff */\n let result\n try {\n const source = _fs.readFileSync(filename, 'utf-8')\n result = _esbuild.transformSync(source, options)\n } catch (cause: any) {\n _esbReport('error', (cause as _esbuild.TransformFailure).errors)\n _esbReport('warning', (cause as _esbuild.TransformFailure).warnings)\n throwError(type, `ESBuild error transpiling \"${filename}\"`, { cause, start: esbTranpile })\n }\n\n /* Log transpile warnings if debugging */\n if (_debug) _esbReport('warning', result.warnings)\n\n /* Done! */\n return result.code\n}\n\n\n/* ========================================================================== *\n * UTILITIES *\n * ========================================================================== */\n\n/* Returns a boolean indicating whether the specified file exists or not */\nexport function isFile(path: string): boolean {\n try {\n return _fs.statSync(path).isFile()\n } catch {\n return false\n }\n}\n\n/* Returns a boolean indicating whether the specified directory exists or not */\nexport function isDirectory(path: string): boolean {\n try {\n return _fs.statSync(path).isDirectory()\n } catch {\n return false\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["_path", "_path"]
7
+ }
package/dist/parser.mjs CHANGED
@@ -1035,3 +1035,4 @@ yargs-parser/build/lib/index.js:
1035
1035
  * SPDX-License-Identifier: ISC
1036
1036
  *)
1037
1037
  */
1038
+ //# sourceMappingURL=parser.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../node_modules/yargs-parser/build/lib/index.js", "../node_modules/yargs-parser/build/lib/string-utils.js", "../node_modules/yargs-parser/build/lib/tokenize-arg-string.js", "../node_modules/yargs-parser/build/lib/yargs-parser-types.js", "../node_modules/yargs-parser/build/lib/yargs-parser.js", "../src/parser.mts"],
4
+ "sourcesContent": ["/**\n * @fileoverview Main entrypoint for libraries using yargs-parser in Node.js\n * CJS and ESM environments.\n *\n * @license\n * Copyright (c) 2016, Contributors\n * SPDX-License-Identifier: ISC\n */\nvar _a, _b, _c;\nimport { format } from 'util';\nimport { normalize, resolve } from 'path';\nimport { camelCase, decamelize, looksLikeNumber } from './string-utils.js';\nimport { YargsParser } from './yargs-parser.js';\nimport { readFileSync } from 'fs';\n// See https://github.com/yargs/yargs-parser#supported-nodejs-versions for our\n// version support policy. The YARGS_MIN_NODE_VERSION is used for testing only.\nconst minNodeVersion = (process && process.env && process.env.YARGS_MIN_NODE_VERSION)\n ? Number(process.env.YARGS_MIN_NODE_VERSION)\n : 12;\nconst nodeVersion = (_b = (_a = process === null || process === void 0 ? void 0 : process.versions) === null || _a === void 0 ? void 0 : _a.node) !== null && _b !== void 0 ? _b : (_c = process === null || process === void 0 ? void 0 : process.version) === null || _c === void 0 ? void 0 : _c.slice(1);\nif (nodeVersion) {\n const major = Number(nodeVersion.match(/^([^.]+)/)[1]);\n if (major < minNodeVersion) {\n throw Error(`yargs parser supports a minimum Node.js version of ${minNodeVersion}. Read our version support policy: https://github.com/yargs/yargs-parser#supported-nodejs-versions`);\n }\n}\n// Creates a yargs-parser instance using Node.js standard libraries:\nconst env = process ? process.env : {};\nconst parser = new YargsParser({\n cwd: process.cwd,\n env: () => {\n return env;\n },\n format,\n normalize,\n resolve,\n // TODO: figure out a way to combine ESM and CJS coverage, such that\n // we can exercise all the lines below:\n require: (path) => {\n if (typeof require !== 'undefined') {\n return require(path);\n }\n else if (path.match(/\\.json$/)) {\n // Addresses: https://github.com/yargs/yargs/issues/2040\n return JSON.parse(readFileSync(path, 'utf8'));\n }\n else {\n throw Error('only .json config files are supported in ESM');\n }\n }\n});\nconst yargsParser = function Parser(args, opts) {\n const result = parser.parse(args.slice(), opts);\n return result.argv;\n};\nyargsParser.detailed = function (args, opts) {\n return parser.parse(args.slice(), opts);\n};\nyargsParser.camelCase = camelCase;\nyargsParser.decamelize = decamelize;\nyargsParser.looksLikeNumber = looksLikeNumber;\nexport default yargsParser;\n", "/**\n * @license\n * Copyright (c) 2016, Contributors\n * SPDX-License-Identifier: ISC\n */\nexport function camelCase(str) {\n // Handle the case where an argument is provided as camel case, e.g., fooBar.\n // by ensuring that the string isn't already mixed case:\n const isCamelCase = str !== str.toLowerCase() && str !== str.toUpperCase();\n if (!isCamelCase) {\n str = str.toLowerCase();\n }\n if (str.indexOf('-') === -1 && str.indexOf('_') === -1) {\n return str;\n }\n else {\n let camelcase = '';\n let nextChrUpper = false;\n const leadingHyphens = str.match(/^-+/);\n for (let i = leadingHyphens ? leadingHyphens[0].length : 0; i < str.length; i++) {\n let chr = str.charAt(i);\n if (nextChrUpper) {\n nextChrUpper = false;\n chr = chr.toUpperCase();\n }\n if (i !== 0 && (chr === '-' || chr === '_')) {\n nextChrUpper = true;\n }\n else if (chr !== '-' && chr !== '_') {\n camelcase += chr;\n }\n }\n return camelcase;\n }\n}\nexport function decamelize(str, joinString) {\n const lowercase = str.toLowerCase();\n joinString = joinString || '-';\n let notCamelcase = '';\n for (let i = 0; i < str.length; i++) {\n const chrLower = lowercase.charAt(i);\n const chrString = str.charAt(i);\n if (chrLower !== chrString && i > 0) {\n notCamelcase += `${joinString}${lowercase.charAt(i)}`;\n }\n else {\n notCamelcase += chrString;\n }\n }\n return notCamelcase;\n}\nexport function looksLikeNumber(x) {\n if (x === null || x === undefined)\n return false;\n // if loaded from config, may already be a number.\n if (typeof x === 'number')\n return true;\n // hexadecimal.\n if (/^0x[0-9a-f]+$/i.test(x))\n return true;\n // don't treat 0123 as a number; as it drops the leading '0'.\n if (/^0[^.]/.test(x))\n return false;\n return /^[-]?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(e[-+]?\\d+)?$/.test(x);\n}\n", "/**\n * @license\n * Copyright (c) 2016, Contributors\n * SPDX-License-Identifier: ISC\n */\n// take an un-split argv string and tokenize it.\nexport function tokenizeArgString(argString) {\n if (Array.isArray(argString)) {\n return argString.map(e => typeof e !== 'string' ? e + '' : e);\n }\n argString = argString.trim();\n let i = 0;\n let prevC = null;\n let c = null;\n let opening = null;\n const args = [];\n for (let ii = 0; ii < argString.length; ii++) {\n prevC = c;\n c = argString.charAt(ii);\n // split on spaces unless we're in quotes.\n if (c === ' ' && !opening) {\n if (!(prevC === ' ')) {\n i++;\n }\n continue;\n }\n // don't split the string if we're in matching\n // opening or closing single and double quotes.\n if (c === opening) {\n opening = null;\n }\n else if ((c === \"'\" || c === '\"') && !opening) {\n opening = c;\n }\n if (!args[i])\n args[i] = '';\n args[i] += c;\n }\n return args;\n}\n", "/**\n * @license\n * Copyright (c) 2016, Contributors\n * SPDX-License-Identifier: ISC\n */\nexport var DefaultValuesForTypeKey;\n(function (DefaultValuesForTypeKey) {\n DefaultValuesForTypeKey[\"BOOLEAN\"] = \"boolean\";\n DefaultValuesForTypeKey[\"STRING\"] = \"string\";\n DefaultValuesForTypeKey[\"NUMBER\"] = \"number\";\n DefaultValuesForTypeKey[\"ARRAY\"] = \"array\";\n})(DefaultValuesForTypeKey || (DefaultValuesForTypeKey = {}));\n", "/**\n * @license\n * Copyright (c) 2016, Contributors\n * SPDX-License-Identifier: ISC\n */\nimport { tokenizeArgString } from './tokenize-arg-string.js';\nimport { DefaultValuesForTypeKey } from './yargs-parser-types.js';\nimport { camelCase, decamelize, looksLikeNumber } from './string-utils.js';\nlet mixin;\nexport class YargsParser {\n constructor(_mixin) {\n mixin = _mixin;\n }\n parse(argsInput, options) {\n const opts = Object.assign({\n alias: undefined,\n array: undefined,\n boolean: undefined,\n config: undefined,\n configObjects: undefined,\n configuration: undefined,\n coerce: undefined,\n count: undefined,\n default: undefined,\n envPrefix: undefined,\n narg: undefined,\n normalize: undefined,\n string: undefined,\n number: undefined,\n __: undefined,\n key: undefined\n }, options);\n // allow a string argument to be passed in rather\n // than an argv array.\n const args = tokenizeArgString(argsInput);\n // tokenizeArgString adds extra quotes to args if argsInput is a string\n // only strip those extra quotes in processValue if argsInput is a string\n const inputIsString = typeof argsInput === 'string';\n // aliases might have transitive relationships, normalize this.\n const aliases = combineAliases(Object.assign(Object.create(null), opts.alias));\n const configuration = Object.assign({\n 'boolean-negation': true,\n 'camel-case-expansion': true,\n 'combine-arrays': false,\n 'dot-notation': true,\n 'duplicate-arguments-array': true,\n 'flatten-duplicate-arrays': true,\n 'greedy-arrays': true,\n 'halt-at-non-option': false,\n 'nargs-eats-options': false,\n 'negation-prefix': 'no-',\n 'parse-numbers': true,\n 'parse-positional-numbers': true,\n 'populate--': false,\n 'set-placeholder-key': false,\n 'short-option-groups': true,\n 'strip-aliased': false,\n 'strip-dashed': false,\n 'unknown-options-as-args': false\n }, opts.configuration);\n const defaults = Object.assign(Object.create(null), opts.default);\n const configObjects = opts.configObjects || [];\n const envPrefix = opts.envPrefix;\n const notFlagsOption = configuration['populate--'];\n const notFlagsArgv = notFlagsOption ? '--' : '_';\n const newAliases = Object.create(null);\n const defaulted = Object.create(null);\n // allow a i18n handler to be passed in, default to a fake one (util.format).\n const __ = opts.__ || mixin.format;\n const flags = {\n aliases: Object.create(null),\n arrays: Object.create(null),\n bools: Object.create(null),\n strings: Object.create(null),\n numbers: Object.create(null),\n counts: Object.create(null),\n normalize: Object.create(null),\n configs: Object.create(null),\n nargs: Object.create(null),\n coercions: Object.create(null),\n keys: []\n };\n const negative = /^-([0-9]+(\\.[0-9]+)?|\\.[0-9]+)$/;\n const negatedBoolean = new RegExp('^--' + configuration['negation-prefix'] + '(.+)');\n [].concat(opts.array || []).filter(Boolean).forEach(function (opt) {\n const key = typeof opt === 'object' ? opt.key : opt;\n // assign to flags[bools|strings|numbers]\n const assignment = Object.keys(opt).map(function (key) {\n const arrayFlagKeys = {\n boolean: 'bools',\n string: 'strings',\n number: 'numbers'\n };\n return arrayFlagKeys[key];\n }).filter(Boolean).pop();\n // assign key to be coerced\n if (assignment) {\n flags[assignment][key] = true;\n }\n flags.arrays[key] = true;\n flags.keys.push(key);\n });\n [].concat(opts.boolean || []).filter(Boolean).forEach(function (key) {\n flags.bools[key] = true;\n flags.keys.push(key);\n });\n [].concat(opts.string || []).filter(Boolean).forEach(function (key) {\n flags.strings[key] = true;\n flags.keys.push(key);\n });\n [].concat(opts.number || []).filter(Boolean).forEach(function (key) {\n flags.numbers[key] = true;\n flags.keys.push(key);\n });\n [].concat(opts.count || []).filter(Boolean).forEach(function (key) {\n flags.counts[key] = true;\n flags.keys.push(key);\n });\n [].concat(opts.normalize || []).filter(Boolean).forEach(function (key) {\n flags.normalize[key] = true;\n flags.keys.push(key);\n });\n if (typeof opts.narg === 'object') {\n Object.entries(opts.narg).forEach(([key, value]) => {\n if (typeof value === 'number') {\n flags.nargs[key] = value;\n flags.keys.push(key);\n }\n });\n }\n if (typeof opts.coerce === 'object') {\n Object.entries(opts.coerce).forEach(([key, value]) => {\n if (typeof value === 'function') {\n flags.coercions[key] = value;\n flags.keys.push(key);\n }\n });\n }\n if (typeof opts.config !== 'undefined') {\n if (Array.isArray(opts.config) || typeof opts.config === 'string') {\n ;\n [].concat(opts.config).filter(Boolean).forEach(function (key) {\n flags.configs[key] = true;\n });\n }\n else if (typeof opts.config === 'object') {\n Object.entries(opts.config).forEach(([key, value]) => {\n if (typeof value === 'boolean' || typeof value === 'function') {\n flags.configs[key] = value;\n }\n });\n }\n }\n // create a lookup table that takes into account all\n // combinations of aliases: {f: ['foo'], foo: ['f']}\n extendAliases(opts.key, aliases, opts.default, flags.arrays);\n // apply default values to all aliases.\n Object.keys(defaults).forEach(function (key) {\n (flags.aliases[key] || []).forEach(function (alias) {\n defaults[alias] = defaults[key];\n });\n });\n let error = null;\n checkConfiguration();\n let notFlags = [];\n const argv = Object.assign(Object.create(null), { _: [] });\n // TODO(bcoe): for the first pass at removing object prototype we didn't\n // remove all prototypes from objects returned by this API, we might want\n // to gradually move towards doing so.\n const argvReturn = {};\n for (let i = 0; i < args.length; i++) {\n const arg = args[i];\n const truncatedArg = arg.replace(/^-{3,}/, '---');\n let broken;\n let key;\n let letters;\n let m;\n let next;\n let value;\n // any unknown option (except for end-of-options, \"--\")\n if (arg !== '--' && /^-/.test(arg) && isUnknownOptionAsArg(arg)) {\n pushPositional(arg);\n // ---, ---=, ----, etc,\n }\n else if (truncatedArg.match(/^---+(=|$)/)) {\n // options without key name are invalid.\n pushPositional(arg);\n continue;\n // -- separated by =\n }\n else if (arg.match(/^--.+=/) || (!configuration['short-option-groups'] && arg.match(/^-.+=/))) {\n // Using [\\s\\S] instead of . because js doesn't support the\n // 'dotall' regex modifier. See:\n // http://stackoverflow.com/a/1068308/13216\n m = arg.match(/^--?([^=]+)=([\\s\\S]*)$/);\n // arrays format = '--f=a b c'\n if (m !== null && Array.isArray(m) && m.length >= 3) {\n if (checkAllAliases(m[1], flags.arrays)) {\n i = eatArray(i, m[1], args, m[2]);\n }\n else if (checkAllAliases(m[1], flags.nargs) !== false) {\n // nargs format = '--f=monkey washing cat'\n i = eatNargs(i, m[1], args, m[2]);\n }\n else {\n setArg(m[1], m[2], true);\n }\n }\n }\n else if (arg.match(negatedBoolean) && configuration['boolean-negation']) {\n m = arg.match(negatedBoolean);\n if (m !== null && Array.isArray(m) && m.length >= 2) {\n key = m[1];\n setArg(key, checkAllAliases(key, flags.arrays) ? [false] : false);\n }\n // -- separated by space.\n }\n else if (arg.match(/^--.+/) || (!configuration['short-option-groups'] && arg.match(/^-[^-]+/))) {\n m = arg.match(/^--?(.+)/);\n if (m !== null && Array.isArray(m) && m.length >= 2) {\n key = m[1];\n if (checkAllAliases(key, flags.arrays)) {\n // array format = '--foo a b c'\n i = eatArray(i, key, args);\n }\n else if (checkAllAliases(key, flags.nargs) !== false) {\n // nargs format = '--foo a b c'\n // should be truthy even if: flags.nargs[key] === 0\n i = eatNargs(i, key, args);\n }\n else {\n next = args[i + 1];\n if (next !== undefined && (!next.match(/^-/) ||\n next.match(negative)) &&\n !checkAllAliases(key, flags.bools) &&\n !checkAllAliases(key, flags.counts)) {\n setArg(key, next);\n i++;\n }\n else if (/^(true|false)$/.test(next)) {\n setArg(key, next);\n i++;\n }\n else {\n setArg(key, defaultValue(key));\n }\n }\n }\n // dot-notation flag separated by '='.\n }\n else if (arg.match(/^-.\\..+=/)) {\n m = arg.match(/^-([^=]+)=([\\s\\S]*)$/);\n if (m !== null && Array.isArray(m) && m.length >= 3) {\n setArg(m[1], m[2]);\n }\n // dot-notation flag separated by space.\n }\n else if (arg.match(/^-.\\..+/) && !arg.match(negative)) {\n next = args[i + 1];\n m = arg.match(/^-(.\\..+)/);\n if (m !== null && Array.isArray(m) && m.length >= 2) {\n key = m[1];\n if (next !== undefined && !next.match(/^-/) &&\n !checkAllAliases(key, flags.bools) &&\n !checkAllAliases(key, flags.counts)) {\n setArg(key, next);\n i++;\n }\n else {\n setArg(key, defaultValue(key));\n }\n }\n }\n else if (arg.match(/^-[^-]+/) && !arg.match(negative)) {\n letters = arg.slice(1, -1).split('');\n broken = false;\n for (let j = 0; j < letters.length; j++) {\n next = arg.slice(j + 2);\n if (letters[j + 1] && letters[j + 1] === '=') {\n value = arg.slice(j + 3);\n key = letters[j];\n if (checkAllAliases(key, flags.arrays)) {\n // array format = '-f=a b c'\n i = eatArray(i, key, args, value);\n }\n else if (checkAllAliases(key, flags.nargs) !== false) {\n // nargs format = '-f=monkey washing cat'\n i = eatNargs(i, key, args, value);\n }\n else {\n setArg(key, value);\n }\n broken = true;\n break;\n }\n if (next === '-') {\n setArg(letters[j], next);\n continue;\n }\n // current letter is an alphabetic character and next value is a number\n if (/[A-Za-z]/.test(letters[j]) &&\n /^-?\\d+(\\.\\d*)?(e-?\\d+)?$/.test(next) &&\n checkAllAliases(next, flags.bools) === false) {\n setArg(letters[j], next);\n broken = true;\n break;\n }\n if (letters[j + 1] && letters[j + 1].match(/\\W/)) {\n setArg(letters[j], next);\n broken = true;\n break;\n }\n else {\n setArg(letters[j], defaultValue(letters[j]));\n }\n }\n key = arg.slice(-1)[0];\n if (!broken && key !== '-') {\n if (checkAllAliases(key, flags.arrays)) {\n // array format = '-f a b c'\n i = eatArray(i, key, args);\n }\n else if (checkAllAliases(key, flags.nargs) !== false) {\n // nargs format = '-f a b c'\n // should be truthy even if: flags.nargs[key] === 0\n i = eatNargs(i, key, args);\n }\n else {\n next = args[i + 1];\n if (next !== undefined && (!/^(-|--)[^-]/.test(next) ||\n next.match(negative)) &&\n !checkAllAliases(key, flags.bools) &&\n !checkAllAliases(key, flags.counts)) {\n setArg(key, next);\n i++;\n }\n else if (/^(true|false)$/.test(next)) {\n setArg(key, next);\n i++;\n }\n else {\n setArg(key, defaultValue(key));\n }\n }\n }\n }\n else if (arg.match(/^-[0-9]$/) &&\n arg.match(negative) &&\n checkAllAliases(arg.slice(1), flags.bools)) {\n // single-digit boolean alias, e.g: xargs -0\n key = arg.slice(1);\n setArg(key, defaultValue(key));\n }\n else if (arg === '--') {\n notFlags = args.slice(i + 1);\n break;\n }\n else if (configuration['halt-at-non-option']) {\n notFlags = args.slice(i);\n break;\n }\n else {\n pushPositional(arg);\n }\n }\n // order of precedence:\n // 1. command line arg\n // 2. value from env var\n // 3. value from config file\n // 4. value from config objects\n // 5. configured default value\n applyEnvVars(argv, true); // special case: check env vars that point to config file\n applyEnvVars(argv, false);\n setConfig(argv);\n setConfigObjects();\n applyDefaultsAndAliases(argv, flags.aliases, defaults, true);\n applyCoercions(argv);\n if (configuration['set-placeholder-key'])\n setPlaceholderKeys(argv);\n // for any counts either not in args or without an explicit default, set to 0\n Object.keys(flags.counts).forEach(function (key) {\n if (!hasKey(argv, key.split('.')))\n setArg(key, 0);\n });\n // '--' defaults to undefined.\n if (notFlagsOption && notFlags.length)\n argv[notFlagsArgv] = [];\n notFlags.forEach(function (key) {\n argv[notFlagsArgv].push(key);\n });\n if (configuration['camel-case-expansion'] && configuration['strip-dashed']) {\n Object.keys(argv).filter(key => key !== '--' && key.includes('-')).forEach(key => {\n delete argv[key];\n });\n }\n if (configuration['strip-aliased']) {\n ;\n [].concat(...Object.keys(aliases).map(k => aliases[k])).forEach(alias => {\n if (configuration['camel-case-expansion'] && alias.includes('-')) {\n delete argv[alias.split('.').map(prop => camelCase(prop)).join('.')];\n }\n delete argv[alias];\n });\n }\n // Push argument into positional array, applying numeric coercion:\n function pushPositional(arg) {\n const maybeCoercedNumber = maybeCoerceNumber('_', arg);\n if (typeof maybeCoercedNumber === 'string' || typeof maybeCoercedNumber === 'number') {\n argv._.push(maybeCoercedNumber);\n }\n }\n // how many arguments should we consume, based\n // on the nargs option?\n function eatNargs(i, key, args, argAfterEqualSign) {\n let ii;\n let toEat = checkAllAliases(key, flags.nargs);\n // NaN has a special meaning for the array type, indicating that one or\n // more values are expected.\n toEat = typeof toEat !== 'number' || isNaN(toEat) ? 1 : toEat;\n if (toEat === 0) {\n if (!isUndefined(argAfterEqualSign)) {\n error = Error(__('Argument unexpected for: %s', key));\n }\n setArg(key, defaultValue(key));\n return i;\n }\n let available = isUndefined(argAfterEqualSign) ? 0 : 1;\n if (configuration['nargs-eats-options']) {\n // classic behavior, yargs eats positional and dash arguments.\n if (args.length - (i + 1) + available < toEat) {\n error = Error(__('Not enough arguments following: %s', key));\n }\n available = toEat;\n }\n else {\n // nargs will not consume flag arguments, e.g., -abc, --foo,\n // and terminates when one is observed.\n for (ii = i + 1; ii < args.length; ii++) {\n if (!args[ii].match(/^-[^0-9]/) || args[ii].match(negative) || isUnknownOptionAsArg(args[ii]))\n available++;\n else\n break;\n }\n if (available < toEat)\n error = Error(__('Not enough arguments following: %s', key));\n }\n let consumed = Math.min(available, toEat);\n if (!isUndefined(argAfterEqualSign) && consumed > 0) {\n setArg(key, argAfterEqualSign);\n consumed--;\n }\n for (ii = i + 1; ii < (consumed + i + 1); ii++) {\n setArg(key, args[ii]);\n }\n return (i + consumed);\n }\n // if an option is an array, eat all non-hyphenated arguments\n // following it... YUM!\n // e.g., --foo apple banana cat becomes [\"apple\", \"banana\", \"cat\"]\n function eatArray(i, key, args, argAfterEqualSign) {\n let argsToSet = [];\n let next = argAfterEqualSign || args[i + 1];\n // If both array and nargs are configured, enforce the nargs count:\n const nargsCount = checkAllAliases(key, flags.nargs);\n if (checkAllAliases(key, flags.bools) && !(/^(true|false)$/.test(next))) {\n argsToSet.push(true);\n }\n else if (isUndefined(next) ||\n (isUndefined(argAfterEqualSign) && /^-/.test(next) && !negative.test(next) && !isUnknownOptionAsArg(next))) {\n // for keys without value ==> argsToSet remains an empty []\n // set user default value, if available\n if (defaults[key] !== undefined) {\n const defVal = defaults[key];\n argsToSet = Array.isArray(defVal) ? defVal : [defVal];\n }\n }\n else {\n // value in --option=value is eaten as is\n if (!isUndefined(argAfterEqualSign)) {\n argsToSet.push(processValue(key, argAfterEqualSign, true));\n }\n for (let ii = i + 1; ii < args.length; ii++) {\n if ((!configuration['greedy-arrays'] && argsToSet.length > 0) ||\n (nargsCount && typeof nargsCount === 'number' && argsToSet.length >= nargsCount))\n break;\n next = args[ii];\n if (/^-/.test(next) && !negative.test(next) && !isUnknownOptionAsArg(next))\n break;\n i = ii;\n argsToSet.push(processValue(key, next, inputIsString));\n }\n }\n // If both array and nargs are configured, create an error if less than\n // nargs positionals were found. NaN has special meaning, indicating\n // that at least one value is required (more are okay).\n if (typeof nargsCount === 'number' && ((nargsCount && argsToSet.length < nargsCount) ||\n (isNaN(nargsCount) && argsToSet.length === 0))) {\n error = Error(__('Not enough arguments following: %s', key));\n }\n setArg(key, argsToSet);\n return i;\n }\n function setArg(key, val, shouldStripQuotes = inputIsString) {\n if (/-/.test(key) && configuration['camel-case-expansion']) {\n const alias = key.split('.').map(function (prop) {\n return camelCase(prop);\n }).join('.');\n addNewAlias(key, alias);\n }\n const value = processValue(key, val, shouldStripQuotes);\n const splitKey = key.split('.');\n setKey(argv, splitKey, value);\n // handle populating aliases of the full key\n if (flags.aliases[key]) {\n flags.aliases[key].forEach(function (x) {\n const keyProperties = x.split('.');\n setKey(argv, keyProperties, value);\n });\n }\n // handle populating aliases of the first element of the dot-notation key\n if (splitKey.length > 1 && configuration['dot-notation']) {\n ;\n (flags.aliases[splitKey[0]] || []).forEach(function (x) {\n let keyProperties = x.split('.');\n // expand alias with nested objects in key\n const a = [].concat(splitKey);\n a.shift(); // nuke the old key.\n keyProperties = keyProperties.concat(a);\n // populate alias only if is not already an alias of the full key\n // (already populated above)\n if (!(flags.aliases[key] || []).includes(keyProperties.join('.'))) {\n setKey(argv, keyProperties, value);\n }\n });\n }\n // Set normalize getter and setter when key is in 'normalize' but isn't an array\n if (checkAllAliases(key, flags.normalize) && !checkAllAliases(key, flags.arrays)) {\n const keys = [key].concat(flags.aliases[key] || []);\n keys.forEach(function (key) {\n Object.defineProperty(argvReturn, key, {\n enumerable: true,\n get() {\n return val;\n },\n set(value) {\n val = typeof value === 'string' ? mixin.normalize(value) : value;\n }\n });\n });\n }\n }\n function addNewAlias(key, alias) {\n if (!(flags.aliases[key] && flags.aliases[key].length)) {\n flags.aliases[key] = [alias];\n newAliases[alias] = true;\n }\n if (!(flags.aliases[alias] && flags.aliases[alias].length)) {\n addNewAlias(alias, key);\n }\n }\n function processValue(key, val, shouldStripQuotes) {\n // strings may be quoted, clean this up as we assign values.\n if (shouldStripQuotes) {\n val = stripQuotes(val);\n }\n // handle parsing boolean arguments --foo=true --bar false.\n if (checkAllAliases(key, flags.bools) || checkAllAliases(key, flags.counts)) {\n if (typeof val === 'string')\n val = val === 'true';\n }\n let value = Array.isArray(val)\n ? val.map(function (v) { return maybeCoerceNumber(key, v); })\n : maybeCoerceNumber(key, val);\n // increment a count given as arg (either no value or value parsed as boolean)\n if (checkAllAliases(key, flags.counts) && (isUndefined(value) || typeof value === 'boolean')) {\n value = increment();\n }\n // Set normalized value when key is in 'normalize' and in 'arrays'\n if (checkAllAliases(key, flags.normalize) && checkAllAliases(key, flags.arrays)) {\n if (Array.isArray(val))\n value = val.map((val) => { return mixin.normalize(val); });\n else\n value = mixin.normalize(val);\n }\n return value;\n }\n function maybeCoerceNumber(key, value) {\n if (!configuration['parse-positional-numbers'] && key === '_')\n return value;\n if (!checkAllAliases(key, flags.strings) && !checkAllAliases(key, flags.bools) && !Array.isArray(value)) {\n const shouldCoerceNumber = looksLikeNumber(value) && configuration['parse-numbers'] && (Number.isSafeInteger(Math.floor(parseFloat(`${value}`))));\n if (shouldCoerceNumber || (!isUndefined(value) && checkAllAliases(key, flags.numbers))) {\n value = Number(value);\n }\n }\n return value;\n }\n // set args from config.json file, this should be\n // applied last so that defaults can be applied.\n function setConfig(argv) {\n const configLookup = Object.create(null);\n // expand defaults/aliases, in-case any happen to reference\n // the config.json file.\n applyDefaultsAndAliases(configLookup, flags.aliases, defaults);\n Object.keys(flags.configs).forEach(function (configKey) {\n const configPath = argv[configKey] || configLookup[configKey];\n if (configPath) {\n try {\n let config = null;\n const resolvedConfigPath = mixin.resolve(mixin.cwd(), configPath);\n const resolveConfig = flags.configs[configKey];\n if (typeof resolveConfig === 'function') {\n try {\n config = resolveConfig(resolvedConfigPath);\n }\n catch (e) {\n config = e;\n }\n if (config instanceof Error) {\n error = config;\n return;\n }\n }\n else {\n config = mixin.require(resolvedConfigPath);\n }\n setConfigObject(config);\n }\n catch (ex) {\n // Deno will receive a PermissionDenied error if an attempt is\n // made to load config without the --allow-read flag:\n if (ex.name === 'PermissionDenied')\n error = ex;\n else if (argv[configKey])\n error = Error(__('Invalid JSON config file: %s', configPath));\n }\n }\n });\n }\n // set args from config object.\n // it recursively checks nested objects.\n function setConfigObject(config, prev) {\n Object.keys(config).forEach(function (key) {\n const value = config[key];\n const fullKey = prev ? prev + '.' + key : key;\n // if the value is an inner object and we have dot-notation\n // enabled, treat inner objects in config the same as\n // heavily nested dot notations (foo.bar.apple).\n if (typeof value === 'object' && value !== null && !Array.isArray(value) && configuration['dot-notation']) {\n // if the value is an object but not an array, check nested object\n setConfigObject(value, fullKey);\n }\n else {\n // setting arguments via CLI takes precedence over\n // values within the config file.\n if (!hasKey(argv, fullKey.split('.')) || (checkAllAliases(fullKey, flags.arrays) && configuration['combine-arrays'])) {\n setArg(fullKey, value);\n }\n }\n });\n }\n // set all config objects passed in opts\n function setConfigObjects() {\n if (typeof configObjects !== 'undefined') {\n configObjects.forEach(function (configObject) {\n setConfigObject(configObject);\n });\n }\n }\n function applyEnvVars(argv, configOnly) {\n if (typeof envPrefix === 'undefined')\n return;\n const prefix = typeof envPrefix === 'string' ? envPrefix : '';\n const env = mixin.env();\n Object.keys(env).forEach(function (envVar) {\n if (prefix === '' || envVar.lastIndexOf(prefix, 0) === 0) {\n // get array of nested keys and convert them to camel case\n const keys = envVar.split('__').map(function (key, i) {\n if (i === 0) {\n key = key.substring(prefix.length);\n }\n return camelCase(key);\n });\n if (((configOnly && flags.configs[keys.join('.')]) || !configOnly) && !hasKey(argv, keys)) {\n setArg(keys.join('.'), env[envVar]);\n }\n }\n });\n }\n function applyCoercions(argv) {\n let coerce;\n const applied = new Set();\n Object.keys(argv).forEach(function (key) {\n if (!applied.has(key)) { // If we haven't already coerced this option via one of its aliases\n coerce = checkAllAliases(key, flags.coercions);\n if (typeof coerce === 'function') {\n try {\n const value = maybeCoerceNumber(key, coerce(argv[key]));\n ([].concat(flags.aliases[key] || [], key)).forEach(ali => {\n applied.add(ali);\n argv[ali] = value;\n });\n }\n catch (err) {\n error = err;\n }\n }\n }\n });\n }\n function setPlaceholderKeys(argv) {\n flags.keys.forEach((key) => {\n // don't set placeholder keys for dot notation options 'foo.bar'.\n if (~key.indexOf('.'))\n return;\n if (typeof argv[key] === 'undefined')\n argv[key] = undefined;\n });\n return argv;\n }\n function applyDefaultsAndAliases(obj, aliases, defaults, canLog = false) {\n Object.keys(defaults).forEach(function (key) {\n if (!hasKey(obj, key.split('.'))) {\n setKey(obj, key.split('.'), defaults[key]);\n if (canLog)\n defaulted[key] = true;\n (aliases[key] || []).forEach(function (x) {\n if (hasKey(obj, x.split('.')))\n return;\n setKey(obj, x.split('.'), defaults[key]);\n });\n }\n });\n }\n function hasKey(obj, keys) {\n let o = obj;\n if (!configuration['dot-notation'])\n keys = [keys.join('.')];\n keys.slice(0, -1).forEach(function (key) {\n o = (o[key] || {});\n });\n const key = keys[keys.length - 1];\n if (typeof o !== 'object')\n return false;\n else\n return key in o;\n }\n function setKey(obj, keys, value) {\n let o = obj;\n if (!configuration['dot-notation'])\n keys = [keys.join('.')];\n keys.slice(0, -1).forEach(function (key) {\n // TODO(bcoe): in the next major version of yargs, switch to\n // Object.create(null) for dot notation:\n key = sanitizeKey(key);\n if (typeof o === 'object' && o[key] === undefined) {\n o[key] = {};\n }\n if (typeof o[key] !== 'object' || Array.isArray(o[key])) {\n // ensure that o[key] is an array, and that the last item is an empty object.\n if (Array.isArray(o[key])) {\n o[key].push({});\n }\n else {\n o[key] = [o[key], {}];\n }\n // we want to update the empty object at the end of the o[key] array, so set o to that object\n o = o[key][o[key].length - 1];\n }\n else {\n o = o[key];\n }\n });\n // TODO(bcoe): in the next major version of yargs, switch to\n // Object.create(null) for dot notation:\n const key = sanitizeKey(keys[keys.length - 1]);\n const isTypeArray = checkAllAliases(keys.join('.'), flags.arrays);\n const isValueArray = Array.isArray(value);\n let duplicate = configuration['duplicate-arguments-array'];\n // nargs has higher priority than duplicate\n if (!duplicate && checkAllAliases(key, flags.nargs)) {\n duplicate = true;\n if ((!isUndefined(o[key]) && flags.nargs[key] === 1) || (Array.isArray(o[key]) && o[key].length === flags.nargs[key])) {\n o[key] = undefined;\n }\n }\n if (value === increment()) {\n o[key] = increment(o[key]);\n }\n else if (Array.isArray(o[key])) {\n if (duplicate && isTypeArray && isValueArray) {\n o[key] = configuration['flatten-duplicate-arrays'] ? o[key].concat(value) : (Array.isArray(o[key][0]) ? o[key] : [o[key]]).concat([value]);\n }\n else if (!duplicate && Boolean(isTypeArray) === Boolean(isValueArray)) {\n o[key] = value;\n }\n else {\n o[key] = o[key].concat([value]);\n }\n }\n else if (o[key] === undefined && isTypeArray) {\n o[key] = isValueArray ? value : [value];\n }\n else if (duplicate && !(o[key] === undefined ||\n checkAllAliases(key, flags.counts) ||\n checkAllAliases(key, flags.bools))) {\n o[key] = [o[key], value];\n }\n else {\n o[key] = value;\n }\n }\n // extend the aliases list with inferred aliases.\n function extendAliases(...args) {\n args.forEach(function (obj) {\n Object.keys(obj || {}).forEach(function (key) {\n // short-circuit if we've already added a key\n // to the aliases array, for example it might\n // exist in both 'opts.default' and 'opts.key'.\n if (flags.aliases[key])\n return;\n flags.aliases[key] = [].concat(aliases[key] || []);\n // For \"--option-name\", also set argv.optionName\n flags.aliases[key].concat(key).forEach(function (x) {\n if (/-/.test(x) && configuration['camel-case-expansion']) {\n const c = camelCase(x);\n if (c !== key && flags.aliases[key].indexOf(c) === -1) {\n flags.aliases[key].push(c);\n newAliases[c] = true;\n }\n }\n });\n // For \"--optionName\", also set argv['option-name']\n flags.aliases[key].concat(key).forEach(function (x) {\n if (x.length > 1 && /[A-Z]/.test(x) && configuration['camel-case-expansion']) {\n const c = decamelize(x, '-');\n if (c !== key && flags.aliases[key].indexOf(c) === -1) {\n flags.aliases[key].push(c);\n newAliases[c] = true;\n }\n }\n });\n flags.aliases[key].forEach(function (x) {\n flags.aliases[x] = [key].concat(flags.aliases[key].filter(function (y) {\n return x !== y;\n }));\n });\n });\n });\n }\n function checkAllAliases(key, flag) {\n const toCheck = [].concat(flags.aliases[key] || [], key);\n const keys = Object.keys(flag);\n const setAlias = toCheck.find(key => keys.includes(key));\n return setAlias ? flag[setAlias] : false;\n }\n function hasAnyFlag(key) {\n const flagsKeys = Object.keys(flags);\n const toCheck = [].concat(flagsKeys.map(k => flags[k]));\n return toCheck.some(function (flag) {\n return Array.isArray(flag) ? flag.includes(key) : flag[key];\n });\n }\n function hasFlagsMatching(arg, ...patterns) {\n const toCheck = [].concat(...patterns);\n return toCheck.some(function (pattern) {\n const match = arg.match(pattern);\n return match && hasAnyFlag(match[1]);\n });\n }\n // based on a simplified version of the short flag group parsing logic\n function hasAllShortFlags(arg) {\n // if this is a negative number, or doesn't start with a single hyphen, it's not a short flag group\n if (arg.match(negative) || !arg.match(/^-[^-]+/)) {\n return false;\n }\n let hasAllFlags = true;\n let next;\n const letters = arg.slice(1).split('');\n for (let j = 0; j < letters.length; j++) {\n next = arg.slice(j + 2);\n if (!hasAnyFlag(letters[j])) {\n hasAllFlags = false;\n break;\n }\n if ((letters[j + 1] && letters[j + 1] === '=') ||\n next === '-' ||\n (/[A-Za-z]/.test(letters[j]) && /^-?\\d+(\\.\\d*)?(e-?\\d+)?$/.test(next)) ||\n (letters[j + 1] && letters[j + 1].match(/\\W/))) {\n break;\n }\n }\n return hasAllFlags;\n }\n function isUnknownOptionAsArg(arg) {\n return configuration['unknown-options-as-args'] && isUnknownOption(arg);\n }\n function isUnknownOption(arg) {\n arg = arg.replace(/^-{3,}/, '--');\n // ignore negative numbers\n if (arg.match(negative)) {\n return false;\n }\n // if this is a short option group and all of them are configured, it isn't unknown\n if (hasAllShortFlags(arg)) {\n return false;\n }\n // e.g. '--count=2'\n const flagWithEquals = /^-+([^=]+?)=[\\s\\S]*$/;\n // e.g. '-a' or '--arg'\n const normalFlag = /^-+([^=]+?)$/;\n // e.g. '-a-'\n const flagEndingInHyphen = /^-+([^=]+?)-$/;\n // e.g. '-abc123'\n const flagEndingInDigits = /^-+([^=]+?\\d+)$/;\n // e.g. '-a/usr/local'\n const flagEndingInNonWordCharacters = /^-+([^=]+?)\\W+.*$/;\n // check the different types of flag styles, including negatedBoolean, a pattern defined near the start of the parse method\n return !hasFlagsMatching(arg, flagWithEquals, negatedBoolean, normalFlag, flagEndingInHyphen, flagEndingInDigits, flagEndingInNonWordCharacters);\n }\n // make a best effort to pick a default value\n // for an option based on name and type.\n function defaultValue(key) {\n if (!checkAllAliases(key, flags.bools) &&\n !checkAllAliases(key, flags.counts) &&\n `${key}` in defaults) {\n return defaults[key];\n }\n else {\n return defaultForType(guessType(key));\n }\n }\n // return a default value, given the type of a flag.,\n function defaultForType(type) {\n const def = {\n [DefaultValuesForTypeKey.BOOLEAN]: true,\n [DefaultValuesForTypeKey.STRING]: '',\n [DefaultValuesForTypeKey.NUMBER]: undefined,\n [DefaultValuesForTypeKey.ARRAY]: []\n };\n return def[type];\n }\n // given a flag, enforce a default type.\n function guessType(key) {\n let type = DefaultValuesForTypeKey.BOOLEAN;\n if (checkAllAliases(key, flags.strings))\n type = DefaultValuesForTypeKey.STRING;\n else if (checkAllAliases(key, flags.numbers))\n type = DefaultValuesForTypeKey.NUMBER;\n else if (checkAllAliases(key, flags.bools))\n type = DefaultValuesForTypeKey.BOOLEAN;\n else if (checkAllAliases(key, flags.arrays))\n type = DefaultValuesForTypeKey.ARRAY;\n return type;\n }\n function isUndefined(num) {\n return num === undefined;\n }\n // check user configuration settings for inconsistencies\n function checkConfiguration() {\n // count keys should not be set as array/narg\n Object.keys(flags.counts).find(key => {\n if (checkAllAliases(key, flags.arrays)) {\n error = Error(__('Invalid configuration: %s, opts.count excludes opts.array.', key));\n return true;\n }\n else if (checkAllAliases(key, flags.nargs)) {\n error = Error(__('Invalid configuration: %s, opts.count excludes opts.narg.', key));\n return true;\n }\n return false;\n });\n }\n return {\n aliases: Object.assign({}, flags.aliases),\n argv: Object.assign(argvReturn, argv),\n configuration: configuration,\n defaulted: Object.assign({}, defaulted),\n error: error,\n newAliases: Object.assign({}, newAliases)\n };\n }\n}\n// if any aliases reference each other, we should\n// merge them together.\nfunction combineAliases(aliases) {\n const aliasArrays = [];\n const combined = Object.create(null);\n let change = true;\n // turn alias lookup hash {key: ['alias1', 'alias2']} into\n // a simple array ['key', 'alias1', 'alias2']\n Object.keys(aliases).forEach(function (key) {\n aliasArrays.push([].concat(aliases[key], key));\n });\n // combine arrays until zero changes are\n // made in an iteration.\n while (change) {\n change = false;\n for (let i = 0; i < aliasArrays.length; i++) {\n for (let ii = i + 1; ii < aliasArrays.length; ii++) {\n const intersect = aliasArrays[i].filter(function (v) {\n return aliasArrays[ii].indexOf(v) !== -1;\n });\n if (intersect.length) {\n aliasArrays[i] = aliasArrays[i].concat(aliasArrays[ii]);\n aliasArrays.splice(ii, 1);\n change = true;\n break;\n }\n }\n }\n }\n // map arrays back to the hash-lookup (de-dupe while\n // we're at it).\n aliasArrays.forEach(function (aliasArray) {\n aliasArray = aliasArray.filter(function (v, i, self) {\n return self.indexOf(v) === i;\n });\n const lastAlias = aliasArray.pop();\n if (lastAlias !== undefined && typeof lastAlias === 'string') {\n combined[lastAlias] = aliasArray;\n }\n });\n return combined;\n}\n// this function should only be called when a count is given as an arg\n// it is NOT called to set a default value\n// thus we can start the count at 1 instead of 0\nfunction increment(orig) {\n return orig !== undefined ? orig + 1 : 1;\n}\n// TODO(bcoe): in the next major version of yargs, switch to\n// Object.create(null) for dot notation:\nfunction sanitizeKey(key) {\n if (key === '__proto__')\n return '___proto___';\n return key;\n}\nfunction stripQuotes(val) {\n return (typeof val === 'string' &&\n (val[0] === \"'\" || val[0] === '\"') &&\n val[val.length - 1] === val[0])\n ? val.substring(1, val.length - 1)\n : val;\n}\n", "import _yargs from 'yargs-parser'\nexport default _yargs\n"],
5
+ "mappings": ";;;;;;;;AASA,SAAS,cAAc;AACvB,SAAS,WAAW,eAAe;;;ACL5B,SAAS,UAAU,KAAK;AAG3B,QAAM,cAAc,QAAQ,IAAI,YAAY,KAAK,QAAQ,IAAI,YAAY;AACzE,MAAI,CAAC,aAAa;AACd,UAAM,IAAI,YAAY;AAAA,EAC1B;AACA,MAAI,IAAI,QAAQ,GAAG,MAAM,MAAM,IAAI,QAAQ,GAAG,MAAM,IAAI;AACpD,WAAO;AAAA,EACX,OACK;AACD,QAAI,YAAY;AAChB,QAAI,eAAe;AACnB,UAAM,iBAAiB,IAAI,MAAM,KAAK;AACtC,aAAS,IAAI,iBAAiB,eAAe,CAAC,EAAE,SAAS,GAAG,IAAI,IAAI,QAAQ,KAAK;AAC7E,UAAI,MAAM,IAAI,OAAO,CAAC;AACtB,UAAI,cAAc;AACd,uBAAe;AACf,cAAM,IAAI,YAAY;AAAA,MAC1B;AACA,UAAI,MAAM,MAAM,QAAQ,OAAO,QAAQ,MAAM;AACzC,uBAAe;AAAA,MACnB,WACS,QAAQ,OAAO,QAAQ,KAAK;AACjC,qBAAa;AAAA,MACjB;AAAA,IACJ;AACA,WAAO;AAAA,EACX;AACJ;AACO,SAAS,WAAW,KAAK,YAAY;AACxC,QAAM,YAAY,IAAI,YAAY;AAClC,eAAa,cAAc;AAC3B,MAAI,eAAe;AACnB,WAAS,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAK;AACjC,UAAM,WAAW,UAAU,OAAO,CAAC;AACnC,UAAM,YAAY,IAAI,OAAO,CAAC;AAC9B,QAAI,aAAa,aAAa,IAAI,GAAG;AACjC,sBAAgB,GAAG,UAAU,GAAG,UAAU,OAAO,CAAC,CAAC;AAAA,IACvD,OACK;AACD,sBAAgB;AAAA,IACpB;AAAA,EACJ;AACA,SAAO;AACX;AACO,SAAS,gBAAgB,GAAG;AAC/B,MAAI,MAAM,QAAQ,MAAM;AACpB,WAAO;AAEX,MAAI,OAAO,MAAM;AACb,WAAO;AAEX,MAAI,iBAAiB,KAAK,CAAC;AACvB,WAAO;AAEX,MAAI,SAAS,KAAK,CAAC;AACf,WAAO;AACX,SAAO,4CAA4C,KAAK,CAAC;AAC7D;;;AC1DO,SAAS,kBAAkB,WAAW;AACzC,MAAI,MAAM,QAAQ,SAAS,GAAG;AAC1B,WAAO,UAAU,IAAI,OAAK,OAAO,MAAM,WAAW,IAAI,KAAK,CAAC;AAAA,EAChE;AACA,cAAY,UAAU,KAAK;AAC3B,MAAI,IAAI;AACR,MAAI,QAAQ;AACZ,MAAI,IAAI;AACR,MAAI,UAAU;AACd,QAAM,OAAO,CAAC;AACd,WAAS,KAAK,GAAG,KAAK,UAAU,QAAQ,MAAM;AAC1C,YAAQ;AACR,QAAI,UAAU,OAAO,EAAE;AAEvB,QAAI,MAAM,OAAO,CAAC,SAAS;AACvB,UAAI,EAAE,UAAU,MAAM;AAClB;AAAA,MACJ;AACA;AAAA,IACJ;AAGA,QAAI,MAAM,SAAS;AACf,gBAAU;AAAA,IACd,YACU,MAAM,OAAO,MAAM,QAAQ,CAAC,SAAS;AAC3C,gBAAU;AAAA,IACd;AACA,QAAI,CAAC,KAAK,CAAC;AACP,WAAK,CAAC,IAAI;AACd,SAAK,CAAC,KAAK;AAAA,EACf;AACA,SAAO;AACX;;;AClCO,IAAI;AAAA,CACV,SAAUA,0BAAyB;AAChC,EAAAA,yBAAwB,SAAS,IAAI;AACrC,EAAAA,yBAAwB,QAAQ,IAAI;AACpC,EAAAA,yBAAwB,QAAQ,IAAI;AACpC,EAAAA,yBAAwB,OAAO,IAAI;AACvC,GAAG,4BAA4B,0BAA0B,CAAC,EAAE;;;ACH5D,IAAI;AACG,IAAM,cAAN,MAAkB;AAAA,EACrB,YAAY,QAAQ;AAChB,YAAQ;AAAA,EACZ;AAAA,EACA,MAAM,WAAW,SAAS;AACtB,UAAM,OAAO,OAAO,OAAO;AAAA,MACvB,OAAO;AAAA,MACP,OAAO;AAAA,MACP,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,eAAe;AAAA,MACf,eAAe;AAAA,MACf,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,SAAS;AAAA,MACT,WAAW;AAAA,MACX,MAAM;AAAA,MACN,WAAW;AAAA,MACX,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,IAAI;AAAA,MACJ,KAAK;AAAA,IACT,GAAG,OAAO;AAGV,UAAM,OAAO,kBAAkB,SAAS;AAGxC,UAAM,gBAAgB,OAAO,cAAc;AAE3C,UAAM,UAAU,eAAe,OAAO,OAAO,uBAAO,OAAO,IAAI,GAAG,KAAK,KAAK,CAAC;AAC7E,UAAM,gBAAgB,OAAO,OAAO;AAAA,MAChC,oBAAoB;AAAA,MACpB,wBAAwB;AAAA,MACxB,kBAAkB;AAAA,MAClB,gBAAgB;AAAA,MAChB,6BAA6B;AAAA,MAC7B,4BAA4B;AAAA,MAC5B,iBAAiB;AAAA,MACjB,sBAAsB;AAAA,MACtB,sBAAsB;AAAA,MACtB,mBAAmB;AAAA,MACnB,iBAAiB;AAAA,MACjB,4BAA4B;AAAA,MAC5B,cAAc;AAAA,MACd,uBAAuB;AAAA,MACvB,uBAAuB;AAAA,MACvB,iBAAiB;AAAA,MACjB,gBAAgB;AAAA,MAChB,2BAA2B;AAAA,IAC/B,GAAG,KAAK,aAAa;AACrB,UAAM,WAAW,OAAO,OAAO,uBAAO,OAAO,IAAI,GAAG,KAAK,OAAO;AAChE,UAAM,gBAAgB,KAAK,iBAAiB,CAAC;AAC7C,UAAM,YAAY,KAAK;AACvB,UAAM,iBAAiB,cAAc,YAAY;AACjD,UAAM,eAAe,iBAAiB,OAAO;AAC7C,UAAM,aAAa,uBAAO,OAAO,IAAI;AACrC,UAAM,YAAY,uBAAO,OAAO,IAAI;AAEpC,UAAM,KAAK,KAAK,MAAM,MAAM;AAC5B,UAAM,QAAQ;AAAA,MACV,SAAS,uBAAO,OAAO,IAAI;AAAA,MAC3B,QAAQ,uBAAO,OAAO,IAAI;AAAA,MAC1B,OAAO,uBAAO,OAAO,IAAI;AAAA,MACzB,SAAS,uBAAO,OAAO,IAAI;AAAA,MAC3B,SAAS,uBAAO,OAAO,IAAI;AAAA,MAC3B,QAAQ,uBAAO,OAAO,IAAI;AAAA,MAC1B,WAAW,uBAAO,OAAO,IAAI;AAAA,MAC7B,SAAS,uBAAO,OAAO,IAAI;AAAA,MAC3B,OAAO,uBAAO,OAAO,IAAI;AAAA,MACzB,WAAW,uBAAO,OAAO,IAAI;AAAA,MAC7B,MAAM,CAAC;AAAA,IACX;AACA,UAAM,WAAW;AACjB,UAAM,iBAAiB,IAAI,OAAO,QAAQ,cAAc,iBAAiB,IAAI,MAAM;AACnF,KAAC,EAAE,OAAO,KAAK,SAAS,CAAC,CAAC,EAAE,OAAO,OAAO,EAAE,QAAQ,SAAU,KAAK;AAC/D,YAAM,MAAM,OAAO,QAAQ,WAAW,IAAI,MAAM;AAEhD,YAAM,aAAa,OAAO,KAAK,GAAG,EAAE,IAAI,SAAUC,MAAK;AACnD,cAAM,gBAAgB;AAAA,UAClB,SAAS;AAAA,UACT,QAAQ;AAAA,UACR,QAAQ;AAAA,QACZ;AACA,eAAO,cAAcA,IAAG;AAAA,MAC5B,CAAC,EAAE,OAAO,OAAO,EAAE,IAAI;AAEvB,UAAI,YAAY;AACZ,cAAM,UAAU,EAAE,GAAG,IAAI;AAAA,MAC7B;AACA,YAAM,OAAO,GAAG,IAAI;AACpB,YAAM,KAAK,KAAK,GAAG;AAAA,IACvB,CAAC;AACD,KAAC,EAAE,OAAO,KAAK,WAAW,CAAC,CAAC,EAAE,OAAO,OAAO,EAAE,QAAQ,SAAU,KAAK;AACjE,YAAM,MAAM,GAAG,IAAI;AACnB,YAAM,KAAK,KAAK,GAAG;AAAA,IACvB,CAAC;AACD,KAAC,EAAE,OAAO,KAAK,UAAU,CAAC,CAAC,EAAE,OAAO,OAAO,EAAE,QAAQ,SAAU,KAAK;AAChE,YAAM,QAAQ,GAAG,IAAI;AACrB,YAAM,KAAK,KAAK,GAAG;AAAA,IACvB,CAAC;AACD,KAAC,EAAE,OAAO,KAAK,UAAU,CAAC,CAAC,EAAE,OAAO,OAAO,EAAE,QAAQ,SAAU,KAAK;AAChE,YAAM,QAAQ,GAAG,IAAI;AACrB,YAAM,KAAK,KAAK,GAAG;AAAA,IACvB,CAAC;AACD,KAAC,EAAE,OAAO,KAAK,SAAS,CAAC,CAAC,EAAE,OAAO,OAAO,EAAE,QAAQ,SAAU,KAAK;AAC/D,YAAM,OAAO,GAAG,IAAI;AACpB,YAAM,KAAK,KAAK,GAAG;AAAA,IACvB,CAAC;AACD,KAAC,EAAE,OAAO,KAAK,aAAa,CAAC,CAAC,EAAE,OAAO,OAAO,EAAE,QAAQ,SAAU,KAAK;AACnE,YAAM,UAAU,GAAG,IAAI;AACvB,YAAM,KAAK,KAAK,GAAG;AAAA,IACvB,CAAC;AACD,QAAI,OAAO,KAAK,SAAS,UAAU;AAC/B,aAAO,QAAQ,KAAK,IAAI,EAAE,QAAQ,CAAC,CAAC,KAAK,KAAK,MAAM;AAChD,YAAI,OAAO,UAAU,UAAU;AAC3B,gBAAM,MAAM,GAAG,IAAI;AACnB,gBAAM,KAAK,KAAK,GAAG;AAAA,QACvB;AAAA,MACJ,CAAC;AAAA,IACL;AACA,QAAI,OAAO,KAAK,WAAW,UAAU;AACjC,aAAO,QAAQ,KAAK,MAAM,EAAE,QAAQ,CAAC,CAAC,KAAK,KAAK,MAAM;AAClD,YAAI,OAAO,UAAU,YAAY;AAC7B,gBAAM,UAAU,GAAG,IAAI;AACvB,gBAAM,KAAK,KAAK,GAAG;AAAA,QACvB;AAAA,MACJ,CAAC;AAAA,IACL;AACA,QAAI,OAAO,KAAK,WAAW,aAAa;AACpC,UAAI,MAAM,QAAQ,KAAK,MAAM,KAAK,OAAO,KAAK,WAAW,UAAU;AAC/D;AACA,SAAC,EAAE,OAAO,KAAK,MAAM,EAAE,OAAO,OAAO,EAAE,QAAQ,SAAU,KAAK;AAC1D,gBAAM,QAAQ,GAAG,IAAI;AAAA,QACzB,CAAC;AAAA,MACL,WACS,OAAO,KAAK,WAAW,UAAU;AACtC,eAAO,QAAQ,KAAK,MAAM,EAAE,QAAQ,CAAC,CAAC,KAAK,KAAK,MAAM;AAClD,cAAI,OAAO,UAAU,aAAa,OAAO,UAAU,YAAY;AAC3D,kBAAM,QAAQ,GAAG,IAAI;AAAA,UACzB;AAAA,QACJ,CAAC;AAAA,MACL;AAAA,IACJ;AAGA,kBAAc,KAAK,KAAK,SAAS,KAAK,SAAS,MAAM,MAAM;AAE3D,WAAO,KAAK,QAAQ,EAAE,QAAQ,SAAU,KAAK;AACzC,OAAC,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,QAAQ,SAAU,OAAO;AAChD,iBAAS,KAAK,IAAI,SAAS,GAAG;AAAA,MAClC,CAAC;AAAA,IACL,CAAC;AACD,QAAI,QAAQ;AACZ,uBAAmB;AACnB,QAAI,WAAW,CAAC;AAChB,UAAM,OAAO,OAAO,OAAO,uBAAO,OAAO,IAAI,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;AAIzD,UAAM,aAAa,CAAC;AACpB,aAAS,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;AAClC,YAAM,MAAM,KAAK,CAAC;AAClB,YAAM,eAAe,IAAI,QAAQ,UAAU,KAAK;AAChD,UAAI;AACJ,UAAI;AACJ,UAAI;AACJ,UAAI;AACJ,UAAI;AACJ,UAAI;AAEJ,UAAI,QAAQ,QAAQ,KAAK,KAAK,GAAG,KAAK,qBAAqB,GAAG,GAAG;AAC7D,uBAAe,GAAG;AAAA,MAEtB,WACS,aAAa,MAAM,YAAY,GAAG;AAEvC,uBAAe,GAAG;AAClB;AAAA,MAEJ,WACS,IAAI,MAAM,QAAQ,KAAM,CAAC,cAAc,qBAAqB,KAAK,IAAI,MAAM,OAAO,GAAI;AAI3F,YAAI,IAAI,MAAM,wBAAwB;AAEtC,YAAI,MAAM,QAAQ,MAAM,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG;AACjD,cAAI,gBAAgB,EAAE,CAAC,GAAG,MAAM,MAAM,GAAG;AACrC,gBAAI,SAAS,GAAG,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,CAAC;AAAA,UACpC,WACS,gBAAgB,EAAE,CAAC,GAAG,MAAM,KAAK,MAAM,OAAO;AAEnD,gBAAI,SAAS,GAAG,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,CAAC;AAAA,UACpC,OACK;AACD,mBAAO,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI;AAAA,UAC3B;AAAA,QACJ;AAAA,MACJ,WACS,IAAI,MAAM,cAAc,KAAK,cAAc,kBAAkB,GAAG;AACrE,YAAI,IAAI,MAAM,cAAc;AAC5B,YAAI,MAAM,QAAQ,MAAM,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG;AACjD,gBAAM,EAAE,CAAC;AACT,iBAAO,KAAK,gBAAgB,KAAK,MAAM,MAAM,IAAI,CAAC,KAAK,IAAI,KAAK;AAAA,QACpE;AAAA,MAEJ,WACS,IAAI,MAAM,OAAO,KAAM,CAAC,cAAc,qBAAqB,KAAK,IAAI,MAAM,SAAS,GAAI;AAC5F,YAAI,IAAI,MAAM,UAAU;AACxB,YAAI,MAAM,QAAQ,MAAM,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG;AACjD,gBAAM,EAAE,CAAC;AACT,cAAI,gBAAgB,KAAK,MAAM,MAAM,GAAG;AAEpC,gBAAI,SAAS,GAAG,KAAK,IAAI;AAAA,UAC7B,WACS,gBAAgB,KAAK,MAAM,KAAK,MAAM,OAAO;AAGlD,gBAAI,SAAS,GAAG,KAAK,IAAI;AAAA,UAC7B,OACK;AACD,mBAAO,KAAK,IAAI,CAAC;AACjB,gBAAI,SAAS,WAAc,CAAC,KAAK,MAAM,IAAI,KACvC,KAAK,MAAM,QAAQ,MACnB,CAAC,gBAAgB,KAAK,MAAM,KAAK,KACjC,CAAC,gBAAgB,KAAK,MAAM,MAAM,GAAG;AACrC,qBAAO,KAAK,IAAI;AAChB;AAAA,YACJ,WACS,iBAAiB,KAAK,IAAI,GAAG;AAClC,qBAAO,KAAK,IAAI;AAChB;AAAA,YACJ,OACK;AACD,qBAAO,KAAK,aAAa,GAAG,CAAC;AAAA,YACjC;AAAA,UACJ;AAAA,QACJ;AAAA,MAEJ,WACS,IAAI,MAAM,UAAU,GAAG;AAC5B,YAAI,IAAI,MAAM,sBAAsB;AACpC,YAAI,MAAM,QAAQ,MAAM,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG;AACjD,iBAAO,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAAA,QACrB;AAAA,MAEJ,WACS,IAAI,MAAM,SAAS,KAAK,CAAC,IAAI,MAAM,QAAQ,GAAG;AACnD,eAAO,KAAK,IAAI,CAAC;AACjB,YAAI,IAAI,MAAM,WAAW;AACzB,YAAI,MAAM,QAAQ,MAAM,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG;AACjD,gBAAM,EAAE,CAAC;AACT,cAAI,SAAS,UAAa,CAAC,KAAK,MAAM,IAAI,KACtC,CAAC,gBAAgB,KAAK,MAAM,KAAK,KACjC,CAAC,gBAAgB,KAAK,MAAM,MAAM,GAAG;AACrC,mBAAO,KAAK,IAAI;AAChB;AAAA,UACJ,OACK;AACD,mBAAO,KAAK,aAAa,GAAG,CAAC;AAAA,UACjC;AAAA,QACJ;AAAA,MACJ,WACS,IAAI,MAAM,SAAS,KAAK,CAAC,IAAI,MAAM,QAAQ,GAAG;AACnD,kBAAU,IAAI,MAAM,GAAG,EAAE,EAAE,MAAM,EAAE;AACnC,iBAAS;AACT,iBAAS,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAK;AACrC,iBAAO,IAAI,MAAM,IAAI,CAAC;AACtB,cAAI,QAAQ,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC,MAAM,KAAK;AAC1C,oBAAQ,IAAI,MAAM,IAAI,CAAC;AACvB,kBAAM,QAAQ,CAAC;AACf,gBAAI,gBAAgB,KAAK,MAAM,MAAM,GAAG;AAEpC,kBAAI,SAAS,GAAG,KAAK,MAAM,KAAK;AAAA,YACpC,WACS,gBAAgB,KAAK,MAAM,KAAK,MAAM,OAAO;AAElD,kBAAI,SAAS,GAAG,KAAK,MAAM,KAAK;AAAA,YACpC,OACK;AACD,qBAAO,KAAK,KAAK;AAAA,YACrB;AACA,qBAAS;AACT;AAAA,UACJ;AACA,cAAI,SAAS,KAAK;AACd,mBAAO,QAAQ,CAAC,GAAG,IAAI;AACvB;AAAA,UACJ;AAEA,cAAI,WAAW,KAAK,QAAQ,CAAC,CAAC,KAC1B,2BAA2B,KAAK,IAAI,KACpC,gBAAgB,MAAM,MAAM,KAAK,MAAM,OAAO;AAC9C,mBAAO,QAAQ,CAAC,GAAG,IAAI;AACvB,qBAAS;AACT;AAAA,UACJ;AACA,cAAI,QAAQ,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC,EAAE,MAAM,IAAI,GAAG;AAC9C,mBAAO,QAAQ,CAAC,GAAG,IAAI;AACvB,qBAAS;AACT;AAAA,UACJ,OACK;AACD,mBAAO,QAAQ,CAAC,GAAG,aAAa,QAAQ,CAAC,CAAC,CAAC;AAAA,UAC/C;AAAA,QACJ;AACA,cAAM,IAAI,MAAM,EAAE,EAAE,CAAC;AACrB,YAAI,CAAC,UAAU,QAAQ,KAAK;AACxB,cAAI,gBAAgB,KAAK,MAAM,MAAM,GAAG;AAEpC,gBAAI,SAAS,GAAG,KAAK,IAAI;AAAA,UAC7B,WACS,gBAAgB,KAAK,MAAM,KAAK,MAAM,OAAO;AAGlD,gBAAI,SAAS,GAAG,KAAK,IAAI;AAAA,UAC7B,OACK;AACD,mBAAO,KAAK,IAAI,CAAC;AACjB,gBAAI,SAAS,WAAc,CAAC,cAAc,KAAK,IAAI,KAC/C,KAAK,MAAM,QAAQ,MACnB,CAAC,gBAAgB,KAAK,MAAM,KAAK,KACjC,CAAC,gBAAgB,KAAK,MAAM,MAAM,GAAG;AACrC,qBAAO,KAAK,IAAI;AAChB;AAAA,YACJ,WACS,iBAAiB,KAAK,IAAI,GAAG;AAClC,qBAAO,KAAK,IAAI;AAChB;AAAA,YACJ,OACK;AACD,qBAAO,KAAK,aAAa,GAAG,CAAC;AAAA,YACjC;AAAA,UACJ;AAAA,QACJ;AAAA,MACJ,WACS,IAAI,MAAM,UAAU,KACzB,IAAI,MAAM,QAAQ,KAClB,gBAAgB,IAAI,MAAM,CAAC,GAAG,MAAM,KAAK,GAAG;AAE5C,cAAM,IAAI,MAAM,CAAC;AACjB,eAAO,KAAK,aAAa,GAAG,CAAC;AAAA,MACjC,WACS,QAAQ,MAAM;AACnB,mBAAW,KAAK,MAAM,IAAI,CAAC;AAC3B;AAAA,MACJ,WACS,cAAc,oBAAoB,GAAG;AAC1C,mBAAW,KAAK,MAAM,CAAC;AACvB;AAAA,MACJ,OACK;AACD,uBAAe,GAAG;AAAA,MACtB;AAAA,IACJ;AAOA,iBAAa,MAAM,IAAI;AACvB,iBAAa,MAAM,KAAK;AACxB,cAAU,IAAI;AACd,qBAAiB;AACjB,4BAAwB,MAAM,MAAM,SAAS,UAAU,IAAI;AAC3D,mBAAe,IAAI;AACnB,QAAI,cAAc,qBAAqB;AACnC,yBAAmB,IAAI;AAE3B,WAAO,KAAK,MAAM,MAAM,EAAE,QAAQ,SAAU,KAAK;AAC7C,UAAI,CAAC,OAAO,MAAM,IAAI,MAAM,GAAG,CAAC;AAC5B,eAAO,KAAK,CAAC;AAAA,IACrB,CAAC;AAED,QAAI,kBAAkB,SAAS;AAC3B,WAAK,YAAY,IAAI,CAAC;AAC1B,aAAS,QAAQ,SAAU,KAAK;AAC5B,WAAK,YAAY,EAAE,KAAK,GAAG;AAAA,IAC/B,CAAC;AACD,QAAI,cAAc,sBAAsB,KAAK,cAAc,cAAc,GAAG;AACxE,aAAO,KAAK,IAAI,EAAE,OAAO,SAAO,QAAQ,QAAQ,IAAI,SAAS,GAAG,CAAC,EAAE,QAAQ,SAAO;AAC9E,eAAO,KAAK,GAAG;AAAA,MACnB,CAAC;AAAA,IACL;AACA,QAAI,cAAc,eAAe,GAAG;AAChC;AACA,OAAC,EAAE,OAAO,GAAG,OAAO,KAAK,OAAO,EAAE,IAAI,OAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,WAAS;AACrE,YAAI,cAAc,sBAAsB,KAAK,MAAM,SAAS,GAAG,GAAG;AAC9D,iBAAO,KAAK,MAAM,MAAM,GAAG,EAAE,IAAI,UAAQ,UAAU,IAAI,CAAC,EAAE,KAAK,GAAG,CAAC;AAAA,QACvE;AACA,eAAO,KAAK,KAAK;AAAA,MACrB,CAAC;AAAA,IACL;AAEA,aAAS,eAAe,KAAK;AACzB,YAAM,qBAAqB,kBAAkB,KAAK,GAAG;AACrD,UAAI,OAAO,uBAAuB,YAAY,OAAO,uBAAuB,UAAU;AAClF,aAAK,EAAE,KAAK,kBAAkB;AAAA,MAClC;AAAA,IACJ;AAGA,aAAS,SAAS,GAAG,KAAKC,OAAM,mBAAmB;AAC/C,UAAI;AACJ,UAAI,QAAQ,gBAAgB,KAAK,MAAM,KAAK;AAG5C,cAAQ,OAAO,UAAU,YAAY,MAAM,KAAK,IAAI,IAAI;AACxD,UAAI,UAAU,GAAG;AACb,YAAI,CAAC,YAAY,iBAAiB,GAAG;AACjC,kBAAQ,MAAM,GAAG,+BAA+B,GAAG,CAAC;AAAA,QACxD;AACA,eAAO,KAAK,aAAa,GAAG,CAAC;AAC7B,eAAO;AAAA,MACX;AACA,UAAI,YAAY,YAAY,iBAAiB,IAAI,IAAI;AACrD,UAAI,cAAc,oBAAoB,GAAG;AAErC,YAAIA,MAAK,UAAU,IAAI,KAAK,YAAY,OAAO;AAC3C,kBAAQ,MAAM,GAAG,sCAAsC,GAAG,CAAC;AAAA,QAC/D;AACA,oBAAY;AAAA,MAChB,OACK;AAGD,aAAK,KAAK,IAAI,GAAG,KAAKA,MAAK,QAAQ,MAAM;AACrC,cAAI,CAACA,MAAK,EAAE,EAAE,MAAM,UAAU,KAAKA,MAAK,EAAE,EAAE,MAAM,QAAQ,KAAK,qBAAqBA,MAAK,EAAE,CAAC;AACxF;AAAA;AAEA;AAAA,QACR;AACA,YAAI,YAAY;AACZ,kBAAQ,MAAM,GAAG,sCAAsC,GAAG,CAAC;AAAA,MACnE;AACA,UAAI,WAAW,KAAK,IAAI,WAAW,KAAK;AACxC,UAAI,CAAC,YAAY,iBAAiB,KAAK,WAAW,GAAG;AACjD,eAAO,KAAK,iBAAiB;AAC7B;AAAA,MACJ;AACA,WAAK,KAAK,IAAI,GAAG,KAAM,WAAW,IAAI,GAAI,MAAM;AAC5C,eAAO,KAAKA,MAAK,EAAE,CAAC;AAAA,MACxB;AACA,aAAQ,IAAI;AAAA,IAChB;AAIA,aAAS,SAAS,GAAG,KAAKA,OAAM,mBAAmB;AAC/C,UAAI,YAAY,CAAC;AACjB,UAAI,OAAO,qBAAqBA,MAAK,IAAI,CAAC;AAE1C,YAAM,aAAa,gBAAgB,KAAK,MAAM,KAAK;AACnD,UAAI,gBAAgB,KAAK,MAAM,KAAK,KAAK,CAAE,iBAAiB,KAAK,IAAI,GAAI;AACrE,kBAAU,KAAK,IAAI;AAAA,MACvB,WACS,YAAY,IAAI,KACpB,YAAY,iBAAiB,KAAK,KAAK,KAAK,IAAI,KAAK,CAAC,SAAS,KAAK,IAAI,KAAK,CAAC,qBAAqB,IAAI,GAAI;AAG5G,YAAI,SAAS,GAAG,MAAM,QAAW;AAC7B,gBAAM,SAAS,SAAS,GAAG;AAC3B,sBAAY,MAAM,QAAQ,MAAM,IAAI,SAAS,CAAC,MAAM;AAAA,QACxD;AAAA,MACJ,OACK;AAED,YAAI,CAAC,YAAY,iBAAiB,GAAG;AACjC,oBAAU,KAAK,aAAa,KAAK,mBAAmB,IAAI,CAAC;AAAA,QAC7D;AACA,iBAAS,KAAK,IAAI,GAAG,KAAKA,MAAK,QAAQ,MAAM;AACzC,cAAK,CAAC,cAAc,eAAe,KAAK,UAAU,SAAS,KACtD,cAAc,OAAO,eAAe,YAAY,UAAU,UAAU;AACrE;AACJ,iBAAOA,MAAK,EAAE;AACd,cAAI,KAAK,KAAK,IAAI,KAAK,CAAC,SAAS,KAAK,IAAI,KAAK,CAAC,qBAAqB,IAAI;AACrE;AACJ,cAAI;AACJ,oBAAU,KAAK,aAAa,KAAK,MAAM,aAAa,CAAC;AAAA,QACzD;AAAA,MACJ;AAIA,UAAI,OAAO,eAAe,aAAc,cAAc,UAAU,SAAS,cACpE,MAAM,UAAU,KAAK,UAAU,WAAW,IAAK;AAChD,gBAAQ,MAAM,GAAG,sCAAsC,GAAG,CAAC;AAAA,MAC/D;AACA,aAAO,KAAK,SAAS;AACrB,aAAO;AAAA,IACX;AACA,aAAS,OAAO,KAAK,KAAK,oBAAoB,eAAe;AACzD,UAAI,IAAI,KAAK,GAAG,KAAK,cAAc,sBAAsB,GAAG;AACxD,cAAM,QAAQ,IAAI,MAAM,GAAG,EAAE,IAAI,SAAU,MAAM;AAC7C,iBAAO,UAAU,IAAI;AAAA,QACzB,CAAC,EAAE,KAAK,GAAG;AACX,oBAAY,KAAK,KAAK;AAAA,MAC1B;AACA,YAAM,QAAQ,aAAa,KAAK,KAAK,iBAAiB;AACtD,YAAM,WAAW,IAAI,MAAM,GAAG;AAC9B,aAAO,MAAM,UAAU,KAAK;AAE5B,UAAI,MAAM,QAAQ,GAAG,GAAG;AACpB,cAAM,QAAQ,GAAG,EAAE,QAAQ,SAAU,GAAG;AACpC,gBAAM,gBAAgB,EAAE,MAAM,GAAG;AACjC,iBAAO,MAAM,eAAe,KAAK;AAAA,QACrC,CAAC;AAAA,MACL;AAEA,UAAI,SAAS,SAAS,KAAK,cAAc,cAAc,GAAG;AACtD;AACA,SAAC,MAAM,QAAQ,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,QAAQ,SAAU,GAAG;AACpD,cAAI,gBAAgB,EAAE,MAAM,GAAG;AAE/B,gBAAM,IAAI,CAAC,EAAE,OAAO,QAAQ;AAC5B,YAAE,MAAM;AACR,0BAAgB,cAAc,OAAO,CAAC;AAGtC,cAAI,EAAE,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,SAAS,cAAc,KAAK,GAAG,CAAC,GAAG;AAC/D,mBAAO,MAAM,eAAe,KAAK;AAAA,UACrC;AAAA,QACJ,CAAC;AAAA,MACL;AAEA,UAAI,gBAAgB,KAAK,MAAM,SAAS,KAAK,CAAC,gBAAgB,KAAK,MAAM,MAAM,GAAG;AAC9E,cAAM,OAAO,CAAC,GAAG,EAAE,OAAO,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC;AAClD,aAAK,QAAQ,SAAUD,MAAK;AACxB,iBAAO,eAAe,YAAYA,MAAK;AAAA,YACnC,YAAY;AAAA,YACZ,MAAM;AACF,qBAAO;AAAA,YACX;AAAA,YACA,IAAIE,QAAO;AACP,oBAAM,OAAOA,WAAU,WAAW,MAAM,UAAUA,MAAK,IAAIA;AAAA,YAC/D;AAAA,UACJ,CAAC;AAAA,QACL,CAAC;AAAA,MACL;AAAA,IACJ;AACA,aAAS,YAAY,KAAK,OAAO;AAC7B,UAAI,EAAE,MAAM,QAAQ,GAAG,KAAK,MAAM,QAAQ,GAAG,EAAE,SAAS;AACpD,cAAM,QAAQ,GAAG,IAAI,CAAC,KAAK;AAC3B,mBAAW,KAAK,IAAI;AAAA,MACxB;AACA,UAAI,EAAE,MAAM,QAAQ,KAAK,KAAK,MAAM,QAAQ,KAAK,EAAE,SAAS;AACxD,oBAAY,OAAO,GAAG;AAAA,MAC1B;AAAA,IACJ;AACA,aAAS,aAAa,KAAK,KAAK,mBAAmB;AAE/C,UAAI,mBAAmB;AACnB,cAAM,YAAY,GAAG;AAAA,MACzB;AAEA,UAAI,gBAAgB,KAAK,MAAM,KAAK,KAAK,gBAAgB,KAAK,MAAM,MAAM,GAAG;AACzE,YAAI,OAAO,QAAQ;AACf,gBAAM,QAAQ;AAAA,MACtB;AACA,UAAI,QAAQ,MAAM,QAAQ,GAAG,IACvB,IAAI,IAAI,SAAU,GAAG;AAAE,eAAO,kBAAkB,KAAK,CAAC;AAAA,MAAG,CAAC,IAC1D,kBAAkB,KAAK,GAAG;AAEhC,UAAI,gBAAgB,KAAK,MAAM,MAAM,MAAM,YAAY,KAAK,KAAK,OAAO,UAAU,YAAY;AAC1F,gBAAQ,UAAU;AAAA,MACtB;AAEA,UAAI,gBAAgB,KAAK,MAAM,SAAS,KAAK,gBAAgB,KAAK,MAAM,MAAM,GAAG;AAC7E,YAAI,MAAM,QAAQ,GAAG;AACjB,kBAAQ,IAAI,IAAI,CAACC,SAAQ;AAAE,mBAAO,MAAM,UAAUA,IAAG;AAAA,UAAG,CAAC;AAAA;AAEzD,kBAAQ,MAAM,UAAU,GAAG;AAAA,MACnC;AACA,aAAO;AAAA,IACX;AACA,aAAS,kBAAkB,KAAK,OAAO;AACnC,UAAI,CAAC,cAAc,0BAA0B,KAAK,QAAQ;AACtD,eAAO;AACX,UAAI,CAAC,gBAAgB,KAAK,MAAM,OAAO,KAAK,CAAC,gBAAgB,KAAK,MAAM,KAAK,KAAK,CAAC,MAAM,QAAQ,KAAK,GAAG;AACrG,cAAM,qBAAqB,gBAAgB,KAAK,KAAK,cAAc,eAAe,KAAM,OAAO,cAAc,KAAK,MAAM,WAAW,GAAG,KAAK,EAAE,CAAC,CAAC;AAC/I,YAAI,sBAAuB,CAAC,YAAY,KAAK,KAAK,gBAAgB,KAAK,MAAM,OAAO,GAAI;AACpF,kBAAQ,OAAO,KAAK;AAAA,QACxB;AAAA,MACJ;AACA,aAAO;AAAA,IACX;AAGA,aAAS,UAAUC,OAAM;AACrB,YAAM,eAAe,uBAAO,OAAO,IAAI;AAGvC,8BAAwB,cAAc,MAAM,SAAS,QAAQ;AAC7D,aAAO,KAAK,MAAM,OAAO,EAAE,QAAQ,SAAU,WAAW;AACpD,cAAM,aAAaA,MAAK,SAAS,KAAK,aAAa,SAAS;AAC5D,YAAI,YAAY;AACZ,cAAI;AACA,gBAAI,SAAS;AACb,kBAAM,qBAAqB,MAAM,QAAQ,MAAM,IAAI,GAAG,UAAU;AAChE,kBAAM,gBAAgB,MAAM,QAAQ,SAAS;AAC7C,gBAAI,OAAO,kBAAkB,YAAY;AACrC,kBAAI;AACA,yBAAS,cAAc,kBAAkB;AAAA,cAC7C,SACO,GAAG;AACN,yBAAS;AAAA,cACb;AACA,kBAAI,kBAAkB,OAAO;AACzB,wBAAQ;AACR;AAAA,cACJ;AAAA,YACJ,OACK;AACD,uBAAS,MAAM,QAAQ,kBAAkB;AAAA,YAC7C;AACA,4BAAgB,MAAM;AAAA,UAC1B,SACO,IAAI;AAGP,gBAAI,GAAG,SAAS;AACZ,sBAAQ;AAAA,qBACHA,MAAK,SAAS;AACnB,sBAAQ,MAAM,GAAG,gCAAgC,UAAU,CAAC;AAAA,UACpE;AAAA,QACJ;AAAA,MACJ,CAAC;AAAA,IACL;AAGA,aAAS,gBAAgB,QAAQ,MAAM;AACnC,aAAO,KAAK,MAAM,EAAE,QAAQ,SAAU,KAAK;AACvC,cAAM,QAAQ,OAAO,GAAG;AACxB,cAAM,UAAU,OAAO,OAAO,MAAM,MAAM;AAI1C,YAAI,OAAO,UAAU,YAAY,UAAU,QAAQ,CAAC,MAAM,QAAQ,KAAK,KAAK,cAAc,cAAc,GAAG;AAEvG,0BAAgB,OAAO,OAAO;AAAA,QAClC,OACK;AAGD,cAAI,CAAC,OAAO,MAAM,QAAQ,MAAM,GAAG,CAAC,KAAM,gBAAgB,SAAS,MAAM,MAAM,KAAK,cAAc,gBAAgB,GAAI;AAClH,mBAAO,SAAS,KAAK;AAAA,UACzB;AAAA,QACJ;AAAA,MACJ,CAAC;AAAA,IACL;AAEA,aAAS,mBAAmB;AACxB,UAAI,OAAO,kBAAkB,aAAa;AACtC,sBAAc,QAAQ,SAAU,cAAc;AAC1C,0BAAgB,YAAY;AAAA,QAChC,CAAC;AAAA,MACL;AAAA,IACJ;AACA,aAAS,aAAaA,OAAM,YAAY;AACpC,UAAI,OAAO,cAAc;AACrB;AACJ,YAAM,SAAS,OAAO,cAAc,WAAW,YAAY;AAC3D,YAAMC,OAAM,MAAM,IAAI;AACtB,aAAO,KAAKA,IAAG,EAAE,QAAQ,SAAU,QAAQ;AACvC,YAAI,WAAW,MAAM,OAAO,YAAY,QAAQ,CAAC,MAAM,GAAG;AAEtD,gBAAM,OAAO,OAAO,MAAM,IAAI,EAAE,IAAI,SAAU,KAAK,GAAG;AAClD,gBAAI,MAAM,GAAG;AACT,oBAAM,IAAI,UAAU,OAAO,MAAM;AAAA,YACrC;AACA,mBAAO,UAAU,GAAG;AAAA,UACxB,CAAC;AACD,eAAM,cAAc,MAAM,QAAQ,KAAK,KAAK,GAAG,CAAC,KAAM,CAAC,eAAe,CAAC,OAAOD,OAAM,IAAI,GAAG;AACvF,mBAAO,KAAK,KAAK,GAAG,GAAGC,KAAI,MAAM,CAAC;AAAA,UACtC;AAAA,QACJ;AAAA,MACJ,CAAC;AAAA,IACL;AACA,aAAS,eAAeD,OAAM;AAC1B,UAAI;AACJ,YAAM,UAAU,oBAAI,IAAI;AACxB,aAAO,KAAKA,KAAI,EAAE,QAAQ,SAAU,KAAK;AACrC,YAAI,CAAC,QAAQ,IAAI,GAAG,GAAG;AACnB,mBAAS,gBAAgB,KAAK,MAAM,SAAS;AAC7C,cAAI,OAAO,WAAW,YAAY;AAC9B,gBAAI;AACA,oBAAM,QAAQ,kBAAkB,KAAK,OAAOA,MAAK,GAAG,CAAC,CAAC;AACtD,cAAC,CAAC,EAAE,OAAO,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,GAAG,EAAG,QAAQ,SAAO;AACtD,wBAAQ,IAAI,GAAG;AACf,gBAAAA,MAAK,GAAG,IAAI;AAAA,cAChB,CAAC;AAAA,YACL,SACO,KAAK;AACR,sBAAQ;AAAA,YACZ;AAAA,UACJ;AAAA,QACJ;AAAA,MACJ,CAAC;AAAA,IACL;AACA,aAAS,mBAAmBA,OAAM;AAC9B,YAAM,KAAK,QAAQ,CAAC,QAAQ;AAExB,YAAI,CAAC,IAAI,QAAQ,GAAG;AAChB;AACJ,YAAI,OAAOA,MAAK,GAAG,MAAM;AACrB,UAAAA,MAAK,GAAG,IAAI;AAAA,MACpB,CAAC;AACD,aAAOA;AAAA,IACX;AACA,aAAS,wBAAwB,KAAKE,UAASC,WAAU,SAAS,OAAO;AACrE,aAAO,KAAKA,SAAQ,EAAE,QAAQ,SAAU,KAAK;AACzC,YAAI,CAAC,OAAO,KAAK,IAAI,MAAM,GAAG,CAAC,GAAG;AAC9B,iBAAO,KAAK,IAAI,MAAM,GAAG,GAAGA,UAAS,GAAG,CAAC;AACzC,cAAI;AACA,sBAAU,GAAG,IAAI;AACrB,WAACD,SAAQ,GAAG,KAAK,CAAC,GAAG,QAAQ,SAAU,GAAG;AACtC,gBAAI,OAAO,KAAK,EAAE,MAAM,GAAG,CAAC;AACxB;AACJ,mBAAO,KAAK,EAAE,MAAM,GAAG,GAAGC,UAAS,GAAG,CAAC;AAAA,UAC3C,CAAC;AAAA,QACL;AAAA,MACJ,CAAC;AAAA,IACL;AACA,aAAS,OAAO,KAAK,MAAM;AACvB,UAAI,IAAI;AACR,UAAI,CAAC,cAAc,cAAc;AAC7B,eAAO,CAAC,KAAK,KAAK,GAAG,CAAC;AAC1B,WAAK,MAAM,GAAG,EAAE,EAAE,QAAQ,SAAUP,MAAK;AACrC,YAAK,EAAEA,IAAG,KAAK,CAAC;AAAA,MACpB,CAAC;AACD,YAAM,MAAM,KAAK,KAAK,SAAS,CAAC;AAChC,UAAI,OAAO,MAAM;AACb,eAAO;AAAA;AAEP,eAAO,OAAO;AAAA,IACtB;AACA,aAAS,OAAO,KAAK,MAAM,OAAO;AAC9B,UAAI,IAAI;AACR,UAAI,CAAC,cAAc,cAAc;AAC7B,eAAO,CAAC,KAAK,KAAK,GAAG,CAAC;AAC1B,WAAK,MAAM,GAAG,EAAE,EAAE,QAAQ,SAAUA,MAAK;AAGrC,QAAAA,OAAM,YAAYA,IAAG;AACrB,YAAI,OAAO,MAAM,YAAY,EAAEA,IAAG,MAAM,QAAW;AAC/C,YAAEA,IAAG,IAAI,CAAC;AAAA,QACd;AACA,YAAI,OAAO,EAAEA,IAAG,MAAM,YAAY,MAAM,QAAQ,EAAEA,IAAG,CAAC,GAAG;AAErD,cAAI,MAAM,QAAQ,EAAEA,IAAG,CAAC,GAAG;AACvB,cAAEA,IAAG,EAAE,KAAK,CAAC,CAAC;AAAA,UAClB,OACK;AACD,cAAEA,IAAG,IAAI,CAAC,EAAEA,IAAG,GAAG,CAAC,CAAC;AAAA,UACxB;AAEA,cAAI,EAAEA,IAAG,EAAE,EAAEA,IAAG,EAAE,SAAS,CAAC;AAAA,QAChC,OACK;AACD,cAAI,EAAEA,IAAG;AAAA,QACb;AAAA,MACJ,CAAC;AAGD,YAAM,MAAM,YAAY,KAAK,KAAK,SAAS,CAAC,CAAC;AAC7C,YAAM,cAAc,gBAAgB,KAAK,KAAK,GAAG,GAAG,MAAM,MAAM;AAChE,YAAM,eAAe,MAAM,QAAQ,KAAK;AACxC,UAAI,YAAY,cAAc,2BAA2B;AAEzD,UAAI,CAAC,aAAa,gBAAgB,KAAK,MAAM,KAAK,GAAG;AACjD,oBAAY;AACZ,YAAK,CAAC,YAAY,EAAE,GAAG,CAAC,KAAK,MAAM,MAAM,GAAG,MAAM,KAAO,MAAM,QAAQ,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,WAAW,MAAM,MAAM,GAAG,GAAI;AACnH,YAAE,GAAG,IAAI;AAAA,QACb;AAAA,MACJ;AACA,UAAI,UAAU,UAAU,GAAG;AACvB,UAAE,GAAG,IAAI,UAAU,EAAE,GAAG,CAAC;AAAA,MAC7B,WACS,MAAM,QAAQ,EAAE,GAAG,CAAC,GAAG;AAC5B,YAAI,aAAa,eAAe,cAAc;AAC1C,YAAE,GAAG,IAAI,cAAc,0BAA0B,IAAI,EAAE,GAAG,EAAE,OAAO,KAAK,KAAK,MAAM,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC;AAAA,QAC7I,WACS,CAAC,aAAa,QAAQ,WAAW,MAAM,QAAQ,YAAY,GAAG;AACnE,YAAE,GAAG,IAAI;AAAA,QACb,OACK;AACD,YAAE,GAAG,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC;AAAA,QAClC;AAAA,MACJ,WACS,EAAE,GAAG,MAAM,UAAa,aAAa;AAC1C,UAAE,GAAG,IAAI,eAAe,QAAQ,CAAC,KAAK;AAAA,MAC1C,WACS,aAAa,EAAE,EAAE,GAAG,MAAM,UAC/B,gBAAgB,KAAK,MAAM,MAAM,KACjC,gBAAgB,KAAK,MAAM,KAAK,IAAI;AACpC,UAAE,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,KAAK;AAAA,MAC3B,OACK;AACD,UAAE,GAAG,IAAI;AAAA,MACb;AAAA,IACJ;AAEA,aAAS,iBAAiBC,OAAM;AAC5B,MAAAA,MAAK,QAAQ,SAAU,KAAK;AACxB,eAAO,KAAK,OAAO,CAAC,CAAC,EAAE,QAAQ,SAAU,KAAK;AAI1C,cAAI,MAAM,QAAQ,GAAG;AACjB;AACJ,gBAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,OAAO,QAAQ,GAAG,KAAK,CAAC,CAAC;AAEjD,gBAAM,QAAQ,GAAG,EAAE,OAAO,GAAG,EAAE,QAAQ,SAAU,GAAG;AAChD,gBAAI,IAAI,KAAK,CAAC,KAAK,cAAc,sBAAsB,GAAG;AACtD,oBAAM,IAAI,UAAU,CAAC;AACrB,kBAAI,MAAM,OAAO,MAAM,QAAQ,GAAG,EAAE,QAAQ,CAAC,MAAM,IAAI;AACnD,sBAAM,QAAQ,GAAG,EAAE,KAAK,CAAC;AACzB,2BAAW,CAAC,IAAI;AAAA,cACpB;AAAA,YACJ;AAAA,UACJ,CAAC;AAED,gBAAM,QAAQ,GAAG,EAAE,OAAO,GAAG,EAAE,QAAQ,SAAU,GAAG;AAChD,gBAAI,EAAE,SAAS,KAAK,QAAQ,KAAK,CAAC,KAAK,cAAc,sBAAsB,GAAG;AAC1E,oBAAM,IAAI,WAAW,GAAG,GAAG;AAC3B,kBAAI,MAAM,OAAO,MAAM,QAAQ,GAAG,EAAE,QAAQ,CAAC,MAAM,IAAI;AACnD,sBAAM,QAAQ,GAAG,EAAE,KAAK,CAAC;AACzB,2BAAW,CAAC,IAAI;AAAA,cACpB;AAAA,YACJ;AAAA,UACJ,CAAC;AACD,gBAAM,QAAQ,GAAG,EAAE,QAAQ,SAAU,GAAG;AACpC,kBAAM,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,MAAM,QAAQ,GAAG,EAAE,OAAO,SAAU,GAAG;AACnE,qBAAO,MAAM;AAAA,YACjB,CAAC,CAAC;AAAA,UACN,CAAC;AAAA,QACL,CAAC;AAAA,MACL,CAAC;AAAA,IACL;AACA,aAAS,gBAAgB,KAAK,MAAM;AAChC,YAAM,UAAU,CAAC,EAAE,OAAO,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,GAAG;AACvD,YAAM,OAAO,OAAO,KAAK,IAAI;AAC7B,YAAM,WAAW,QAAQ,KAAK,CAAAD,SAAO,KAAK,SAASA,IAAG,CAAC;AACvD,aAAO,WAAW,KAAK,QAAQ,IAAI;AAAA,IACvC;AACA,aAAS,WAAW,KAAK;AACrB,YAAM,YAAY,OAAO,KAAK,KAAK;AACnC,YAAM,UAAU,CAAC,EAAE,OAAO,UAAU,IAAI,OAAK,MAAM,CAAC,CAAC,CAAC;AACtD,aAAO,QAAQ,KAAK,SAAU,MAAM;AAChC,eAAO,MAAM,QAAQ,IAAI,IAAI,KAAK,SAAS,GAAG,IAAI,KAAK,GAAG;AAAA,MAC9D,CAAC;AAAA,IACL;AACA,aAAS,iBAAiB,QAAQ,UAAU;AACxC,YAAM,UAAU,CAAC,EAAE,OAAO,GAAG,QAAQ;AACrC,aAAO,QAAQ,KAAK,SAAU,SAAS;AACnC,cAAM,QAAQ,IAAI,MAAM,OAAO;AAC/B,eAAO,SAAS,WAAW,MAAM,CAAC,CAAC;AAAA,MACvC,CAAC;AAAA,IACL;AAEA,aAAS,iBAAiB,KAAK;AAE3B,UAAI,IAAI,MAAM,QAAQ,KAAK,CAAC,IAAI,MAAM,SAAS,GAAG;AAC9C,eAAO;AAAA,MACX;AACA,UAAI,cAAc;AAClB,UAAI;AACJ,YAAM,UAAU,IAAI,MAAM,CAAC,EAAE,MAAM,EAAE;AACrC,eAAS,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAK;AACrC,eAAO,IAAI,MAAM,IAAI,CAAC;AACtB,YAAI,CAAC,WAAW,QAAQ,CAAC,CAAC,GAAG;AACzB,wBAAc;AACd;AAAA,QACJ;AACA,YAAK,QAAQ,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC,MAAM,OACtC,SAAS,OACR,WAAW,KAAK,QAAQ,CAAC,CAAC,KAAK,2BAA2B,KAAK,IAAI,KACnE,QAAQ,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC,EAAE,MAAM,IAAI,GAAI;AAChD;AAAA,QACJ;AAAA,MACJ;AACA,aAAO;AAAA,IACX;AACA,aAAS,qBAAqB,KAAK;AAC/B,aAAO,cAAc,yBAAyB,KAAK,gBAAgB,GAAG;AAAA,IAC1E;AACA,aAAS,gBAAgB,KAAK;AAC1B,YAAM,IAAI,QAAQ,UAAU,IAAI;AAEhC,UAAI,IAAI,MAAM,QAAQ,GAAG;AACrB,eAAO;AAAA,MACX;AAEA,UAAI,iBAAiB,GAAG,GAAG;AACvB,eAAO;AAAA,MACX;AAEA,YAAM,iBAAiB;AAEvB,YAAM,aAAa;AAEnB,YAAM,qBAAqB;AAE3B,YAAM,qBAAqB;AAE3B,YAAM,gCAAgC;AAEtC,aAAO,CAAC,iBAAiB,KAAK,gBAAgB,gBAAgB,YAAY,oBAAoB,oBAAoB,6BAA6B;AAAA,IACnJ;AAGA,aAAS,aAAa,KAAK;AACvB,UAAI,CAAC,gBAAgB,KAAK,MAAM,KAAK,KACjC,CAAC,gBAAgB,KAAK,MAAM,MAAM,KAClC,GAAG,GAAG,MAAM,UAAU;AACtB,eAAO,SAAS,GAAG;AAAA,MACvB,OACK;AACD,eAAO,eAAe,UAAU,GAAG,CAAC;AAAA,MACxC;AAAA,IACJ;AAEA,aAAS,eAAe,MAAM;AAC1B,YAAM,MAAM;AAAA,QACR,CAAC,wBAAwB,OAAO,GAAG;AAAA,QACnC,CAAC,wBAAwB,MAAM,GAAG;AAAA,QAClC,CAAC,wBAAwB,MAAM,GAAG;AAAA,QAClC,CAAC,wBAAwB,KAAK,GAAG,CAAC;AAAA,MACtC;AACA,aAAO,IAAI,IAAI;AAAA,IACnB;AAEA,aAAS,UAAU,KAAK;AACpB,UAAI,OAAO,wBAAwB;AACnC,UAAI,gBAAgB,KAAK,MAAM,OAAO;AAClC,eAAO,wBAAwB;AAAA,eAC1B,gBAAgB,KAAK,MAAM,OAAO;AACvC,eAAO,wBAAwB;AAAA,eAC1B,gBAAgB,KAAK,MAAM,KAAK;AACrC,eAAO,wBAAwB;AAAA,eAC1B,gBAAgB,KAAK,MAAM,MAAM;AACtC,eAAO,wBAAwB;AACnC,aAAO;AAAA,IACX;AACA,aAAS,YAAY,KAAK;AACtB,aAAO,QAAQ;AAAA,IACnB;AAEA,aAAS,qBAAqB;AAE1B,aAAO,KAAK,MAAM,MAAM,EAAE,KAAK,SAAO;AAClC,YAAI,gBAAgB,KAAK,MAAM,MAAM,GAAG;AACpC,kBAAQ,MAAM,GAAG,8DAA8D,GAAG,CAAC;AACnF,iBAAO;AAAA,QACX,WACS,gBAAgB,KAAK,MAAM,KAAK,GAAG;AACxC,kBAAQ,MAAM,GAAG,6DAA6D,GAAG,CAAC;AAClF,iBAAO;AAAA,QACX;AACA,eAAO;AAAA,MACX,CAAC;AAAA,IACL;AACA,WAAO;AAAA,MACH,SAAS,OAAO,OAAO,CAAC,GAAG,MAAM,OAAO;AAAA,MACxC,MAAM,OAAO,OAAO,YAAY,IAAI;AAAA,MACpC;AAAA,MACA,WAAW,OAAO,OAAO,CAAC,GAAG,SAAS;AAAA,MACtC;AAAA,MACA,YAAY,OAAO,OAAO,CAAC,GAAG,UAAU;AAAA,IAC5C;AAAA,EACJ;AACJ;AAGA,SAAS,eAAe,SAAS;AAC7B,QAAM,cAAc,CAAC;AACrB,QAAM,WAAW,uBAAO,OAAO,IAAI;AACnC,MAAI,SAAS;AAGb,SAAO,KAAK,OAAO,EAAE,QAAQ,SAAU,KAAK;AACxC,gBAAY,KAAK,CAAC,EAAE,OAAO,QAAQ,GAAG,GAAG,GAAG,CAAC;AAAA,EACjD,CAAC;AAGD,SAAO,QAAQ;AACX,aAAS;AACT,aAAS,IAAI,GAAG,IAAI,YAAY,QAAQ,KAAK;AACzC,eAAS,KAAK,IAAI,GAAG,KAAK,YAAY,QAAQ,MAAM;AAChD,cAAM,YAAY,YAAY,CAAC,EAAE,OAAO,SAAU,GAAG;AACjD,iBAAO,YAAY,EAAE,EAAE,QAAQ,CAAC,MAAM;AAAA,QAC1C,CAAC;AACD,YAAI,UAAU,QAAQ;AAClB,sBAAY,CAAC,IAAI,YAAY,CAAC,EAAE,OAAO,YAAY,EAAE,CAAC;AACtD,sBAAY,OAAO,IAAI,CAAC;AACxB,mBAAS;AACT;AAAA,QACJ;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AAGA,cAAY,QAAQ,SAAU,YAAY;AACtC,iBAAa,WAAW,OAAO,SAAU,GAAG,GAAG,MAAM;AACjD,aAAO,KAAK,QAAQ,CAAC,MAAM;AAAA,IAC/B,CAAC;AACD,UAAM,YAAY,WAAW,IAAI;AACjC,QAAI,cAAc,UAAa,OAAO,cAAc,UAAU;AAC1D,eAAS,SAAS,IAAI;AAAA,IAC1B;AAAA,EACJ,CAAC;AACD,SAAO;AACX;AAIA,SAAS,UAAU,MAAM;AACrB,SAAO,SAAS,SAAY,OAAO,IAAI;AAC3C;AAGA,SAAS,YAAY,KAAK;AACtB,MAAI,QAAQ;AACR,WAAO;AACX,SAAO;AACX;AACA,SAAS,YAAY,KAAK;AACtB,SAAQ,OAAO,QAAQ,aAClB,IAAI,CAAC,MAAM,OAAO,IAAI,CAAC,MAAM,QAC9B,IAAI,IAAI,SAAS,CAAC,MAAM,IAAI,CAAC,IAC3B,IAAI,UAAU,GAAG,IAAI,SAAS,CAAC,IAC/B;AACV;;;AJvgCA,SAAS,oBAAoB;AAL7B,IAAI;AAAJ,IAAQ;AAAR,IAAY;AAQZ,IAAM,iBAAkB,WAAW,QAAQ,OAAO,QAAQ,IAAI,yBACxD,OAAO,QAAQ,IAAI,sBAAsB,IACzC;AACN,IAAM,eAAe,MAAM,KAAK,YAAY,QAAQ,YAAY,SAAS,SAAS,QAAQ,cAAc,QAAQ,OAAO,SAAS,SAAS,GAAG,UAAU,QAAQ,OAAO,SAAS,MAAM,KAAK,YAAY,QAAQ,YAAY,SAAS,SAAS,QAAQ,aAAa,QAAQ,OAAO,SAAS,SAAS,GAAG,MAAM,CAAC;AAC3S,IAAI,aAAa;AACb,QAAM,QAAQ,OAAO,YAAY,MAAM,UAAU,EAAE,CAAC,CAAC;AACrD,MAAI,QAAQ,gBAAgB;AACxB,UAAM,MAAM,sDAAsD,cAAc,oGAAoG;AAAA,EACxL;AACJ;AAEA,IAAM,MAAM,UAAU,QAAQ,MAAM,CAAC;AACrC,IAAM,SAAS,IAAI,YAAY;AAAA,EAC3B,KAAK,QAAQ;AAAA,EACb,KAAK,MAAM;AACP,WAAO;AAAA,EACX;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA;AAAA,EAGA,SAAS,CAAC,SAAS;AACf,QAAI,OAAO,cAAY,aAAa;AAChC,aAAO,UAAQ,IAAI;AAAA,IACvB,WACS,KAAK,MAAM,SAAS,GAAG;AAE5B,aAAO,KAAK,MAAM,aAAa,MAAM,MAAM,CAAC;AAAA,IAChD,OACK;AACD,YAAM,MAAM,8CAA8C;AAAA,IAC9D;AAAA,EACJ;AACJ,CAAC;AACD,IAAM,cAAc,SAAS,OAAO,MAAM,MAAM;AAC5C,QAAM,SAAS,OAAO,MAAM,KAAK,MAAM,GAAG,IAAI;AAC9C,SAAO,OAAO;AAClB;AACA,YAAY,WAAW,SAAU,MAAM,MAAM;AACzC,SAAO,OAAO,MAAM,KAAK,MAAM,GAAG,IAAI;AAC1C;AACA,YAAY,YAAY;AACxB,YAAY,aAAa;AACzB,YAAY,kBAAkB;AAC9B,IAAO,cAAQ;;;AK5Df,IAAO,iBAAQ;",
6
+ "names": ["DefaultValuesForTypeKey", "key", "args", "value", "val", "argv", "env", "aliases", "defaults"]
7
+ }
package/dist/preload.mjs CHANGED
@@ -3,3 +3,4 @@ import { createRequire, register } from "node:module";
3
3
  process.setSourceMapsEnabled(true);
4
4
  register("./loader-module.mjs", import.meta.url);
5
5
  createRequire(import.meta.url)("./loader-commonjs.cjs");
6
+ //# sourceMappingURL=preload.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/preload.mts"],
4
+ "sourcesContent": ["import { createRequire, register } from 'node:module'\n\nprocess.setSourceMapsEnabled(true)\nregister('./loader-module.mjs', import.meta.url)\ncreateRequire(import.meta.url)('./loader-commonjs.cjs')\n"],
5
+ "mappings": ";AAAA,SAAS,eAAe,gBAAgB;AAExC,QAAQ,qBAAqB,IAAI;AACjC,SAAS,uBAAuB,YAAY,GAAG;AAC/C,cAAc,YAAY,GAAG,EAAE,uBAAuB;",
6
+ "names": []
7
+ }
package/dist/tsrun.mjs CHANGED
@@ -1090,7 +1090,7 @@ function _help() {
1090
1090
  ${$blu}${$und}Options:${$rst}
1091
1091
 
1092
1092
  ${$wht}-h --help ${$rst} Help! You're reading it now!
1093
- ${$wht}-v --version ${$rst} Version! This one: ${"0.5.23"}!
1093
+ ${$wht}-v --version ${$rst} Version! This one: ${"0.5.26"}!
1094
1094
  ${$wht}-e --eval ${$rst} Evaluate the script
1095
1095
  ${$wht}-p --print ${$rst} Evaluate the script and print the result
1096
1096
  ${$wht} --force-esm${$rst} Force transpilation of ".ts" files to EcmaScript modules
@@ -1133,7 +1133,7 @@ main(import.meta.url, (args) => {
1133
1133
  case "help":
1134
1134
  return _help();
1135
1135
  case "version":
1136
- console.log(`v${"0.5.23"}`);
1136
+ console.log(`v${"0.5.26"}`);
1137
1137
  process.exitCode = 1;
1138
1138
  return;
1139
1139
  case "eval":
@@ -1147,7 +1147,7 @@ main(import.meta.url, (args) => {
1147
1147
  }
1148
1148
  if (!_script) {
1149
1149
  return new Promise((resolve2, reject) => {
1150
- console.log(`Welcome to Node.js ${process.version} (tsrun v${"0.5.23"}).`);
1150
+ console.log(`Welcome to Node.js ${process.version} (tsrun v${"0.5.26"}).`);
1151
1151
  console.log('Type ".help" for more information.');
1152
1152
  const repl = _repl.start();
1153
1153
  const history = _path.resolve(_os.homedir(), ".node_repl_history");
@@ -1222,3 +1222,4 @@ yargs-parser/build/lib/index.js:
1222
1222
  * SPDX-License-Identifier: ISC
1223
1223
  *)
1224
1224
  */
1225
+ //# sourceMappingURL=tsrun.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/tsrun.mts", "../node_modules/yargs-parser/build/lib/index.js", "../node_modules/yargs-parser/build/lib/string-utils.js", "../node_modules/yargs-parser/build/lib/tokenize-arg-string.js", "../node_modules/yargs-parser/build/lib/yargs-parser-types.js", "../node_modules/yargs-parser/build/lib/yargs-parser.js", "../src/cli.mts"],
4
+ "sourcesContent": ["#!/usr/bin/env node\n\nimport _os from 'node:os'\nimport _path from 'node:path'\nimport _repl from 'node:repl'\nimport _module from 'node:module'\n\nimport _yargs from 'yargs-parser'\n\nimport { main } from './cli.mjs'\n\n/** Reset all colors to default */\nconst $rst = process.stdout.isTTY ? '\\u001b[0m' : ''\n/** Set _underline_ on */\nconst $und = process.stdout.isTTY ? '\\u001b[4m' : ''\n/** Set _somewhat gray_ on */\nconst $gry = process.stdout.isTTY ? '\\u001b[38;5;240m' : ''\n/** Set _brighter blue_ on */\nconst $blu = process.stdout.isTTY ? '\\u001b[38;5;69m' : ''\n/** Set _full bright white_ on */\nconst $wht = process.stdout.isTTY ? '\\u001b[1;38;5;255m' : ''\n\n/** Version injected by esbuild */\ndeclare const __version: string\n\n/** Our minimalistic help */\nfunction _help(): void {\n console.log(`${$blu}${$und}Usage:${$rst}\n\n ${$wht}tsrun${$rst} ${$gry}[${$rst}--options${$gry}] script.ts [...${$rst}script args${$gry}]${$rst}\n\n ${$blu}${$und}Options:${$rst}\n\n ${$wht}-h --help ${$rst} Help! You're reading it now!\n ${$wht}-v --version ${$rst} Version! This one: ${__version}!\n ${$wht}-e --eval ${$rst} Evaluate the script\n ${$wht}-p --print ${$rst} Evaluate the script and print the result\n ${$wht} --force-esm${$rst} Force transpilation of \".ts\" files to EcmaScript modules\n ${$wht} --force-cjs${$rst} Force transpilation of \".ts\" files to CommonJS modules\n\n ${$blu}${$und}Description:${$rst}\n\n ${$wht}tsrun${$rst} is a minimalistic TypeScript loader, using \"esbuild\" to transpile TS\n code to JavaScript, and running it. Being extremely un-sofisticated, it's\n not meant to to be in any way a replacement for more complete alternatives\n like \"ts-node\".\n`)\n\n process.exitCode = 1\n}\n\n/** Process the command line */\nmain(import.meta.url, (args: string[]): void | Promise<void> => {\n let _script: string | undefined\n let _scriptArgs: string[] = []\n let _print: boolean = false\n let _eval: boolean = false\n\n /* Yargs-parse our arguments */\n const parsed = _yargs(args, {\n configuration: {\n 'camel-case-expansion': false,\n 'halt-at-non-option': true,\n 'strip-aliased': true,\n 'strip-dashed': true,\n },\n\n alias: {\n 'version': [ 'v' ],\n 'help': [ 'h' ],\n 'eval': [ 'e' ],\n 'print': [ 'p' ],\n },\n\n boolean: [ 'help', 'eval', 'print', 'force-esm', 'version', 'force-cjs' ],\n })\n\n // Parse options, leaving script and scriptArgs with our code to run\n for (const [ key, value ] of Object.entries(parsed)) {\n switch (key) {\n case '_': // extra arguments\n [ _script, ..._scriptArgs ] = value\n break\n case 'help': // help screen\n return _help()\n case 'version': // version dump\n console.log(`v${__version}`)\n process.exitCode = 1\n return\n case 'eval': // eval script\n _eval = value\n break\n case 'print': // eval script and print return value\n _print = true\n _eval = true\n break\n }\n }\n\n // Start the repl or run the script?\n if (! _script) {\n // No script? Then repl\n return new Promise((resolve, reject) => {\n // Some niceties for welcoming to tsrun\n console.log(`Welcome to Node.js ${process.version} (tsrun v${__version}).`)\n console.log('Type \".help\" for more information.')\n\n // Start our repl\n const repl = _repl.start()\n\n // Setup and track history\n const history = _path.resolve(_os.homedir(), '.node_repl_history')\n repl.setupHistory(history, (error) => {\n if (! error) return\n reject(error)\n repl.close()\n })\n\n // On exit, let the process exit\n repl.on('exit', () => resolve())\n })\n } else if (_eval) {\n // If we are evaluating a script, we need to use some node internals to do\n // all the tricks to run this... We a fake script running the code to\n // evaluate, instrumenting \"globalThis\" with all required vars and modules\n const script = `\n globalThis.module = module;\n globalThis.require = require;\n globalThis.exports = exports;\n globalThis.__dirname = __dirname;\n globalThis.__filename = __filename;\n\n for (const module of require('repl').builtinModules) {\n if (module.indexOf('/') >= 0) continue;\n if (Object.hasOwn(globalThis, module)) continue;\n Object.defineProperty(globalThis, module, { get: () => require(module) });\n }\n\n return require('node:vm').runInThisContext(${JSON.stringify(_script)}, '[eval]')\n `\n\n // Use the Node internal \"Module._compile\" to compile and run our script\n const result = (new _module('[eval]') as any)._compile(script, '[eval]')\n\n // If we need to print, then let's do it!\n if (_print) console.log(result)\n } else {\n // Resolve the _full_ path of the script, and tweak our process.argv\n // arguments, them simply import the script and let Node do its thing...\n _script = _path.resolve(process.cwd(), _script)\n process.argv = [ process.argv0, _script, ..._scriptArgs ]\n import(_script)\n }\n})\n", "/**\n * @fileoverview Main entrypoint for libraries using yargs-parser in Node.js\n * CJS and ESM environments.\n *\n * @license\n * Copyright (c) 2016, Contributors\n * SPDX-License-Identifier: ISC\n */\nvar _a, _b, _c;\nimport { format } from 'util';\nimport { normalize, resolve } from 'path';\nimport { camelCase, decamelize, looksLikeNumber } from './string-utils.js';\nimport { YargsParser } from './yargs-parser.js';\nimport { readFileSync } from 'fs';\n// See https://github.com/yargs/yargs-parser#supported-nodejs-versions for our\n// version support policy. The YARGS_MIN_NODE_VERSION is used for testing only.\nconst minNodeVersion = (process && process.env && process.env.YARGS_MIN_NODE_VERSION)\n ? Number(process.env.YARGS_MIN_NODE_VERSION)\n : 12;\nconst nodeVersion = (_b = (_a = process === null || process === void 0 ? void 0 : process.versions) === null || _a === void 0 ? void 0 : _a.node) !== null && _b !== void 0 ? _b : (_c = process === null || process === void 0 ? void 0 : process.version) === null || _c === void 0 ? void 0 : _c.slice(1);\nif (nodeVersion) {\n const major = Number(nodeVersion.match(/^([^.]+)/)[1]);\n if (major < minNodeVersion) {\n throw Error(`yargs parser supports a minimum Node.js version of ${minNodeVersion}. Read our version support policy: https://github.com/yargs/yargs-parser#supported-nodejs-versions`);\n }\n}\n// Creates a yargs-parser instance using Node.js standard libraries:\nconst env = process ? process.env : {};\nconst parser = new YargsParser({\n cwd: process.cwd,\n env: () => {\n return env;\n },\n format,\n normalize,\n resolve,\n // TODO: figure out a way to combine ESM and CJS coverage, such that\n // we can exercise all the lines below:\n require: (path) => {\n if (typeof require !== 'undefined') {\n return require(path);\n }\n else if (path.match(/\\.json$/)) {\n // Addresses: https://github.com/yargs/yargs/issues/2040\n return JSON.parse(readFileSync(path, 'utf8'));\n }\n else {\n throw Error('only .json config files are supported in ESM');\n }\n }\n});\nconst yargsParser = function Parser(args, opts) {\n const result = parser.parse(args.slice(), opts);\n return result.argv;\n};\nyargsParser.detailed = function (args, opts) {\n return parser.parse(args.slice(), opts);\n};\nyargsParser.camelCase = camelCase;\nyargsParser.decamelize = decamelize;\nyargsParser.looksLikeNumber = looksLikeNumber;\nexport default yargsParser;\n", "/**\n * @license\n * Copyright (c) 2016, Contributors\n * SPDX-License-Identifier: ISC\n */\nexport function camelCase(str) {\n // Handle the case where an argument is provided as camel case, e.g., fooBar.\n // by ensuring that the string isn't already mixed case:\n const isCamelCase = str !== str.toLowerCase() && str !== str.toUpperCase();\n if (!isCamelCase) {\n str = str.toLowerCase();\n }\n if (str.indexOf('-') === -1 && str.indexOf('_') === -1) {\n return str;\n }\n else {\n let camelcase = '';\n let nextChrUpper = false;\n const leadingHyphens = str.match(/^-+/);\n for (let i = leadingHyphens ? leadingHyphens[0].length : 0; i < str.length; i++) {\n let chr = str.charAt(i);\n if (nextChrUpper) {\n nextChrUpper = false;\n chr = chr.toUpperCase();\n }\n if (i !== 0 && (chr === '-' || chr === '_')) {\n nextChrUpper = true;\n }\n else if (chr !== '-' && chr !== '_') {\n camelcase += chr;\n }\n }\n return camelcase;\n }\n}\nexport function decamelize(str, joinString) {\n const lowercase = str.toLowerCase();\n joinString = joinString || '-';\n let notCamelcase = '';\n for (let i = 0; i < str.length; i++) {\n const chrLower = lowercase.charAt(i);\n const chrString = str.charAt(i);\n if (chrLower !== chrString && i > 0) {\n notCamelcase += `${joinString}${lowercase.charAt(i)}`;\n }\n else {\n notCamelcase += chrString;\n }\n }\n return notCamelcase;\n}\nexport function looksLikeNumber(x) {\n if (x === null || x === undefined)\n return false;\n // if loaded from config, may already be a number.\n if (typeof x === 'number')\n return true;\n // hexadecimal.\n if (/^0x[0-9a-f]+$/i.test(x))\n return true;\n // don't treat 0123 as a number; as it drops the leading '0'.\n if (/^0[^.]/.test(x))\n return false;\n return /^[-]?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(e[-+]?\\d+)?$/.test(x);\n}\n", "/**\n * @license\n * Copyright (c) 2016, Contributors\n * SPDX-License-Identifier: ISC\n */\n// take an un-split argv string and tokenize it.\nexport function tokenizeArgString(argString) {\n if (Array.isArray(argString)) {\n return argString.map(e => typeof e !== 'string' ? e + '' : e);\n }\n argString = argString.trim();\n let i = 0;\n let prevC = null;\n let c = null;\n let opening = null;\n const args = [];\n for (let ii = 0; ii < argString.length; ii++) {\n prevC = c;\n c = argString.charAt(ii);\n // split on spaces unless we're in quotes.\n if (c === ' ' && !opening) {\n if (!(prevC === ' ')) {\n i++;\n }\n continue;\n }\n // don't split the string if we're in matching\n // opening or closing single and double quotes.\n if (c === opening) {\n opening = null;\n }\n else if ((c === \"'\" || c === '\"') && !opening) {\n opening = c;\n }\n if (!args[i])\n args[i] = '';\n args[i] += c;\n }\n return args;\n}\n", "/**\n * @license\n * Copyright (c) 2016, Contributors\n * SPDX-License-Identifier: ISC\n */\nexport var DefaultValuesForTypeKey;\n(function (DefaultValuesForTypeKey) {\n DefaultValuesForTypeKey[\"BOOLEAN\"] = \"boolean\";\n DefaultValuesForTypeKey[\"STRING\"] = \"string\";\n DefaultValuesForTypeKey[\"NUMBER\"] = \"number\";\n DefaultValuesForTypeKey[\"ARRAY\"] = \"array\";\n})(DefaultValuesForTypeKey || (DefaultValuesForTypeKey = {}));\n", "/**\n * @license\n * Copyright (c) 2016, Contributors\n * SPDX-License-Identifier: ISC\n */\nimport { tokenizeArgString } from './tokenize-arg-string.js';\nimport { DefaultValuesForTypeKey } from './yargs-parser-types.js';\nimport { camelCase, decamelize, looksLikeNumber } from './string-utils.js';\nlet mixin;\nexport class YargsParser {\n constructor(_mixin) {\n mixin = _mixin;\n }\n parse(argsInput, options) {\n const opts = Object.assign({\n alias: undefined,\n array: undefined,\n boolean: undefined,\n config: undefined,\n configObjects: undefined,\n configuration: undefined,\n coerce: undefined,\n count: undefined,\n default: undefined,\n envPrefix: undefined,\n narg: undefined,\n normalize: undefined,\n string: undefined,\n number: undefined,\n __: undefined,\n key: undefined\n }, options);\n // allow a string argument to be passed in rather\n // than an argv array.\n const args = tokenizeArgString(argsInput);\n // tokenizeArgString adds extra quotes to args if argsInput is a string\n // only strip those extra quotes in processValue if argsInput is a string\n const inputIsString = typeof argsInput === 'string';\n // aliases might have transitive relationships, normalize this.\n const aliases = combineAliases(Object.assign(Object.create(null), opts.alias));\n const configuration = Object.assign({\n 'boolean-negation': true,\n 'camel-case-expansion': true,\n 'combine-arrays': false,\n 'dot-notation': true,\n 'duplicate-arguments-array': true,\n 'flatten-duplicate-arrays': true,\n 'greedy-arrays': true,\n 'halt-at-non-option': false,\n 'nargs-eats-options': false,\n 'negation-prefix': 'no-',\n 'parse-numbers': true,\n 'parse-positional-numbers': true,\n 'populate--': false,\n 'set-placeholder-key': false,\n 'short-option-groups': true,\n 'strip-aliased': false,\n 'strip-dashed': false,\n 'unknown-options-as-args': false\n }, opts.configuration);\n const defaults = Object.assign(Object.create(null), opts.default);\n const configObjects = opts.configObjects || [];\n const envPrefix = opts.envPrefix;\n const notFlagsOption = configuration['populate--'];\n const notFlagsArgv = notFlagsOption ? '--' : '_';\n const newAliases = Object.create(null);\n const defaulted = Object.create(null);\n // allow a i18n handler to be passed in, default to a fake one (util.format).\n const __ = opts.__ || mixin.format;\n const flags = {\n aliases: Object.create(null),\n arrays: Object.create(null),\n bools: Object.create(null),\n strings: Object.create(null),\n numbers: Object.create(null),\n counts: Object.create(null),\n normalize: Object.create(null),\n configs: Object.create(null),\n nargs: Object.create(null),\n coercions: Object.create(null),\n keys: []\n };\n const negative = /^-([0-9]+(\\.[0-9]+)?|\\.[0-9]+)$/;\n const negatedBoolean = new RegExp('^--' + configuration['negation-prefix'] + '(.+)');\n [].concat(opts.array || []).filter(Boolean).forEach(function (opt) {\n const key = typeof opt === 'object' ? opt.key : opt;\n // assign to flags[bools|strings|numbers]\n const assignment = Object.keys(opt).map(function (key) {\n const arrayFlagKeys = {\n boolean: 'bools',\n string: 'strings',\n number: 'numbers'\n };\n return arrayFlagKeys[key];\n }).filter(Boolean).pop();\n // assign key to be coerced\n if (assignment) {\n flags[assignment][key] = true;\n }\n flags.arrays[key] = true;\n flags.keys.push(key);\n });\n [].concat(opts.boolean || []).filter(Boolean).forEach(function (key) {\n flags.bools[key] = true;\n flags.keys.push(key);\n });\n [].concat(opts.string || []).filter(Boolean).forEach(function (key) {\n flags.strings[key] = true;\n flags.keys.push(key);\n });\n [].concat(opts.number || []).filter(Boolean).forEach(function (key) {\n flags.numbers[key] = true;\n flags.keys.push(key);\n });\n [].concat(opts.count || []).filter(Boolean).forEach(function (key) {\n flags.counts[key] = true;\n flags.keys.push(key);\n });\n [].concat(opts.normalize || []).filter(Boolean).forEach(function (key) {\n flags.normalize[key] = true;\n flags.keys.push(key);\n });\n if (typeof opts.narg === 'object') {\n Object.entries(opts.narg).forEach(([key, value]) => {\n if (typeof value === 'number') {\n flags.nargs[key] = value;\n flags.keys.push(key);\n }\n });\n }\n if (typeof opts.coerce === 'object') {\n Object.entries(opts.coerce).forEach(([key, value]) => {\n if (typeof value === 'function') {\n flags.coercions[key] = value;\n flags.keys.push(key);\n }\n });\n }\n if (typeof opts.config !== 'undefined') {\n if (Array.isArray(opts.config) || typeof opts.config === 'string') {\n ;\n [].concat(opts.config).filter(Boolean).forEach(function (key) {\n flags.configs[key] = true;\n });\n }\n else if (typeof opts.config === 'object') {\n Object.entries(opts.config).forEach(([key, value]) => {\n if (typeof value === 'boolean' || typeof value === 'function') {\n flags.configs[key] = value;\n }\n });\n }\n }\n // create a lookup table that takes into account all\n // combinations of aliases: {f: ['foo'], foo: ['f']}\n extendAliases(opts.key, aliases, opts.default, flags.arrays);\n // apply default values to all aliases.\n Object.keys(defaults).forEach(function (key) {\n (flags.aliases[key] || []).forEach(function (alias) {\n defaults[alias] = defaults[key];\n });\n });\n let error = null;\n checkConfiguration();\n let notFlags = [];\n const argv = Object.assign(Object.create(null), { _: [] });\n // TODO(bcoe): for the first pass at removing object prototype we didn't\n // remove all prototypes from objects returned by this API, we might want\n // to gradually move towards doing so.\n const argvReturn = {};\n for (let i = 0; i < args.length; i++) {\n const arg = args[i];\n const truncatedArg = arg.replace(/^-{3,}/, '---');\n let broken;\n let key;\n let letters;\n let m;\n let next;\n let value;\n // any unknown option (except for end-of-options, \"--\")\n if (arg !== '--' && /^-/.test(arg) && isUnknownOptionAsArg(arg)) {\n pushPositional(arg);\n // ---, ---=, ----, etc,\n }\n else if (truncatedArg.match(/^---+(=|$)/)) {\n // options without key name are invalid.\n pushPositional(arg);\n continue;\n // -- separated by =\n }\n else if (arg.match(/^--.+=/) || (!configuration['short-option-groups'] && arg.match(/^-.+=/))) {\n // Using [\\s\\S] instead of . because js doesn't support the\n // 'dotall' regex modifier. See:\n // http://stackoverflow.com/a/1068308/13216\n m = arg.match(/^--?([^=]+)=([\\s\\S]*)$/);\n // arrays format = '--f=a b c'\n if (m !== null && Array.isArray(m) && m.length >= 3) {\n if (checkAllAliases(m[1], flags.arrays)) {\n i = eatArray(i, m[1], args, m[2]);\n }\n else if (checkAllAliases(m[1], flags.nargs) !== false) {\n // nargs format = '--f=monkey washing cat'\n i = eatNargs(i, m[1], args, m[2]);\n }\n else {\n setArg(m[1], m[2], true);\n }\n }\n }\n else if (arg.match(negatedBoolean) && configuration['boolean-negation']) {\n m = arg.match(negatedBoolean);\n if (m !== null && Array.isArray(m) && m.length >= 2) {\n key = m[1];\n setArg(key, checkAllAliases(key, flags.arrays) ? [false] : false);\n }\n // -- separated by space.\n }\n else if (arg.match(/^--.+/) || (!configuration['short-option-groups'] && arg.match(/^-[^-]+/))) {\n m = arg.match(/^--?(.+)/);\n if (m !== null && Array.isArray(m) && m.length >= 2) {\n key = m[1];\n if (checkAllAliases(key, flags.arrays)) {\n // array format = '--foo a b c'\n i = eatArray(i, key, args);\n }\n else if (checkAllAliases(key, flags.nargs) !== false) {\n // nargs format = '--foo a b c'\n // should be truthy even if: flags.nargs[key] === 0\n i = eatNargs(i, key, args);\n }\n else {\n next = args[i + 1];\n if (next !== undefined && (!next.match(/^-/) ||\n next.match(negative)) &&\n !checkAllAliases(key, flags.bools) &&\n !checkAllAliases(key, flags.counts)) {\n setArg(key, next);\n i++;\n }\n else if (/^(true|false)$/.test(next)) {\n setArg(key, next);\n i++;\n }\n else {\n setArg(key, defaultValue(key));\n }\n }\n }\n // dot-notation flag separated by '='.\n }\n else if (arg.match(/^-.\\..+=/)) {\n m = arg.match(/^-([^=]+)=([\\s\\S]*)$/);\n if (m !== null && Array.isArray(m) && m.length >= 3) {\n setArg(m[1], m[2]);\n }\n // dot-notation flag separated by space.\n }\n else if (arg.match(/^-.\\..+/) && !arg.match(negative)) {\n next = args[i + 1];\n m = arg.match(/^-(.\\..+)/);\n if (m !== null && Array.isArray(m) && m.length >= 2) {\n key = m[1];\n if (next !== undefined && !next.match(/^-/) &&\n !checkAllAliases(key, flags.bools) &&\n !checkAllAliases(key, flags.counts)) {\n setArg(key, next);\n i++;\n }\n else {\n setArg(key, defaultValue(key));\n }\n }\n }\n else if (arg.match(/^-[^-]+/) && !arg.match(negative)) {\n letters = arg.slice(1, -1).split('');\n broken = false;\n for (let j = 0; j < letters.length; j++) {\n next = arg.slice(j + 2);\n if (letters[j + 1] && letters[j + 1] === '=') {\n value = arg.slice(j + 3);\n key = letters[j];\n if (checkAllAliases(key, flags.arrays)) {\n // array format = '-f=a b c'\n i = eatArray(i, key, args, value);\n }\n else if (checkAllAliases(key, flags.nargs) !== false) {\n // nargs format = '-f=monkey washing cat'\n i = eatNargs(i, key, args, value);\n }\n else {\n setArg(key, value);\n }\n broken = true;\n break;\n }\n if (next === '-') {\n setArg(letters[j], next);\n continue;\n }\n // current letter is an alphabetic character and next value is a number\n if (/[A-Za-z]/.test(letters[j]) &&\n /^-?\\d+(\\.\\d*)?(e-?\\d+)?$/.test(next) &&\n checkAllAliases(next, flags.bools) === false) {\n setArg(letters[j], next);\n broken = true;\n break;\n }\n if (letters[j + 1] && letters[j + 1].match(/\\W/)) {\n setArg(letters[j], next);\n broken = true;\n break;\n }\n else {\n setArg(letters[j], defaultValue(letters[j]));\n }\n }\n key = arg.slice(-1)[0];\n if (!broken && key !== '-') {\n if (checkAllAliases(key, flags.arrays)) {\n // array format = '-f a b c'\n i = eatArray(i, key, args);\n }\n else if (checkAllAliases(key, flags.nargs) !== false) {\n // nargs format = '-f a b c'\n // should be truthy even if: flags.nargs[key] === 0\n i = eatNargs(i, key, args);\n }\n else {\n next = args[i + 1];\n if (next !== undefined && (!/^(-|--)[^-]/.test(next) ||\n next.match(negative)) &&\n !checkAllAliases(key, flags.bools) &&\n !checkAllAliases(key, flags.counts)) {\n setArg(key, next);\n i++;\n }\n else if (/^(true|false)$/.test(next)) {\n setArg(key, next);\n i++;\n }\n else {\n setArg(key, defaultValue(key));\n }\n }\n }\n }\n else if (arg.match(/^-[0-9]$/) &&\n arg.match(negative) &&\n checkAllAliases(arg.slice(1), flags.bools)) {\n // single-digit boolean alias, e.g: xargs -0\n key = arg.slice(1);\n setArg(key, defaultValue(key));\n }\n else if (arg === '--') {\n notFlags = args.slice(i + 1);\n break;\n }\n else if (configuration['halt-at-non-option']) {\n notFlags = args.slice(i);\n break;\n }\n else {\n pushPositional(arg);\n }\n }\n // order of precedence:\n // 1. command line arg\n // 2. value from env var\n // 3. value from config file\n // 4. value from config objects\n // 5. configured default value\n applyEnvVars(argv, true); // special case: check env vars that point to config file\n applyEnvVars(argv, false);\n setConfig(argv);\n setConfigObjects();\n applyDefaultsAndAliases(argv, flags.aliases, defaults, true);\n applyCoercions(argv);\n if (configuration['set-placeholder-key'])\n setPlaceholderKeys(argv);\n // for any counts either not in args or without an explicit default, set to 0\n Object.keys(flags.counts).forEach(function (key) {\n if (!hasKey(argv, key.split('.')))\n setArg(key, 0);\n });\n // '--' defaults to undefined.\n if (notFlagsOption && notFlags.length)\n argv[notFlagsArgv] = [];\n notFlags.forEach(function (key) {\n argv[notFlagsArgv].push(key);\n });\n if (configuration['camel-case-expansion'] && configuration['strip-dashed']) {\n Object.keys(argv).filter(key => key !== '--' && key.includes('-')).forEach(key => {\n delete argv[key];\n });\n }\n if (configuration['strip-aliased']) {\n ;\n [].concat(...Object.keys(aliases).map(k => aliases[k])).forEach(alias => {\n if (configuration['camel-case-expansion'] && alias.includes('-')) {\n delete argv[alias.split('.').map(prop => camelCase(prop)).join('.')];\n }\n delete argv[alias];\n });\n }\n // Push argument into positional array, applying numeric coercion:\n function pushPositional(arg) {\n const maybeCoercedNumber = maybeCoerceNumber('_', arg);\n if (typeof maybeCoercedNumber === 'string' || typeof maybeCoercedNumber === 'number') {\n argv._.push(maybeCoercedNumber);\n }\n }\n // how many arguments should we consume, based\n // on the nargs option?\n function eatNargs(i, key, args, argAfterEqualSign) {\n let ii;\n let toEat = checkAllAliases(key, flags.nargs);\n // NaN has a special meaning for the array type, indicating that one or\n // more values are expected.\n toEat = typeof toEat !== 'number' || isNaN(toEat) ? 1 : toEat;\n if (toEat === 0) {\n if (!isUndefined(argAfterEqualSign)) {\n error = Error(__('Argument unexpected for: %s', key));\n }\n setArg(key, defaultValue(key));\n return i;\n }\n let available = isUndefined(argAfterEqualSign) ? 0 : 1;\n if (configuration['nargs-eats-options']) {\n // classic behavior, yargs eats positional and dash arguments.\n if (args.length - (i + 1) + available < toEat) {\n error = Error(__('Not enough arguments following: %s', key));\n }\n available = toEat;\n }\n else {\n // nargs will not consume flag arguments, e.g., -abc, --foo,\n // and terminates when one is observed.\n for (ii = i + 1; ii < args.length; ii++) {\n if (!args[ii].match(/^-[^0-9]/) || args[ii].match(negative) || isUnknownOptionAsArg(args[ii]))\n available++;\n else\n break;\n }\n if (available < toEat)\n error = Error(__('Not enough arguments following: %s', key));\n }\n let consumed = Math.min(available, toEat);\n if (!isUndefined(argAfterEqualSign) && consumed > 0) {\n setArg(key, argAfterEqualSign);\n consumed--;\n }\n for (ii = i + 1; ii < (consumed + i + 1); ii++) {\n setArg(key, args[ii]);\n }\n return (i + consumed);\n }\n // if an option is an array, eat all non-hyphenated arguments\n // following it... YUM!\n // e.g., --foo apple banana cat becomes [\"apple\", \"banana\", \"cat\"]\n function eatArray(i, key, args, argAfterEqualSign) {\n let argsToSet = [];\n let next = argAfterEqualSign || args[i + 1];\n // If both array and nargs are configured, enforce the nargs count:\n const nargsCount = checkAllAliases(key, flags.nargs);\n if (checkAllAliases(key, flags.bools) && !(/^(true|false)$/.test(next))) {\n argsToSet.push(true);\n }\n else if (isUndefined(next) ||\n (isUndefined(argAfterEqualSign) && /^-/.test(next) && !negative.test(next) && !isUnknownOptionAsArg(next))) {\n // for keys without value ==> argsToSet remains an empty []\n // set user default value, if available\n if (defaults[key] !== undefined) {\n const defVal = defaults[key];\n argsToSet = Array.isArray(defVal) ? defVal : [defVal];\n }\n }\n else {\n // value in --option=value is eaten as is\n if (!isUndefined(argAfterEqualSign)) {\n argsToSet.push(processValue(key, argAfterEqualSign, true));\n }\n for (let ii = i + 1; ii < args.length; ii++) {\n if ((!configuration['greedy-arrays'] && argsToSet.length > 0) ||\n (nargsCount && typeof nargsCount === 'number' && argsToSet.length >= nargsCount))\n break;\n next = args[ii];\n if (/^-/.test(next) && !negative.test(next) && !isUnknownOptionAsArg(next))\n break;\n i = ii;\n argsToSet.push(processValue(key, next, inputIsString));\n }\n }\n // If both array and nargs are configured, create an error if less than\n // nargs positionals were found. NaN has special meaning, indicating\n // that at least one value is required (more are okay).\n if (typeof nargsCount === 'number' && ((nargsCount && argsToSet.length < nargsCount) ||\n (isNaN(nargsCount) && argsToSet.length === 0))) {\n error = Error(__('Not enough arguments following: %s', key));\n }\n setArg(key, argsToSet);\n return i;\n }\n function setArg(key, val, shouldStripQuotes = inputIsString) {\n if (/-/.test(key) && configuration['camel-case-expansion']) {\n const alias = key.split('.').map(function (prop) {\n return camelCase(prop);\n }).join('.');\n addNewAlias(key, alias);\n }\n const value = processValue(key, val, shouldStripQuotes);\n const splitKey = key.split('.');\n setKey(argv, splitKey, value);\n // handle populating aliases of the full key\n if (flags.aliases[key]) {\n flags.aliases[key].forEach(function (x) {\n const keyProperties = x.split('.');\n setKey(argv, keyProperties, value);\n });\n }\n // handle populating aliases of the first element of the dot-notation key\n if (splitKey.length > 1 && configuration['dot-notation']) {\n ;\n (flags.aliases[splitKey[0]] || []).forEach(function (x) {\n let keyProperties = x.split('.');\n // expand alias with nested objects in key\n const a = [].concat(splitKey);\n a.shift(); // nuke the old key.\n keyProperties = keyProperties.concat(a);\n // populate alias only if is not already an alias of the full key\n // (already populated above)\n if (!(flags.aliases[key] || []).includes(keyProperties.join('.'))) {\n setKey(argv, keyProperties, value);\n }\n });\n }\n // Set normalize getter and setter when key is in 'normalize' but isn't an array\n if (checkAllAliases(key, flags.normalize) && !checkAllAliases(key, flags.arrays)) {\n const keys = [key].concat(flags.aliases[key] || []);\n keys.forEach(function (key) {\n Object.defineProperty(argvReturn, key, {\n enumerable: true,\n get() {\n return val;\n },\n set(value) {\n val = typeof value === 'string' ? mixin.normalize(value) : value;\n }\n });\n });\n }\n }\n function addNewAlias(key, alias) {\n if (!(flags.aliases[key] && flags.aliases[key].length)) {\n flags.aliases[key] = [alias];\n newAliases[alias] = true;\n }\n if (!(flags.aliases[alias] && flags.aliases[alias].length)) {\n addNewAlias(alias, key);\n }\n }\n function processValue(key, val, shouldStripQuotes) {\n // strings may be quoted, clean this up as we assign values.\n if (shouldStripQuotes) {\n val = stripQuotes(val);\n }\n // handle parsing boolean arguments --foo=true --bar false.\n if (checkAllAliases(key, flags.bools) || checkAllAliases(key, flags.counts)) {\n if (typeof val === 'string')\n val = val === 'true';\n }\n let value = Array.isArray(val)\n ? val.map(function (v) { return maybeCoerceNumber(key, v); })\n : maybeCoerceNumber(key, val);\n // increment a count given as arg (either no value or value parsed as boolean)\n if (checkAllAliases(key, flags.counts) && (isUndefined(value) || typeof value === 'boolean')) {\n value = increment();\n }\n // Set normalized value when key is in 'normalize' and in 'arrays'\n if (checkAllAliases(key, flags.normalize) && checkAllAliases(key, flags.arrays)) {\n if (Array.isArray(val))\n value = val.map((val) => { return mixin.normalize(val); });\n else\n value = mixin.normalize(val);\n }\n return value;\n }\n function maybeCoerceNumber(key, value) {\n if (!configuration['parse-positional-numbers'] && key === '_')\n return value;\n if (!checkAllAliases(key, flags.strings) && !checkAllAliases(key, flags.bools) && !Array.isArray(value)) {\n const shouldCoerceNumber = looksLikeNumber(value) && configuration['parse-numbers'] && (Number.isSafeInteger(Math.floor(parseFloat(`${value}`))));\n if (shouldCoerceNumber || (!isUndefined(value) && checkAllAliases(key, flags.numbers))) {\n value = Number(value);\n }\n }\n return value;\n }\n // set args from config.json file, this should be\n // applied last so that defaults can be applied.\n function setConfig(argv) {\n const configLookup = Object.create(null);\n // expand defaults/aliases, in-case any happen to reference\n // the config.json file.\n applyDefaultsAndAliases(configLookup, flags.aliases, defaults);\n Object.keys(flags.configs).forEach(function (configKey) {\n const configPath = argv[configKey] || configLookup[configKey];\n if (configPath) {\n try {\n let config = null;\n const resolvedConfigPath = mixin.resolve(mixin.cwd(), configPath);\n const resolveConfig = flags.configs[configKey];\n if (typeof resolveConfig === 'function') {\n try {\n config = resolveConfig(resolvedConfigPath);\n }\n catch (e) {\n config = e;\n }\n if (config instanceof Error) {\n error = config;\n return;\n }\n }\n else {\n config = mixin.require(resolvedConfigPath);\n }\n setConfigObject(config);\n }\n catch (ex) {\n // Deno will receive a PermissionDenied error if an attempt is\n // made to load config without the --allow-read flag:\n if (ex.name === 'PermissionDenied')\n error = ex;\n else if (argv[configKey])\n error = Error(__('Invalid JSON config file: %s', configPath));\n }\n }\n });\n }\n // set args from config object.\n // it recursively checks nested objects.\n function setConfigObject(config, prev) {\n Object.keys(config).forEach(function (key) {\n const value = config[key];\n const fullKey = prev ? prev + '.' + key : key;\n // if the value is an inner object and we have dot-notation\n // enabled, treat inner objects in config the same as\n // heavily nested dot notations (foo.bar.apple).\n if (typeof value === 'object' && value !== null && !Array.isArray(value) && configuration['dot-notation']) {\n // if the value is an object but not an array, check nested object\n setConfigObject(value, fullKey);\n }\n else {\n // setting arguments via CLI takes precedence over\n // values within the config file.\n if (!hasKey(argv, fullKey.split('.')) || (checkAllAliases(fullKey, flags.arrays) && configuration['combine-arrays'])) {\n setArg(fullKey, value);\n }\n }\n });\n }\n // set all config objects passed in opts\n function setConfigObjects() {\n if (typeof configObjects !== 'undefined') {\n configObjects.forEach(function (configObject) {\n setConfigObject(configObject);\n });\n }\n }\n function applyEnvVars(argv, configOnly) {\n if (typeof envPrefix === 'undefined')\n return;\n const prefix = typeof envPrefix === 'string' ? envPrefix : '';\n const env = mixin.env();\n Object.keys(env).forEach(function (envVar) {\n if (prefix === '' || envVar.lastIndexOf(prefix, 0) === 0) {\n // get array of nested keys and convert them to camel case\n const keys = envVar.split('__').map(function (key, i) {\n if (i === 0) {\n key = key.substring(prefix.length);\n }\n return camelCase(key);\n });\n if (((configOnly && flags.configs[keys.join('.')]) || !configOnly) && !hasKey(argv, keys)) {\n setArg(keys.join('.'), env[envVar]);\n }\n }\n });\n }\n function applyCoercions(argv) {\n let coerce;\n const applied = new Set();\n Object.keys(argv).forEach(function (key) {\n if (!applied.has(key)) { // If we haven't already coerced this option via one of its aliases\n coerce = checkAllAliases(key, flags.coercions);\n if (typeof coerce === 'function') {\n try {\n const value = maybeCoerceNumber(key, coerce(argv[key]));\n ([].concat(flags.aliases[key] || [], key)).forEach(ali => {\n applied.add(ali);\n argv[ali] = value;\n });\n }\n catch (err) {\n error = err;\n }\n }\n }\n });\n }\n function setPlaceholderKeys(argv) {\n flags.keys.forEach((key) => {\n // don't set placeholder keys for dot notation options 'foo.bar'.\n if (~key.indexOf('.'))\n return;\n if (typeof argv[key] === 'undefined')\n argv[key] = undefined;\n });\n return argv;\n }\n function applyDefaultsAndAliases(obj, aliases, defaults, canLog = false) {\n Object.keys(defaults).forEach(function (key) {\n if (!hasKey(obj, key.split('.'))) {\n setKey(obj, key.split('.'), defaults[key]);\n if (canLog)\n defaulted[key] = true;\n (aliases[key] || []).forEach(function (x) {\n if (hasKey(obj, x.split('.')))\n return;\n setKey(obj, x.split('.'), defaults[key]);\n });\n }\n });\n }\n function hasKey(obj, keys) {\n let o = obj;\n if (!configuration['dot-notation'])\n keys = [keys.join('.')];\n keys.slice(0, -1).forEach(function (key) {\n o = (o[key] || {});\n });\n const key = keys[keys.length - 1];\n if (typeof o !== 'object')\n return false;\n else\n return key in o;\n }\n function setKey(obj, keys, value) {\n let o = obj;\n if (!configuration['dot-notation'])\n keys = [keys.join('.')];\n keys.slice(0, -1).forEach(function (key) {\n // TODO(bcoe): in the next major version of yargs, switch to\n // Object.create(null) for dot notation:\n key = sanitizeKey(key);\n if (typeof o === 'object' && o[key] === undefined) {\n o[key] = {};\n }\n if (typeof o[key] !== 'object' || Array.isArray(o[key])) {\n // ensure that o[key] is an array, and that the last item is an empty object.\n if (Array.isArray(o[key])) {\n o[key].push({});\n }\n else {\n o[key] = [o[key], {}];\n }\n // we want to update the empty object at the end of the o[key] array, so set o to that object\n o = o[key][o[key].length - 1];\n }\n else {\n o = o[key];\n }\n });\n // TODO(bcoe): in the next major version of yargs, switch to\n // Object.create(null) for dot notation:\n const key = sanitizeKey(keys[keys.length - 1]);\n const isTypeArray = checkAllAliases(keys.join('.'), flags.arrays);\n const isValueArray = Array.isArray(value);\n let duplicate = configuration['duplicate-arguments-array'];\n // nargs has higher priority than duplicate\n if (!duplicate && checkAllAliases(key, flags.nargs)) {\n duplicate = true;\n if ((!isUndefined(o[key]) && flags.nargs[key] === 1) || (Array.isArray(o[key]) && o[key].length === flags.nargs[key])) {\n o[key] = undefined;\n }\n }\n if (value === increment()) {\n o[key] = increment(o[key]);\n }\n else if (Array.isArray(o[key])) {\n if (duplicate && isTypeArray && isValueArray) {\n o[key] = configuration['flatten-duplicate-arrays'] ? o[key].concat(value) : (Array.isArray(o[key][0]) ? o[key] : [o[key]]).concat([value]);\n }\n else if (!duplicate && Boolean(isTypeArray) === Boolean(isValueArray)) {\n o[key] = value;\n }\n else {\n o[key] = o[key].concat([value]);\n }\n }\n else if (o[key] === undefined && isTypeArray) {\n o[key] = isValueArray ? value : [value];\n }\n else if (duplicate && !(o[key] === undefined ||\n checkAllAliases(key, flags.counts) ||\n checkAllAliases(key, flags.bools))) {\n o[key] = [o[key], value];\n }\n else {\n o[key] = value;\n }\n }\n // extend the aliases list with inferred aliases.\n function extendAliases(...args) {\n args.forEach(function (obj) {\n Object.keys(obj || {}).forEach(function (key) {\n // short-circuit if we've already added a key\n // to the aliases array, for example it might\n // exist in both 'opts.default' and 'opts.key'.\n if (flags.aliases[key])\n return;\n flags.aliases[key] = [].concat(aliases[key] || []);\n // For \"--option-name\", also set argv.optionName\n flags.aliases[key].concat(key).forEach(function (x) {\n if (/-/.test(x) && configuration['camel-case-expansion']) {\n const c = camelCase(x);\n if (c !== key && flags.aliases[key].indexOf(c) === -1) {\n flags.aliases[key].push(c);\n newAliases[c] = true;\n }\n }\n });\n // For \"--optionName\", also set argv['option-name']\n flags.aliases[key].concat(key).forEach(function (x) {\n if (x.length > 1 && /[A-Z]/.test(x) && configuration['camel-case-expansion']) {\n const c = decamelize(x, '-');\n if (c !== key && flags.aliases[key].indexOf(c) === -1) {\n flags.aliases[key].push(c);\n newAliases[c] = true;\n }\n }\n });\n flags.aliases[key].forEach(function (x) {\n flags.aliases[x] = [key].concat(flags.aliases[key].filter(function (y) {\n return x !== y;\n }));\n });\n });\n });\n }\n function checkAllAliases(key, flag) {\n const toCheck = [].concat(flags.aliases[key] || [], key);\n const keys = Object.keys(flag);\n const setAlias = toCheck.find(key => keys.includes(key));\n return setAlias ? flag[setAlias] : false;\n }\n function hasAnyFlag(key) {\n const flagsKeys = Object.keys(flags);\n const toCheck = [].concat(flagsKeys.map(k => flags[k]));\n return toCheck.some(function (flag) {\n return Array.isArray(flag) ? flag.includes(key) : flag[key];\n });\n }\n function hasFlagsMatching(arg, ...patterns) {\n const toCheck = [].concat(...patterns);\n return toCheck.some(function (pattern) {\n const match = arg.match(pattern);\n return match && hasAnyFlag(match[1]);\n });\n }\n // based on a simplified version of the short flag group parsing logic\n function hasAllShortFlags(arg) {\n // if this is a negative number, or doesn't start with a single hyphen, it's not a short flag group\n if (arg.match(negative) || !arg.match(/^-[^-]+/)) {\n return false;\n }\n let hasAllFlags = true;\n let next;\n const letters = arg.slice(1).split('');\n for (let j = 0; j < letters.length; j++) {\n next = arg.slice(j + 2);\n if (!hasAnyFlag(letters[j])) {\n hasAllFlags = false;\n break;\n }\n if ((letters[j + 1] && letters[j + 1] === '=') ||\n next === '-' ||\n (/[A-Za-z]/.test(letters[j]) && /^-?\\d+(\\.\\d*)?(e-?\\d+)?$/.test(next)) ||\n (letters[j + 1] && letters[j + 1].match(/\\W/))) {\n break;\n }\n }\n return hasAllFlags;\n }\n function isUnknownOptionAsArg(arg) {\n return configuration['unknown-options-as-args'] && isUnknownOption(arg);\n }\n function isUnknownOption(arg) {\n arg = arg.replace(/^-{3,}/, '--');\n // ignore negative numbers\n if (arg.match(negative)) {\n return false;\n }\n // if this is a short option group and all of them are configured, it isn't unknown\n if (hasAllShortFlags(arg)) {\n return false;\n }\n // e.g. '--count=2'\n const flagWithEquals = /^-+([^=]+?)=[\\s\\S]*$/;\n // e.g. '-a' or '--arg'\n const normalFlag = /^-+([^=]+?)$/;\n // e.g. '-a-'\n const flagEndingInHyphen = /^-+([^=]+?)-$/;\n // e.g. '-abc123'\n const flagEndingInDigits = /^-+([^=]+?\\d+)$/;\n // e.g. '-a/usr/local'\n const flagEndingInNonWordCharacters = /^-+([^=]+?)\\W+.*$/;\n // check the different types of flag styles, including negatedBoolean, a pattern defined near the start of the parse method\n return !hasFlagsMatching(arg, flagWithEquals, negatedBoolean, normalFlag, flagEndingInHyphen, flagEndingInDigits, flagEndingInNonWordCharacters);\n }\n // make a best effort to pick a default value\n // for an option based on name and type.\n function defaultValue(key) {\n if (!checkAllAliases(key, flags.bools) &&\n !checkAllAliases(key, flags.counts) &&\n `${key}` in defaults) {\n return defaults[key];\n }\n else {\n return defaultForType(guessType(key));\n }\n }\n // return a default value, given the type of a flag.,\n function defaultForType(type) {\n const def = {\n [DefaultValuesForTypeKey.BOOLEAN]: true,\n [DefaultValuesForTypeKey.STRING]: '',\n [DefaultValuesForTypeKey.NUMBER]: undefined,\n [DefaultValuesForTypeKey.ARRAY]: []\n };\n return def[type];\n }\n // given a flag, enforce a default type.\n function guessType(key) {\n let type = DefaultValuesForTypeKey.BOOLEAN;\n if (checkAllAliases(key, flags.strings))\n type = DefaultValuesForTypeKey.STRING;\n else if (checkAllAliases(key, flags.numbers))\n type = DefaultValuesForTypeKey.NUMBER;\n else if (checkAllAliases(key, flags.bools))\n type = DefaultValuesForTypeKey.BOOLEAN;\n else if (checkAllAliases(key, flags.arrays))\n type = DefaultValuesForTypeKey.ARRAY;\n return type;\n }\n function isUndefined(num) {\n return num === undefined;\n }\n // check user configuration settings for inconsistencies\n function checkConfiguration() {\n // count keys should not be set as array/narg\n Object.keys(flags.counts).find(key => {\n if (checkAllAliases(key, flags.arrays)) {\n error = Error(__('Invalid configuration: %s, opts.count excludes opts.array.', key));\n return true;\n }\n else if (checkAllAliases(key, flags.nargs)) {\n error = Error(__('Invalid configuration: %s, opts.count excludes opts.narg.', key));\n return true;\n }\n return false;\n });\n }\n return {\n aliases: Object.assign({}, flags.aliases),\n argv: Object.assign(argvReturn, argv),\n configuration: configuration,\n defaulted: Object.assign({}, defaulted),\n error: error,\n newAliases: Object.assign({}, newAliases)\n };\n }\n}\n// if any aliases reference each other, we should\n// merge them together.\nfunction combineAliases(aliases) {\n const aliasArrays = [];\n const combined = Object.create(null);\n let change = true;\n // turn alias lookup hash {key: ['alias1', 'alias2']} into\n // a simple array ['key', 'alias1', 'alias2']\n Object.keys(aliases).forEach(function (key) {\n aliasArrays.push([].concat(aliases[key], key));\n });\n // combine arrays until zero changes are\n // made in an iteration.\n while (change) {\n change = false;\n for (let i = 0; i < aliasArrays.length; i++) {\n for (let ii = i + 1; ii < aliasArrays.length; ii++) {\n const intersect = aliasArrays[i].filter(function (v) {\n return aliasArrays[ii].indexOf(v) !== -1;\n });\n if (intersect.length) {\n aliasArrays[i] = aliasArrays[i].concat(aliasArrays[ii]);\n aliasArrays.splice(ii, 1);\n change = true;\n break;\n }\n }\n }\n }\n // map arrays back to the hash-lookup (de-dupe while\n // we're at it).\n aliasArrays.forEach(function (aliasArray) {\n aliasArray = aliasArray.filter(function (v, i, self) {\n return self.indexOf(v) === i;\n });\n const lastAlias = aliasArray.pop();\n if (lastAlias !== undefined && typeof lastAlias === 'string') {\n combined[lastAlias] = aliasArray;\n }\n });\n return combined;\n}\n// this function should only be called when a count is given as an arg\n// it is NOT called to set a default value\n// thus we can start the count at 1 instead of 0\nfunction increment(orig) {\n return orig !== undefined ? orig + 1 : 1;\n}\n// TODO(bcoe): in the next major version of yargs, switch to\n// Object.create(null) for dot notation:\nfunction sanitizeKey(key) {\n if (key === '__proto__')\n return '___proto___';\n return key;\n}\nfunction stripQuotes(val) {\n return (typeof val === 'string' &&\n (val[0] === \"'\" || val[0] === '\"') &&\n val[val.length - 1] === val[0])\n ? val.substring(1, val.length - 1)\n : val;\n}\n", "import _childProcess from 'node:child_process'\nimport _module from 'node:module'\nimport _url from 'node:url'\nimport _util from 'node:util'\n\nimport _yargs from './parser.mjs'\n\n/* ========================================================================== *\n * EXPORTS *\n * ========================================================================== */\n\n/** Bundled-in `yargs-parser` */\nexport const yargsParser = _yargs\n\n/**\n * Wrap around the `main` process of a CLI.\n *\n * This function must be invoked with a script URL (the `import.meta.url`\n * variable of the script being executed) and a callback, which will be invoked\n * once the proper environment for TypeScript has been setup.\n *\n * The callback _might_ return a promise (can be asynchronous) which will be\n * awaited for potential rejections.\n */\nexport function main(\n scriptUrl: string,\n callback: (args: string[]) => void | Promise<void>,\n): void {\n const require = _module.createRequire(import.meta.url)\n const debug = _util.debuglog('plug:cli')\n\n /* Always enable source maps support */\n process.setSourceMapsEnabled(true)\n\n /* Process command line arguments, filtering any \"--force-...\" */\n const args = process.argv.slice(2).filter((arg: string): boolean => {\n if (arg === '--force-esm') {\n process.env.__TS_LOADER_FORCE_TYPE = 'module'\n return false\n } else if (arg === '--force-cjs') {\n process.env.__TS_LOADER_FORCE_TYPE = 'commonjs'\n return false\n } else {\n return true\n }\n })\n\n /* Assume that Typescript loading is _not_ enabled */\n let typeScriptEnabled = false\n\n /* If we have the \"_module.register\" hook in place we can work in-process */\n if (typeof _module.register === 'function') {\n debug('Enabling in-process TypeScript loader')\n\n /* Register the ESM loader and immediately require the CJS loader */\n _module.register('./loader-module.mjs', import.meta.url)\n require('./loader-commonjs.cjs')\n\n /* Add our preloader to the \"execArgv\" arguments to support forking */\n process.execArgv.push(`--import=${require.resolve('./preload.mjs')}`)\n\n /* Yep, typescript is enabled */\n typeScriptEnabled = true\n }\n\n /* If we don't have TypeScript enabled check the NodeJS command line */\n if (! typeScriptEnabled) {\n const cjsLoader = require.resolve('./loader-commonjs.cjs')\n const esmLoader = require.resolve('./loader-module.mjs')\n\n if (process.execArgv.includes(`--experimental-loader=${esmLoader}`)) {\n typeScriptEnabled = true\n } else if (process.execArgv.includes(`--loader=${esmLoader}`)) {\n typeScriptEnabled = true\n } else {\n process.execArgv.push(`--experimental-loader=${esmLoader}`)\n process.execArgv.push(`--require=${cjsLoader}`)\n process.execArgv.push('--no-warnings')\n typeScriptEnabled = false\n }\n }\n\n\n /* If TypeScript is enabled, then we can simply run now! */\n if (typeScriptEnabled) {\n /* Wrap into a promise to better catch errors from the real \"main\" */\n Promise.resolve().then(async () => {\n process.exitCode = 0\n await callback(args)\n }).catch((error) => {\n console.error(error)\n process.exitCode = 1\n\n setTimeout(() => {\n console.log('\\n\\nProcess %d did not exit in 5 seconds', process.pid)\n process.exit(2)\n }, 5000).unref()\n })\n\n return\n }\n\n /* If TypeScript is not enabled, then we have to fork with the new execArgh! */\n const script = _url.fileURLToPath(scriptUrl)\n debug('Forking', process.execPath, ...process.execArgv, script, ...process.argv.slice(2))\n const child = _childProcess.fork(script, [ ...process.argv.slice(2) ], {\n stdio: [ 'inherit', 'inherit', 'inherit', 'ipc' ],\n execArgv: process.execArgv,\n })\n\n /* Monitor child process... */\n child.on('error', (error) => {\n console.log('Error respawning CLI', error)\n process.exit(1)\n })\n\n child.on('exit', (code, signal) => {\n if (signal) {\n console.log(`CLI process exited with signal ${signal}`)\n process.exit(1)\n } else if (typeof code !== 'number') {\n console.log('CLI process failed for an unknown reason')\n process.exit(1)\n } else {\n process.exit(code)\n }\n })\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["_module", "DefaultValuesForTypeKey", "key", "args", "value", "val", "argv", "env", "aliases", "defaults", "require", "resolve", "_module"]
7
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plugjs/tsrun",
3
- "version": "0.5.23",
3
+ "version": "0.5.26",
4
4
  "type": "module",
5
5
  "module": "./dist/cli.mjs",
6
6
  "types": "./dist/cli.d.mts",
@@ -22,14 +22,15 @@
22
22
  "author": "Juit Developers <developers@juit.com>",
23
23
  "license": "Apache-2.0",
24
24
  "dependencies": {
25
- "esbuild": "^0.21.5"
25
+ "esbuild": "^0.23.0"
26
26
  },
27
27
  "devDependencies": {
28
- "@plugjs/eslint-plugin": "^0.1.22",
28
+ "@plugjs/cov8": "^0.6.2",
29
+ "@plugjs/eslint-plugin": "^0.2.2",
29
30
  "@types/node": "<21",
30
31
  "@types/yargs-parser": "^21.0.3",
31
- "eslint": "<9",
32
- "typescript": "^5.5.2",
32
+ "eslint": "^9.6.0",
33
+ "typescript": "^5.5.3",
33
34
  "yargs-parser": "^21.1.1"
34
35
  },
35
36
  "files": [
package/src/cli.mts CHANGED
@@ -1,4 +1,3 @@
1
- /* eslint-disable no-console */
2
1
  import _childProcess from 'node:child_process'
3
2
  import _module from 'node:module'
4
3
  import _url from 'node:url'
@@ -20,6 +20,7 @@ type ExtensionHandler = (module: NodeJS.Module, filename: string) => void
20
20
 
21
21
  /* Add the `_compile(...)` method to NodeJS' `Module` interface */
22
22
  declare global {
23
+ // eslint-disable-next-line @typescript-eslint/no-namespace
23
24
  namespace NodeJS {
24
25
  interface Module {
25
26
  _compile: (contents: string, filename: string) => void
@@ -67,7 +68,6 @@ const loader: ExtensionHandler = (module, filename): void => {
67
68
  try {
68
69
  module._compile(source, filename)
69
70
  } catch (cause) {
70
- // eslint-disable-next-line no-console
71
71
  console.error(`Error compiling module "${filename}"`, cause)
72
72
  }
73
73
  }
@@ -118,7 +118,7 @@ _module._resolveFilename = function(
118
118
  const result = _oldResolveFilename.call(this, tsrequest, parent, ...args)
119
119
  logMessage(CJS, `Resolution for "${request}" intercepted as "${tsrequest}`)
120
120
  return result
121
- } catch (discard) {
121
+ } catch {
122
122
  throw error // throw the _original_ error in this case
123
123
  }
124
124
  }
@@ -1,3 +1,4 @@
1
+ /* eslint-disable @typescript-eslint/no-unsafe-function-type */
1
2
  /* ========================================================================== *
2
3
  * HACK BEYOND REDEMPTION: TRANSPILE .ts FILES (the esm loader) *
3
4
  * -------------------------------------------------------------------------- *
@@ -205,7 +206,7 @@ export function esbTranpile(filename: string, type: Type): string {
205
206
  export function isFile(path: string): boolean {
206
207
  try {
207
208
  return _fs.statSync(path).isFile()
208
- } catch (error) {
209
+ } catch {
209
210
  return false
210
211
  }
211
212
  }
@@ -214,7 +215,7 @@ export function isFile(path: string): boolean {
214
215
  export function isDirectory(path: string): boolean {
215
216
  try {
216
217
  return _fs.statSync(path).isDirectory()
217
- } catch (error) {
218
+ } catch {
218
219
  return false
219
220
  }
220
221
  }
package/src/tsrun.mts CHANGED
@@ -1,5 +1,4 @@
1
1
  #!/usr/bin/env node
2
- /* eslint-disable no-console */
3
2
 
4
3
  import _os from 'node:os'
5
4
  import _path from 'node:path'