@willbooster/wb 7.6.2 → 7.6.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +4 -4
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../shared-lib-node/src/env.ts","../../shared-lib-node/src/exists.ts","../../shared-lib-node/src/spawn.ts","../../../node_modules/cliui/build/lib/index.js","../../../node_modules/cliui/build/lib/string-utils.js","../../../node_modules/yargs-parser/build/lib/string-utils.js","../../../node_modules/yargs-parser/build/lib/yargs-parser-types.js","../../../node_modules/yargs-parser/build/lib/yargs-parser.js","../../../node_modules/yargs-parser/build/lib/index.js","../../../node_modules/yargs-parser/build/lib/tokenize-arg-string.js","../../../node_modules/yargs/build/lib/utils/process-argv.js","../../../node_modules/yargs/build/lib/yerror.js","../../../node_modules/y18n/build/lib/platform-shims/node.js","../../../node_modules/y18n/build/lib/index.js","../../../node_modules/y18n/index.mjs","../../../node_modules/yargs/lib/platform-shims/esm.mjs","../../../node_modules/cliui/index.mjs","../../../node_modules/escalade/sync/index.mjs","../../../node_modules/yargs/build/lib/typings/common-types.js","../../../node_modules/yargs/build/lib/utils/is-promise.js","../../../node_modules/yargs/build/lib/parse-command.js","../../../node_modules/yargs/build/lib/argsert.js","../../../node_modules/yargs/build/lib/middleware.js","../../../node_modules/yargs/build/lib/utils/maybe-async-result.js","../../../node_modules/yargs/build/lib/command.js","../../../node_modules/yargs/build/lib/yargs-factory.js","../../../node_modules/yargs/build/lib/utils/which-module.js","../../../node_modules/yargs/build/lib/utils/obj-filter.js","../../../node_modules/yargs/build/lib/utils/set-blocking.js","../../../node_modules/yargs/build/lib/usage.js","../../../node_modules/yargs/build/lib/completion.js","../../../node_modules/yargs/build/lib/completion-templates.js","../../../node_modules/yargs/build/lib/utils/levenshtein.js","../../../node_modules/yargs/build/lib/validation.js","../../../node_modules/yargs/build/lib/utils/apply-extends.js","../../../node_modules/yargs/index.mjs","../src/project.ts","../../../node_modules/at-decorators/dist/memoize.js","../../../node_modules/at-decorators/dist/hash.js","../src/commands/buildIfNeeded.ts","../../shared-lib/src/error.ts","../src/commands/commandUtils.ts","../src/commands/optimizeForDockerBuild.ts","../src/utils/runtime.ts","../src/scripts/prismaScripts.ts","../src/utils/process.ts","../src/utils/promisePool.ts","../src/scripts/run.ts","../src/commands/prisma.ts","../src/commands/retry.ts","../src/commands/setup.ts","../src/scripts/dockerScripts.ts","../src/scripts/execution/baseExecutionScripts.ts","../src/scripts/execution/blitzScripts.ts","../src/scripts/execution/httpServerScripts.ts","../src/scripts/execution/nextScripts.ts","../src/scripts/execution/plainAppScripts.ts","../src/scripts/execution/remixScripts.ts","../src/commands/start.ts","../src/scripts/builder.ts","../src/commands/test.ts","../src/commands/typecheck.ts","../src/sharedOptionsBuilder.ts","../src/index.ts"],"sourcesContent":["import fs from 'node:fs';\nimport path from 'node:path';\n\nimport { config } from 'dotenv';\nimport type { ArgumentsCamelCase, InferredOptionTypes } from 'yargs';\n\nexport const yargsOptionsBuilderForEnv = {\n env: {\n description: '.env files to be loaded.',\n type: 'array',\n },\n 'cascade-env': {\n description:\n 'Environment to load cascading .env files (e.g., `.env`, `.env.<environment>`, `.env.local` and `.env.<environment>.local`). Preferred over `cascade-node-env` and `auto-cascade-env`.',\n type: 'string',\n },\n 'cascade-node-env': {\n description: 'Same with --cascade-env=<NODE_ENV || \"development\">. Preferred over `auto-cascade-env`.',\n type: 'boolean',\n },\n 'auto-cascade-env': {\n description: 'Same with --cascade-env=<WB_ENV || NODE_ENV || \"development\">.',\n type: 'boolean',\n default: true,\n },\n 'include-root-env': {\n description: 'Include .env files in root directory if the project is in a monorepo and --env option is not used.',\n type: 'boolean',\n default: true,\n },\n 'check-env': {\n description: 'Check whether the keys of the loaded .env files are same with the given .env file.',\n type: 'string',\n default: '.env.example',\n },\n verbose: {\n description: 'Whether to show verbose information',\n type: 'boolean',\n alias: 'v',\n },\n} as const;\n\nexport type EnvReaderOptions = Partial<ArgumentsCamelCase<InferredOptionTypes<typeof yargsOptionsBuilderForEnv>>>;\n\n/**\n * This function reads environment variables from `.env` files. Note it does not assign them in `process.env`.\n * */\nexport function readEnvironmentVariables(\n argv: EnvReaderOptions,\n cwd: string,\n cacheEnabled = true\n): Record<string, string> {\n let envPaths = (argv.env ?? []).map((envPath) => path.resolve(cwd, envPath.toString()));\n const cascade =\n argv.cascadeEnv ??\n (argv.cascadeNodeEnv\n ? process.env.NODE_ENV || 'development'\n : argv.autoCascadeEnv\n ? process.env.WB_ENV || process.env.NODE_ENV || 'development'\n : undefined);\n if (typeof cascade === 'string') {\n if (envPaths.length === 0) {\n envPaths.push(path.join(cwd, '.env'));\n if (argv.includeRootEnv) {\n const rootPath = path.resolve(cwd, '..', '..');\n if (fs.existsSync(path.join(rootPath, 'package.json'))) {\n envPaths.push(path.join(rootPath, '.env'));\n }\n }\n }\n envPaths = envPaths.flatMap((envPath) =>\n cascade\n ? [`${envPath}.${cascade}.local`, `${envPath}.local`, `${envPath}.${cascade}`, envPath]\n : [`${envPath}.local`, envPath]\n );\n }\n envPaths = envPaths.map((envPath) => path.relative(cwd, envPath));\n if (argv.verbose) {\n console.info(`WB_ENV: ${process.env.WB_ENV}, NODE_ENV: ${process.env.NODE_ENV}`);\n console.info('Reading env files:', envPaths);\n }\n\n let envVars: Record<string, string> = {};\n const orgEnvVars = { ...process.env };\n for (const envPath of envPaths) {\n envVars = { ...readEnvFile(path.join(cwd, envPath), cacheEnabled), ...envVars };\n let count = 0;\n for (const [key, value] of Object.entries(envVars)) {\n if (orgEnvVars[key] !== value) {\n orgEnvVars[key] = value;\n count++;\n }\n }\n if (count > 0) {\n console.info(`Read ${count} environment variables:`, envPath);\n }\n }\n\n if (argv.checkEnv) {\n const exampleKeys = Object.keys(readEnvFile(path.join(cwd, argv.checkEnv), cacheEnabled) || {});\n const missingKeys = exampleKeys.filter((key) => !(key in envVars));\n if (missingKeys.length > 0) {\n throw new Error(`Missing environment variables in [${envPaths.join(', ')}]: [${missingKeys.join(', ')}]`);\n }\n }\n return envVars;\n}\n\n/**\n * This function read environment variables from `.env` files and assign them in `process.env`.\n * */\nexport function readAndApplyEnvironmentVariables(\n argv: EnvReaderOptions,\n cwd: string,\n cacheEnabled = true\n): Record<string, string | undefined> {\n const envVars = readEnvironmentVariables(argv, cwd, cacheEnabled);\n Object.assign(process.env, envVars);\n return envVars;\n}\n\nconst cachedEnvVars = new Map<string, Record<string, string>>();\n\nfunction readEnvFile(filePath: string, cacheEnabled = true): Record<string, string> {\n const cached = cacheEnabled && cachedEnvVars.get(filePath);\n if (cached) return cached;\n\n const parsed = config({ path: path.resolve(filePath), processEnv: {} }).parsed ?? {};\n if (cacheEnabled) {\n cachedEnvVars.set(filePath, parsed);\n }\n return parsed;\n}\n\n/**\n * This function removes environment variables related to npm and yarn from the given environment variables.\n * */\nexport function removeNpmAndYarnEnvironmentVariables(envVars: Record<string, string | undefined>): void {\n // Remove npm & yarn environment variables from process.env\n if (envVars.PATH && envVars.BERRY_BIN_FOLDER) {\n envVars.PATH = envVars.PATH.replace(`${envVars.BERRY_BIN_FOLDER}:`, '')\n // Temporary directory in macOS\n .replaceAll(/\\/private\\/var\\/folders\\/[^:]+:/g, '')\n // Temporary directories in Linux\n .replaceAll(/\\/var\\/tmp\\/[^:]+:/g, '')\n .replaceAll(/\\/tmp\\/[^:]+:/g, '');\n }\n for (const key of Object.keys(envVars)) {\n const upperKey = key.toUpperCase();\n if (\n upperKey.startsWith('NPM_') ||\n upperKey.startsWith('YARN_') ||\n upperKey.startsWith('BERRY_') ||\n upperKey === 'PROJECT_CWD' ||\n upperKey === 'INIT_CWD'\n ) {\n delete envVars[key];\n }\n }\n}\n","import fs from 'node:fs';\n\nexport function existsAsync(filePath: string): Promise<boolean> {\n return new Promise((resolve) => {\n fs.access(filePath, fs.constants.F_OK, (err) => {\n resolve(!err);\n });\n });\n}\n","import type {\n SpawnOptions,\n SpawnOptionsWithoutStdio,\n SpawnOptionsWithStdioTuple,\n SpawnSyncReturns,\n StdioNull,\n StdioPipe,\n} from 'node:child_process';\nimport { spawn } from 'node:child_process';\n\nimport treeKill from 'tree-kill';\n\nexport type SpawnAsyncReturns = Omit<SpawnSyncReturns<string>, 'output' | 'error'>;\n\nexport type SpawnAsyncOptions = (\n | SpawnOptionsWithoutStdio\n | SpawnOptionsWithStdioTuple<StdioPipe, StdioPipe, StdioPipe>\n | SpawnOptionsWithStdioTuple<StdioPipe, StdioPipe, StdioNull>\n | SpawnOptionsWithStdioTuple<StdioPipe, StdioNull, StdioPipe>\n | SpawnOptionsWithStdioTuple<StdioNull, StdioPipe, StdioPipe>\n | SpawnOptionsWithStdioTuple<StdioPipe, StdioNull, StdioNull>\n | SpawnOptionsWithStdioTuple<StdioNull, StdioPipe, StdioNull>\n | SpawnOptionsWithStdioTuple<StdioNull, StdioNull, StdioPipe>\n | SpawnOptionsWithStdioTuple<StdioNull, StdioNull, StdioNull>\n | SpawnOptions\n) & {\n input?: string;\n mergeOutAndError?: boolean;\n killOnExit?: boolean;\n verbose?: boolean;\n};\n\nexport async function spawnAsync(\n command: string,\n args?: ReadonlyArray<string>,\n options?: SpawnAsyncOptions\n): Promise<SpawnAsyncReturns> {\n return new Promise((resolve, reject) => {\n try {\n const proc = spawn(command, args ?? [], options ?? {});\n // `setEncoding` is undefined in Bun\n proc.stdout?.setEncoding?.('utf8');\n proc.stderr?.setEncoding?.('utf8');\n\n let stdout = '';\n let stderr = '';\n if (options?.input) {\n proc.stdin?.write(options.input);\n proc.stdin?.end();\n }\n proc.stdout?.on('data', (data) => {\n stdout += data;\n });\n proc.stderr?.on('data', (data) => {\n if (options?.mergeOutAndError) {\n stdout += data;\n } else {\n stderr += data;\n }\n });\n\n let stopped = false;\n const stopProcess = (): void => {\n if (stopped || !proc.pid) return;\n\n stopped = true;\n if (options?.verbose) {\n console.info(`treeKill(${proc.pid})`);\n }\n treeKill(proc.pid);\n };\n if (options?.killOnExit) {\n process.on('beforeExit', stopProcess);\n process.on('SIGINT', stopProcess);\n }\n\n proc.on('error', (error) => {\n process.removeListener('beforeExit', stopProcess);\n process.removeListener('SIGINT', stopProcess);\n proc.removeAllListeners('close');\n reject(error);\n });\n proc.on('close', (code: number | null, signal: NodeJS.Signals | null) => {\n process.removeListener('beforeExit', stopProcess);\n process.removeListener('SIGINT', stopProcess);\n if (proc.pid === undefined) {\n reject(new Error('Process has no pid.'));\n } else {\n resolve({\n pid: proc.pid,\n stdout,\n stderr,\n status: code,\n signal,\n });\n }\n });\n } catch (error) {\n reject(error);\n }\n });\n}\n","'use strict';\nconst align = {\n right: alignRight,\n center: alignCenter\n};\nconst top = 0;\nconst right = 1;\nconst bottom = 2;\nconst left = 3;\nexport class UI {\n constructor(opts) {\n var _a;\n this.width = opts.width;\n this.wrap = (_a = opts.wrap) !== null && _a !== void 0 ? _a : true;\n this.rows = [];\n }\n span(...args) {\n const cols = this.div(...args);\n cols.span = true;\n }\n resetOutput() {\n this.rows = [];\n }\n div(...args) {\n if (args.length === 0) {\n this.div('');\n }\n if (this.wrap && this.shouldApplyLayoutDSL(...args) && typeof args[0] === 'string') {\n return this.applyLayoutDSL(args[0]);\n }\n const cols = args.map(arg => {\n if (typeof arg === 'string') {\n return this.colFromString(arg);\n }\n return arg;\n });\n this.rows.push(cols);\n return cols;\n }\n shouldApplyLayoutDSL(...args) {\n return args.length === 1 && typeof args[0] === 'string' &&\n /[\\t\\n]/.test(args[0]);\n }\n applyLayoutDSL(str) {\n const rows = str.split('\\n').map(row => row.split('\\t'));\n let leftColumnWidth = 0;\n // simple heuristic for layout, make sure the\n // second column lines up along the left-hand.\n // don't allow the first column to take up more\n // than 50% of the screen.\n rows.forEach(columns => {\n if (columns.length > 1 && mixin.stringWidth(columns[0]) > leftColumnWidth) {\n leftColumnWidth = Math.min(Math.floor(this.width * 0.5), mixin.stringWidth(columns[0]));\n }\n });\n // generate a table:\n // replacing ' ' with padding calculations.\n // using the algorithmically generated width.\n rows.forEach(columns => {\n this.div(...columns.map((r, i) => {\n return {\n text: r.trim(),\n padding: this.measurePadding(r),\n width: (i === 0 && columns.length > 1) ? leftColumnWidth : undefined\n };\n }));\n });\n return this.rows[this.rows.length - 1];\n }\n colFromString(text) {\n return {\n text,\n padding: this.measurePadding(text)\n };\n }\n measurePadding(str) {\n // measure padding without ansi escape codes\n const noAnsi = mixin.stripAnsi(str);\n return [0, noAnsi.match(/\\s*$/)[0].length, 0, noAnsi.match(/^\\s*/)[0].length];\n }\n toString() {\n const lines = [];\n this.rows.forEach(row => {\n this.rowToString(row, lines);\n });\n // don't display any lines with the\n // hidden flag set.\n return lines\n .filter(line => !line.hidden)\n .map(line => line.text)\n .join('\\n');\n }\n rowToString(row, lines) {\n this.rasterize(row).forEach((rrow, r) => {\n let str = '';\n rrow.forEach((col, c) => {\n const { width } = row[c]; // the width with padding.\n const wrapWidth = this.negatePadding(row[c]); // the width without padding.\n let ts = col; // temporary string used during alignment/padding.\n if (wrapWidth > mixin.stringWidth(col)) {\n ts += ' '.repeat(wrapWidth - mixin.stringWidth(col));\n }\n // align the string within its column.\n if (row[c].align && row[c].align !== 'left' && this.wrap) {\n const fn = align[row[c].align];\n ts = fn(ts, wrapWidth);\n if (mixin.stringWidth(ts) < wrapWidth) {\n ts += ' '.repeat((width || 0) - mixin.stringWidth(ts) - 1);\n }\n }\n // apply border and padding to string.\n const padding = row[c].padding || [0, 0, 0, 0];\n if (padding[left]) {\n str += ' '.repeat(padding[left]);\n }\n str += addBorder(row[c], ts, '| ');\n str += ts;\n str += addBorder(row[c], ts, ' |');\n if (padding[right]) {\n str += ' '.repeat(padding[right]);\n }\n // if prior row is span, try to render the\n // current row on the prior line.\n if (r === 0 && lines.length > 0) {\n str = this.renderInline(str, lines[lines.length - 1]);\n }\n });\n // remove trailing whitespace.\n lines.push({\n text: str.replace(/ +$/, ''),\n span: row.span\n });\n });\n return lines;\n }\n // if the full 'source' can render in\n // the target line, do so.\n renderInline(source, previousLine) {\n const match = source.match(/^ */);\n const leadingWhitespace = match ? match[0].length : 0;\n const target = previousLine.text;\n const targetTextWidth = mixin.stringWidth(target.trimRight());\n if (!previousLine.span) {\n return source;\n }\n // if we're not applying wrapping logic,\n // just always append to the span.\n if (!this.wrap) {\n previousLine.hidden = true;\n return target + source;\n }\n if (leadingWhitespace < targetTextWidth) {\n return source;\n }\n previousLine.hidden = true;\n return target.trimRight() + ' '.repeat(leadingWhitespace - targetTextWidth) + source.trimLeft();\n }\n rasterize(row) {\n const rrows = [];\n const widths = this.columnWidths(row);\n let wrapped;\n // word wrap all columns, and create\n // a data-structure that is easy to rasterize.\n row.forEach((col, c) => {\n // leave room for left and right padding.\n col.width = widths[c];\n if (this.wrap) {\n wrapped = mixin.wrap(col.text, this.negatePadding(col), { hard: true }).split('\\n');\n }\n else {\n wrapped = col.text.split('\\n');\n }\n if (col.border) {\n wrapped.unshift('.' + '-'.repeat(this.negatePadding(col) + 2) + '.');\n wrapped.push(\"'\" + '-'.repeat(this.negatePadding(col) + 2) + \"'\");\n }\n // add top and bottom padding.\n if (col.padding) {\n wrapped.unshift(...new Array(col.padding[top] || 0).fill(''));\n wrapped.push(...new Array(col.padding[bottom] || 0).fill(''));\n }\n wrapped.forEach((str, r) => {\n if (!rrows[r]) {\n rrows.push([]);\n }\n const rrow = rrows[r];\n for (let i = 0; i < c; i++) {\n if (rrow[i] === undefined) {\n rrow.push('');\n }\n }\n rrow.push(str);\n });\n });\n return rrows;\n }\n negatePadding(col) {\n let wrapWidth = col.width || 0;\n if (col.padding) {\n wrapWidth -= (col.padding[left] || 0) + (col.padding[right] || 0);\n }\n if (col.border) {\n wrapWidth -= 4;\n }\n return wrapWidth;\n }\n columnWidths(row) {\n if (!this.wrap) {\n return row.map(col => {\n return col.width || mixin.stringWidth(col.text);\n });\n }\n let unset = row.length;\n let remainingWidth = this.width;\n // column widths can be set in config.\n const widths = row.map(col => {\n if (col.width) {\n unset--;\n remainingWidth -= col.width;\n return col.width;\n }\n return undefined;\n });\n // any unset widths should be calculated.\n const unsetWidth = unset ? Math.floor(remainingWidth / unset) : 0;\n return widths.map((w, i) => {\n if (w === undefined) {\n return Math.max(unsetWidth, _minWidth(row[i]));\n }\n return w;\n });\n }\n}\nfunction addBorder(col, ts, style) {\n if (col.border) {\n if (/[.']-+[.']/.test(ts)) {\n return '';\n }\n if (ts.trim().length !== 0) {\n return style;\n }\n return ' ';\n }\n return '';\n}\n// calculates the minimum width of\n// a column, based on padding preferences.\nfunction _minWidth(col) {\n const padding = col.padding || [];\n const minWidth = 1 + (padding[left] || 0) + (padding[right] || 0);\n if (col.border) {\n return minWidth + 4;\n }\n return minWidth;\n}\nfunction getWindowWidth() {\n /* istanbul ignore next: depends on terminal */\n if (typeof process === 'object' && process.stdout && process.stdout.columns) {\n return process.stdout.columns;\n }\n return 80;\n}\nfunction alignRight(str, width) {\n str = str.trim();\n const strWidth = mixin.stringWidth(str);\n if (strWidth < width) {\n return ' '.repeat(width - strWidth) + str;\n }\n return str;\n}\nfunction alignCenter(str, width) {\n str = str.trim();\n const strWidth = mixin.stringWidth(str);\n /* istanbul ignore next */\n if (strWidth >= width) {\n return str;\n }\n return ' '.repeat((width - strWidth) >> 1) + str;\n}\nlet mixin;\nexport function cliui(opts, _mixin) {\n mixin = _mixin;\n return new UI({\n width: (opts === null || opts === void 0 ? void 0 : opts.width) || getWindowWidth(),\n wrap: opts === null || opts === void 0 ? void 0 : opts.wrap\n });\n}\n","// Minimal replacement for ansi string helpers \"wrap-ansi\" and \"strip-ansi\".\n// to facilitate ESM and Deno modules.\n// TODO: look at porting https://www.npmjs.com/package/wrap-ansi to ESM.\n// The npm application\n// Copyright (c) npm, Inc. and Contributors\n// Licensed on the terms of The Artistic License 2.0\n// See: https://github.com/npm/cli/blob/4c65cd952bc8627811735bea76b9b110cc4fc80e/lib/utils/ansi-trim.js\nconst ansi = new RegExp('\\x1b(?:\\\\[(?:\\\\d+[ABCDEFGJKSTm]|\\\\d+;\\\\d+[Hfm]|' +\n '\\\\d+;\\\\d+;\\\\d+m|6n|s|u|\\\\?25[lh])|\\\\w)', 'g');\nexport function stripAnsi(str) {\n return str.replace(ansi, '');\n}\nexport function wrap(str, width) {\n const [start, end] = str.match(ansi) || ['', ''];\n str = stripAnsi(str);\n let wrapped = '';\n for (let i = 0; i < str.length; i++) {\n if (i !== 0 && (i % width) === 0) {\n wrapped += '\\n';\n }\n wrapped += str.charAt(i);\n }\n if (start && end) {\n wrapped = `${start}${wrapped}${end}`;\n }\n return wrapped;\n}\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 */\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","/**\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 */\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","function getProcessArgvBinIndex() {\n if (isBundledElectronApp())\n return 0;\n return 1;\n}\nfunction isBundledElectronApp() {\n return isElectronApp() && !process.defaultApp;\n}\nfunction isElectronApp() {\n return !!process.versions.electron;\n}\nexport function hideBin(argv) {\n return argv.slice(getProcessArgvBinIndex() + 1);\n}\nexport function getProcessArgvBin() {\n return process.argv[getProcessArgvBinIndex()];\n}\n","export class YError extends Error {\n constructor(msg) {\n super(msg || 'yargs error');\n this.name = 'YError';\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, YError);\n }\n }\n}\n","import { readFileSync, statSync, writeFile } from 'fs';\nimport { format } from 'util';\nimport { resolve } from 'path';\nexport default {\n fs: {\n readFileSync,\n writeFile\n },\n format,\n resolve,\n exists: (file) => {\n try {\n return statSync(file).isFile();\n }\n catch (err) {\n return false;\n }\n }\n};\n","let shim;\nclass Y18N {\n constructor(opts) {\n // configurable options.\n opts = opts || {};\n this.directory = opts.directory || './locales';\n this.updateFiles = typeof opts.updateFiles === 'boolean' ? opts.updateFiles : true;\n this.locale = opts.locale || 'en';\n this.fallbackToLanguage = typeof opts.fallbackToLanguage === 'boolean' ? opts.fallbackToLanguage : true;\n // internal stuff.\n this.cache = Object.create(null);\n this.writeQueue = [];\n }\n __(...args) {\n if (typeof arguments[0] !== 'string') {\n return this._taggedLiteral(arguments[0], ...arguments);\n }\n const str = args.shift();\n let cb = function () { }; // start with noop.\n if (typeof args[args.length - 1] === 'function')\n cb = args.pop();\n cb = cb || function () { }; // noop.\n if (!this.cache[this.locale])\n this._readLocaleFile();\n // we've observed a new string, update the language file.\n if (!this.cache[this.locale][str] && this.updateFiles) {\n this.cache[this.locale][str] = str;\n // include the current directory and locale,\n // since these values could change before the\n // write is performed.\n this._enqueueWrite({\n directory: this.directory,\n locale: this.locale,\n cb\n });\n }\n else {\n cb();\n }\n return shim.format.apply(shim.format, [this.cache[this.locale][str] || str].concat(args));\n }\n __n() {\n const args = Array.prototype.slice.call(arguments);\n const singular = args.shift();\n const plural = args.shift();\n const quantity = args.shift();\n let cb = function () { }; // start with noop.\n if (typeof args[args.length - 1] === 'function')\n cb = args.pop();\n if (!this.cache[this.locale])\n this._readLocaleFile();\n let str = quantity === 1 ? singular : plural;\n if (this.cache[this.locale][singular]) {\n const entry = this.cache[this.locale][singular];\n str = entry[quantity === 1 ? 'one' : 'other'];\n }\n // we've observed a new string, update the language file.\n if (!this.cache[this.locale][singular] && this.updateFiles) {\n this.cache[this.locale][singular] = {\n one: singular,\n other: plural\n };\n // include the current directory and locale,\n // since these values could change before the\n // write is performed.\n this._enqueueWrite({\n directory: this.directory,\n locale: this.locale,\n cb\n });\n }\n else {\n cb();\n }\n // if a %d placeholder is provided, add quantity\n // to the arguments expanded by util.format.\n const values = [str];\n if (~str.indexOf('%d'))\n values.push(quantity);\n return shim.format.apply(shim.format, values.concat(args));\n }\n setLocale(locale) {\n this.locale = locale;\n }\n getLocale() {\n return this.locale;\n }\n updateLocale(obj) {\n if (!this.cache[this.locale])\n this._readLocaleFile();\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n this.cache[this.locale][key] = obj[key];\n }\n }\n }\n _taggedLiteral(parts, ...args) {\n let str = '';\n parts.forEach(function (part, i) {\n const arg = args[i + 1];\n str += part;\n if (typeof arg !== 'undefined') {\n str += '%s';\n }\n });\n return this.__.apply(this, [str].concat([].slice.call(args, 1)));\n }\n _enqueueWrite(work) {\n this.writeQueue.push(work);\n if (this.writeQueue.length === 1)\n this._processWriteQueue();\n }\n _processWriteQueue() {\n const _this = this;\n const work = this.writeQueue[0];\n // destructure the enqueued work.\n const directory = work.directory;\n const locale = work.locale;\n const cb = work.cb;\n const languageFile = this._resolveLocaleFile(directory, locale);\n const serializedLocale = JSON.stringify(this.cache[locale], null, 2);\n shim.fs.writeFile(languageFile, serializedLocale, 'utf-8', function (err) {\n _this.writeQueue.shift();\n if (_this.writeQueue.length > 0)\n _this._processWriteQueue();\n cb(err);\n });\n }\n _readLocaleFile() {\n let localeLookup = {};\n const languageFile = this._resolveLocaleFile(this.directory, this.locale);\n try {\n // When using a bundler such as webpack, readFileSync may not be defined:\n if (shim.fs.readFileSync) {\n localeLookup = JSON.parse(shim.fs.readFileSync(languageFile, 'utf-8'));\n }\n }\n catch (err) {\n if (err instanceof SyntaxError) {\n err.message = 'syntax error in ' + languageFile;\n }\n if (err.code === 'ENOENT')\n localeLookup = {};\n else\n throw err;\n }\n this.cache[this.locale] = localeLookup;\n }\n _resolveLocaleFile(directory, locale) {\n let file = shim.resolve(directory, './', locale + '.json');\n if (this.fallbackToLanguage && !this._fileExistsSync(file) && ~locale.lastIndexOf('_')) {\n // attempt fallback to language only\n const languageFile = shim.resolve(directory, './', locale.split('_')[0] + '.json');\n if (this._fileExistsSync(languageFile))\n file = languageFile;\n }\n return file;\n }\n _fileExistsSync(file) {\n return shim.exists(file);\n }\n}\nexport function y18n(opts, _shim) {\n shim = _shim;\n const y18n = new Y18N(opts);\n return {\n __: y18n.__.bind(y18n),\n __n: y18n.__n.bind(y18n),\n setLocale: y18n.setLocale.bind(y18n),\n getLocale: y18n.getLocale.bind(y18n),\n updateLocale: y18n.updateLocale.bind(y18n),\n locale: y18n.locale\n };\n}\n","import shim from './build/lib/platform-shims/node.js'\nimport { y18n as _y18n } from './build/lib/index.js'\n\nconst y18n = (opts) => {\n return _y18n(opts, shim)\n}\n\nexport default y18n\n","'use strict'\n\nimport { notStrictEqual, strictEqual } from 'assert'\nimport cliui from 'cliui'\nimport escalade from 'escalade/sync'\nimport { inspect } from 'util'\nimport { readFileSync } from 'fs'\nimport { fileURLToPath } from 'url';\nimport Parser from 'yargs-parser'\nimport { basename, dirname, extname, relative, resolve } from 'path'\nimport { getProcessArgvBin } from '../../build/lib/utils/process-argv.js'\nimport { YError } from '../../build/lib/yerror.js'\nimport y18n from 'y18n'\n\nconst REQUIRE_ERROR = 'require is not supported by ESM'\nconst REQUIRE_DIRECTORY_ERROR = 'loading a directory of commands is not supported yet for ESM'\n\nlet __dirname;\ntry {\n __dirname = fileURLToPath(import.meta.url);\n} catch (e) {\n __dirname = process.cwd();\n}\nconst mainFilename = __dirname.substring(0, __dirname.lastIndexOf('node_modules'));\n\nexport default {\n assert: {\n notStrictEqual,\n strictEqual\n },\n cliui,\n findUp: escalade,\n getEnv: (key) => {\n return process.env[key]\n },\n inspect,\n getCallerFile: () => {\n throw new YError(REQUIRE_DIRECTORY_ERROR)\n },\n getProcessArgvBin,\n mainFilename: mainFilename || process.cwd(),\n Parser,\n path: {\n basename,\n dirname,\n extname,\n relative,\n resolve\n },\n process: {\n argv: () => process.argv,\n cwd: process.cwd,\n emitWarning: (warning, type) => process.emitWarning(warning, type),\n execPath: () => process.execPath,\n exit: process.exit,\n nextTick: process.nextTick,\n stdColumns: typeof process.stdout.columns !== 'undefined' ? process.stdout.columns : null\n },\n readFileSync,\n require: () => {\n throw new YError(REQUIRE_ERROR)\n },\n requireDirectory: () => {\n throw new YError(REQUIRE_DIRECTORY_ERROR)\n },\n stringWidth: (str) => {\n return [...str].length\n },\n y18n: y18n({\n directory: resolve(__dirname, '../../../locales'),\n updateFiles: false\n })\n}\n","// Bootstrap cliui with CommonJS dependencies:\nimport { cliui } from './build/lib/index.js'\nimport { wrap, stripAnsi } from './build/lib/string-utils.js'\n\nexport default function ui (opts) {\n return cliui(opts, {\n stringWidth: (str) => {\n return [...str].length\n },\n stripAnsi,\n wrap\n })\n}\n","import { dirname, resolve } from 'path';\nimport { readdirSync, statSync } from 'fs';\n\nexport default function (start, callback) {\n\tlet dir = resolve('.', start);\n\tlet tmp, stats = statSync(dir);\n\n\tif (!stats.isDirectory()) {\n\t\tdir = dirname(dir);\n\t}\n\n\twhile (true) {\n\t\ttmp = callback(dir, readdirSync(dir));\n\t\tif (tmp) return resolve(dir, tmp);\n\t\tdir = dirname(tmp = dir);\n\t\tif (tmp === dir) break;\n\t}\n}\n","export function assertNotStrictEqual(actual, expected, shim, message) {\n shim.assert.notStrictEqual(actual, expected, message);\n}\nexport function assertSingleKey(actual, shim) {\n shim.assert.strictEqual(typeof actual, 'string');\n}\nexport function objectKeys(object) {\n return Object.keys(object);\n}\n","export function isPromise(maybePromise) {\n return (!!maybePromise &&\n !!maybePromise.then &&\n typeof maybePromise.then === 'function');\n}\n","export function parseCommand(cmd) {\n const extraSpacesStrippedCommand = cmd.replace(/\\s{2,}/g, ' ');\n const splitCommand = extraSpacesStrippedCommand.split(/\\s+(?![^[]*]|[^<]*>)/);\n const bregex = /\\.*[\\][<>]/g;\n const firstCommand = splitCommand.shift();\n if (!firstCommand)\n throw new Error(`No command found in: ${cmd}`);\n const parsedCommand = {\n cmd: firstCommand.replace(bregex, ''),\n demanded: [],\n optional: [],\n };\n splitCommand.forEach((cmd, i) => {\n let variadic = false;\n cmd = cmd.replace(/\\s/g, '');\n if (/\\.+[\\]>]/.test(cmd) && i === splitCommand.length - 1)\n variadic = true;\n if (/^\\[/.test(cmd)) {\n parsedCommand.optional.push({\n cmd: cmd.replace(bregex, '').split('|'),\n variadic,\n });\n }\n else {\n parsedCommand.demanded.push({\n cmd: cmd.replace(bregex, '').split('|'),\n variadic,\n });\n }\n });\n return parsedCommand;\n}\n","import { YError } from './yerror.js';\nimport { parseCommand } from './parse-command.js';\nconst positionName = ['first', 'second', 'third', 'fourth', 'fifth', 'sixth'];\nexport function argsert(arg1, arg2, arg3) {\n function parseArgs() {\n return typeof arg1 === 'object'\n ? [{ demanded: [], optional: [] }, arg1, arg2]\n : [\n parseCommand(`cmd ${arg1}`),\n arg2,\n arg3,\n ];\n }\n try {\n let position = 0;\n const [parsed, callerArguments, _length] = parseArgs();\n const args = [].slice.call(callerArguments);\n while (args.length && args[args.length - 1] === undefined)\n args.pop();\n const length = _length || args.length;\n if (length < parsed.demanded.length) {\n throw new YError(`Not enough arguments provided. Expected ${parsed.demanded.length} but received ${args.length}.`);\n }\n const totalCommands = parsed.demanded.length + parsed.optional.length;\n if (length > totalCommands) {\n throw new YError(`Too many arguments provided. Expected max ${totalCommands} but received ${length}.`);\n }\n parsed.demanded.forEach(demanded => {\n const arg = args.shift();\n const observedType = guessType(arg);\n const matchingTypes = demanded.cmd.filter(type => type === observedType || type === '*');\n if (matchingTypes.length === 0)\n argumentTypeError(observedType, demanded.cmd, position);\n position += 1;\n });\n parsed.optional.forEach(optional => {\n if (args.length === 0)\n return;\n const arg = args.shift();\n const observedType = guessType(arg);\n const matchingTypes = optional.cmd.filter(type => type === observedType || type === '*');\n if (matchingTypes.length === 0)\n argumentTypeError(observedType, optional.cmd, position);\n position += 1;\n });\n }\n catch (err) {\n console.warn(err.stack);\n }\n}\nfunction guessType(arg) {\n if (Array.isArray(arg)) {\n return 'array';\n }\n else if (arg === null) {\n return 'null';\n }\n return typeof arg;\n}\nfunction argumentTypeError(observedType, allowedTypes, position) {\n throw new YError(`Invalid ${positionName[position] || 'manyith'} argument. Expected ${allowedTypes.join(' or ')} but received ${observedType}.`);\n}\n","import { argsert } from './argsert.js';\nimport { isPromise } from './utils/is-promise.js';\nexport class GlobalMiddleware {\n constructor(yargs) {\n this.globalMiddleware = [];\n this.frozens = [];\n this.yargs = yargs;\n }\n addMiddleware(callback, applyBeforeValidation, global = true, mutates = false) {\n argsert('<array|function> [boolean] [boolean] [boolean]', [callback, applyBeforeValidation, global], arguments.length);\n if (Array.isArray(callback)) {\n for (let i = 0; i < callback.length; i++) {\n if (typeof callback[i] !== 'function') {\n throw Error('middleware must be a function');\n }\n const m = callback[i];\n m.applyBeforeValidation = applyBeforeValidation;\n m.global = global;\n }\n Array.prototype.push.apply(this.globalMiddleware, callback);\n }\n else if (typeof callback === 'function') {\n const m = callback;\n m.applyBeforeValidation = applyBeforeValidation;\n m.global = global;\n m.mutates = mutates;\n this.globalMiddleware.push(callback);\n }\n return this.yargs;\n }\n addCoerceMiddleware(callback, option) {\n const aliases = this.yargs.getAliases();\n this.globalMiddleware = this.globalMiddleware.filter(m => {\n const toCheck = [...(aliases[option] || []), option];\n if (!m.option)\n return true;\n else\n return !toCheck.includes(m.option);\n });\n callback.option = option;\n return this.addMiddleware(callback, true, true, true);\n }\n getMiddleware() {\n return this.globalMiddleware;\n }\n freeze() {\n this.frozens.push([...this.globalMiddleware]);\n }\n unfreeze() {\n const frozen = this.frozens.pop();\n if (frozen !== undefined)\n this.globalMiddleware = frozen;\n }\n reset() {\n this.globalMiddleware = this.globalMiddleware.filter(m => m.global);\n }\n}\nexport function commandMiddlewareFactory(commandMiddleware) {\n if (!commandMiddleware)\n return [];\n return commandMiddleware.map(middleware => {\n middleware.applyBeforeValidation = false;\n return middleware;\n });\n}\nexport function applyMiddleware(argv, yargs, middlewares, beforeValidation) {\n return middlewares.reduce((acc, middleware) => {\n if (middleware.applyBeforeValidation !== beforeValidation) {\n return acc;\n }\n if (middleware.mutates) {\n if (middleware.applied)\n return acc;\n middleware.applied = true;\n }\n if (isPromise(acc)) {\n return acc\n .then(initialObj => Promise.all([initialObj, middleware(initialObj, yargs)]))\n .then(([initialObj, middlewareObj]) => Object.assign(initialObj, middlewareObj));\n }\n else {\n const result = middleware(acc, yargs);\n return isPromise(result)\n ? result.then(middlewareObj => Object.assign(acc, middlewareObj))\n : Object.assign(acc, result);\n }\n }, argv);\n}\n","import { isPromise } from './is-promise.js';\nexport function maybeAsyncResult(getResult, resultHandler, errorHandler = (err) => {\n throw err;\n}) {\n try {\n const result = isFunction(getResult) ? getResult() : getResult;\n return isPromise(result)\n ? result.then((result) => resultHandler(result))\n : resultHandler(result);\n }\n catch (err) {\n return errorHandler(err);\n }\n}\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\n","import { assertNotStrictEqual, } from './typings/common-types.js';\nimport { isPromise } from './utils/is-promise.js';\nimport { applyMiddleware, commandMiddlewareFactory, } from './middleware.js';\nimport { parseCommand } from './parse-command.js';\nimport { isYargsInstance, } from './yargs-factory.js';\nimport { maybeAsyncResult } from './utils/maybe-async-result.js';\nimport whichModule from './utils/which-module.js';\nconst DEFAULT_MARKER = /(^\\*)|(^\\$0)/;\nexport class CommandInstance {\n constructor(usage, validation, globalMiddleware, shim) {\n this.requireCache = new Set();\n this.handlers = {};\n this.aliasMap = {};\n this.frozens = [];\n this.shim = shim;\n this.usage = usage;\n this.globalMiddleware = globalMiddleware;\n this.validation = validation;\n }\n addDirectory(dir, req, callerFile, opts) {\n opts = opts || {};\n if (typeof opts.recurse !== 'boolean')\n opts.recurse = false;\n if (!Array.isArray(opts.extensions))\n opts.extensions = ['js'];\n const parentVisit = typeof opts.visit === 'function' ? opts.visit : (o) => o;\n opts.visit = (obj, joined, filename) => {\n const visited = parentVisit(obj, joined, filename);\n if (visited) {\n if (this.requireCache.has(joined))\n return visited;\n else\n this.requireCache.add(joined);\n this.addHandler(visited);\n }\n return visited;\n };\n this.shim.requireDirectory({ require: req, filename: callerFile }, dir, opts);\n }\n addHandler(cmd, description, builder, handler, commandMiddleware, deprecated) {\n let aliases = [];\n const middlewares = commandMiddlewareFactory(commandMiddleware);\n handler = handler || (() => { });\n if (Array.isArray(cmd)) {\n if (isCommandAndAliases(cmd)) {\n [cmd, ...aliases] = cmd;\n }\n else {\n for (const command of cmd) {\n this.addHandler(command);\n }\n }\n }\n else if (isCommandHandlerDefinition(cmd)) {\n let command = Array.isArray(cmd.command) || typeof cmd.command === 'string'\n ? cmd.command\n : this.moduleName(cmd);\n if (cmd.aliases)\n command = [].concat(command).concat(cmd.aliases);\n this.addHandler(command, this.extractDesc(cmd), cmd.builder, cmd.handler, cmd.middlewares, cmd.deprecated);\n return;\n }\n else if (isCommandBuilderDefinition(builder)) {\n this.addHandler([cmd].concat(aliases), description, builder.builder, builder.handler, builder.middlewares, builder.deprecated);\n return;\n }\n if (typeof cmd === 'string') {\n const parsedCommand = parseCommand(cmd);\n aliases = aliases.map(alias => parseCommand(alias).cmd);\n let isDefault = false;\n const parsedAliases = [parsedCommand.cmd].concat(aliases).filter(c => {\n if (DEFAULT_MARKER.test(c)) {\n isDefault = true;\n return false;\n }\n return true;\n });\n if (parsedAliases.length === 0 && isDefault)\n parsedAliases.push('$0');\n if (isDefault) {\n parsedCommand.cmd = parsedAliases[0];\n aliases = parsedAliases.slice(1);\n cmd = cmd.replace(DEFAULT_MARKER, parsedCommand.cmd);\n }\n aliases.forEach(alias => {\n this.aliasMap[alias] = parsedCommand.cmd;\n });\n if (description !== false) {\n this.usage.command(cmd, description, isDefault, aliases, deprecated);\n }\n this.handlers[parsedCommand.cmd] = {\n original: cmd,\n description,\n handler,\n builder: builder || {},\n middlewares,\n deprecated,\n demanded: parsedCommand.demanded,\n optional: parsedCommand.optional,\n };\n if (isDefault)\n this.defaultCommand = this.handlers[parsedCommand.cmd];\n }\n }\n getCommandHandlers() {\n return this.handlers;\n }\n getCommands() {\n return Object.keys(this.handlers).concat(Object.keys(this.aliasMap));\n }\n hasDefaultCommand() {\n return !!this.defaultCommand;\n }\n runCommand(command, yargs, parsed, commandIndex, helpOnly, helpOrVersionSet) {\n const commandHandler = this.handlers[command] ||\n this.handlers[this.aliasMap[command]] ||\n this.defaultCommand;\n const currentContext = yargs.getInternalMethods().getContext();\n const parentCommands = currentContext.commands.slice();\n const isDefaultCommand = !command;\n if (command) {\n currentContext.commands.push(command);\n currentContext.fullCommands.push(commandHandler.original);\n }\n const builderResult = this.applyBuilderUpdateUsageAndParse(isDefaultCommand, commandHandler, yargs, parsed.aliases, parentCommands, commandIndex, helpOnly, helpOrVersionSet);\n return isPromise(builderResult)\n ? builderResult.then(result => this.applyMiddlewareAndGetResult(isDefaultCommand, commandHandler, result.innerArgv, currentContext, helpOnly, result.aliases, yargs))\n : this.applyMiddlewareAndGetResult(isDefaultCommand, commandHandler, builderResult.innerArgv, currentContext, helpOnly, builderResult.aliases, yargs);\n }\n applyBuilderUpdateUsageAndParse(isDefaultCommand, commandHandler, yargs, aliases, parentCommands, commandIndex, helpOnly, helpOrVersionSet) {\n const builder = commandHandler.builder;\n let innerYargs = yargs;\n if (isCommandBuilderCallback(builder)) {\n yargs.getInternalMethods().getUsageInstance().freeze();\n const builderOutput = builder(yargs.getInternalMethods().reset(aliases), helpOrVersionSet);\n if (isPromise(builderOutput)) {\n return builderOutput.then(output => {\n innerYargs = isYargsInstance(output) ? output : yargs;\n return this.parseAndUpdateUsage(isDefaultCommand, commandHandler, innerYargs, parentCommands, commandIndex, helpOnly);\n });\n }\n }\n else if (isCommandBuilderOptionDefinitions(builder)) {\n yargs.getInternalMethods().getUsageInstance().freeze();\n innerYargs = yargs.getInternalMethods().reset(aliases);\n Object.keys(commandHandler.builder).forEach(key => {\n innerYargs.option(key, builder[key]);\n });\n }\n return this.parseAndUpdateUsage(isDefaultCommand, commandHandler, innerYargs, parentCommands, commandIndex, helpOnly);\n }\n parseAndUpdateUsage(isDefaultCommand, commandHandler, innerYargs, parentCommands, commandIndex, helpOnly) {\n if (isDefaultCommand)\n innerYargs.getInternalMethods().getUsageInstance().unfreeze(true);\n if (this.shouldUpdateUsage(innerYargs)) {\n innerYargs\n .getInternalMethods()\n .getUsageInstance()\n .usage(this.usageFromParentCommandsCommandHandler(parentCommands, commandHandler), commandHandler.description);\n }\n const innerArgv = innerYargs\n .getInternalMethods()\n .runYargsParserAndExecuteCommands(null, undefined, true, commandIndex, helpOnly);\n return isPromise(innerArgv)\n ? innerArgv.then(argv => ({\n aliases: innerYargs.parsed.aliases,\n innerArgv: argv,\n }))\n : {\n aliases: innerYargs.parsed.aliases,\n innerArgv: innerArgv,\n };\n }\n shouldUpdateUsage(yargs) {\n return (!yargs.getInternalMethods().getUsageInstance().getUsageDisabled() &&\n yargs.getInternalMethods().getUsageInstance().getUsage().length === 0);\n }\n usageFromParentCommandsCommandHandler(parentCommands, commandHandler) {\n const c = DEFAULT_MARKER.test(commandHandler.original)\n ? commandHandler.original.replace(DEFAULT_MARKER, '').trim()\n : commandHandler.original;\n const pc = parentCommands.filter(c => {\n return !DEFAULT_MARKER.test(c);\n });\n pc.push(c);\n return `$0 ${pc.join(' ')}`;\n }\n handleValidationAndGetResult(isDefaultCommand, commandHandler, innerArgv, currentContext, aliases, yargs, middlewares, positionalMap) {\n if (!yargs.getInternalMethods().getHasOutput()) {\n const validation = yargs\n .getInternalMethods()\n .runValidation(aliases, positionalMap, yargs.parsed.error, isDefaultCommand);\n innerArgv = maybeAsyncResult(innerArgv, result => {\n validation(result);\n return result;\n });\n }\n if (commandHandler.handler && !yargs.getInternalMethods().getHasOutput()) {\n yargs.getInternalMethods().setHasOutput();\n const populateDoubleDash = !!yargs.getOptions().configuration['populate--'];\n yargs\n .getInternalMethods()\n .postProcess(innerArgv, populateDoubleDash, false, false);\n innerArgv = applyMiddleware(innerArgv, yargs, middlewares, false);\n innerArgv = maybeAsyncResult(innerArgv, result => {\n const handlerResult = commandHandler.handler(result);\n return isPromise(handlerResult)\n ? handlerResult.then(() => result)\n : result;\n });\n if (!isDefaultCommand) {\n yargs.getInternalMethods().getUsageInstance().cacheHelpMessage();\n }\n if (isPromise(innerArgv) &&\n !yargs.getInternalMethods().hasParseCallback()) {\n innerArgv.catch(error => {\n try {\n yargs.getInternalMethods().getUsageInstance().fail(null, error);\n }\n catch (_err) {\n }\n });\n }\n }\n if (!isDefaultCommand) {\n currentContext.commands.pop();\n currentContext.fullCommands.pop();\n }\n return innerArgv;\n }\n applyMiddlewareAndGetResult(isDefaultCommand, commandHandler, innerArgv, currentContext, helpOnly, aliases, yargs) {\n let positionalMap = {};\n if (helpOnly)\n return innerArgv;\n if (!yargs.getInternalMethods().getHasOutput()) {\n positionalMap = this.populatePositionals(commandHandler, innerArgv, currentContext, yargs);\n }\n const middlewares = this.globalMiddleware\n .getMiddleware()\n .slice(0)\n .concat(commandHandler.middlewares);\n const maybePromiseArgv = applyMiddleware(innerArgv, yargs, middlewares, true);\n return isPromise(maybePromiseArgv)\n ? maybePromiseArgv.then(resolvedInnerArgv => this.handleValidationAndGetResult(isDefaultCommand, commandHandler, resolvedInnerArgv, currentContext, aliases, yargs, middlewares, positionalMap))\n : this.handleValidationAndGetResult(isDefaultCommand, commandHandler, maybePromiseArgv, currentContext, aliases, yargs, middlewares, positionalMap);\n }\n populatePositionals(commandHandler, argv, context, yargs) {\n argv._ = argv._.slice(context.commands.length);\n const demanded = commandHandler.demanded.slice(0);\n const optional = commandHandler.optional.slice(0);\n const positionalMap = {};\n this.validation.positionalCount(demanded.length, argv._.length);\n while (demanded.length) {\n const demand = demanded.shift();\n this.populatePositional(demand, argv, positionalMap);\n }\n while (optional.length) {\n const maybe = optional.shift();\n this.populatePositional(maybe, argv, positionalMap);\n }\n argv._ = context.commands.concat(argv._.map(a => '' + a));\n this.postProcessPositionals(argv, positionalMap, this.cmdToParseOptions(commandHandler.original), yargs);\n return positionalMap;\n }\n populatePositional(positional, argv, positionalMap) {\n const cmd = positional.cmd[0];\n if (positional.variadic) {\n positionalMap[cmd] = argv._.splice(0).map(String);\n }\n else {\n if (argv._.length)\n positionalMap[cmd] = [String(argv._.shift())];\n }\n }\n cmdToParseOptions(cmdString) {\n const parseOptions = {\n array: [],\n default: {},\n alias: {},\n demand: {},\n };\n const parsed = parseCommand(cmdString);\n parsed.demanded.forEach(d => {\n const [cmd, ...aliases] = d.cmd;\n if (d.variadic) {\n parseOptions.array.push(cmd);\n parseOptions.default[cmd] = [];\n }\n parseOptions.alias[cmd] = aliases;\n parseOptions.demand[cmd] = true;\n });\n parsed.optional.forEach(o => {\n const [cmd, ...aliases] = o.cmd;\n if (o.variadic) {\n parseOptions.array.push(cmd);\n parseOptions.default[cmd] = [];\n }\n parseOptions.alias[cmd] = aliases;\n });\n return parseOptions;\n }\n postProcessPositionals(argv, positionalMap, parseOptions, yargs) {\n const options = Object.assign({}, yargs.getOptions());\n options.default = Object.assign(parseOptions.default, options.default);\n for (const key of Object.keys(parseOptions.alias)) {\n options.alias[key] = (options.alias[key] || []).concat(parseOptions.alias[key]);\n }\n options.array = options.array.concat(parseOptions.array);\n options.config = {};\n const unparsed = [];\n Object.keys(positionalMap).forEach(key => {\n positionalMap[key].map(value => {\n if (options.configuration['unknown-options-as-args'])\n options.key[key] = true;\n unparsed.push(`--${key}`);\n unparsed.push(value);\n });\n });\n if (!unparsed.length)\n return;\n const config = Object.assign({}, options.configuration, {\n 'populate--': false,\n });\n const parsed = this.shim.Parser.detailed(unparsed, Object.assign({}, options, {\n configuration: config,\n }));\n if (parsed.error) {\n yargs\n .getInternalMethods()\n .getUsageInstance()\n .fail(parsed.error.message, parsed.error);\n }\n else {\n const positionalKeys = Object.keys(positionalMap);\n Object.keys(positionalMap).forEach(key => {\n positionalKeys.push(...parsed.aliases[key]);\n });\n Object.keys(parsed.argv).forEach(key => {\n if (positionalKeys.includes(key)) {\n if (!positionalMap[key])\n positionalMap[key] = parsed.argv[key];\n if (!this.isInConfigs(yargs, key) &&\n !this.isDefaulted(yargs, key) &&\n Object.prototype.hasOwnProperty.call(argv, key) &&\n Object.prototype.hasOwnProperty.call(parsed.argv, key) &&\n (Array.isArray(argv[key]) || Array.isArray(parsed.argv[key]))) {\n argv[key] = [].concat(argv[key], parsed.argv[key]);\n }\n else {\n argv[key] = parsed.argv[key];\n }\n }\n });\n }\n }\n isDefaulted(yargs, key) {\n const { default: defaults } = yargs.getOptions();\n return (Object.prototype.hasOwnProperty.call(defaults, key) ||\n Object.prototype.hasOwnProperty.call(defaults, this.shim.Parser.camelCase(key)));\n }\n isInConfigs(yargs, key) {\n const { configObjects } = yargs.getOptions();\n return (configObjects.some(c => Object.prototype.hasOwnProperty.call(c, key)) ||\n configObjects.some(c => Object.prototype.hasOwnProperty.call(c, this.shim.Parser.camelCase(key))));\n }\n runDefaultBuilderOn(yargs) {\n if (!this.defaultCommand)\n return;\n if (this.shouldUpdateUsage(yargs)) {\n const commandString = DEFAULT_MARKER.test(this.defaultCommand.original)\n ? this.defaultCommand.original\n : this.defaultCommand.original.replace(/^[^[\\]<>]*/, '$0 ');\n yargs\n .getInternalMethods()\n .getUsageInstance()\n .usage(commandString, this.defaultCommand.description);\n }\n const builder = this.defaultCommand.builder;\n if (isCommandBuilderCallback(builder)) {\n return builder(yargs, true);\n }\n else if (!isCommandBuilderDefinition(builder)) {\n Object.keys(builder).forEach(key => {\n yargs.option(key, builder[key]);\n });\n }\n return undefined;\n }\n moduleName(obj) {\n const mod = whichModule(obj);\n if (!mod)\n throw new Error(`No command name given for module: ${this.shim.inspect(obj)}`);\n return this.commandFromFilename(mod.filename);\n }\n commandFromFilename(filename) {\n return this.shim.path.basename(filename, this.shim.path.extname(filename));\n }\n extractDesc({ describe, description, desc }) {\n for (const test of [describe, description, desc]) {\n if (typeof test === 'string' || test === false)\n return test;\n assertNotStrictEqual(test, true, this.shim);\n }\n return false;\n }\n freeze() {\n this.frozens.push({\n handlers: this.handlers,\n aliasMap: this.aliasMap,\n defaultCommand: this.defaultCommand,\n });\n }\n unfreeze() {\n const frozen = this.frozens.pop();\n assertNotStrictEqual(frozen, undefined, this.shim);\n ({\n handlers: this.handlers,\n aliasMap: this.aliasMap,\n defaultCommand: this.defaultCommand,\n } = frozen);\n }\n reset() {\n this.handlers = {};\n this.aliasMap = {};\n this.defaultCommand = undefined;\n this.requireCache = new Set();\n return this;\n }\n}\nexport function command(usage, validation, globalMiddleware, shim) {\n return new CommandInstance(usage, validation, globalMiddleware, shim);\n}\nexport function isCommandBuilderDefinition(builder) {\n return (typeof builder === 'object' &&\n !!builder.builder &&\n typeof builder.handler === 'function');\n}\nfunction isCommandAndAliases(cmd) {\n return cmd.every(c => typeof c === 'string');\n}\nexport function isCommandBuilderCallback(builder) {\n return typeof builder === 'function';\n}\nfunction isCommandBuilderOptionDefinitions(builder) {\n return typeof builder === 'object';\n}\nexport function isCommandHandlerDefinition(cmd) {\n return typeof cmd === 'object' && !Array.isArray(cmd);\n}\n","var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _YargsInstance_command, _YargsInstance_cwd, _YargsInstance_context, _YargsInstance_completion, _YargsInstance_completionCommand, _YargsInstance_defaultShowHiddenOpt, _YargsInstance_exitError, _YargsInstance_detectLocale, _YargsInstance_emittedWarnings, _YargsInstance_exitProcess, _YargsInstance_frozens, _YargsInstance_globalMiddleware, _YargsInstance_groups, _YargsInstance_hasOutput, _YargsInstance_helpOpt, _YargsInstance_isGlobalContext, _YargsInstance_logger, _YargsInstance_output, _YargsInstance_options, _YargsInstance_parentRequire, _YargsInstance_parserConfig, _YargsInstance_parseFn, _YargsInstance_parseContext, _YargsInstance_pkgs, _YargsInstance_preservedGroups, _YargsInstance_processArgs, _YargsInstance_recommendCommands, _YargsInstance_shim, _YargsInstance_strict, _YargsInstance_strictCommands, _YargsInstance_strictOptions, _YargsInstance_usage, _YargsInstance_usageConfig, _YargsInstance_versionOpt, _YargsInstance_validation;\nimport { command as Command, } from './command.js';\nimport { assertNotStrictEqual, assertSingleKey, objectKeys, } from './typings/common-types.js';\nimport { YError } from './yerror.js';\nimport { usage as Usage } from './usage.js';\nimport { argsert } from './argsert.js';\nimport { completion as Completion, } from './completion.js';\nimport { validation as Validation, } from './validation.js';\nimport { objFilter } from './utils/obj-filter.js';\nimport { applyExtends } from './utils/apply-extends.js';\nimport { applyMiddleware, GlobalMiddleware, } from './middleware.js';\nimport { isPromise } from './utils/is-promise.js';\nimport { maybeAsyncResult } from './utils/maybe-async-result.js';\nimport setBlocking from './utils/set-blocking.js';\nexport function YargsFactory(_shim) {\n return (processArgs = [], cwd = _shim.process.cwd(), parentRequire) => {\n const yargs = new YargsInstance(processArgs, cwd, parentRequire, _shim);\n Object.defineProperty(yargs, 'argv', {\n get: () => {\n return yargs.parse();\n },\n enumerable: true,\n });\n yargs.help();\n yargs.version();\n return yargs;\n };\n}\nconst kCopyDoubleDash = Symbol('copyDoubleDash');\nconst kCreateLogger = Symbol('copyDoubleDash');\nconst kDeleteFromParserHintObject = Symbol('deleteFromParserHintObject');\nconst kEmitWarning = Symbol('emitWarning');\nconst kFreeze = Symbol('freeze');\nconst kGetDollarZero = Symbol('getDollarZero');\nconst kGetParserConfiguration = Symbol('getParserConfiguration');\nconst kGetUsageConfiguration = Symbol('getUsageConfiguration');\nconst kGuessLocale = Symbol('guessLocale');\nconst kGuessVersion = Symbol('guessVersion');\nconst kParsePositionalNumbers = Symbol('parsePositionalNumbers');\nconst kPkgUp = Symbol('pkgUp');\nconst kPopulateParserHintArray = Symbol('populateParserHintArray');\nconst kPopulateParserHintSingleValueDictionary = Symbol('populateParserHintSingleValueDictionary');\nconst kPopulateParserHintArrayDictionary = Symbol('populateParserHintArrayDictionary');\nconst kPopulateParserHintDictionary = Symbol('populateParserHintDictionary');\nconst kSanitizeKey = Symbol('sanitizeKey');\nconst kSetKey = Symbol('setKey');\nconst kUnfreeze = Symbol('unfreeze');\nconst kValidateAsync = Symbol('validateAsync');\nconst kGetCommandInstance = Symbol('getCommandInstance');\nconst kGetContext = Symbol('getContext');\nconst kGetHasOutput = Symbol('getHasOutput');\nconst kGetLoggerInstance = Symbol('getLoggerInstance');\nconst kGetParseContext = Symbol('getParseContext');\nconst kGetUsageInstance = Symbol('getUsageInstance');\nconst kGetValidationInstance = Symbol('getValidationInstance');\nconst kHasParseCallback = Symbol('hasParseCallback');\nconst kIsGlobalContext = Symbol('isGlobalContext');\nconst kPostProcess = Symbol('postProcess');\nconst kRebase = Symbol('rebase');\nconst kReset = Symbol('reset');\nconst kRunYargsParserAndExecuteCommands = Symbol('runYargsParserAndExecuteCommands');\nconst kRunValidation = Symbol('runValidation');\nconst kSetHasOutput = Symbol('setHasOutput');\nconst kTrackManuallySetKeys = Symbol('kTrackManuallySetKeys');\nexport class YargsInstance {\n constructor(processArgs = [], cwd, parentRequire, shim) {\n this.customScriptName = false;\n this.parsed = false;\n _YargsInstance_command.set(this, void 0);\n _YargsInstance_cwd.set(this, void 0);\n _YargsInstance_context.set(this, { commands: [], fullCommands: [] });\n _YargsInstance_completion.set(this, null);\n _YargsInstance_completionCommand.set(this, null);\n _YargsInstance_defaultShowHiddenOpt.set(this, 'show-hidden');\n _YargsInstance_exitError.set(this, null);\n _YargsInstance_detectLocale.set(this, true);\n _YargsInstance_emittedWarnings.set(this, {});\n _YargsInstance_exitProcess.set(this, true);\n _YargsInstance_frozens.set(this, []);\n _YargsInstance_globalMiddleware.set(this, void 0);\n _YargsInstance_groups.set(this, {});\n _YargsInstance_hasOutput.set(this, false);\n _YargsInstance_helpOpt.set(this, null);\n _YargsInstance_isGlobalContext.set(this, true);\n _YargsInstance_logger.set(this, void 0);\n _YargsInstance_output.set(this, '');\n _YargsInstance_options.set(this, void 0);\n _YargsInstance_parentRequire.set(this, void 0);\n _YargsInstance_parserConfig.set(this, {});\n _YargsInstance_parseFn.set(this, null);\n _YargsInstance_parseContext.set(this, null);\n _YargsInstance_pkgs.set(this, {});\n _YargsInstance_preservedGroups.set(this, {});\n _YargsInstance_processArgs.set(this, void 0);\n _YargsInstance_recommendCommands.set(this, false);\n _YargsInstance_shim.set(this, void 0);\n _YargsInstance_strict.set(this, false);\n _YargsInstance_strictCommands.set(this, false);\n _YargsInstance_strictOptions.set(this, false);\n _YargsInstance_usage.set(this, void 0);\n _YargsInstance_usageConfig.set(this, {});\n _YargsInstance_versionOpt.set(this, null);\n _YargsInstance_validation.set(this, void 0);\n __classPrivateFieldSet(this, _YargsInstance_shim, shim, \"f\");\n __classPrivateFieldSet(this, _YargsInstance_processArgs, processArgs, \"f\");\n __classPrivateFieldSet(this, _YargsInstance_cwd, cwd, \"f\");\n __classPrivateFieldSet(this, _YargsInstance_parentRequire, parentRequire, \"f\");\n __classPrivateFieldSet(this, _YargsInstance_globalMiddleware, new GlobalMiddleware(this), \"f\");\n this.$0 = this[kGetDollarZero]();\n this[kReset]();\n __classPrivateFieldSet(this, _YargsInstance_command, __classPrivateFieldGet(this, _YargsInstance_command, \"f\"), \"f\");\n __classPrivateFieldSet(this, _YargsInstance_usage, __classPrivateFieldGet(this, _YargsInstance_usage, \"f\"), \"f\");\n __classPrivateFieldSet(this, _YargsInstance_validation, __classPrivateFieldGet(this, _YargsInstance_validation, \"f\"), \"f\");\n __classPrivateFieldSet(this, _YargsInstance_options, __classPrivateFieldGet(this, _YargsInstance_options, \"f\"), \"f\");\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\").showHiddenOpt = __classPrivateFieldGet(this, _YargsInstance_defaultShowHiddenOpt, \"f\");\n __classPrivateFieldSet(this, _YargsInstance_logger, this[kCreateLogger](), \"f\");\n }\n addHelpOpt(opt, msg) {\n const defaultHelpOpt = 'help';\n argsert('[string|boolean] [string]', [opt, msg], arguments.length);\n if (__classPrivateFieldGet(this, _YargsInstance_helpOpt, \"f\")) {\n this[kDeleteFromParserHintObject](__classPrivateFieldGet(this, _YargsInstance_helpOpt, \"f\"));\n __classPrivateFieldSet(this, _YargsInstance_helpOpt, null, \"f\");\n }\n if (opt === false && msg === undefined)\n return this;\n __classPrivateFieldSet(this, _YargsInstance_helpOpt, typeof opt === 'string' ? opt : defaultHelpOpt, \"f\");\n this.boolean(__classPrivateFieldGet(this, _YargsInstance_helpOpt, \"f\"));\n this.describe(__classPrivateFieldGet(this, _YargsInstance_helpOpt, \"f\"), msg || __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").deferY18nLookup('Show help'));\n return this;\n }\n help(opt, msg) {\n return this.addHelpOpt(opt, msg);\n }\n addShowHiddenOpt(opt, msg) {\n argsert('[string|boolean] [string]', [opt, msg], arguments.length);\n if (opt === false && msg === undefined)\n return this;\n const showHiddenOpt = typeof opt === 'string' ? opt : __classPrivateFieldGet(this, _YargsInstance_defaultShowHiddenOpt, \"f\");\n this.boolean(showHiddenOpt);\n this.describe(showHiddenOpt, msg || __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").deferY18nLookup('Show hidden options'));\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\").showHiddenOpt = showHiddenOpt;\n return this;\n }\n showHidden(opt, msg) {\n return this.addShowHiddenOpt(opt, msg);\n }\n alias(key, value) {\n argsert('<object|string|array> [string|array]', [key, value], arguments.length);\n this[kPopulateParserHintArrayDictionary](this.alias.bind(this), 'alias', key, value);\n return this;\n }\n array(keys) {\n argsert('<array|string>', [keys], arguments.length);\n this[kPopulateParserHintArray]('array', keys);\n this[kTrackManuallySetKeys](keys);\n return this;\n }\n boolean(keys) {\n argsert('<array|string>', [keys], arguments.length);\n this[kPopulateParserHintArray]('boolean', keys);\n this[kTrackManuallySetKeys](keys);\n return this;\n }\n check(f, global) {\n argsert('<function> [boolean]', [f, global], arguments.length);\n this.middleware((argv, _yargs) => {\n return maybeAsyncResult(() => {\n return f(argv, _yargs.getOptions());\n }, (result) => {\n if (!result) {\n __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").fail(__classPrivateFieldGet(this, _YargsInstance_shim, \"f\").y18n.__('Argument check failed: %s', f.toString()));\n }\n else if (typeof result === 'string' || result instanceof Error) {\n __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").fail(result.toString(), result);\n }\n return argv;\n }, (err) => {\n __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").fail(err.message ? err.message : err.toString(), err);\n return argv;\n });\n }, false, global);\n return this;\n }\n choices(key, value) {\n argsert('<object|string|array> [string|array]', [key, value], arguments.length);\n this[kPopulateParserHintArrayDictionary](this.choices.bind(this), 'choices', key, value);\n return this;\n }\n coerce(keys, value) {\n argsert('<object|string|array> [function]', [keys, value], arguments.length);\n if (Array.isArray(keys)) {\n if (!value) {\n throw new YError('coerce callback must be provided');\n }\n for (const key of keys) {\n this.coerce(key, value);\n }\n return this;\n }\n else if (typeof keys === 'object') {\n for (const key of Object.keys(keys)) {\n this.coerce(key, keys[key]);\n }\n return this;\n }\n if (!value) {\n throw new YError('coerce callback must be provided');\n }\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\").key[keys] = true;\n __classPrivateFieldGet(this, _YargsInstance_globalMiddleware, \"f\").addCoerceMiddleware((argv, yargs) => {\n let aliases;\n const shouldCoerce = Object.prototype.hasOwnProperty.call(argv, keys);\n if (!shouldCoerce) {\n return argv;\n }\n return maybeAsyncResult(() => {\n aliases = yargs.getAliases();\n return value(argv[keys]);\n }, (result) => {\n argv[keys] = result;\n const stripAliased = yargs\n .getInternalMethods()\n .getParserConfiguration()['strip-aliased'];\n if (aliases[keys] && stripAliased !== true) {\n for (const alias of aliases[keys]) {\n argv[alias] = result;\n }\n }\n return argv;\n }, (err) => {\n throw new YError(err.message);\n });\n }, keys);\n return this;\n }\n conflicts(key1, key2) {\n argsert('<string|object> [string|array]', [key1, key2], arguments.length);\n __classPrivateFieldGet(this, _YargsInstance_validation, \"f\").conflicts(key1, key2);\n return this;\n }\n config(key = 'config', msg, parseFn) {\n argsert('[object|string] [string|function] [function]', [key, msg, parseFn], arguments.length);\n if (typeof key === 'object' && !Array.isArray(key)) {\n key = applyExtends(key, __classPrivateFieldGet(this, _YargsInstance_cwd, \"f\"), this[kGetParserConfiguration]()['deep-merge-config'] || false, __classPrivateFieldGet(this, _YargsInstance_shim, \"f\"));\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\").configObjects = (__classPrivateFieldGet(this, _YargsInstance_options, \"f\").configObjects || []).concat(key);\n return this;\n }\n if (typeof msg === 'function') {\n parseFn = msg;\n msg = undefined;\n }\n this.describe(key, msg || __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").deferY18nLookup('Path to JSON config file'));\n (Array.isArray(key) ? key : [key]).forEach(k => {\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\").config[k] = parseFn || true;\n });\n return this;\n }\n completion(cmd, desc, fn) {\n argsert('[string] [string|boolean|function] [function]', [cmd, desc, fn], arguments.length);\n if (typeof desc === 'function') {\n fn = desc;\n desc = undefined;\n }\n __classPrivateFieldSet(this, _YargsInstance_completionCommand, cmd || __classPrivateFieldGet(this, _YargsInstance_completionCommand, \"f\") || 'completion', \"f\");\n if (!desc && desc !== false) {\n desc = 'generate completion script';\n }\n this.command(__classPrivateFieldGet(this, _YargsInstance_completionCommand, \"f\"), desc);\n if (fn)\n __classPrivateFieldGet(this, _YargsInstance_completion, \"f\").registerFunction(fn);\n return this;\n }\n command(cmd, description, builder, handler, middlewares, deprecated) {\n argsert('<string|array|object> [string|boolean] [function|object] [function] [array] [boolean|string]', [cmd, description, builder, handler, middlewares, deprecated], arguments.length);\n __classPrivateFieldGet(this, _YargsInstance_command, \"f\").addHandler(cmd, description, builder, handler, middlewares, deprecated);\n return this;\n }\n commands(cmd, description, builder, handler, middlewares, deprecated) {\n return this.command(cmd, description, builder, handler, middlewares, deprecated);\n }\n commandDir(dir, opts) {\n argsert('<string> [object]', [dir, opts], arguments.length);\n const req = __classPrivateFieldGet(this, _YargsInstance_parentRequire, \"f\") || __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").require;\n __classPrivateFieldGet(this, _YargsInstance_command, \"f\").addDirectory(dir, req, __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").getCallerFile(), opts);\n return this;\n }\n count(keys) {\n argsert('<array|string>', [keys], arguments.length);\n this[kPopulateParserHintArray]('count', keys);\n this[kTrackManuallySetKeys](keys);\n return this;\n }\n default(key, value, defaultDescription) {\n argsert('<object|string|array> [*] [string]', [key, value, defaultDescription], arguments.length);\n if (defaultDescription) {\n assertSingleKey(key, __classPrivateFieldGet(this, _YargsInstance_shim, \"f\"));\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\").defaultDescription[key] = defaultDescription;\n }\n if (typeof value === 'function') {\n assertSingleKey(key, __classPrivateFieldGet(this, _YargsInstance_shim, \"f\"));\n if (!__classPrivateFieldGet(this, _YargsInstance_options, \"f\").defaultDescription[key])\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\").defaultDescription[key] =\n __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").functionDescription(value);\n value = value.call();\n }\n this[kPopulateParserHintSingleValueDictionary](this.default.bind(this), 'default', key, value);\n return this;\n }\n defaults(key, value, defaultDescription) {\n return this.default(key, value, defaultDescription);\n }\n demandCommand(min = 1, max, minMsg, maxMsg) {\n argsert('[number] [number|string] [string|null|undefined] [string|null|undefined]', [min, max, minMsg, maxMsg], arguments.length);\n if (typeof max !== 'number') {\n minMsg = max;\n max = Infinity;\n }\n this.global('_', false);\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\").demandedCommands._ = {\n min,\n max,\n minMsg,\n maxMsg,\n };\n return this;\n }\n demand(keys, max, msg) {\n if (Array.isArray(max)) {\n max.forEach(key => {\n assertNotStrictEqual(msg, true, __classPrivateFieldGet(this, _YargsInstance_shim, \"f\"));\n this.demandOption(key, msg);\n });\n max = Infinity;\n }\n else if (typeof max !== 'number') {\n msg = max;\n max = Infinity;\n }\n if (typeof keys === 'number') {\n assertNotStrictEqual(msg, true, __classPrivateFieldGet(this, _YargsInstance_shim, \"f\"));\n this.demandCommand(keys, max, msg, msg);\n }\n else if (Array.isArray(keys)) {\n keys.forEach(key => {\n assertNotStrictEqual(msg, true, __classPrivateFieldGet(this, _YargsInstance_shim, \"f\"));\n this.demandOption(key, msg);\n });\n }\n else {\n if (typeof msg === 'string') {\n this.demandOption(keys, msg);\n }\n else if (msg === true || typeof msg === 'undefined') {\n this.demandOption(keys);\n }\n }\n return this;\n }\n demandOption(keys, msg) {\n argsert('<object|string|array> [string]', [keys, msg], arguments.length);\n this[kPopulateParserHintSingleValueDictionary](this.demandOption.bind(this), 'demandedOptions', keys, msg);\n return this;\n }\n deprecateOption(option, message) {\n argsert('<string> [string|boolean]', [option, message], arguments.length);\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\").deprecatedOptions[option] = message;\n return this;\n }\n describe(keys, description) {\n argsert('<object|string|array> [string]', [keys, description], arguments.length);\n this[kSetKey](keys, true);\n __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").describe(keys, description);\n return this;\n }\n detectLocale(detect) {\n argsert('<boolean>', [detect], arguments.length);\n __classPrivateFieldSet(this, _YargsInstance_detectLocale, detect, \"f\");\n return this;\n }\n env(prefix) {\n argsert('[string|boolean]', [prefix], arguments.length);\n if (prefix === false)\n delete __classPrivateFieldGet(this, _YargsInstance_options, \"f\").envPrefix;\n else\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\").envPrefix = prefix || '';\n return this;\n }\n epilogue(msg) {\n argsert('<string>', [msg], arguments.length);\n __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").epilog(msg);\n return this;\n }\n epilog(msg) {\n return this.epilogue(msg);\n }\n example(cmd, description) {\n argsert('<string|array> [string]', [cmd, description], arguments.length);\n if (Array.isArray(cmd)) {\n cmd.forEach(exampleParams => this.example(...exampleParams));\n }\n else {\n __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").example(cmd, description);\n }\n return this;\n }\n exit(code, err) {\n __classPrivateFieldSet(this, _YargsInstance_hasOutput, true, \"f\");\n __classPrivateFieldSet(this, _YargsInstance_exitError, err, \"f\");\n if (__classPrivateFieldGet(this, _YargsInstance_exitProcess, \"f\"))\n __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").process.exit(code);\n }\n exitProcess(enabled = true) {\n argsert('[boolean]', [enabled], arguments.length);\n __classPrivateFieldSet(this, _YargsInstance_exitProcess, enabled, \"f\");\n return this;\n }\n fail(f) {\n argsert('<function|boolean>', [f], arguments.length);\n if (typeof f === 'boolean' && f !== false) {\n throw new YError(\"Invalid first argument. Expected function or boolean 'false'\");\n }\n __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").failFn(f);\n return this;\n }\n getAliases() {\n return this.parsed ? this.parsed.aliases : {};\n }\n async getCompletion(args, done) {\n argsert('<array> [function]', [args, done], arguments.length);\n if (!done) {\n return new Promise((resolve, reject) => {\n __classPrivateFieldGet(this, _YargsInstance_completion, \"f\").getCompletion(args, (err, completions) => {\n if (err)\n reject(err);\n else\n resolve(completions);\n });\n });\n }\n else {\n return __classPrivateFieldGet(this, _YargsInstance_completion, \"f\").getCompletion(args, done);\n }\n }\n getDemandedOptions() {\n argsert([], 0);\n return __classPrivateFieldGet(this, _YargsInstance_options, \"f\").demandedOptions;\n }\n getDemandedCommands() {\n argsert([], 0);\n return __classPrivateFieldGet(this, _YargsInstance_options, \"f\").demandedCommands;\n }\n getDeprecatedOptions() {\n argsert([], 0);\n return __classPrivateFieldGet(this, _YargsInstance_options, \"f\").deprecatedOptions;\n }\n getDetectLocale() {\n return __classPrivateFieldGet(this, _YargsInstance_detectLocale, \"f\");\n }\n getExitProcess() {\n return __classPrivateFieldGet(this, _YargsInstance_exitProcess, \"f\");\n }\n getGroups() {\n return Object.assign({}, __classPrivateFieldGet(this, _YargsInstance_groups, \"f\"), __classPrivateFieldGet(this, _YargsInstance_preservedGroups, \"f\"));\n }\n getHelp() {\n __classPrivateFieldSet(this, _YargsInstance_hasOutput, true, \"f\");\n if (!__classPrivateFieldGet(this, _YargsInstance_usage, \"f\").hasCachedHelpMessage()) {\n if (!this.parsed) {\n const parse = this[kRunYargsParserAndExecuteCommands](__classPrivateFieldGet(this, _YargsInstance_processArgs, \"f\"), undefined, undefined, 0, true);\n if (isPromise(parse)) {\n return parse.then(() => {\n return __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").help();\n });\n }\n }\n const builderResponse = __classPrivateFieldGet(this, _YargsInstance_command, \"f\").runDefaultBuilderOn(this);\n if (isPromise(builderResponse)) {\n return builderResponse.then(() => {\n return __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").help();\n });\n }\n }\n return Promise.resolve(__classPrivateFieldGet(this, _YargsInstance_usage, \"f\").help());\n }\n getOptions() {\n return __classPrivateFieldGet(this, _YargsInstance_options, \"f\");\n }\n getStrict() {\n return __classPrivateFieldGet(this, _YargsInstance_strict, \"f\");\n }\n getStrictCommands() {\n return __classPrivateFieldGet(this, _YargsInstance_strictCommands, \"f\");\n }\n getStrictOptions() {\n return __classPrivateFieldGet(this, _YargsInstance_strictOptions, \"f\");\n }\n global(globals, global) {\n argsert('<string|array> [boolean]', [globals, global], arguments.length);\n globals = [].concat(globals);\n if (global !== false) {\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\").local = __classPrivateFieldGet(this, _YargsInstance_options, \"f\").local.filter(l => globals.indexOf(l) === -1);\n }\n else {\n globals.forEach(g => {\n if (!__classPrivateFieldGet(this, _YargsInstance_options, \"f\").local.includes(g))\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\").local.push(g);\n });\n }\n return this;\n }\n group(opts, groupName) {\n argsert('<string|array> <string>', [opts, groupName], arguments.length);\n const existing = __classPrivateFieldGet(this, _YargsInstance_preservedGroups, \"f\")[groupName] || __classPrivateFieldGet(this, _YargsInstance_groups, \"f\")[groupName];\n if (__classPrivateFieldGet(this, _YargsInstance_preservedGroups, \"f\")[groupName]) {\n delete __classPrivateFieldGet(this, _YargsInstance_preservedGroups, \"f\")[groupName];\n }\n const seen = {};\n __classPrivateFieldGet(this, _YargsInstance_groups, \"f\")[groupName] = (existing || []).concat(opts).filter(key => {\n if (seen[key])\n return false;\n return (seen[key] = true);\n });\n return this;\n }\n hide(key) {\n argsert('<string>', [key], arguments.length);\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\").hiddenOptions.push(key);\n return this;\n }\n implies(key, value) {\n argsert('<string|object> [number|string|array]', [key, value], arguments.length);\n __classPrivateFieldGet(this, _YargsInstance_validation, \"f\").implies(key, value);\n return this;\n }\n locale(locale) {\n argsert('[string]', [locale], arguments.length);\n if (locale === undefined) {\n this[kGuessLocale]();\n return __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").y18n.getLocale();\n }\n __classPrivateFieldSet(this, _YargsInstance_detectLocale, false, \"f\");\n __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").y18n.setLocale(locale);\n return this;\n }\n middleware(callback, applyBeforeValidation, global) {\n return __classPrivateFieldGet(this, _YargsInstance_globalMiddleware, \"f\").addMiddleware(callback, !!applyBeforeValidation, global);\n }\n nargs(key, value) {\n argsert('<string|object|array> [number]', [key, value], arguments.length);\n this[kPopulateParserHintSingleValueDictionary](this.nargs.bind(this), 'narg', key, value);\n return this;\n }\n normalize(keys) {\n argsert('<array|string>', [keys], arguments.length);\n this[kPopulateParserHintArray]('normalize', keys);\n return this;\n }\n number(keys) {\n argsert('<array|string>', [keys], arguments.length);\n this[kPopulateParserHintArray]('number', keys);\n this[kTrackManuallySetKeys](keys);\n return this;\n }\n option(key, opt) {\n argsert('<string|object> [object]', [key, opt], arguments.length);\n if (typeof key === 'object') {\n Object.keys(key).forEach(k => {\n this.options(k, key[k]);\n });\n }\n else {\n if (typeof opt !== 'object') {\n opt = {};\n }\n this[kTrackManuallySetKeys](key);\n if (__classPrivateFieldGet(this, _YargsInstance_versionOpt, \"f\") && (key === 'version' || (opt === null || opt === void 0 ? void 0 : opt.alias) === 'version')) {\n this[kEmitWarning]([\n '\"version\" is a reserved word.',\n 'Please do one of the following:',\n '- Disable version with `yargs.version(false)` if using \"version\" as an option',\n '- Use the built-in `yargs.version` method instead (if applicable)',\n '- Use a different option key',\n 'https://yargs.js.org/docs/#api-reference-version',\n ].join('\\n'), undefined, 'versionWarning');\n }\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\").key[key] = true;\n if (opt.alias)\n this.alias(key, opt.alias);\n const deprecate = opt.deprecate || opt.deprecated;\n if (deprecate) {\n this.deprecateOption(key, deprecate);\n }\n const demand = opt.demand || opt.required || opt.require;\n if (demand) {\n this.demand(key, demand);\n }\n if (opt.demandOption) {\n this.demandOption(key, typeof opt.demandOption === 'string' ? opt.demandOption : undefined);\n }\n if (opt.conflicts) {\n this.conflicts(key, opt.conflicts);\n }\n if ('default' in opt) {\n this.default(key, opt.default);\n }\n if (opt.implies !== undefined) {\n this.implies(key, opt.implies);\n }\n if (opt.nargs !== undefined) {\n this.nargs(key, opt.nargs);\n }\n if (opt.config) {\n this.config(key, opt.configParser);\n }\n if (opt.normalize) {\n this.normalize(key);\n }\n if (opt.choices) {\n this.choices(key, opt.choices);\n }\n if (opt.coerce) {\n this.coerce(key, opt.coerce);\n }\n if (opt.group) {\n this.group(key, opt.group);\n }\n if (opt.boolean || opt.type === 'boolean') {\n this.boolean(key);\n if (opt.alias)\n this.boolean(opt.alias);\n }\n if (opt.array || opt.type === 'array') {\n this.array(key);\n if (opt.alias)\n this.array(opt.alias);\n }\n if (opt.number || opt.type === 'number') {\n this.number(key);\n if (opt.alias)\n this.number(opt.alias);\n }\n if (opt.string || opt.type === 'string') {\n this.string(key);\n if (opt.alias)\n this.string(opt.alias);\n }\n if (opt.count || opt.type === 'count') {\n this.count(key);\n }\n if (typeof opt.global === 'boolean') {\n this.global(key, opt.global);\n }\n if (opt.defaultDescription) {\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\").defaultDescription[key] = opt.defaultDescription;\n }\n if (opt.skipValidation) {\n this.skipValidation(key);\n }\n const desc = opt.describe || opt.description || opt.desc;\n const descriptions = __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").getDescriptions();\n if (!Object.prototype.hasOwnProperty.call(descriptions, key) ||\n typeof desc === 'string') {\n this.describe(key, desc);\n }\n if (opt.hidden) {\n this.hide(key);\n }\n if (opt.requiresArg) {\n this.requiresArg(key);\n }\n }\n return this;\n }\n options(key, opt) {\n return this.option(key, opt);\n }\n parse(args, shortCircuit, _parseFn) {\n argsert('[string|array] [function|boolean|object] [function]', [args, shortCircuit, _parseFn], arguments.length);\n this[kFreeze]();\n if (typeof args === 'undefined') {\n args = __classPrivateFieldGet(this, _YargsInstance_processArgs, \"f\");\n }\n if (typeof shortCircuit === 'object') {\n __classPrivateFieldSet(this, _YargsInstance_parseContext, shortCircuit, \"f\");\n shortCircuit = _parseFn;\n }\n if (typeof shortCircuit === 'function') {\n __classPrivateFieldSet(this, _YargsInstance_parseFn, shortCircuit, \"f\");\n shortCircuit = false;\n }\n if (!shortCircuit)\n __classPrivateFieldSet(this, _YargsInstance_processArgs, args, \"f\");\n if (__classPrivateFieldGet(this, _YargsInstance_parseFn, \"f\"))\n __classPrivateFieldSet(this, _YargsInstance_exitProcess, false, \"f\");\n const parsed = this[kRunYargsParserAndExecuteCommands](args, !!shortCircuit);\n const tmpParsed = this.parsed;\n __classPrivateFieldGet(this, _YargsInstance_completion, \"f\").setParsed(this.parsed);\n if (isPromise(parsed)) {\n return parsed\n .then(argv => {\n if (__classPrivateFieldGet(this, _YargsInstance_parseFn, \"f\"))\n __classPrivateFieldGet(this, _YargsInstance_parseFn, \"f\").call(this, __classPrivateFieldGet(this, _YargsInstance_exitError, \"f\"), argv, __classPrivateFieldGet(this, _YargsInstance_output, \"f\"));\n return argv;\n })\n .catch(err => {\n if (__classPrivateFieldGet(this, _YargsInstance_parseFn, \"f\")) {\n __classPrivateFieldGet(this, _YargsInstance_parseFn, \"f\")(err, this.parsed.argv, __classPrivateFieldGet(this, _YargsInstance_output, \"f\"));\n }\n throw err;\n })\n .finally(() => {\n this[kUnfreeze]();\n this.parsed = tmpParsed;\n });\n }\n else {\n if (__classPrivateFieldGet(this, _YargsInstance_parseFn, \"f\"))\n __classPrivateFieldGet(this, _YargsInstance_parseFn, \"f\").call(this, __classPrivateFieldGet(this, _YargsInstance_exitError, \"f\"), parsed, __classPrivateFieldGet(this, _YargsInstance_output, \"f\"));\n this[kUnfreeze]();\n this.parsed = tmpParsed;\n }\n return parsed;\n }\n parseAsync(args, shortCircuit, _parseFn) {\n const maybePromise = this.parse(args, shortCircuit, _parseFn);\n return !isPromise(maybePromise)\n ? Promise.resolve(maybePromise)\n : maybePromise;\n }\n parseSync(args, shortCircuit, _parseFn) {\n const maybePromise = this.parse(args, shortCircuit, _parseFn);\n if (isPromise(maybePromise)) {\n throw new YError('.parseSync() must not be used with asynchronous builders, handlers, or middleware');\n }\n return maybePromise;\n }\n parserConfiguration(config) {\n argsert('<object>', [config], arguments.length);\n __classPrivateFieldSet(this, _YargsInstance_parserConfig, config, \"f\");\n return this;\n }\n pkgConf(key, rootPath) {\n argsert('<string> [string]', [key, rootPath], arguments.length);\n let conf = null;\n const obj = this[kPkgUp](rootPath || __classPrivateFieldGet(this, _YargsInstance_cwd, \"f\"));\n if (obj[key] && typeof obj[key] === 'object') {\n conf = applyExtends(obj[key], rootPath || __classPrivateFieldGet(this, _YargsInstance_cwd, \"f\"), this[kGetParserConfiguration]()['deep-merge-config'] || false, __classPrivateFieldGet(this, _YargsInstance_shim, \"f\"));\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\").configObjects = (__classPrivateFieldGet(this, _YargsInstance_options, \"f\").configObjects || []).concat(conf);\n }\n return this;\n }\n positional(key, opts) {\n argsert('<string> <object>', [key, opts], arguments.length);\n const supportedOpts = [\n 'default',\n 'defaultDescription',\n 'implies',\n 'normalize',\n 'choices',\n 'conflicts',\n 'coerce',\n 'type',\n 'describe',\n 'desc',\n 'description',\n 'alias',\n ];\n opts = objFilter(opts, (k, v) => {\n if (k === 'type' && !['string', 'number', 'boolean'].includes(v))\n return false;\n return supportedOpts.includes(k);\n });\n const fullCommand = __classPrivateFieldGet(this, _YargsInstance_context, \"f\").fullCommands[__classPrivateFieldGet(this, _YargsInstance_context, \"f\").fullCommands.length - 1];\n const parseOptions = fullCommand\n ? __classPrivateFieldGet(this, _YargsInstance_command, \"f\").cmdToParseOptions(fullCommand)\n : {\n array: [],\n alias: {},\n default: {},\n demand: {},\n };\n objectKeys(parseOptions).forEach(pk => {\n const parseOption = parseOptions[pk];\n if (Array.isArray(parseOption)) {\n if (parseOption.indexOf(key) !== -1)\n opts[pk] = true;\n }\n else {\n if (parseOption[key] && !(pk in opts))\n opts[pk] = parseOption[key];\n }\n });\n this.group(key, __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").getPositionalGroupName());\n return this.option(key, opts);\n }\n recommendCommands(recommend = true) {\n argsert('[boolean]', [recommend], arguments.length);\n __classPrivateFieldSet(this, _YargsInstance_recommendCommands, recommend, \"f\");\n return this;\n }\n required(keys, max, msg) {\n return this.demand(keys, max, msg);\n }\n require(keys, max, msg) {\n return this.demand(keys, max, msg);\n }\n requiresArg(keys) {\n argsert('<array|string|object> [number]', [keys], arguments.length);\n if (typeof keys === 'string' && __classPrivateFieldGet(this, _YargsInstance_options, \"f\").narg[keys]) {\n return this;\n }\n else {\n this[kPopulateParserHintSingleValueDictionary](this.requiresArg.bind(this), 'narg', keys, NaN);\n }\n return this;\n }\n showCompletionScript($0, cmd) {\n argsert('[string] [string]', [$0, cmd], arguments.length);\n $0 = $0 || this.$0;\n __classPrivateFieldGet(this, _YargsInstance_logger, \"f\").log(__classPrivateFieldGet(this, _YargsInstance_completion, \"f\").generateCompletionScript($0, cmd || __classPrivateFieldGet(this, _YargsInstance_completionCommand, \"f\") || 'completion'));\n return this;\n }\n showHelp(level) {\n argsert('[string|function]', [level], arguments.length);\n __classPrivateFieldSet(this, _YargsInstance_hasOutput, true, \"f\");\n if (!__classPrivateFieldGet(this, _YargsInstance_usage, \"f\").hasCachedHelpMessage()) {\n if (!this.parsed) {\n const parse = this[kRunYargsParserAndExecuteCommands](__classPrivateFieldGet(this, _YargsInstance_processArgs, \"f\"), undefined, undefined, 0, true);\n if (isPromise(parse)) {\n parse.then(() => {\n __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").showHelp(level);\n });\n return this;\n }\n }\n const builderResponse = __classPrivateFieldGet(this, _YargsInstance_command, \"f\").runDefaultBuilderOn(this);\n if (isPromise(builderResponse)) {\n builderResponse.then(() => {\n __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").showHelp(level);\n });\n return this;\n }\n }\n __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").showHelp(level);\n return this;\n }\n scriptName(scriptName) {\n this.customScriptName = true;\n this.$0 = scriptName;\n return this;\n }\n showHelpOnFail(enabled, message) {\n argsert('[boolean|string] [string]', [enabled, message], arguments.length);\n __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").showHelpOnFail(enabled, message);\n return this;\n }\n showVersion(level) {\n argsert('[string|function]', [level], arguments.length);\n __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").showVersion(level);\n return this;\n }\n skipValidation(keys) {\n argsert('<array|string>', [keys], arguments.length);\n this[kPopulateParserHintArray]('skipValidation', keys);\n return this;\n }\n strict(enabled) {\n argsert('[boolean]', [enabled], arguments.length);\n __classPrivateFieldSet(this, _YargsInstance_strict, enabled !== false, \"f\");\n return this;\n }\n strictCommands(enabled) {\n argsert('[boolean]', [enabled], arguments.length);\n __classPrivateFieldSet(this, _YargsInstance_strictCommands, enabled !== false, \"f\");\n return this;\n }\n strictOptions(enabled) {\n argsert('[boolean]', [enabled], arguments.length);\n __classPrivateFieldSet(this, _YargsInstance_strictOptions, enabled !== false, \"f\");\n return this;\n }\n string(keys) {\n argsert('<array|string>', [keys], arguments.length);\n this[kPopulateParserHintArray]('string', keys);\n this[kTrackManuallySetKeys](keys);\n return this;\n }\n terminalWidth() {\n argsert([], 0);\n return __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").process.stdColumns;\n }\n updateLocale(obj) {\n return this.updateStrings(obj);\n }\n updateStrings(obj) {\n argsert('<object>', [obj], arguments.length);\n __classPrivateFieldSet(this, _YargsInstance_detectLocale, false, \"f\");\n __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").y18n.updateLocale(obj);\n return this;\n }\n usage(msg, description, builder, handler) {\n argsert('<string|null|undefined> [string|boolean] [function|object] [function]', [msg, description, builder, handler], arguments.length);\n if (description !== undefined) {\n assertNotStrictEqual(msg, null, __classPrivateFieldGet(this, _YargsInstance_shim, \"f\"));\n if ((msg || '').match(/^\\$0( |$)/)) {\n return this.command(msg, description, builder, handler);\n }\n else {\n throw new YError('.usage() description must start with $0 if being used as alias for .command()');\n }\n }\n else {\n __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").usage(msg);\n return this;\n }\n }\n usageConfiguration(config) {\n argsert('<object>', [config], arguments.length);\n __classPrivateFieldSet(this, _YargsInstance_usageConfig, config, \"f\");\n return this;\n }\n version(opt, msg, ver) {\n const defaultVersionOpt = 'version';\n argsert('[boolean|string] [string] [string]', [opt, msg, ver], arguments.length);\n if (__classPrivateFieldGet(this, _YargsInstance_versionOpt, \"f\")) {\n this[kDeleteFromParserHintObject](__classPrivateFieldGet(this, _YargsInstance_versionOpt, \"f\"));\n __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").version(undefined);\n __classPrivateFieldSet(this, _YargsInstance_versionOpt, null, \"f\");\n }\n if (arguments.length === 0) {\n ver = this[kGuessVersion]();\n opt = defaultVersionOpt;\n }\n else if (arguments.length === 1) {\n if (opt === false) {\n return this;\n }\n ver = opt;\n opt = defaultVersionOpt;\n }\n else if (arguments.length === 2) {\n ver = msg;\n msg = undefined;\n }\n __classPrivateFieldSet(this, _YargsInstance_versionOpt, typeof opt === 'string' ? opt : defaultVersionOpt, \"f\");\n msg = msg || __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").deferY18nLookup('Show version number');\n __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").version(ver || undefined);\n this.boolean(__classPrivateFieldGet(this, _YargsInstance_versionOpt, \"f\"));\n this.describe(__classPrivateFieldGet(this, _YargsInstance_versionOpt, \"f\"), msg);\n return this;\n }\n wrap(cols) {\n argsert('<number|null|undefined>', [cols], arguments.length);\n __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").wrap(cols);\n return this;\n }\n [(_YargsInstance_command = new WeakMap(), _YargsInstance_cwd = new WeakMap(), _YargsInstance_context = new WeakMap(), _YargsInstance_completion = new WeakMap(), _YargsInstance_completionCommand = new WeakMap(), _YargsInstance_defaultShowHiddenOpt = new WeakMap(), _YargsInstance_exitError = new WeakMap(), _YargsInstance_detectLocale = new WeakMap(), _YargsInstance_emittedWarnings = new WeakMap(), _YargsInstance_exitProcess = new WeakMap(), _YargsInstance_frozens = new WeakMap(), _YargsInstance_globalMiddleware = new WeakMap(), _YargsInstance_groups = new WeakMap(), _YargsInstance_hasOutput = new WeakMap(), _YargsInstance_helpOpt = new WeakMap(), _YargsInstance_isGlobalContext = new WeakMap(), _YargsInstance_logger = new WeakMap(), _YargsInstance_output = new WeakMap(), _YargsInstance_options = new WeakMap(), _YargsInstance_parentRequire = new WeakMap(), _YargsInstance_parserConfig = new WeakMap(), _YargsInstance_parseFn = new WeakMap(), _YargsInstance_parseContext = new WeakMap(), _YargsInstance_pkgs = new WeakMap(), _YargsInstance_preservedGroups = new WeakMap(), _YargsInstance_processArgs = new WeakMap(), _YargsInstance_recommendCommands = new WeakMap(), _YargsInstance_shim = new WeakMap(), _YargsInstance_strict = new WeakMap(), _YargsInstance_strictCommands = new WeakMap(), _YargsInstance_strictOptions = new WeakMap(), _YargsInstance_usage = new WeakMap(), _YargsInstance_usageConfig = new WeakMap(), _YargsInstance_versionOpt = new WeakMap(), _YargsInstance_validation = new WeakMap(), kCopyDoubleDash)](argv) {\n if (!argv._ || !argv['--'])\n return argv;\n argv._.push.apply(argv._, argv['--']);\n try {\n delete argv['--'];\n }\n catch (_err) { }\n return argv;\n }\n [kCreateLogger]() {\n return {\n log: (...args) => {\n if (!this[kHasParseCallback]())\n console.log(...args);\n __classPrivateFieldSet(this, _YargsInstance_hasOutput, true, \"f\");\n if (__classPrivateFieldGet(this, _YargsInstance_output, \"f\").length)\n __classPrivateFieldSet(this, _YargsInstance_output, __classPrivateFieldGet(this, _YargsInstance_output, \"f\") + '\\n', \"f\");\n __classPrivateFieldSet(this, _YargsInstance_output, __classPrivateFieldGet(this, _YargsInstance_output, \"f\") + args.join(' '), \"f\");\n },\n error: (...args) => {\n if (!this[kHasParseCallback]())\n console.error(...args);\n __classPrivateFieldSet(this, _YargsInstance_hasOutput, true, \"f\");\n if (__classPrivateFieldGet(this, _YargsInstance_output, \"f\").length)\n __classPrivateFieldSet(this, _YargsInstance_output, __classPrivateFieldGet(this, _YargsInstance_output, \"f\") + '\\n', \"f\");\n __classPrivateFieldSet(this, _YargsInstance_output, __classPrivateFieldGet(this, _YargsInstance_output, \"f\") + args.join(' '), \"f\");\n },\n };\n }\n [kDeleteFromParserHintObject](optionKey) {\n objectKeys(__classPrivateFieldGet(this, _YargsInstance_options, \"f\")).forEach((hintKey) => {\n if (((key) => key === 'configObjects')(hintKey))\n return;\n const hint = __classPrivateFieldGet(this, _YargsInstance_options, \"f\")[hintKey];\n if (Array.isArray(hint)) {\n if (hint.includes(optionKey))\n hint.splice(hint.indexOf(optionKey), 1);\n }\n else if (typeof hint === 'object') {\n delete hint[optionKey];\n }\n });\n delete __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").getDescriptions()[optionKey];\n }\n [kEmitWarning](warning, type, deduplicationId) {\n if (!__classPrivateFieldGet(this, _YargsInstance_emittedWarnings, \"f\")[deduplicationId]) {\n __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").process.emitWarning(warning, type);\n __classPrivateFieldGet(this, _YargsInstance_emittedWarnings, \"f\")[deduplicationId] = true;\n }\n }\n [kFreeze]() {\n __classPrivateFieldGet(this, _YargsInstance_frozens, \"f\").push({\n options: __classPrivateFieldGet(this, _YargsInstance_options, \"f\"),\n configObjects: __classPrivateFieldGet(this, _YargsInstance_options, \"f\").configObjects.slice(0),\n exitProcess: __classPrivateFieldGet(this, _YargsInstance_exitProcess, \"f\"),\n groups: __classPrivateFieldGet(this, _YargsInstance_groups, \"f\"),\n strict: __classPrivateFieldGet(this, _YargsInstance_strict, \"f\"),\n strictCommands: __classPrivateFieldGet(this, _YargsInstance_strictCommands, \"f\"),\n strictOptions: __classPrivateFieldGet(this, _YargsInstance_strictOptions, \"f\"),\n completionCommand: __classPrivateFieldGet(this, _YargsInstance_completionCommand, \"f\"),\n output: __classPrivateFieldGet(this, _YargsInstance_output, \"f\"),\n exitError: __classPrivateFieldGet(this, _YargsInstance_exitError, \"f\"),\n hasOutput: __classPrivateFieldGet(this, _YargsInstance_hasOutput, \"f\"),\n parsed: this.parsed,\n parseFn: __classPrivateFieldGet(this, _YargsInstance_parseFn, \"f\"),\n parseContext: __classPrivateFieldGet(this, _YargsInstance_parseContext, \"f\"),\n });\n __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").freeze();\n __classPrivateFieldGet(this, _YargsInstance_validation, \"f\").freeze();\n __classPrivateFieldGet(this, _YargsInstance_command, \"f\").freeze();\n __classPrivateFieldGet(this, _YargsInstance_globalMiddleware, \"f\").freeze();\n }\n [kGetDollarZero]() {\n let $0 = '';\n let default$0;\n if (/\\b(node|iojs|electron)(\\.exe)?$/.test(__classPrivateFieldGet(this, _YargsInstance_shim, \"f\").process.argv()[0])) {\n default$0 = __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").process.argv().slice(1, 2);\n }\n else {\n default$0 = __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").process.argv().slice(0, 1);\n }\n $0 = default$0\n .map(x => {\n const b = this[kRebase](__classPrivateFieldGet(this, _YargsInstance_cwd, \"f\"), x);\n return x.match(/^(\\/|([a-zA-Z]:)?\\\\)/) && b.length < x.length ? b : x;\n })\n .join(' ')\n .trim();\n if (__classPrivateFieldGet(this, _YargsInstance_shim, \"f\").getEnv('_') &&\n __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").getProcessArgvBin() === __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").getEnv('_')) {\n $0 = __classPrivateFieldGet(this, _YargsInstance_shim, \"f\")\n .getEnv('_')\n .replace(`${__classPrivateFieldGet(this, _YargsInstance_shim, \"f\").path.dirname(__classPrivateFieldGet(this, _YargsInstance_shim, \"f\").process.execPath())}/`, '');\n }\n return $0;\n }\n [kGetParserConfiguration]() {\n return __classPrivateFieldGet(this, _YargsInstance_parserConfig, \"f\");\n }\n [kGetUsageConfiguration]() {\n return __classPrivateFieldGet(this, _YargsInstance_usageConfig, \"f\");\n }\n [kGuessLocale]() {\n if (!__classPrivateFieldGet(this, _YargsInstance_detectLocale, \"f\"))\n return;\n const locale = __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").getEnv('LC_ALL') ||\n __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").getEnv('LC_MESSAGES') ||\n __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").getEnv('LANG') ||\n __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").getEnv('LANGUAGE') ||\n 'en_US';\n this.locale(locale.replace(/[.:].*/, ''));\n }\n [kGuessVersion]() {\n const obj = this[kPkgUp]();\n return obj.version || 'unknown';\n }\n [kParsePositionalNumbers](argv) {\n const args = argv['--'] ? argv['--'] : argv._;\n for (let i = 0, arg; (arg = args[i]) !== undefined; i++) {\n if (__classPrivateFieldGet(this, _YargsInstance_shim, \"f\").Parser.looksLikeNumber(arg) &&\n Number.isSafeInteger(Math.floor(parseFloat(`${arg}`)))) {\n args[i] = Number(arg);\n }\n }\n return argv;\n }\n [kPkgUp](rootPath) {\n const npath = rootPath || '*';\n if (__classPrivateFieldGet(this, _YargsInstance_pkgs, \"f\")[npath])\n return __classPrivateFieldGet(this, _YargsInstance_pkgs, \"f\")[npath];\n let obj = {};\n try {\n let startDir = rootPath || __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").mainFilename;\n if (!rootPath && __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").path.extname(startDir)) {\n startDir = __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").path.dirname(startDir);\n }\n const pkgJsonPath = __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").findUp(startDir, (dir, names) => {\n if (names.includes('package.json')) {\n return 'package.json';\n }\n else {\n return undefined;\n }\n });\n assertNotStrictEqual(pkgJsonPath, undefined, __classPrivateFieldGet(this, _YargsInstance_shim, \"f\"));\n obj = JSON.parse(__classPrivateFieldGet(this, _YargsInstance_shim, \"f\").readFileSync(pkgJsonPath, 'utf8'));\n }\n catch (_noop) { }\n __classPrivateFieldGet(this, _YargsInstance_pkgs, \"f\")[npath] = obj || {};\n return __classPrivateFieldGet(this, _YargsInstance_pkgs, \"f\")[npath];\n }\n [kPopulateParserHintArray](type, keys) {\n keys = [].concat(keys);\n keys.forEach(key => {\n key = this[kSanitizeKey](key);\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\")[type].push(key);\n });\n }\n [kPopulateParserHintSingleValueDictionary](builder, type, key, value) {\n this[kPopulateParserHintDictionary](builder, type, key, value, (type, key, value) => {\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\")[type][key] = value;\n });\n }\n [kPopulateParserHintArrayDictionary](builder, type, key, value) {\n this[kPopulateParserHintDictionary](builder, type, key, value, (type, key, value) => {\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\")[type][key] = (__classPrivateFieldGet(this, _YargsInstance_options, \"f\")[type][key] || []).concat(value);\n });\n }\n [kPopulateParserHintDictionary](builder, type, key, value, singleKeyHandler) {\n if (Array.isArray(key)) {\n key.forEach(k => {\n builder(k, value);\n });\n }\n else if (((key) => typeof key === 'object')(key)) {\n for (const k of objectKeys(key)) {\n builder(k, key[k]);\n }\n }\n else {\n singleKeyHandler(type, this[kSanitizeKey](key), value);\n }\n }\n [kSanitizeKey](key) {\n if (key === '__proto__')\n return '___proto___';\n return key;\n }\n [kSetKey](key, set) {\n this[kPopulateParserHintSingleValueDictionary](this[kSetKey].bind(this), 'key', key, set);\n return this;\n }\n [kUnfreeze]() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;\n const frozen = __classPrivateFieldGet(this, _YargsInstance_frozens, \"f\").pop();\n assertNotStrictEqual(frozen, undefined, __classPrivateFieldGet(this, _YargsInstance_shim, \"f\"));\n let configObjects;\n (_a = this, _b = this, _c = this, _d = this, _e = this, _f = this, _g = this, _h = this, _j = this, _k = this, _l = this, _m = this, {\n options: ({ set value(_o) { __classPrivateFieldSet(_a, _YargsInstance_options, _o, \"f\"); } }).value,\n configObjects,\n exitProcess: ({ set value(_o) { __classPrivateFieldSet(_b, _YargsInstance_exitProcess, _o, \"f\"); } }).value,\n groups: ({ set value(_o) { __classPrivateFieldSet(_c, _YargsInstance_groups, _o, \"f\"); } }).value,\n output: ({ set value(_o) { __classPrivateFieldSet(_d, _YargsInstance_output, _o, \"f\"); } }).value,\n exitError: ({ set value(_o) { __classPrivateFieldSet(_e, _YargsInstance_exitError, _o, \"f\"); } }).value,\n hasOutput: ({ set value(_o) { __classPrivateFieldSet(_f, _YargsInstance_hasOutput, _o, \"f\"); } }).value,\n parsed: this.parsed,\n strict: ({ set value(_o) { __classPrivateFieldSet(_g, _YargsInstance_strict, _o, \"f\"); } }).value,\n strictCommands: ({ set value(_o) { __classPrivateFieldSet(_h, _YargsInstance_strictCommands, _o, \"f\"); } }).value,\n strictOptions: ({ set value(_o) { __classPrivateFieldSet(_j, _YargsInstance_strictOptions, _o, \"f\"); } }).value,\n completionCommand: ({ set value(_o) { __classPrivateFieldSet(_k, _YargsInstance_completionCommand, _o, \"f\"); } }).value,\n parseFn: ({ set value(_o) { __classPrivateFieldSet(_l, _YargsInstance_parseFn, _o, \"f\"); } }).value,\n parseContext: ({ set value(_o) { __classPrivateFieldSet(_m, _YargsInstance_parseContext, _o, \"f\"); } }).value,\n } = frozen);\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\").configObjects = configObjects;\n __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").unfreeze();\n __classPrivateFieldGet(this, _YargsInstance_validation, \"f\").unfreeze();\n __classPrivateFieldGet(this, _YargsInstance_command, \"f\").unfreeze();\n __classPrivateFieldGet(this, _YargsInstance_globalMiddleware, \"f\").unfreeze();\n }\n [kValidateAsync](validation, argv) {\n return maybeAsyncResult(argv, result => {\n validation(result);\n return result;\n });\n }\n getInternalMethods() {\n return {\n getCommandInstance: this[kGetCommandInstance].bind(this),\n getContext: this[kGetContext].bind(this),\n getHasOutput: this[kGetHasOutput].bind(this),\n getLoggerInstance: this[kGetLoggerInstance].bind(this),\n getParseContext: this[kGetParseContext].bind(this),\n getParserConfiguration: this[kGetParserConfiguration].bind(this),\n getUsageConfiguration: this[kGetUsageConfiguration].bind(this),\n getUsageInstance: this[kGetUsageInstance].bind(this),\n getValidationInstance: this[kGetValidationInstance].bind(this),\n hasParseCallback: this[kHasParseCallback].bind(this),\n isGlobalContext: this[kIsGlobalContext].bind(this),\n postProcess: this[kPostProcess].bind(this),\n reset: this[kReset].bind(this),\n runValidation: this[kRunValidation].bind(this),\n runYargsParserAndExecuteCommands: this[kRunYargsParserAndExecuteCommands].bind(this),\n setHasOutput: this[kSetHasOutput].bind(this),\n };\n }\n [kGetCommandInstance]() {\n return __classPrivateFieldGet(this, _YargsInstance_command, \"f\");\n }\n [kGetContext]() {\n return __classPrivateFieldGet(this, _YargsInstance_context, \"f\");\n }\n [kGetHasOutput]() {\n return __classPrivateFieldGet(this, _YargsInstance_hasOutput, \"f\");\n }\n [kGetLoggerInstance]() {\n return __classPrivateFieldGet(this, _YargsInstance_logger, \"f\");\n }\n [kGetParseContext]() {\n return __classPrivateFieldGet(this, _YargsInstance_parseContext, \"f\") || {};\n }\n [kGetUsageInstance]() {\n return __classPrivateFieldGet(this, _YargsInstance_usage, \"f\");\n }\n [kGetValidationInstance]() {\n return __classPrivateFieldGet(this, _YargsInstance_validation, \"f\");\n }\n [kHasParseCallback]() {\n return !!__classPrivateFieldGet(this, _YargsInstance_parseFn, \"f\");\n }\n [kIsGlobalContext]() {\n return __classPrivateFieldGet(this, _YargsInstance_isGlobalContext, \"f\");\n }\n [kPostProcess](argv, populateDoubleDash, calledFromCommand, runGlobalMiddleware) {\n if (calledFromCommand)\n return argv;\n if (isPromise(argv))\n return argv;\n if (!populateDoubleDash) {\n argv = this[kCopyDoubleDash](argv);\n }\n const parsePositionalNumbers = this[kGetParserConfiguration]()['parse-positional-numbers'] ||\n this[kGetParserConfiguration]()['parse-positional-numbers'] === undefined;\n if (parsePositionalNumbers) {\n argv = this[kParsePositionalNumbers](argv);\n }\n if (runGlobalMiddleware) {\n argv = applyMiddleware(argv, this, __classPrivateFieldGet(this, _YargsInstance_globalMiddleware, \"f\").getMiddleware(), false);\n }\n return argv;\n }\n [kReset](aliases = {}) {\n __classPrivateFieldSet(this, _YargsInstance_options, __classPrivateFieldGet(this, _YargsInstance_options, \"f\") || {}, \"f\");\n const tmpOptions = {};\n tmpOptions.local = __classPrivateFieldGet(this, _YargsInstance_options, \"f\").local || [];\n tmpOptions.configObjects = __classPrivateFieldGet(this, _YargsInstance_options, \"f\").configObjects || [];\n const localLookup = {};\n tmpOptions.local.forEach(l => {\n localLookup[l] = true;\n (aliases[l] || []).forEach(a => {\n localLookup[a] = true;\n });\n });\n Object.assign(__classPrivateFieldGet(this, _YargsInstance_preservedGroups, \"f\"), Object.keys(__classPrivateFieldGet(this, _YargsInstance_groups, \"f\")).reduce((acc, groupName) => {\n const keys = __classPrivateFieldGet(this, _YargsInstance_groups, \"f\")[groupName].filter(key => !(key in localLookup));\n if (keys.length > 0) {\n acc[groupName] = keys;\n }\n return acc;\n }, {}));\n __classPrivateFieldSet(this, _YargsInstance_groups, {}, \"f\");\n const arrayOptions = [\n 'array',\n 'boolean',\n 'string',\n 'skipValidation',\n 'count',\n 'normalize',\n 'number',\n 'hiddenOptions',\n ];\n const objectOptions = [\n 'narg',\n 'key',\n 'alias',\n 'default',\n 'defaultDescription',\n 'config',\n 'choices',\n 'demandedOptions',\n 'demandedCommands',\n 'deprecatedOptions',\n ];\n arrayOptions.forEach(k => {\n tmpOptions[k] = (__classPrivateFieldGet(this, _YargsInstance_options, \"f\")[k] || []).filter((k) => !localLookup[k]);\n });\n objectOptions.forEach((k) => {\n tmpOptions[k] = objFilter(__classPrivateFieldGet(this, _YargsInstance_options, \"f\")[k], k => !localLookup[k]);\n });\n tmpOptions.envPrefix = __classPrivateFieldGet(this, _YargsInstance_options, \"f\").envPrefix;\n __classPrivateFieldSet(this, _YargsInstance_options, tmpOptions, \"f\");\n __classPrivateFieldSet(this, _YargsInstance_usage, __classPrivateFieldGet(this, _YargsInstance_usage, \"f\")\n ? __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").reset(localLookup)\n : Usage(this, __classPrivateFieldGet(this, _YargsInstance_shim, \"f\")), \"f\");\n __classPrivateFieldSet(this, _YargsInstance_validation, __classPrivateFieldGet(this, _YargsInstance_validation, \"f\")\n ? __classPrivateFieldGet(this, _YargsInstance_validation, \"f\").reset(localLookup)\n : Validation(this, __classPrivateFieldGet(this, _YargsInstance_usage, \"f\"), __classPrivateFieldGet(this, _YargsInstance_shim, \"f\")), \"f\");\n __classPrivateFieldSet(this, _YargsInstance_command, __classPrivateFieldGet(this, _YargsInstance_command, \"f\")\n ? __classPrivateFieldGet(this, _YargsInstance_command, \"f\").reset()\n : Command(__classPrivateFieldGet(this, _YargsInstance_usage, \"f\"), __classPrivateFieldGet(this, _YargsInstance_validation, \"f\"), __classPrivateFieldGet(this, _YargsInstance_globalMiddleware, \"f\"), __classPrivateFieldGet(this, _YargsInstance_shim, \"f\")), \"f\");\n if (!__classPrivateFieldGet(this, _YargsInstance_completion, \"f\"))\n __classPrivateFieldSet(this, _YargsInstance_completion, Completion(this, __classPrivateFieldGet(this, _YargsInstance_usage, \"f\"), __classPrivateFieldGet(this, _YargsInstance_command, \"f\"), __classPrivateFieldGet(this, _YargsInstance_shim, \"f\")), \"f\");\n __classPrivateFieldGet(this, _YargsInstance_globalMiddleware, \"f\").reset();\n __classPrivateFieldSet(this, _YargsInstance_completionCommand, null, \"f\");\n __classPrivateFieldSet(this, _YargsInstance_output, '', \"f\");\n __classPrivateFieldSet(this, _YargsInstance_exitError, null, \"f\");\n __classPrivateFieldSet(this, _YargsInstance_hasOutput, false, \"f\");\n this.parsed = false;\n return this;\n }\n [kRebase](base, dir) {\n return __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").path.relative(base, dir);\n }\n [kRunYargsParserAndExecuteCommands](args, shortCircuit, calledFromCommand, commandIndex = 0, helpOnly = false) {\n let skipValidation = !!calledFromCommand || helpOnly;\n args = args || __classPrivateFieldGet(this, _YargsInstance_processArgs, \"f\");\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\").__ = __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").y18n.__;\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\").configuration = this[kGetParserConfiguration]();\n const populateDoubleDash = !!__classPrivateFieldGet(this, _YargsInstance_options, \"f\").configuration['populate--'];\n const config = Object.assign({}, __classPrivateFieldGet(this, _YargsInstance_options, \"f\").configuration, {\n 'populate--': true,\n });\n const parsed = __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").Parser.detailed(args, Object.assign({}, __classPrivateFieldGet(this, _YargsInstance_options, \"f\"), {\n configuration: { 'parse-positional-numbers': false, ...config },\n }));\n const argv = Object.assign(parsed.argv, __classPrivateFieldGet(this, _YargsInstance_parseContext, \"f\"));\n let argvPromise = undefined;\n const aliases = parsed.aliases;\n let helpOptSet = false;\n let versionOptSet = false;\n Object.keys(argv).forEach(key => {\n if (key === __classPrivateFieldGet(this, _YargsInstance_helpOpt, \"f\") && argv[key]) {\n helpOptSet = true;\n }\n else if (key === __classPrivateFieldGet(this, _YargsInstance_versionOpt, \"f\") && argv[key]) {\n versionOptSet = true;\n }\n });\n argv.$0 = this.$0;\n this.parsed = parsed;\n if (commandIndex === 0) {\n __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").clearCachedHelpMessage();\n }\n try {\n this[kGuessLocale]();\n if (shortCircuit) {\n return this[kPostProcess](argv, populateDoubleDash, !!calledFromCommand, false);\n }\n if (__classPrivateFieldGet(this, _YargsInstance_helpOpt, \"f\")) {\n const helpCmds = [__classPrivateFieldGet(this, _YargsInstance_helpOpt, \"f\")]\n .concat(aliases[__classPrivateFieldGet(this, _YargsInstance_helpOpt, \"f\")] || [])\n .filter(k => k.length > 1);\n if (helpCmds.includes('' + argv._[argv._.length - 1])) {\n argv._.pop();\n helpOptSet = true;\n }\n }\n __classPrivateFieldSet(this, _YargsInstance_isGlobalContext, false, \"f\");\n const handlerKeys = __classPrivateFieldGet(this, _YargsInstance_command, \"f\").getCommands();\n const requestCompletions = __classPrivateFieldGet(this, _YargsInstance_completion, \"f\").completionKey in argv;\n const skipRecommendation = helpOptSet || requestCompletions || helpOnly;\n if (argv._.length) {\n if (handlerKeys.length) {\n let firstUnknownCommand;\n for (let i = commandIndex || 0, cmd; argv._[i] !== undefined; i++) {\n cmd = String(argv._[i]);\n if (handlerKeys.includes(cmd) && cmd !== __classPrivateFieldGet(this, _YargsInstance_completionCommand, \"f\")) {\n const innerArgv = __classPrivateFieldGet(this, _YargsInstance_command, \"f\").runCommand(cmd, this, parsed, i + 1, helpOnly, helpOptSet || versionOptSet || helpOnly);\n return this[kPostProcess](innerArgv, populateDoubleDash, !!calledFromCommand, false);\n }\n else if (!firstUnknownCommand &&\n cmd !== __classPrivateFieldGet(this, _YargsInstance_completionCommand, \"f\")) {\n firstUnknownCommand = cmd;\n break;\n }\n }\n if (!__classPrivateFieldGet(this, _YargsInstance_command, \"f\").hasDefaultCommand() &&\n __classPrivateFieldGet(this, _YargsInstance_recommendCommands, \"f\") &&\n firstUnknownCommand &&\n !skipRecommendation) {\n __classPrivateFieldGet(this, _YargsInstance_validation, \"f\").recommendCommands(firstUnknownCommand, handlerKeys);\n }\n }\n if (__classPrivateFieldGet(this, _YargsInstance_completionCommand, \"f\") &&\n argv._.includes(__classPrivateFieldGet(this, _YargsInstance_completionCommand, \"f\")) &&\n !requestCompletions) {\n if (__classPrivateFieldGet(this, _YargsInstance_exitProcess, \"f\"))\n setBlocking(true);\n this.showCompletionScript();\n this.exit(0);\n }\n }\n if (__classPrivateFieldGet(this, _YargsInstance_command, \"f\").hasDefaultCommand() && !skipRecommendation) {\n const innerArgv = __classPrivateFieldGet(this, _YargsInstance_command, \"f\").runCommand(null, this, parsed, 0, helpOnly, helpOptSet || versionOptSet || helpOnly);\n return this[kPostProcess](innerArgv, populateDoubleDash, !!calledFromCommand, false);\n }\n if (requestCompletions) {\n if (__classPrivateFieldGet(this, _YargsInstance_exitProcess, \"f\"))\n setBlocking(true);\n args = [].concat(args);\n const completionArgs = args.slice(args.indexOf(`--${__classPrivateFieldGet(this, _YargsInstance_completion, \"f\").completionKey}`) + 1);\n __classPrivateFieldGet(this, _YargsInstance_completion, \"f\").getCompletion(completionArgs, (err, completions) => {\n if (err)\n throw new YError(err.message);\n (completions || []).forEach(completion => {\n __classPrivateFieldGet(this, _YargsInstance_logger, \"f\").log(completion);\n });\n this.exit(0);\n });\n return this[kPostProcess](argv, !populateDoubleDash, !!calledFromCommand, false);\n }\n if (!__classPrivateFieldGet(this, _YargsInstance_hasOutput, \"f\")) {\n if (helpOptSet) {\n if (__classPrivateFieldGet(this, _YargsInstance_exitProcess, \"f\"))\n setBlocking(true);\n skipValidation = true;\n this.showHelp('log');\n this.exit(0);\n }\n else if (versionOptSet) {\n if (__classPrivateFieldGet(this, _YargsInstance_exitProcess, \"f\"))\n setBlocking(true);\n skipValidation = true;\n __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").showVersion('log');\n this.exit(0);\n }\n }\n if (!skipValidation && __classPrivateFieldGet(this, _YargsInstance_options, \"f\").skipValidation.length > 0) {\n skipValidation = Object.keys(argv).some(key => __classPrivateFieldGet(this, _YargsInstance_options, \"f\").skipValidation.indexOf(key) >= 0 && argv[key] === true);\n }\n if (!skipValidation) {\n if (parsed.error)\n throw new YError(parsed.error.message);\n if (!requestCompletions) {\n const validation = this[kRunValidation](aliases, {}, parsed.error);\n if (!calledFromCommand) {\n argvPromise = applyMiddleware(argv, this, __classPrivateFieldGet(this, _YargsInstance_globalMiddleware, \"f\").getMiddleware(), true);\n }\n argvPromise = this[kValidateAsync](validation, argvPromise !== null && argvPromise !== void 0 ? argvPromise : argv);\n if (isPromise(argvPromise) && !calledFromCommand) {\n argvPromise = argvPromise.then(() => {\n return applyMiddleware(argv, this, __classPrivateFieldGet(this, _YargsInstance_globalMiddleware, \"f\").getMiddleware(), false);\n });\n }\n }\n }\n }\n catch (err) {\n if (err instanceof YError)\n __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").fail(err.message, err);\n else\n throw err;\n }\n return this[kPostProcess](argvPromise !== null && argvPromise !== void 0 ? argvPromise : argv, populateDoubleDash, !!calledFromCommand, true);\n }\n [kRunValidation](aliases, positionalMap, parseErrors, isDefaultCommand) {\n const demandedOptions = { ...this.getDemandedOptions() };\n return (argv) => {\n if (parseErrors)\n throw new YError(parseErrors.message);\n __classPrivateFieldGet(this, _YargsInstance_validation, \"f\").nonOptionCount(argv);\n __classPrivateFieldGet(this, _YargsInstance_validation, \"f\").requiredArguments(argv, demandedOptions);\n let failedStrictCommands = false;\n if (__classPrivateFieldGet(this, _YargsInstance_strictCommands, \"f\")) {\n failedStrictCommands = __classPrivateFieldGet(this, _YargsInstance_validation, \"f\").unknownCommands(argv);\n }\n if (__classPrivateFieldGet(this, _YargsInstance_strict, \"f\") && !failedStrictCommands) {\n __classPrivateFieldGet(this, _YargsInstance_validation, \"f\").unknownArguments(argv, aliases, positionalMap, !!isDefaultCommand);\n }\n else if (__classPrivateFieldGet(this, _YargsInstance_strictOptions, \"f\")) {\n __classPrivateFieldGet(this, _YargsInstance_validation, \"f\").unknownArguments(argv, aliases, {}, false, false);\n }\n __classPrivateFieldGet(this, _YargsInstance_validation, \"f\").limitedChoices(argv);\n __classPrivateFieldGet(this, _YargsInstance_validation, \"f\").implications(argv);\n __classPrivateFieldGet(this, _YargsInstance_validation, \"f\").conflicting(argv);\n };\n }\n [kSetHasOutput]() {\n __classPrivateFieldSet(this, _YargsInstance_hasOutput, true, \"f\");\n }\n [kTrackManuallySetKeys](keys) {\n if (typeof keys === 'string') {\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\").key[keys] = true;\n }\n else {\n for (const k of keys) {\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\").key[k] = true;\n }\n }\n }\n}\nexport function isYargsInstance(y) {\n return !!y && typeof y.getInternalMethods === 'function';\n}\n","export default function whichModule(exported) {\n if (typeof require === 'undefined')\n return null;\n for (let i = 0, files = Object.keys(require.cache), mod; i < files.length; i++) {\n mod = require.cache[files[i]];\n if (mod.exports === exported)\n return mod;\n }\n return null;\n}\n","import { objectKeys } from '../typings/common-types.js';\nexport function objFilter(original = {}, filter = () => true) {\n const obj = {};\n objectKeys(original).forEach(key => {\n if (filter(key, original[key])) {\n obj[key] = original[key];\n }\n });\n return obj;\n}\n","export default function setBlocking(blocking) {\n if (typeof process === 'undefined')\n return;\n [process.stdout, process.stderr].forEach(_stream => {\n const stream = _stream;\n if (stream._handle &&\n stream.isTTY &&\n typeof stream._handle.setBlocking === 'function') {\n stream._handle.setBlocking(blocking);\n }\n });\n}\n","import { objFilter } from './utils/obj-filter.js';\nimport { YError } from './yerror.js';\nimport setBlocking from './utils/set-blocking.js';\nfunction isBoolean(fail) {\n return typeof fail === 'boolean';\n}\nexport function usage(yargs, shim) {\n const __ = shim.y18n.__;\n const self = {};\n const fails = [];\n self.failFn = function failFn(f) {\n fails.push(f);\n };\n let failMessage = null;\n let globalFailMessage = null;\n let showHelpOnFail = true;\n self.showHelpOnFail = function showHelpOnFailFn(arg1 = true, arg2) {\n const [enabled, message] = typeof arg1 === 'string' ? [true, arg1] : [arg1, arg2];\n if (yargs.getInternalMethods().isGlobalContext()) {\n globalFailMessage = message;\n }\n failMessage = message;\n showHelpOnFail = enabled;\n return self;\n };\n let failureOutput = false;\n self.fail = function fail(msg, err) {\n const logger = yargs.getInternalMethods().getLoggerInstance();\n if (fails.length) {\n for (let i = fails.length - 1; i >= 0; --i) {\n const fail = fails[i];\n if (isBoolean(fail)) {\n if (err)\n throw err;\n else if (msg)\n throw Error(msg);\n }\n else {\n fail(msg, err, self);\n }\n }\n }\n else {\n if (yargs.getExitProcess())\n setBlocking(true);\n if (!failureOutput) {\n failureOutput = true;\n if (showHelpOnFail) {\n yargs.showHelp('error');\n logger.error();\n }\n if (msg || err)\n logger.error(msg || err);\n const globalOrCommandFailMessage = failMessage || globalFailMessage;\n if (globalOrCommandFailMessage) {\n if (msg || err)\n logger.error('');\n logger.error(globalOrCommandFailMessage);\n }\n }\n err = err || new YError(msg);\n if (yargs.getExitProcess()) {\n return yargs.exit(1);\n }\n else if (yargs.getInternalMethods().hasParseCallback()) {\n return yargs.exit(1, err);\n }\n else {\n throw err;\n }\n }\n };\n let usages = [];\n let usageDisabled = false;\n self.usage = (msg, description) => {\n if (msg === null) {\n usageDisabled = true;\n usages = [];\n return self;\n }\n usageDisabled = false;\n usages.push([msg, description || '']);\n return self;\n };\n self.getUsage = () => {\n return usages;\n };\n self.getUsageDisabled = () => {\n return usageDisabled;\n };\n self.getPositionalGroupName = () => {\n return __('Positionals:');\n };\n let examples = [];\n self.example = (cmd, description) => {\n examples.push([cmd, description || '']);\n };\n let commands = [];\n self.command = function command(cmd, description, isDefault, aliases, deprecated = false) {\n if (isDefault) {\n commands = commands.map(cmdArray => {\n cmdArray[2] = false;\n return cmdArray;\n });\n }\n commands.push([cmd, description || '', isDefault, aliases, deprecated]);\n };\n self.getCommands = () => commands;\n let descriptions = {};\n self.describe = function describe(keyOrKeys, desc) {\n if (Array.isArray(keyOrKeys)) {\n keyOrKeys.forEach(k => {\n self.describe(k, desc);\n });\n }\n else if (typeof keyOrKeys === 'object') {\n Object.keys(keyOrKeys).forEach(k => {\n self.describe(k, keyOrKeys[k]);\n });\n }\n else {\n descriptions[keyOrKeys] = desc;\n }\n };\n self.getDescriptions = () => descriptions;\n let epilogs = [];\n self.epilog = msg => {\n epilogs.push(msg);\n };\n let wrapSet = false;\n let wrap;\n self.wrap = cols => {\n wrapSet = true;\n wrap = cols;\n };\n self.getWrap = () => {\n if (shim.getEnv('YARGS_DISABLE_WRAP')) {\n return null;\n }\n if (!wrapSet) {\n wrap = windowWidth();\n wrapSet = true;\n }\n return wrap;\n };\n const deferY18nLookupPrefix = '__yargsString__:';\n self.deferY18nLookup = str => deferY18nLookupPrefix + str;\n self.help = function help() {\n if (cachedHelpMessage)\n return cachedHelpMessage;\n normalizeAliases();\n const base$0 = yargs.customScriptName\n ? yargs.$0\n : shim.path.basename(yargs.$0);\n const demandedOptions = yargs.getDemandedOptions();\n const demandedCommands = yargs.getDemandedCommands();\n const deprecatedOptions = yargs.getDeprecatedOptions();\n const groups = yargs.getGroups();\n const options = yargs.getOptions();\n let keys = [];\n keys = keys.concat(Object.keys(descriptions));\n keys = keys.concat(Object.keys(demandedOptions));\n keys = keys.concat(Object.keys(demandedCommands));\n keys = keys.concat(Object.keys(options.default));\n keys = keys.filter(filterHiddenOptions);\n keys = Object.keys(keys.reduce((acc, key) => {\n if (key !== '_')\n acc[key] = true;\n return acc;\n }, {}));\n const theWrap = self.getWrap();\n const ui = shim.cliui({\n width: theWrap,\n wrap: !!theWrap,\n });\n if (!usageDisabled) {\n if (usages.length) {\n usages.forEach(usage => {\n ui.div({ text: `${usage[0].replace(/\\$0/g, base$0)}` });\n if (usage[1]) {\n ui.div({ text: `${usage[1]}`, padding: [1, 0, 0, 0] });\n }\n });\n ui.div();\n }\n else if (commands.length) {\n let u = null;\n if (demandedCommands._) {\n u = `${base$0} <${__('command')}>\\n`;\n }\n else {\n u = `${base$0} [${__('command')}]\\n`;\n }\n ui.div(`${u}`);\n }\n }\n if (commands.length > 1 || (commands.length === 1 && !commands[0][2])) {\n ui.div(__('Commands:'));\n const context = yargs.getInternalMethods().getContext();\n const parentCommands = context.commands.length\n ? `${context.commands.join(' ')} `\n : '';\n if (yargs.getInternalMethods().getParserConfiguration()['sort-commands'] ===\n true) {\n commands = commands.sort((a, b) => a[0].localeCompare(b[0]));\n }\n const prefix = base$0 ? `${base$0} ` : '';\n commands.forEach(command => {\n const commandString = `${prefix}${parentCommands}${command[0].replace(/^\\$0 ?/, '')}`;\n ui.span({\n text: commandString,\n padding: [0, 2, 0, 2],\n width: maxWidth(commands, theWrap, `${base$0}${parentCommands}`) + 4,\n }, { text: command[1] });\n const hints = [];\n if (command[2])\n hints.push(`[${__('default')}]`);\n if (command[3] && command[3].length) {\n hints.push(`[${__('aliases:')} ${command[3].join(', ')}]`);\n }\n if (command[4]) {\n if (typeof command[4] === 'string') {\n hints.push(`[${__('deprecated: %s', command[4])}]`);\n }\n else {\n hints.push(`[${__('deprecated')}]`);\n }\n }\n if (hints.length) {\n ui.div({\n text: hints.join(' '),\n padding: [0, 0, 0, 2],\n align: 'right',\n });\n }\n else {\n ui.div();\n }\n });\n ui.div();\n }\n const aliasKeys = (Object.keys(options.alias) || []).concat(Object.keys(yargs.parsed.newAliases) || []);\n keys = keys.filter(key => !yargs.parsed.newAliases[key] &&\n aliasKeys.every(alias => (options.alias[alias] || []).indexOf(key) === -1));\n const defaultGroup = __('Options:');\n if (!groups[defaultGroup])\n groups[defaultGroup] = [];\n addUngroupedKeys(keys, options.alias, groups, defaultGroup);\n const isLongSwitch = (sw) => /^--/.test(getText(sw));\n const displayedGroups = Object.keys(groups)\n .filter(groupName => groups[groupName].length > 0)\n .map(groupName => {\n const normalizedKeys = groups[groupName]\n .filter(filterHiddenOptions)\n .map(key => {\n if (aliasKeys.includes(key))\n return key;\n for (let i = 0, aliasKey; (aliasKey = aliasKeys[i]) !== undefined; i++) {\n if ((options.alias[aliasKey] || []).includes(key))\n return aliasKey;\n }\n return key;\n });\n return { groupName, normalizedKeys };\n })\n .filter(({ normalizedKeys }) => normalizedKeys.length > 0)\n .map(({ groupName, normalizedKeys }) => {\n const switches = normalizedKeys.reduce((acc, key) => {\n acc[key] = [key]\n .concat(options.alias[key] || [])\n .map(sw => {\n if (groupName === self.getPositionalGroupName())\n return sw;\n else {\n return ((/^[0-9]$/.test(sw)\n ? options.boolean.includes(key)\n ? '-'\n : '--'\n : sw.length > 1\n ? '--'\n : '-') + sw);\n }\n })\n .sort((sw1, sw2) => isLongSwitch(sw1) === isLongSwitch(sw2)\n ? 0\n : isLongSwitch(sw1)\n ? 1\n : -1)\n .join(', ');\n return acc;\n }, {});\n return { groupName, normalizedKeys, switches };\n });\n const shortSwitchesUsed = displayedGroups\n .filter(({ groupName }) => groupName !== self.getPositionalGroupName())\n .some(({ normalizedKeys, switches }) => !normalizedKeys.every(key => isLongSwitch(switches[key])));\n if (shortSwitchesUsed) {\n displayedGroups\n .filter(({ groupName }) => groupName !== self.getPositionalGroupName())\n .forEach(({ normalizedKeys, switches }) => {\n normalizedKeys.forEach(key => {\n if (isLongSwitch(switches[key])) {\n switches[key] = addIndentation(switches[key], '-x, '.length);\n }\n });\n });\n }\n displayedGroups.forEach(({ groupName, normalizedKeys, switches }) => {\n ui.div(groupName);\n normalizedKeys.forEach(key => {\n const kswitch = switches[key];\n let desc = descriptions[key] || '';\n let type = null;\n if (desc.includes(deferY18nLookupPrefix))\n desc = __(desc.substring(deferY18nLookupPrefix.length));\n if (options.boolean.includes(key))\n type = `[${__('boolean')}]`;\n if (options.count.includes(key))\n type = `[${__('count')}]`;\n if (options.string.includes(key))\n type = `[${__('string')}]`;\n if (options.normalize.includes(key))\n type = `[${__('string')}]`;\n if (options.array.includes(key))\n type = `[${__('array')}]`;\n if (options.number.includes(key))\n type = `[${__('number')}]`;\n const deprecatedExtra = (deprecated) => typeof deprecated === 'string'\n ? `[${__('deprecated: %s', deprecated)}]`\n : `[${__('deprecated')}]`;\n const extra = [\n key in deprecatedOptions\n ? deprecatedExtra(deprecatedOptions[key])\n : null,\n type,\n key in demandedOptions ? `[${__('required')}]` : null,\n options.choices && options.choices[key]\n ? `[${__('choices:')} ${self.stringifiedValues(options.choices[key])}]`\n : null,\n defaultString(options.default[key], options.defaultDescription[key]),\n ]\n .filter(Boolean)\n .join(' ');\n ui.span({\n text: getText(kswitch),\n padding: [0, 2, 0, 2 + getIndentation(kswitch)],\n width: maxWidth(switches, theWrap) + 4,\n }, desc);\n const shouldHideOptionExtras = yargs.getInternalMethods().getUsageConfiguration()['hide-types'] ===\n true;\n if (extra && !shouldHideOptionExtras)\n ui.div({ text: extra, padding: [0, 0, 0, 2], align: 'right' });\n else\n ui.div();\n });\n ui.div();\n });\n if (examples.length) {\n ui.div(__('Examples:'));\n examples.forEach(example => {\n example[0] = example[0].replace(/\\$0/g, base$0);\n });\n examples.forEach(example => {\n if (example[1] === '') {\n ui.div({\n text: example[0],\n padding: [0, 2, 0, 2],\n });\n }\n else {\n ui.div({\n text: example[0],\n padding: [0, 2, 0, 2],\n width: maxWidth(examples, theWrap) + 4,\n }, {\n text: example[1],\n });\n }\n });\n ui.div();\n }\n if (epilogs.length > 0) {\n const e = epilogs\n .map(epilog => epilog.replace(/\\$0/g, base$0))\n .join('\\n');\n ui.div(`${e}\\n`);\n }\n return ui.toString().replace(/\\s*$/, '');\n };\n function maxWidth(table, theWrap, modifier) {\n let width = 0;\n if (!Array.isArray(table)) {\n table = Object.values(table).map(v => [v]);\n }\n table.forEach(v => {\n width = Math.max(shim.stringWidth(modifier ? `${modifier} ${getText(v[0])}` : getText(v[0])) + getIndentation(v[0]), width);\n });\n if (theWrap)\n width = Math.min(width, parseInt((theWrap * 0.5).toString(), 10));\n return width;\n }\n function normalizeAliases() {\n const demandedOptions = yargs.getDemandedOptions();\n const options = yargs.getOptions();\n (Object.keys(options.alias) || []).forEach(key => {\n options.alias[key].forEach(alias => {\n if (descriptions[alias])\n self.describe(key, descriptions[alias]);\n if (alias in demandedOptions)\n yargs.demandOption(key, demandedOptions[alias]);\n if (options.boolean.includes(alias))\n yargs.boolean(key);\n if (options.count.includes(alias))\n yargs.count(key);\n if (options.string.includes(alias))\n yargs.string(key);\n if (options.normalize.includes(alias))\n yargs.normalize(key);\n if (options.array.includes(alias))\n yargs.array(key);\n if (options.number.includes(alias))\n yargs.number(key);\n });\n });\n }\n let cachedHelpMessage;\n self.cacheHelpMessage = function () {\n cachedHelpMessage = this.help();\n };\n self.clearCachedHelpMessage = function () {\n cachedHelpMessage = undefined;\n };\n self.hasCachedHelpMessage = function () {\n return !!cachedHelpMessage;\n };\n function addUngroupedKeys(keys, aliases, groups, defaultGroup) {\n let groupedKeys = [];\n let toCheck = null;\n Object.keys(groups).forEach(group => {\n groupedKeys = groupedKeys.concat(groups[group]);\n });\n keys.forEach(key => {\n toCheck = [key].concat(aliases[key]);\n if (!toCheck.some(k => groupedKeys.indexOf(k) !== -1)) {\n groups[defaultGroup].push(key);\n }\n });\n return groupedKeys;\n }\n function filterHiddenOptions(key) {\n return (yargs.getOptions().hiddenOptions.indexOf(key) < 0 ||\n yargs.parsed.argv[yargs.getOptions().showHiddenOpt]);\n }\n self.showHelp = (level) => {\n const logger = yargs.getInternalMethods().getLoggerInstance();\n if (!level)\n level = 'error';\n const emit = typeof level === 'function' ? level : logger[level];\n emit(self.help());\n };\n self.functionDescription = fn => {\n const description = fn.name\n ? shim.Parser.decamelize(fn.name, '-')\n : __('generated-value');\n return ['(', description, ')'].join('');\n };\n self.stringifiedValues = function stringifiedValues(values, separator) {\n let string = '';\n const sep = separator || ', ';\n const array = [].concat(values);\n if (!values || !array.length)\n return string;\n array.forEach(value => {\n if (string.length)\n string += sep;\n string += JSON.stringify(value);\n });\n return string;\n };\n function defaultString(value, defaultDescription) {\n let string = `[${__('default:')} `;\n if (value === undefined && !defaultDescription)\n return null;\n if (defaultDescription) {\n string += defaultDescription;\n }\n else {\n switch (typeof value) {\n case 'string':\n string += `\"${value}\"`;\n break;\n case 'object':\n string += JSON.stringify(value);\n break;\n default:\n string += value;\n }\n }\n return `${string}]`;\n }\n function windowWidth() {\n const maxWidth = 80;\n if (shim.process.stdColumns) {\n return Math.min(maxWidth, shim.process.stdColumns);\n }\n else {\n return maxWidth;\n }\n }\n let version = null;\n self.version = ver => {\n version = ver;\n };\n self.showVersion = level => {\n const logger = yargs.getInternalMethods().getLoggerInstance();\n if (!level)\n level = 'error';\n const emit = typeof level === 'function' ? level : logger[level];\n emit(version);\n };\n self.reset = function reset(localLookup) {\n failMessage = null;\n failureOutput = false;\n usages = [];\n usageDisabled = false;\n epilogs = [];\n examples = [];\n commands = [];\n descriptions = objFilter(descriptions, k => !localLookup[k]);\n return self;\n };\n const frozens = [];\n self.freeze = function freeze() {\n frozens.push({\n failMessage,\n failureOutput,\n usages,\n usageDisabled,\n epilogs,\n examples,\n commands,\n descriptions,\n });\n };\n self.unfreeze = function unfreeze(defaultCommand = false) {\n const frozen = frozens.pop();\n if (!frozen)\n return;\n if (defaultCommand) {\n descriptions = { ...frozen.descriptions, ...descriptions };\n commands = [...frozen.commands, ...commands];\n usages = [...frozen.usages, ...usages];\n examples = [...frozen.examples, ...examples];\n epilogs = [...frozen.epilogs, ...epilogs];\n }\n else {\n ({\n failMessage,\n failureOutput,\n usages,\n usageDisabled,\n epilogs,\n examples,\n commands,\n descriptions,\n } = frozen);\n }\n };\n return self;\n}\nfunction isIndentedText(text) {\n return typeof text === 'object';\n}\nfunction addIndentation(text, indent) {\n return isIndentedText(text)\n ? { text: text.text, indentation: text.indentation + indent }\n : { text, indentation: indent };\n}\nfunction getIndentation(text) {\n return isIndentedText(text) ? text.indentation : 0;\n}\nfunction getText(text) {\n return isIndentedText(text) ? text.text : text;\n}\n","import { isCommandBuilderCallback } from './command.js';\nimport { assertNotStrictEqual } from './typings/common-types.js';\nimport * as templates from './completion-templates.js';\nimport { isPromise } from './utils/is-promise.js';\nimport { parseCommand } from './parse-command.js';\nexport class Completion {\n constructor(yargs, usage, command, shim) {\n var _a, _b, _c;\n this.yargs = yargs;\n this.usage = usage;\n this.command = command;\n this.shim = shim;\n this.completionKey = 'get-yargs-completions';\n this.aliases = null;\n this.customCompletionFunction = null;\n this.indexAfterLastReset = 0;\n this.zshShell =\n (_c = (((_a = this.shim.getEnv('SHELL')) === null || _a === void 0 ? void 0 : _a.includes('zsh')) ||\n ((_b = this.shim.getEnv('ZSH_NAME')) === null || _b === void 0 ? void 0 : _b.includes('zsh')))) !== null && _c !== void 0 ? _c : false;\n }\n defaultCompletion(args, argv, current, done) {\n const handlers = this.command.getCommandHandlers();\n for (let i = 0, ii = args.length; i < ii; ++i) {\n if (handlers[args[i]] && handlers[args[i]].builder) {\n const builder = handlers[args[i]].builder;\n if (isCommandBuilderCallback(builder)) {\n this.indexAfterLastReset = i + 1;\n const y = this.yargs.getInternalMethods().reset();\n builder(y, true);\n return y.argv;\n }\n }\n }\n const completions = [];\n this.commandCompletions(completions, args, current);\n this.optionCompletions(completions, args, argv, current);\n this.choicesFromOptionsCompletions(completions, args, argv, current);\n this.choicesFromPositionalsCompletions(completions, args, argv, current);\n done(null, completions);\n }\n commandCompletions(completions, args, current) {\n const parentCommands = this.yargs\n .getInternalMethods()\n .getContext().commands;\n if (!current.match(/^-/) &&\n parentCommands[parentCommands.length - 1] !== current &&\n !this.previousArgHasChoices(args)) {\n this.usage.getCommands().forEach(usageCommand => {\n const commandName = parseCommand(usageCommand[0]).cmd;\n if (args.indexOf(commandName) === -1) {\n if (!this.zshShell) {\n completions.push(commandName);\n }\n else {\n const desc = usageCommand[1] || '';\n completions.push(commandName.replace(/:/g, '\\\\:') + ':' + desc);\n }\n }\n });\n }\n }\n optionCompletions(completions, args, argv, current) {\n if ((current.match(/^-/) || (current === '' && completions.length === 0)) &&\n !this.previousArgHasChoices(args)) {\n const options = this.yargs.getOptions();\n const positionalKeys = this.yargs.getGroups()[this.usage.getPositionalGroupName()] || [];\n Object.keys(options.key).forEach(key => {\n const negable = !!options.configuration['boolean-negation'] &&\n options.boolean.includes(key);\n const isPositionalKey = positionalKeys.includes(key);\n if (!isPositionalKey &&\n !options.hiddenOptions.includes(key) &&\n !this.argsContainKey(args, key, negable)) {\n this.completeOptionKey(key, completions, current, negable && !!options.default[key]);\n }\n });\n }\n }\n choicesFromOptionsCompletions(completions, args, argv, current) {\n if (this.previousArgHasChoices(args)) {\n const choices = this.getPreviousArgChoices(args);\n if (choices && choices.length > 0) {\n completions.push(...choices.map(c => c.replace(/:/g, '\\\\:')));\n }\n }\n }\n choicesFromPositionalsCompletions(completions, args, argv, current) {\n if (current === '' &&\n completions.length > 0 &&\n this.previousArgHasChoices(args)) {\n return;\n }\n const positionalKeys = this.yargs.getGroups()[this.usage.getPositionalGroupName()] || [];\n const offset = Math.max(this.indexAfterLastReset, this.yargs.getInternalMethods().getContext().commands.length +\n 1);\n const positionalKey = positionalKeys[argv._.length - offset - 1];\n if (!positionalKey) {\n return;\n }\n const choices = this.yargs.getOptions().choices[positionalKey] || [];\n for (const choice of choices) {\n if (choice.startsWith(current)) {\n completions.push(choice.replace(/:/g, '\\\\:'));\n }\n }\n }\n getPreviousArgChoices(args) {\n if (args.length < 1)\n return;\n let previousArg = args[args.length - 1];\n let filter = '';\n if (!previousArg.startsWith('-') && args.length > 1) {\n filter = previousArg;\n previousArg = args[args.length - 2];\n }\n if (!previousArg.startsWith('-'))\n return;\n const previousArgKey = previousArg.replace(/^-+/, '');\n const options = this.yargs.getOptions();\n const possibleAliases = [\n previousArgKey,\n ...(this.yargs.getAliases()[previousArgKey] || []),\n ];\n let choices;\n for (const possibleAlias of possibleAliases) {\n if (Object.prototype.hasOwnProperty.call(options.key, possibleAlias) &&\n Array.isArray(options.choices[possibleAlias])) {\n choices = options.choices[possibleAlias];\n break;\n }\n }\n if (choices) {\n return choices.filter(choice => !filter || choice.startsWith(filter));\n }\n }\n previousArgHasChoices(args) {\n const choices = this.getPreviousArgChoices(args);\n return choices !== undefined && choices.length > 0;\n }\n argsContainKey(args, key, negable) {\n const argsContains = (s) => args.indexOf((/^[^0-9]$/.test(s) ? '-' : '--') + s) !== -1;\n if (argsContains(key))\n return true;\n if (negable && argsContains(`no-${key}`))\n return true;\n if (this.aliases) {\n for (const alias of this.aliases[key]) {\n if (argsContains(alias))\n return true;\n }\n }\n return false;\n }\n completeOptionKey(key, completions, current, negable) {\n var _a, _b, _c, _d;\n let keyWithDesc = key;\n if (this.zshShell) {\n const descs = this.usage.getDescriptions();\n const aliasKey = (_b = (_a = this === null || this === void 0 ? void 0 : this.aliases) === null || _a === void 0 ? void 0 : _a[key]) === null || _b === void 0 ? void 0 : _b.find(alias => {\n const desc = descs[alias];\n return typeof desc === 'string' && desc.length > 0;\n });\n const descFromAlias = aliasKey ? descs[aliasKey] : undefined;\n const desc = (_d = (_c = descs[key]) !== null && _c !== void 0 ? _c : descFromAlias) !== null && _d !== void 0 ? _d : '';\n keyWithDesc = `${key.replace(/:/g, '\\\\:')}:${desc\n .replace('__yargsString__:', '')\n .replace(/(\\r\\n|\\n|\\r)/gm, ' ')}`;\n }\n const startsByTwoDashes = (s) => /^--/.test(s);\n const isShortOption = (s) => /^[^0-9]$/.test(s);\n const dashes = !startsByTwoDashes(current) && isShortOption(key) ? '-' : '--';\n completions.push(dashes + keyWithDesc);\n if (negable) {\n completions.push(dashes + 'no-' + keyWithDesc);\n }\n }\n customCompletion(args, argv, current, done) {\n assertNotStrictEqual(this.customCompletionFunction, null, this.shim);\n if (isSyncCompletionFunction(this.customCompletionFunction)) {\n const result = this.customCompletionFunction(current, argv);\n if (isPromise(result)) {\n return result\n .then(list => {\n this.shim.process.nextTick(() => {\n done(null, list);\n });\n })\n .catch(err => {\n this.shim.process.nextTick(() => {\n done(err, undefined);\n });\n });\n }\n return done(null, result);\n }\n else if (isFallbackCompletionFunction(this.customCompletionFunction)) {\n return this.customCompletionFunction(current, argv, (onCompleted = done) => this.defaultCompletion(args, argv, current, onCompleted), completions => {\n done(null, completions);\n });\n }\n else {\n return this.customCompletionFunction(current, argv, completions => {\n done(null, completions);\n });\n }\n }\n getCompletion(args, done) {\n const current = args.length ? args[args.length - 1] : '';\n const argv = this.yargs.parse(args, true);\n const completionFunction = this.customCompletionFunction\n ? (argv) => this.customCompletion(args, argv, current, done)\n : (argv) => this.defaultCompletion(args, argv, current, done);\n return isPromise(argv)\n ? argv.then(completionFunction)\n : completionFunction(argv);\n }\n generateCompletionScript($0, cmd) {\n let script = this.zshShell\n ? templates.completionZshTemplate\n : templates.completionShTemplate;\n const name = this.shim.path.basename($0);\n if ($0.match(/\\.js$/))\n $0 = `./${$0}`;\n script = script.replace(/{{app_name}}/g, name);\n script = script.replace(/{{completion_command}}/g, cmd);\n return script.replace(/{{app_path}}/g, $0);\n }\n registerFunction(fn) {\n this.customCompletionFunction = fn;\n }\n setParsed(parsed) {\n this.aliases = parsed.aliases;\n }\n}\nexport function completion(yargs, usage, command, shim) {\n return new Completion(yargs, usage, command, shim);\n}\nfunction isSyncCompletionFunction(completionFunction) {\n return completionFunction.length < 3;\n}\nfunction isFallbackCompletionFunction(completionFunction) {\n return completionFunction.length > 3;\n}\n","export const completionShTemplate = `###-begin-{{app_name}}-completions-###\n#\n# yargs command completion script\n#\n# Installation: {{app_path}} {{completion_command}} >> ~/.bashrc\n# or {{app_path}} {{completion_command}} >> ~/.bash_profile on OSX.\n#\n_{{app_name}}_yargs_completions()\n{\n local cur_word args type_list\n\n cur_word=\"\\${COMP_WORDS[COMP_CWORD]}\"\n args=(\"\\${COMP_WORDS[@]}\")\n\n # ask yargs to generate completions.\n type_list=$({{app_path}} --get-yargs-completions \"\\${args[@]}\")\n\n COMPREPLY=( $(compgen -W \"\\${type_list}\" -- \\${cur_word}) )\n\n # if no match was found, fall back to filename completion\n if [ \\${#COMPREPLY[@]} -eq 0 ]; then\n COMPREPLY=()\n fi\n\n return 0\n}\ncomplete -o bashdefault -o default -F _{{app_name}}_yargs_completions {{app_name}}\n###-end-{{app_name}}-completions-###\n`;\nexport const completionZshTemplate = `#compdef {{app_name}}\n###-begin-{{app_name}}-completions-###\n#\n# yargs command completion script\n#\n# Installation: {{app_path}} {{completion_command}} >> ~/.zshrc\n# or {{app_path}} {{completion_command}} >> ~/.zprofile on OSX.\n#\n_{{app_name}}_yargs_completions()\n{\n local reply\n local si=$IFS\n IFS=$'\\n' reply=($(COMP_CWORD=\"$((CURRENT-1))\" COMP_LINE=\"$BUFFER\" COMP_POINT=\"$CURSOR\" {{app_path}} --get-yargs-completions \"\\${words[@]}\"))\n IFS=$si\n _describe 'values' reply\n}\ncompdef _{{app_name}}_yargs_completions {{app_name}}\n###-end-{{app_name}}-completions-###\n`;\n","export function levenshtein(a, b) {\n if (a.length === 0)\n return b.length;\n if (b.length === 0)\n return a.length;\n const matrix = [];\n let i;\n for (i = 0; i <= b.length; i++) {\n matrix[i] = [i];\n }\n let j;\n for (j = 0; j <= a.length; j++) {\n matrix[0][j] = j;\n }\n for (i = 1; i <= b.length; i++) {\n for (j = 1; j <= a.length; j++) {\n if (b.charAt(i - 1) === a.charAt(j - 1)) {\n matrix[i][j] = matrix[i - 1][j - 1];\n }\n else {\n if (i > 1 &&\n j > 1 &&\n b.charAt(i - 2) === a.charAt(j - 1) &&\n b.charAt(i - 1) === a.charAt(j - 2)) {\n matrix[i][j] = matrix[i - 2][j - 2] + 1;\n }\n else {\n matrix[i][j] = Math.min(matrix[i - 1][j - 1] + 1, Math.min(matrix[i][j - 1] + 1, matrix[i - 1][j] + 1));\n }\n }\n }\n }\n return matrix[b.length][a.length];\n}\n","import { argsert } from './argsert.js';\nimport { assertNotStrictEqual, } from './typings/common-types.js';\nimport { levenshtein as distance } from './utils/levenshtein.js';\nimport { objFilter } from './utils/obj-filter.js';\nconst specialKeys = ['$0', '--', '_'];\nexport function validation(yargs, usage, shim) {\n const __ = shim.y18n.__;\n const __n = shim.y18n.__n;\n const self = {};\n self.nonOptionCount = function nonOptionCount(argv) {\n const demandedCommands = yargs.getDemandedCommands();\n const positionalCount = argv._.length + (argv['--'] ? argv['--'].length : 0);\n const _s = positionalCount - yargs.getInternalMethods().getContext().commands.length;\n if (demandedCommands._ &&\n (_s < demandedCommands._.min || _s > demandedCommands._.max)) {\n if (_s < demandedCommands._.min) {\n if (demandedCommands._.minMsg !== undefined) {\n usage.fail(demandedCommands._.minMsg\n ? demandedCommands._.minMsg\n .replace(/\\$0/g, _s.toString())\n .replace(/\\$1/, demandedCommands._.min.toString())\n : null);\n }\n else {\n usage.fail(__n('Not enough non-option arguments: got %s, need at least %s', 'Not enough non-option arguments: got %s, need at least %s', _s, _s.toString(), demandedCommands._.min.toString()));\n }\n }\n else if (_s > demandedCommands._.max) {\n if (demandedCommands._.maxMsg !== undefined) {\n usage.fail(demandedCommands._.maxMsg\n ? demandedCommands._.maxMsg\n .replace(/\\$0/g, _s.toString())\n .replace(/\\$1/, demandedCommands._.max.toString())\n : null);\n }\n else {\n usage.fail(__n('Too many non-option arguments: got %s, maximum of %s', 'Too many non-option arguments: got %s, maximum of %s', _s, _s.toString(), demandedCommands._.max.toString()));\n }\n }\n }\n };\n self.positionalCount = function positionalCount(required, observed) {\n if (observed < required) {\n usage.fail(__n('Not enough non-option arguments: got %s, need at least %s', 'Not enough non-option arguments: got %s, need at least %s', observed, observed + '', required + ''));\n }\n };\n self.requiredArguments = function requiredArguments(argv, demandedOptions) {\n let missing = null;\n for (const key of Object.keys(demandedOptions)) {\n if (!Object.prototype.hasOwnProperty.call(argv, key) ||\n typeof argv[key] === 'undefined') {\n missing = missing || {};\n missing[key] = demandedOptions[key];\n }\n }\n if (missing) {\n const customMsgs = [];\n for (const key of Object.keys(missing)) {\n const msg = missing[key];\n if (msg && customMsgs.indexOf(msg) < 0) {\n customMsgs.push(msg);\n }\n }\n const customMsg = customMsgs.length ? `\\n${customMsgs.join('\\n')}` : '';\n usage.fail(__n('Missing required argument: %s', 'Missing required arguments: %s', Object.keys(missing).length, Object.keys(missing).join(', ') + customMsg));\n }\n };\n self.unknownArguments = function unknownArguments(argv, aliases, positionalMap, isDefaultCommand, checkPositionals = true) {\n var _a;\n const commandKeys = yargs\n .getInternalMethods()\n .getCommandInstance()\n .getCommands();\n const unknown = [];\n const currentContext = yargs.getInternalMethods().getContext();\n Object.keys(argv).forEach(key => {\n if (!specialKeys.includes(key) &&\n !Object.prototype.hasOwnProperty.call(positionalMap, key) &&\n !Object.prototype.hasOwnProperty.call(yargs.getInternalMethods().getParseContext(), key) &&\n !self.isValidAndSomeAliasIsNotNew(key, aliases)) {\n unknown.push(key);\n }\n });\n if (checkPositionals &&\n (currentContext.commands.length > 0 ||\n commandKeys.length > 0 ||\n isDefaultCommand)) {\n argv._.slice(currentContext.commands.length).forEach(key => {\n if (!commandKeys.includes('' + key)) {\n unknown.push('' + key);\n }\n });\n }\n if (checkPositionals) {\n const demandedCommands = yargs.getDemandedCommands();\n const maxNonOptDemanded = ((_a = demandedCommands._) === null || _a === void 0 ? void 0 : _a.max) || 0;\n const expected = currentContext.commands.length + maxNonOptDemanded;\n if (expected < argv._.length) {\n argv._.slice(expected).forEach(key => {\n key = String(key);\n if (!currentContext.commands.includes(key) &&\n !unknown.includes(key)) {\n unknown.push(key);\n }\n });\n }\n }\n if (unknown.length) {\n usage.fail(__n('Unknown argument: %s', 'Unknown arguments: %s', unknown.length, unknown.map(s => (s.trim() ? s : `\"${s}\"`)).join(', ')));\n }\n };\n self.unknownCommands = function unknownCommands(argv) {\n const commandKeys = yargs\n .getInternalMethods()\n .getCommandInstance()\n .getCommands();\n const unknown = [];\n const currentContext = yargs.getInternalMethods().getContext();\n if (currentContext.commands.length > 0 || commandKeys.length > 0) {\n argv._.slice(currentContext.commands.length).forEach(key => {\n if (!commandKeys.includes('' + key)) {\n unknown.push('' + key);\n }\n });\n }\n if (unknown.length > 0) {\n usage.fail(__n('Unknown command: %s', 'Unknown commands: %s', unknown.length, unknown.join(', ')));\n return true;\n }\n else {\n return false;\n }\n };\n self.isValidAndSomeAliasIsNotNew = function isValidAndSomeAliasIsNotNew(key, aliases) {\n if (!Object.prototype.hasOwnProperty.call(aliases, key)) {\n return false;\n }\n const newAliases = yargs.parsed.newAliases;\n return [key, ...aliases[key]].some(a => !Object.prototype.hasOwnProperty.call(newAliases, a) || !newAliases[key]);\n };\n self.limitedChoices = function limitedChoices(argv) {\n const options = yargs.getOptions();\n const invalid = {};\n if (!Object.keys(options.choices).length)\n return;\n Object.keys(argv).forEach(key => {\n if (specialKeys.indexOf(key) === -1 &&\n Object.prototype.hasOwnProperty.call(options.choices, key)) {\n [].concat(argv[key]).forEach(value => {\n if (options.choices[key].indexOf(value) === -1 &&\n value !== undefined) {\n invalid[key] = (invalid[key] || []).concat(value);\n }\n });\n }\n });\n const invalidKeys = Object.keys(invalid);\n if (!invalidKeys.length)\n return;\n let msg = __('Invalid values:');\n invalidKeys.forEach(key => {\n msg += `\\n ${__('Argument: %s, Given: %s, Choices: %s', key, usage.stringifiedValues(invalid[key]), usage.stringifiedValues(options.choices[key]))}`;\n });\n usage.fail(msg);\n };\n let implied = {};\n self.implies = function implies(key, value) {\n argsert('<string|object> [array|number|string]', [key, value], arguments.length);\n if (typeof key === 'object') {\n Object.keys(key).forEach(k => {\n self.implies(k, key[k]);\n });\n }\n else {\n yargs.global(key);\n if (!implied[key]) {\n implied[key] = [];\n }\n if (Array.isArray(value)) {\n value.forEach(i => self.implies(key, i));\n }\n else {\n assertNotStrictEqual(value, undefined, shim);\n implied[key].push(value);\n }\n }\n };\n self.getImplied = function getImplied() {\n return implied;\n };\n function keyExists(argv, val) {\n const num = Number(val);\n val = isNaN(num) ? val : num;\n if (typeof val === 'number') {\n val = argv._.length >= val;\n }\n else if (val.match(/^--no-.+/)) {\n val = val.match(/^--no-(.+)/)[1];\n val = !Object.prototype.hasOwnProperty.call(argv, val);\n }\n else {\n val = Object.prototype.hasOwnProperty.call(argv, val);\n }\n return val;\n }\n self.implications = function implications(argv) {\n const implyFail = [];\n Object.keys(implied).forEach(key => {\n const origKey = key;\n (implied[key] || []).forEach(value => {\n let key = origKey;\n const origValue = value;\n key = keyExists(argv, key);\n value = keyExists(argv, value);\n if (key && !value) {\n implyFail.push(` ${origKey} -> ${origValue}`);\n }\n });\n });\n if (implyFail.length) {\n let msg = `${__('Implications failed:')}\\n`;\n implyFail.forEach(value => {\n msg += value;\n });\n usage.fail(msg);\n }\n };\n let conflicting = {};\n self.conflicts = function conflicts(key, value) {\n argsert('<string|object> [array|string]', [key, value], arguments.length);\n if (typeof key === 'object') {\n Object.keys(key).forEach(k => {\n self.conflicts(k, key[k]);\n });\n }\n else {\n yargs.global(key);\n if (!conflicting[key]) {\n conflicting[key] = [];\n }\n if (Array.isArray(value)) {\n value.forEach(i => self.conflicts(key, i));\n }\n else {\n conflicting[key].push(value);\n }\n }\n };\n self.getConflicting = () => conflicting;\n self.conflicting = function conflictingFn(argv) {\n Object.keys(argv).forEach(key => {\n if (conflicting[key]) {\n conflicting[key].forEach(value => {\n if (value && argv[key] !== undefined && argv[value] !== undefined) {\n usage.fail(__('Arguments %s and %s are mutually exclusive', key, value));\n }\n });\n }\n });\n if (yargs.getInternalMethods().getParserConfiguration()['strip-dashed']) {\n Object.keys(conflicting).forEach(key => {\n conflicting[key].forEach(value => {\n if (value &&\n argv[shim.Parser.camelCase(key)] !== undefined &&\n argv[shim.Parser.camelCase(value)] !== undefined) {\n usage.fail(__('Arguments %s and %s are mutually exclusive', key, value));\n }\n });\n });\n }\n };\n self.recommendCommands = function recommendCommands(cmd, potentialCommands) {\n const threshold = 3;\n potentialCommands = potentialCommands.sort((a, b) => b.length - a.length);\n let recommended = null;\n let bestDistance = Infinity;\n for (let i = 0, candidate; (candidate = potentialCommands[i]) !== undefined; i++) {\n const d = distance(cmd, candidate);\n if (d <= threshold && d < bestDistance) {\n bestDistance = d;\n recommended = candidate;\n }\n }\n if (recommended)\n usage.fail(__('Did you mean %s?', recommended));\n };\n self.reset = function reset(localLookup) {\n implied = objFilter(implied, k => !localLookup[k]);\n conflicting = objFilter(conflicting, k => !localLookup[k]);\n return self;\n };\n const frozens = [];\n self.freeze = function freeze() {\n frozens.push({\n implied,\n conflicting,\n });\n };\n self.unfreeze = function unfreeze() {\n const frozen = frozens.pop();\n assertNotStrictEqual(frozen, undefined, shim);\n ({ implied, conflicting } = frozen);\n };\n return self;\n}\n","import { YError } from '../yerror.js';\nlet previouslyVisitedConfigs = [];\nlet shim;\nexport function applyExtends(config, cwd, mergeExtends, _shim) {\n shim = _shim;\n let defaultConfig = {};\n if (Object.prototype.hasOwnProperty.call(config, 'extends')) {\n if (typeof config.extends !== 'string')\n return defaultConfig;\n const isPath = /\\.json|\\..*rc$/.test(config.extends);\n let pathToDefault = null;\n if (!isPath) {\n try {\n pathToDefault = require.resolve(config.extends);\n }\n catch (_err) {\n return config;\n }\n }\n else {\n pathToDefault = getPathToDefaultConfig(cwd, config.extends);\n }\n checkForCircularExtends(pathToDefault);\n previouslyVisitedConfigs.push(pathToDefault);\n defaultConfig = isPath\n ? JSON.parse(shim.readFileSync(pathToDefault, 'utf8'))\n : require(config.extends);\n delete config.extends;\n defaultConfig = applyExtends(defaultConfig, shim.path.dirname(pathToDefault), mergeExtends, shim);\n }\n previouslyVisitedConfigs = [];\n return mergeExtends\n ? mergeDeep(defaultConfig, config)\n : Object.assign({}, defaultConfig, config);\n}\nfunction checkForCircularExtends(cfgPath) {\n if (previouslyVisitedConfigs.indexOf(cfgPath) > -1) {\n throw new YError(`Circular extended configurations: '${cfgPath}'.`);\n }\n}\nfunction getPathToDefaultConfig(cwd, pathToExtend) {\n return shim.path.resolve(cwd, pathToExtend);\n}\nfunction mergeDeep(config1, config2) {\n const target = {};\n function isObject(obj) {\n return obj && typeof obj === 'object' && !Array.isArray(obj);\n }\n Object.assign(target, config1);\n for (const key of Object.keys(config2)) {\n if (isObject(config2[key]) && isObject(target[key])) {\n target[key] = mergeDeep(config1[key], config2[key]);\n }\n else {\n target[key] = config2[key];\n }\n }\n return target;\n}\n","'use strict';\n\n// Bootstraps yargs for ESM:\nimport esmPlatformShim from './lib/platform-shims/esm.mjs';\nimport {YargsFactory} from './build/lib/yargs-factory.js';\n\nconst Yargs = YargsFactory(esmPlatformShim);\nexport default Yargs;\n","import fs from 'node:fs';\nimport path from 'node:path';\n\nimport type { EnvReaderOptions } from '@willbooster/shared-lib-node/src';\nimport { readEnvironmentVariables } from '@willbooster/shared-lib-node/src';\nimport { memoizeFactory } from 'at-decorators';\nimport { globby } from 'globby';\nimport type { PackageJson } from 'type-fest';\n\nconst memoize = memoizeFactory({ maxCachedThisSize: Number.MAX_SAFE_INTEGER, maxCachedArgsSize: 1 });\n\nexport class Project {\n private readonly argv: EnvReaderOptions;\n private readonly loadEnv: boolean;\n private readonly pathByName = new Map<string, string>();\n\n private readonly _dirPath: string;\n\n constructor(dirPath: string, argv: EnvReaderOptions, loadEnv: boolean) {\n this._dirPath = path.resolve(dirPath);\n this.argv = argv;\n this.loadEnv = loadEnv;\n }\n\n @memoize\n get isBunProject(): boolean {\n return fs.existsSync(path.join(this.rootDirPath, 'bunfig.toml'));\n }\n\n @memoize\n get isBunAvailable(): boolean {\n try {\n return /(^|\\n)bun\\s/.test(fs.readFileSync(path.join(this.rootDirPath, '.tool-versions'), 'utf8'));\n } catch {\n return false;\n }\n }\n\n @memoize\n get buildCommand(): string {\n return this.packageJson.scripts?.build?.includes('buildIfNeeded')\n ? 'yarn build'\n : `YARN wb buildIfNeeded ${this.argv.verbose ? '--verbose' : ''}`;\n }\n\n get dirPath(): string {\n return this._dirPath;\n }\n\n @memoize\n get rootDirPath(): string {\n return fs.existsSync(path.join(this.dirPath, '..', '..', 'package.json'))\n ? path.resolve(this.dirPath, '..', '..')\n : this.dirPath;\n }\n\n @memoize\n get dockerfile(): string {\n return fs.readFileSync(this.findFile('Dockerfile'), 'utf8');\n }\n\n @memoize\n get hasDockerfile(): boolean {\n try {\n return !!this.findFile('Dockerfile');\n } catch {\n return false;\n }\n }\n\n @memoize\n get hasSourceCode(): boolean {\n return fs.existsSync(path.join(this.dirPath, 'src'));\n }\n\n @memoize\n get name(): string {\n return this.packageJson.name || 'unknown';\n }\n\n @memoize\n get dockerImageName(): string {\n const name = this.packageJson.name || 'unknown';\n return name.replaceAll('@', '').replaceAll('/', '-');\n }\n\n @memoize\n get env(): Record<string, string | undefined> {\n return this.loadEnv ? { ...readEnvironmentVariables(this.argv, this.dirPath), ...process.env } : process.env;\n }\n\n @memoize\n get packageJson(): PackageJson {\n return JSON.parse(fs.readFileSync(path.join(this.dirPath, 'package.json'), 'utf8'));\n }\n\n @memoize\n get hasPrisma(): boolean {\n return !!(this.packageJson.dependencies?.['prisma'] || this.packageJson.devDependencies?.['prisma']);\n }\n\n @memoize\n get dockerPackageJson(): PackageJson {\n return path.dirname(this.findFile('Dockerfile')) === this.dirPath\n ? this.packageJson\n : JSON.parse(fs.readFileSync(path.join(path.dirname(this.findFile('Dockerfile')), 'package.json'), 'utf8'));\n }\n\n @memoize\n get binExists(): boolean {\n let binFound = false;\n let currentPath = this.dirPath;\n for (;;) {\n const binPath = path.join(currentPath, 'node_modules', '.bin');\n if (fs.existsSync(binPath)) {\n this.env.PATH = `${binPath}:${this.env.PATH}`;\n binFound = true;\n }\n\n if (fs.existsSync(path.join(currentPath, '.git'))) {\n break;\n }\n const parentPath = path.dirname(currentPath);\n if (currentPath === parentPath) {\n break;\n }\n currentPath = parentPath;\n }\n return binFound;\n }\n\n findFile(fileName: string): string {\n let filePath = this.pathByName.get(fileName);\n if (filePath) return filePath;\n\n filePath = [fileName, path.join('..', '..', fileName)]\n .map((p) => path.resolve(this.dirPath, p))\n .find((p) => fs.existsSync(p));\n if (!filePath) {\n throw new Error(`File not found: ${fileName}`);\n }\n this.pathByName.set(fileName, filePath);\n return filePath;\n }\n}\n\nexport interface FoundProjects {\n root: Project;\n self: Project;\n all: Project[];\n}\n\nexport function findSelfProject(argv: EnvReaderOptions, loadEnv = true, dirPath?: string): Project | undefined {\n dirPath ??= process.cwd();\n if (!fs.existsSync(path.join(dirPath, 'package.json'))) return;\n\n return new Project(dirPath, argv, loadEnv);\n}\n\nexport async function findAllProjects(\n argv: EnvReaderOptions,\n loadEnv = true,\n dirPath?: string\n): Promise<FoundProjects | undefined> {\n const rootAndSelfProjects = findRootAndSelfProjects(argv, loadEnv, dirPath);\n if (!rootAndSelfProjects) return;\n\n return {\n ...rootAndSelfProjects,\n all:\n rootAndSelfProjects.root === rootAndSelfProjects.self\n ? await getAllProjects(argv, rootAndSelfProjects.root, loadEnv)\n : [rootAndSelfProjects.self],\n };\n}\n\nexport function findRootAndSelfProjects(\n argv: EnvReaderOptions,\n loadEnv = true,\n dirPath?: string\n): Omit<FoundProjects, 'all'> | undefined {\n dirPath ??= process.cwd();\n if (!fs.existsSync(path.join(dirPath, 'package.json'))) return;\n\n const thisProject = new Project(dirPath, argv, loadEnv);\n let rootProject = thisProject;\n if (!thisProject.packageJson.workspaces && path.dirname(dirPath).endsWith('/packages')) {\n const rootDirPath = path.resolve(dirPath, '..', '..');\n if (fs.existsSync(path.join(rootDirPath, 'package.json'))) {\n rootProject = new Project(rootDirPath, argv, loadEnv);\n }\n }\n return { root: rootProject, self: thisProject };\n}\n\nasync function getAllProjects(argv: EnvReaderOptions, rootProject: Project, loadEnv: boolean): Promise<Project[]> {\n const allProjects = [rootProject];\n\n const workspace = rootProject.packageJson.workspaces;\n if (!Array.isArray(workspace)) return allProjects;\n\n const globPattern: string[] = [];\n const packageDirs: string[] = [];\n for (const workspacePath of workspace.map((ws: string) => path.join(rootProject.dirPath, ws))) {\n if (fs.existsSync(workspacePath)) {\n packageDirs.push(workspacePath);\n } else {\n globPattern.push(workspacePath);\n }\n }\n packageDirs.push(...(await globby(globPattern, { dot: true, onlyDirectories: true })));\n for (const subPackageDirPath of packageDirs) {\n if (!fs.existsSync(path.join(subPackageDirPath, 'package.json'))) continue;\n\n allProjects.push(new Project(subPackageDirPath, argv, loadEnv));\n }\n return allProjects;\n}\n","import{cyrb64HashWithLength as e}from\"./hash.js\";const t=s();function s({cacheDuration:t=Number.POSITIVE_INFINITY,caches:s,calcKey:n=(t=>e(JSON.stringify(t))),maxCachedArgsSize:i=100,maxCachedThisSize:c=10}={}){return function(e,o){if(\"getter\"===o?.kind){const n=new Map;return s?.push(n),function(){const s=Date.now();if(n.has(this)){const[e,i]=n.get(this);if(s-i<=t)return e}const i=e.call(this);if(n.size>=c){const e=n.keys().next().value;n.delete(e)}return n.set(this,[i,s]),i}}{const r=new Map;return s?.push(r),function(...s){const a=n(s);let h=r.get(this);const u=Date.now();if(h){if(h.has(a)){const[e,s]=h.get(a);if(u-s<=t)return e}}else{if(h=new Map,r.size>=c){const e=r.keys().next().value;r.delete(e)}r.set(this,h)}const f=o?e.call(this,...s):e(...s);if(h.size>=i){const e=h.keys().next().value;h.delete(e)}return h.set(a,[f,u]),f}}}}export{t as memoize,s as memoizeFactory};\n//# sourceMappingURL=memoize.js.map\n","function t(t,n=0){const[i,r]=function(t,n=0){let i=3735928559^n,r=1103547991^n;for(let n,a=0;a<t.length;a++)n=t.codePointAt(a),i=Math.imul(i^n,2654435761),r=Math.imul(r^n,1597334677);return i=Math.imul(i^i>>>16,2246822507),i^=Math.imul(r^r>>>13,3266489909),r=Math.imul(r^r>>>16,2246822507),r^=Math.imul(i^i>>>13,3266489909),[r>>>0,i>>>0]}(t,n);return t.length.toString(36)+i.toString(36).padStart(7,\"0\")+r.toString(36).padStart(7,\"0\")}export{t as cyrb64HashWithLength};\n//# sourceMappingURL=hash.js.map\n","import child_process from 'node:child_process';\nimport type { Hash } from 'node:crypto';\nimport { createHash } from 'node:crypto';\nimport fs from 'node:fs';\nimport path from 'node:path';\n\nimport { ignoreEnoentAsync } from '@willbooster/shared-lib/src';\nimport chalk from 'chalk';\nimport type { ArgumentsCamelCase, CommandModule, InferredOptionTypes } from 'yargs';\n\nimport type { Project } from '../project.js';\nimport { findSelfProject } from '../project.js';\nimport type { sharedOptionsBuilder } from '../sharedOptionsBuilder.js';\n\nconst builder = {\n command: {\n description: 'A build command',\n type: 'string',\n default: 'yarn build',\n alias: 'c',\n },\n} as const;\n\nexport const buildIfNeededCommand: CommandModule<unknown, InferredOptionTypes<typeof builder>> = {\n command: 'buildIfNeeded',\n describe: 'Build code if changes are detected',\n builder,\n async handler(argv) {\n await buildIfNeeded(argv);\n },\n};\n\nfunction build(project: Project, argv: Partial<ArgumentsCamelCase<InferredOptionTypes<typeof builder>>>): boolean {\n console.info(chalk.green(`Run '${argv.command}'`));\n if (!argv.dryRun) {\n const ret = child_process.spawnSync(argv.command ?? '', {\n cwd: project.dirPath,\n env: project.env,\n shell: true,\n stdio: 'inherit',\n });\n if (ret.status !== 0) {\n process.exitCode = ret.status ?? 1;\n return false;\n }\n }\n return true;\n}\n\nexport async function buildIfNeeded(\n // Test code requires Partial<...>\n argv: Partial<ArgumentsCamelCase<InferredOptionTypes<typeof builder & typeof sharedOptionsBuilder>>>,\n projectPathForTesting?: string\n): Promise<boolean | undefined> {\n const project = await findSelfProject(argv, true, projectPathForTesting);\n if (!project) {\n console.error(chalk.red('No project found.'));\n return true;\n }\n\n if (!fs.existsSync(path.join(project.rootDirPath, '.git'))) {\n build(project, argv);\n return true;\n }\n\n const [canSkip, cacheFilePath, contentHash] = await canSkipBuild(project, argv);\n if (canSkip) {\n console.info(chalk.green(`Skip to run '${argv.command}' 💫`));\n return false;\n }\n\n if (!build(project, argv)) return;\n\n if (!argv.dryRun) {\n await fs.promises.writeFile(cacheFilePath, contentHash, 'utf8');\n }\n return true;\n}\n\nconst ignoringEnvVarNames = new Set(['CI', 'PWDEBUG', 'TMPDIR']);\n\nexport async function canSkipBuild(\n project: Project,\n argv: Partial<ArgumentsCamelCase<InferredOptionTypes<typeof builder>>>\n): Promise<[boolean, string, string]> {\n const cacheDirectoryPath = path.resolve(project.dirPath, 'node_modules', '.cache', 'build');\n const cacheFilePath = path.resolve(cacheDirectoryPath, 'last-build');\n await fs.promises.mkdir(cacheDirectoryPath, { recursive: true });\n\n const hash = createHash('sha256');\n\n const commitHash = child_process.execSync('git rev-parse HEAD', { cwd: project.dirPath }).toString().trim();\n hash.update(commitHash);\n\n const environmentJson = JSON.stringify(\n Object.entries(project.env)\n .filter(([key]) => !ignoringEnvVarNames.has(key))\n .sort(([key1], [key2]) => key1.localeCompare(key2))\n );\n hash.update(environmentJson);\n\n await updateHashWithDiffResult(project, argv, hash);\n const contentHash = hash.digest('hex');\n\n const cachedContentHash = await ignoreEnoentAsync(() => fs.promises.readFile(cacheFilePath, 'utf8'));\n return [cachedContentHash === contentHash, cacheFilePath, contentHash];\n}\n\nconst includePatterns = ['src/', 'public/'];\nconst includeSuffix = [\n '.js',\n '.cjs',\n '.mjs',\n '.jsx',\n '.ts',\n '.cts',\n '.mts',\n '.tsx',\n '.json',\n '.browserslistrc',\n // Because some build commands affected by changes in `package.json`\n 'package.json',\n 'yarn.lock',\n];\nconst excludePatterns = ['test/', 'tests/', '__tests__/', 'test-fixtures/'];\n\nasync function updateHashWithDiffResult(\n project: Project,\n argv: Partial<ArgumentsCamelCase<InferredOptionTypes<typeof builder>>>,\n hash: Hash\n): Promise<void> {\n return new Promise((resolve) => {\n const ret = child_process.spawnSync('git', ['diff', '--name-only'], {\n cwd: project.dirPath,\n env: project.env,\n stdio: 'pipe',\n encoding: 'utf8',\n });\n const filePaths = ret.stdout\n .trim()\n .split('\\n')\n .map((filePath) =>\n project.env.WB_ENV === 'test' ? filePath.replace(/packages\\/scripts\\/test-fixtures\\/[^/]+\\//, '') : filePath\n );\n const filteredFilePaths = filePaths.filter(\n (filePath) =>\n (includePatterns.some((pattern) => filePath.includes(pattern)) ||\n includeSuffix.some((suffix) => filePath.endsWith(suffix))) &&\n !excludePatterns.some((pattern) => filePath.includes(pattern))\n );\n if (argv.verbose) {\n console.info(`Changed files: ${filteredFilePaths.join(', ')}`);\n }\n\n // 'git diff --' works only on rootDirPath\n const proc = child_process.spawn('git', ['diff', '--', ...filteredFilePaths], { cwd: project.rootDirPath });\n proc.stdout?.on('data', (data) => {\n hash.update(data);\n if (argv.verbose) {\n console.info(data.toString());\n console.info('Hash:', hash.copy().digest('hex'));\n }\n });\n proc.on('close', () => {\n resolve();\n });\n });\n}\n","import { sleep } from './sleep.js';\n\n/**\n * Convert an object to an error.\n * @param obj The object to convert.\n */\nexport function errorify(obj: unknown): Error {\n if (obj instanceof Error) return obj;\n if (typeof obj === 'string') return new Error(obj);\n try {\n return new Error(JSON.stringify(obj));\n } catch {\n return new Error(String(obj));\n }\n}\n\nexport function ignoreError<T>(fn: () => T): T | undefined {\n try {\n return fn();\n } catch {\n // do nothing\n }\n}\n\nexport function ignoreEnoent<T>(fn: () => T): T | undefined {\n try {\n return fn();\n } catch (error) {\n if (typeof error === 'object' && error && 'code' in error && error.code === 'ENOENT') {\n return;\n }\n throw error;\n }\n}\n\nexport async function ignoreErrorAsync<T>(fn: () => Promise<T>): Promise<T | undefined> {\n try {\n return await fn();\n } catch {\n // do nothing\n }\n}\n\nexport async function ignoreEnoentAsync<T>(fn: () => Promise<T>): Promise<T | undefined> {\n try {\n return await fn();\n } catch (error) {\n if (typeof error === 'object' && error && 'code' in error && error.code === 'ENOENT') {\n return;\n }\n throw error;\n }\n}\n\nexport interface RetryOptions {\n beforeRetry?: (error: unknown) => Promise<void>;\n handleError?: (error: unknown) => Promise<void>;\n retryCount?: number;\n retryLogger?: (message: string) => void;\n sleepMilliseconds?: number;\n}\n\n/**\n * Retry the given function.\n * @param func The function to retry.\n * @param beforeRetry The function to call immediately before retrying.\n * @param handleError The function to call when an error occurs.\n * @param retryCount The maximum number of retries.\n * @param retryLogger The function to log retrying.\n * @param sleepMilliseconds The number of milliseconds to sleep before retrying.\n */\nexport async function withRetry<T>(\n func: (failedCount: number) => Promise<T>,\n { beforeRetry, handleError, retryCount = 3, retryLogger, sleepMilliseconds = 0 }: RetryOptions = {}\n): Promise<T> {\n let failedCount = 0;\n for (;;) {\n try {\n return await func(failedCount);\n } catch (error) {\n await handleError?.(error);\n failedCount++;\n if (failedCount >= retryCount) {\n throw error;\n }\n if (sleepMilliseconds > 0) {\n await sleep(sleepMilliseconds);\n }\n retryLogger?.(`Retry due to: ${error instanceof Error ? error.stack : error}`);\n await beforeRetry?.(error);\n }\n }\n}\n","import type { Project } from '../project.js';\n\nexport function* prepareForRunningCommand(commandName: string, projects: Project[]): Generator<Project, void, unknown> {\n for (const project of projects) {\n console.info(`Running \"${commandName}\" for ${project.name} ...`);\n\n yield project;\n }\n}\n","import child_process from 'node:child_process';\nimport fs from 'node:fs';\nimport path from 'node:path';\n\nimport chalk from 'chalk';\nimport type { PackageJson } from 'type-fest';\nimport type { CommandModule, InferredOptionTypes } from 'yargs';\n\nimport { findAllProjects } from '../project.js';\n\nimport { prepareForRunningCommand } from './commandUtils.js';\n\nconst builder = {\n outside: {\n description: 'Whether the optimization is executed outside a docker container or not',\n type: 'boolean',\n alias: 'o',\n },\n} as const;\n\nexport const optimizeForDockerBuildCommand: CommandModule<unknown, InferredOptionTypes<typeof builder>> = {\n command: 'optimizeForDockerBuild',\n describe: 'Optimize configuration when building a Docker image',\n builder,\n async handler(argv) {\n const projects = await findAllProjects(argv);\n if (!projects) {\n console.error(chalk.red('No project found.'));\n process.exit(1);\n }\n\n for (const project of prepareForRunningCommand('optimizeForDockerBuild', projects.all)) {\n const packageJson: PackageJson = project.packageJson;\n const keys = ['dependencies', 'devDependencies'] as const;\n for (const key of keys) {\n const deps = packageJson[key] || {};\n for (const [name, value] of Object.entries(deps)) {\n if (value?.startsWith('git@github.com:')) {\n deps[name] = `./${name}`;\n }\n }\n }\n\n optimizeDevDependencies(argv, packageJson);\n\n optimizeScripts(packageJson);\n\n optimizeRootProps(packageJson);\n\n if (argv.dryRun) continue;\n\n const distDirPath = argv.outside ? path.join(project.dirPath, 'dist') : project.dirPath;\n await fs.promises.mkdir(distDirPath, { recursive: true });\n await fs.promises.writeFile(path.join(distDirPath, 'package.json'), JSON.stringify(packageJson), 'utf8');\n }\n if (!argv.dryRun && !argv.outside) {\n child_process.spawnSync('yarn', {\n stdio: 'inherit',\n });\n }\n },\n};\n\nfunction optimizeDevDependencies(argv: InferredOptionTypes<typeof builder>, packageJson: PackageJson): void {\n if (!argv.outside) {\n delete packageJson.devDependencies;\n return;\n }\n\n const devDeps = packageJson.devDependencies || {};\n const nameWordsToBeRemoved = [\n 'artillery',\n 'concurrently',\n 'conventional-changelog-conventionalcommits',\n 'eslint',\n 'husky',\n 'imagemin',\n 'jest',\n 'kill-port',\n 'lint-staged',\n 'open-cli',\n 'playwright',\n 'prettier',\n 'pinst',\n 'sort-package-json',\n 'wait-on',\n 'semantic-release',\n 'vitest',\n ];\n for (const name of Object.keys(devDeps)) {\n if (\n nameWordsToBeRemoved.some((word) => name.includes(word)) ||\n (!argv.outside && name.includes('willbooster') && name.includes('config'))\n ) {\n delete devDeps[name];\n }\n }\n}\n\nfunction optimizeScripts(packageJson: PackageJson): void {\n const nameWordsOfUnnecessaryScripts = ['check', 'deploy', 'format', 'lint', 'start', 'test'];\n const contentWordsOfUnnecessaryScripts = ['pinst ', 'husky '];\n const scripts = (packageJson.scripts || {}) as Record<string, string>;\n for (const [name, content] of Object.entries(scripts)) {\n if (\n nameWordsOfUnnecessaryScripts.some((word) => name.includes(word)) ||\n // Support \"husky\" since husky v9 requires `\"postinstall\": \"husky\"`\n contentWordsOfUnnecessaryScripts.some((word) => content.includes(word) || content.trim() === word.trim())\n ) {\n delete scripts[name];\n }\n }\n}\n\nfunction optimizeRootProps(packageJson: PackageJson): void {\n delete packageJson.private;\n delete packageJson.publishConfig;\n delete packageJson.prettier;\n}\n","export const isRunningOnBun = process.argv[0].endsWith('/bun');\n\nexport const runtimeWithArgs = isRunningOnBun ? 'bun --bun' : 'node';\nexport const packageManagerWithArgs = isRunningOnBun ? 'bun --bun' : 'yarn';\n","import path from 'node:path';\n\nimport type { Project } from '../project.js';\nimport { runtimeWithArgs } from '../utils/runtime.js';\n\n/**\n * A collection of scripts for executing Prisma commands.\n * Note that `PRISMA` is replaced with `YARN prisma` or `YARN blitz prisma`\n * and `YARN zzz` is replaced with `yarn zzz` or `node_modules/.bin/zzz`.\n */\nclass PrismaScripts {\n deploy(_: Project): string {\n return 'PRISMA migrate deploy';\n }\n\n deployForce(project: Project, backupPath: string): string {\n const dirName = project.packageJson.dependencies?.['blitz'] ? 'db' : 'prisma';\n // Don't skip \"migrate deploy\" because restored database may be older than the current schema.\n return `rm -Rf ${dirName}/mount/prod.sqlite3*; PRISMA migrate reset --force && rm -Rf ${dirName}/mount/prod.sqlite3*\n && litestream restore -o ${dirName}/mount/prod.sqlite3 ${backupPath} && ALLOW_TO_SKIP_SEED=0 PRISMA migrate deploy`;\n }\n\n litestream(_: Project): string {\n return `${runtimeWithArgs} -e '\nconst { PrismaClient } = require(\"@prisma/client\");\nnew PrismaClient().$queryRaw\\`PRAGMA journal_mode = WAL;\\`\n .catch((error) => { console.log(\"Failed due to:\", error); process.exit(1); });\n'`;\n }\n\n migrate(project: Project): string {\n return `PRISMA migrate deploy && PRISMA generate && ${this.seed(project)}`;\n }\n\n migrateDev(_: Project): string {\n return `PRISMA migrate dev`;\n }\n\n reset(project: Project): string {\n // cf. https://www.prisma.io/docs/guides/database/seed-database#integrated-seeding-with-prisma-migrate\n // Blitz does not trigger seed automatically, so we need to run it manually.\n return `PRISMA migrate reset --force --skip-seed && ${this.seed(project)}`;\n // I'm not sure why we need to remove all sqlite files, so I commented out the following line.\n // return `true $(rm -Rf db/**/*.sqlite* 2> /dev/null) && true $(rm -Rf prisma/**/*.sqlite* 2> /dev/null) && PRISMA migrate reset --force --skip-seed && ${this.seed()}`;\n }\n\n restore(project: Project, backupPath: string, outputPath: string): string {\n const dirName = project.packageJson.dependencies?.['blitz'] ? 'db' : 'prisma';\n return `rm -Rf ${dirName}/restored.sqlite3; GOOGLE_APPLICATION_CREDENTIALS=gcp-sa-key.json litestream restore -o ${outputPath} ${backupPath}`;\n }\n\n seed(project: Project, scriptPath?: string): string {\n if (project.packageJson.dependencies?.['blitz'])\n return `YARN blitz db seed${scriptPath ? ` -f ${scriptPath}` : ''}`;\n if (scriptPath) return 'YARN build-ts run prisma/seeds.ts';\n if ((project.packageJson.prisma as Record<string, string> | undefined)?.['seed']) return `YARN prisma db seed`;\n return `if [ -e \"prisma/seeds.ts\" ]; then YARN build-ts run prisma/seeds.ts; fi`;\n }\n\n studio(_: Project, dbUrlOrPath?: string): string {\n let prefix = '';\n if (dbUrlOrPath) {\n try {\n new URL(dbUrlOrPath);\n prefix = `DATABASE_URL=${dbUrlOrPath} `;\n } catch {\n const absolutePath = path.resolve(dbUrlOrPath);\n console.info(dbUrlOrPath, absolutePath);\n prefix = `DATABASE_URL=file://${absolutePath} `;\n }\n }\n return `${prefix}PRISMA studio`;\n }\n}\n\nexport const prismaScripts = new PrismaScripts();\n","import { spawnSync } from 'node:child_process';\n\nimport killPortProcess from 'kill-port';\n\nimport type { Project } from '../project.js';\nimport { printFinishedAndExitIfNeeded, printStart } from '../scripts/run.js';\n\nconst killed = new Set<number | string>();\n\nexport async function killPortProcessImmediatelyAndOnExit(port: number): Promise<void> {\n await killPortProcessHandlingErrors(port);\n const killFunc = async (): Promise<void> => {\n if (killed.has(port)) return;\n\n killed.add(port);\n await killPortProcessHandlingErrors(port);\n };\n for (const signal of ['beforeExit', 'SIGINT', 'SIGTERM', 'SIGQUIT']) {\n process.on(signal, killFunc);\n }\n}\n\nasync function killPortProcessHandlingErrors(port: number): Promise<void> {\n try {\n await killPortProcess(port);\n } catch {\n // do nothing\n }\n}\n\nexport function spawnSyncOnExit(script: string, project: Project): void {\n const killFunc = async (): Promise<void> => {\n if (killed.has(script)) return;\n\n killed.add(script);\n printStart(script, project);\n const { status } = spawnSync(script, { cwd: project.dirPath, shell: true, stdio: 'inherit' });\n printFinishedAndExitIfNeeded(script, status, {});\n };\n for (const signal of ['beforeExit', 'SIGINT', 'SIGTERM', 'SIGQUIT']) {\n process.on(signal, killFunc);\n }\n}\n","import { PromisePool } from 'minimal-promise-pool';\n\nexport const promisePool = new PromisePool();\n","import { spawnAsync } from '@willbooster/shared-lib-node/src';\nimport chalk from 'chalk';\nimport type { ArgumentsCamelCase, InferredOptionTypes } from 'yargs';\n\nimport type { Project } from '../project.js';\nimport type { sharedOptionsBuilder } from '../sharedOptionsBuilder.js';\nimport { killPortProcessImmediatelyAndOnExit } from '../utils/process.js';\nimport { promisePool } from '../utils/promisePool.js';\nimport { isRunningOnBun, packageManagerWithArgs } from '../utils/runtime.js';\n\ninterface Options {\n exitIfFailed?: boolean;\n timeout?: number;\n}\n\nconst defaultOptions: Options = {\n exitIfFailed: true,\n};\n\nexport async function runWithSpawn(\n script: string,\n project: Project,\n argv: Partial<ArgumentsCamelCase<InferredOptionTypes<typeof sharedOptionsBuilder>>>,\n opts: Options = defaultOptions\n): Promise<number> {\n const [printableScript, runnableScript] = normalizeScript(script, project);\n printStart(printableScript, project);\n if (argv.verbose) {\n printStart(runnableScript, project, 'Start (raw)', true);\n }\n if (argv.dryRun) {\n printFinishedAndExitIfNeeded(printableScript, 0, opts);\n return 0;\n }\n\n const port = runnableScript.match(/http:\\/\\/127.0.0.1:(\\d+)/)?.[1];\n if (runnableScript.includes('wait-on') && port && !runnableScript.includes('docker run')) {\n await killPortProcessImmediatelyAndOnExit(Number(port));\n }\n const ret = await spawnAsync(runnableScript, undefined, {\n cwd: project.dirPath,\n env: project.env,\n shell: true,\n stdio: 'inherit',\n timeout: opts?.timeout,\n killOnExit: true,\n verbose: argv.verbose,\n });\n printFinishedAndExitIfNeeded(printableScript, ret.status, opts);\n return ret.status ?? 1;\n}\n\nexport function runWithSpawnInParallel(\n script: string,\n project: Project,\n argv: Partial<ArgumentsCamelCase<InferredOptionTypes<typeof sharedOptionsBuilder>>>,\n opts: Options = defaultOptions\n): Promise<void> {\n return promisePool.run(async () => {\n const [printableScript, runnableScript] = normalizeScript(script, project);\n printStart(printableScript, project, 'Start (parallel)', true);\n if (argv.dryRun) {\n printStart(printableScript, project, 'Started (log)');\n if (argv.verbose) {\n printStart(runnableScript, project, 'Started (raw)', true);\n }\n printFinishedAndExitIfNeeded(printableScript, 0, opts);\n return;\n }\n\n const ret = await spawnAsync(runnableScript, undefined, {\n cwd: project.dirPath,\n env: project.env,\n shell: true,\n stdio: 'pipe',\n timeout: opts?.timeout,\n mergeOutAndError: true,\n killOnExit: true,\n verbose: argv.verbose,\n });\n printStart(printableScript, project, 'Started (log)');\n if (argv.verbose) {\n printStart(runnableScript, project, 'Started (raw)', true);\n }\n const out = ret.stdout.trim();\n if (out) console.info(out);\n printFinishedAndExitIfNeeded(printableScript, ret.status, opts);\n });\n}\n\nfunction normalizeScript(script: string, project: Project): [string, string] {\n const newScript = script\n .replaceAll('\\n', '')\n .replaceAll(/\\s\\s+/g, ' ')\n .replaceAll('PRISMA ', project.packageJson.dependencies?.['blitz'] ? 'YARN blitz prisma ' : 'YARN prisma ')\n .replaceAll('BUN ', project.isBunAvailable ? 'bun --bun ' : 'YARN ')\n .trim();\n return [\n newScript.replaceAll('YARN ', `${packageManagerWithArgs} `),\n newScript.replaceAll('YARN ', !isRunningOnBun && project.binExists ? '' : `${packageManagerWithArgs} `),\n ];\n}\n\nexport function printStart(normalizedScript: string, project: Project, prefix = 'Start', weak = false): void {\n console.info(\n '\\n' +\n (weak ? chalk.gray : chalk.cyan)(chalk.bold(`${prefix}:`), normalizedScript) +\n chalk.gray(` at ${project.dirPath}`)\n );\n}\n\nexport function printFinishedAndExitIfNeeded(\n script: string,\n exitCode: number | null,\n opts: Omit<Options, 'timeout'>\n): void {\n if (exitCode === 0) {\n console.info(chalk.green(chalk.bold('Finished:'), script));\n } else {\n console.info(chalk.red(chalk.bold(`Failed (exit code ${exitCode}): `), script));\n if (opts.exitIfFailed !== false) {\n process.exit(exitCode ?? 1);\n }\n }\n}\n","import type { EnvReaderOptions } from '@willbooster/shared-lib-node/src';\nimport chalk from 'chalk';\nimport type { CommandModule, InferredOptionTypes } from 'yargs';\n\nimport type { Project } from '../project.js';\nimport { findAllProjects } from '../project.js';\nimport { prismaScripts } from '../scripts/prismaScripts.js';\nimport { runWithSpawn } from '../scripts/run.js';\n\nimport { prepareForRunningCommand } from './commandUtils.js';\n\nconst builder = {} as const;\n\nexport const prismaCommand: CommandModule = {\n command: 'prisma',\n describe: 'Run prisma commands',\n builder: (yargs) => {\n return yargs\n .command(deployCommand)\n .command(deployForceCommand)\n .command(litestreamCommand)\n .command(migrateCommand)\n .command(migrateDevCommand)\n .command(resetCommand)\n .command(restoreCommand)\n .command(seedCommand)\n .command(studioCommand)\n .command(defaultCommand)\n .demandCommand();\n },\n handler() {\n // Do nothing\n },\n};\n\nconst deployCommand: CommandModule<unknown, InferredOptionTypes<typeof builder>> = {\n command: 'deploy',\n describe: 'Apply migration to DB without initializing it',\n builder,\n async handler(argv) {\n const allProjects = await findPrismaProjects(argv);\n for (const project of prepareForRunningCommand('prisma deploy', allProjects)) {\n await runWithSpawn(prismaScripts.deploy(project), project, argv);\n }\n },\n};\n\nconst deployForceBuilder = {\n ...builder,\n 'backup-path': {\n description: 'Whether to skip actual command execution',\n demandOption: true,\n type: 'string',\n alias: 'b',\n },\n} as const;\n\nconst deployForceCommand: CommandModule<unknown, InferredOptionTypes<typeof deployForceBuilder>> = {\n command: 'deploy-force <backup-path>',\n describe: \"Force to apply migration to DB utilizing Litestream's backup without initializing it\",\n builder: deployForceBuilder,\n async handler(argv) {\n const allProjects = await findPrismaProjects(argv);\n for (const project of prepareForRunningCommand('prisma deploy-force', allProjects)) {\n await runWithSpawn(prismaScripts.deployForce(project, argv.backupPath), project, argv);\n }\n },\n};\n\nconst litestreamCommand: CommandModule<unknown, InferredOptionTypes<typeof builder>> = {\n command: 'litestream',\n describe: 'Setup DB for Litestream',\n builder,\n async handler(argv) {\n const allProjects = await findPrismaProjects(argv);\n for (const project of prepareForRunningCommand('prisma litestream', allProjects)) {\n await runWithSpawn(prismaScripts.litestream(project), project, argv);\n }\n },\n};\n\nconst migrateCommand: CommandModule<unknown, InferredOptionTypes<typeof builder>> = {\n command: 'migrate',\n describe: 'Apply migration to DB with initializing it',\n builder,\n async handler(argv) {\n const allProjects = await findPrismaProjects(argv);\n for (const project of prepareForRunningCommand('prisma migrate', allProjects)) {\n await runWithSpawn(prismaScripts.migrate(project), project, argv);\n }\n },\n};\n\nconst migrateDevCommand: CommandModule<unknown, InferredOptionTypes<typeof builder>> = {\n command: 'migrate-dev',\n describe: 'Create a migration file',\n builder,\n async handler(argv) {\n const allProjects = await findPrismaProjects(argv);\n for (const project of prepareForRunningCommand('prisma migrate-dev', allProjects)) {\n await runWithSpawn(prismaScripts.migrateDev(project), project, argv);\n }\n },\n};\n\nconst resetCommand: CommandModule<unknown, InferredOptionTypes<typeof builder>> = {\n command: 'reset',\n describe: 'Reset DB',\n builder,\n async handler(argv) {\n const allProjects = await findPrismaProjects(argv);\n for (const project of prepareForRunningCommand('prisma reset', allProjects)) {\n await runWithSpawn(prismaScripts.reset(project), project, argv);\n }\n },\n};\n\nconst restoreBuilder = {\n ...deployForceBuilder,\n output: {\n description: 'Output path of the restored database. Defaults to \"<db|prisma>/restored.sqlite3\".',\n type: 'string',\n },\n} as const;\n\nconst restoreCommand: CommandModule<unknown, InferredOptionTypes<typeof restoreBuilder>> = {\n command: 'restore <backup-path>',\n describe: \"Restore DB from Litestream's backup\",\n builder: restoreBuilder,\n async handler(argv) {\n const allProjects = await findPrismaProjects(argv);\n for (const project of prepareForRunningCommand('prisma restore', allProjects)) {\n const output =\n argv.output ||\n (project.packageJson.dependencies?.['blitz'] ? 'db/restored.sqlite3' : 'prisma/restored.sqlite3');\n await runWithSpawn(prismaScripts.restore(project, argv.backupPath, output), project, argv);\n }\n },\n};\n\nconst seedBuilder = {\n ...builder,\n file: {\n alias: 'f',\n description: 'Path of the seed script.',\n type: 'string',\n },\n} as const;\n\nconst seedCommand: CommandModule<unknown, InferredOptionTypes<typeof seedBuilder>> = {\n command: 'seed',\n describe: 'Populate DB with seed data',\n builder: seedBuilder,\n async handler(argv) {\n const allProjects = await findPrismaProjects(argv);\n for (const project of prepareForRunningCommand('prisma seed', allProjects)) {\n await runWithSpawn(prismaScripts.seed(project, argv.file), project, argv);\n }\n },\n};\n\nconst studioBuilder = {\n ...builder,\n 'db-url-or-path': {\n description: 'URL or path to the database',\n type: 'string',\n },\n restored: {\n description: 'Whether to open the default restored database (<db|prisma>/restored.sqlite3).',\n type: 'boolean',\n },\n} as const;\n\nconst studioCommand: CommandModule<unknown, InferredOptionTypes<typeof studioBuilder>> = {\n command: 'studio [db-url-or-path]',\n describe: 'Open Prisma Studio',\n builder: studioBuilder,\n async handler(argv) {\n if (argv.restored && argv.dbUrlOrPath) {\n throw new Error('You cannot specify both --restored and --db-url-or-path.');\n }\n\n const allProjects = await findPrismaProjects(argv);\n for (const project of prepareForRunningCommand('prisma studio', allProjects)) {\n const dbUrlOrPath = argv.restored\n ? project.packageJson.dependencies?.['blitz']\n ? 'db/restored.sqlite3'\n : 'prisma/restored.sqlite3'\n : argv.dbUrlOrPath?.toString();\n await runWithSpawn(prismaScripts.studio(project, dbUrlOrPath), project, argv);\n }\n },\n};\n\nconst defaultCommandBuilder = { args: { type: 'array' } } as const;\n\nconst defaultCommand: CommandModule<unknown, InferredOptionTypes<typeof defaultCommandBuilder>> = {\n command: '$0 [args..]',\n describe: 'Pass the command and arguments to prisma as is',\n builder: defaultCommandBuilder,\n async handler(argv) {\n const allProjects = await findPrismaProjects(argv);\n const script = `${argv.args?.join(' ') ?? ''}`.trimEnd();\n for (const project of prepareForRunningCommand(`prisma ${script}`, allProjects)) {\n await runWithSpawn(`PRISMA ${script}`, project, argv);\n }\n },\n};\n\nasync function findPrismaProjects(argv: EnvReaderOptions): Promise<Project[]> {\n const projects = await findAllProjects(argv);\n if (!projects) {\n console.error(chalk.red('No project found.'));\n process.exit(1);\n }\n\n const filtered = projects.all.filter(\n (project) => project.packageJson.dependencies?.['prisma'] || project.packageJson.devDependencies?.['prisma']\n );\n if (filtered.length === 0) {\n console.error(chalk.red('No prisma project found.'));\n process.exit(1);\n }\n return filtered;\n}\n","import chalk from 'chalk';\nimport type { CommandModule, InferredOptionTypes } from 'yargs';\n\nimport { findSelfProject } from '../project.js';\nimport { runWithSpawn } from '../scripts/run.js';\nimport type { sharedOptionsBuilder } from '../sharedOptionsBuilder.js';\n\nconst builder = {\n retry: {\n description: 'A maximum retry count',\n type: 'number',\n alias: 'r',\n default: 3,\n },\n} as const;\n\nconst argumentsBuilder = {\n command: {\n description: 'A command to retry',\n type: 'string',\n },\n args: {\n description: 'Arguments for the command',\n type: 'array',\n },\n} as const;\n\nexport const retryCommand: CommandModule<\n unknown,\n InferredOptionTypes<typeof builder & typeof sharedOptionsBuilder & typeof argumentsBuilder>\n> = {\n command: 'retry [command] [args...]',\n describe: 'Retry the given command until it succeeds',\n builder,\n async handler(argv) {\n const project = findSelfProject(argv);\n if (!project) {\n console.error(chalk.red('No project found.'));\n process.exit(1);\n }\n\n const cmdAndArgs = [argv.command, ...(argv.args ?? []), ...argv._.slice(1)].filter(Boolean);\n let lastStatus = 0;\n for (let i = 0; i < argv.retry; i++) {\n if (i > 0) {\n console.info(`\\n${chalk.yellow(`#${i} Retrying: ${cmdAndArgs.join(' ')}`)}`);\n }\n // TODO: should we add single quotes around each argument?\n lastStatus = await runWithSpawn(cmdAndArgs.join(' '), project, argv, {\n exitIfFailed: false,\n });\n if (lastStatus === 0) return;\n }\n process.exit(lastStatus);\n },\n};\n","import child_process from 'node:child_process';\nimport fs from 'node:fs/promises';\nimport os from 'node:os';\n\nimport chalk from 'chalk';\nimport type { ArgumentsCamelCase, CommandModule, InferredOptionTypes } from 'yargs';\n\nimport { findAllProjects } from '../project.js';\nimport { runWithSpawn, runWithSpawnInParallel } from '../scripts/run.js';\nimport { promisePool } from '../utils/promisePool.js';\n\nimport { prepareForRunningCommand } from './commandUtils.js';\n\nconst builder = {} as const;\n\nexport const setupCommand: CommandModule<unknown, InferredOptionTypes<typeof builder>> = {\n command: 'setup',\n describe: 'Setup development environment. .env files are ignored.',\n builder,\n async handler(argv) {\n await setup(argv);\n },\n};\n\n// Test code requires Partial<...>\nexport async function setup(\n argv: Partial<ArgumentsCamelCase<InferredOptionTypes<typeof builder>>>,\n projectPathForTesting?: string\n): Promise<void> {\n const projects = await findAllProjects(argv, false, projectPathForTesting);\n if (!projects) {\n console.error(chalk.red('No project found.'));\n process.exit(1);\n }\n\n for (const project of prepareForRunningCommand('setup', projects.all)) {\n const dirents = await fs.readdir(project.dirPath, { withFileTypes: true });\n if (project === projects.root) {\n if (os.platform() === 'darwin') {\n const packages = ['pstree'];\n if (project.hasDockerfile) {\n packages.push('expect');\n }\n await runWithSpawnInParallel(`brew install ${packages.join(' ')}`, project, argv);\n }\n\n if (dirents.some((d) => d.isFile() && d.name.includes('-version'))) {\n await runWithSpawn('asdf install', project, argv);\n }\n }\n\n if (dirents.some((d) => d.isFile() && d.name === 'pyproject.toml')) {\n await runWithSpawnInParallel('poetry config virtualenvs.in-project true', project, argv);\n await runWithSpawnInParallel('poetry config virtualenvs.prefer-active-python true', project, argv);\n const [, version] = child_process.execSync('asdf current python').toString().trim().split(/\\s+/);\n await runWithSpawnInParallel(`poetry env use ${version}`, project, argv);\n await promisePool.promiseAll();\n await runWithSpawn('poetry run pip install --upgrade pip', project, argv);\n await runWithSpawn('poetry install --ansi', project, argv);\n }\n\n const deps = project.packageJson.dependencies ?? {};\n const devDeps = project.packageJson.devDependencies || {};\n const scripts = project.packageJson.scripts ?? {};\n const newDeps: string[] = [];\n const newDevDeps: string[] = [];\n if (deps['blitz'] || deps['next']) {\n newDeps.push('pm2');\n newDevDeps.push('concurrently', 'open-cli', 'vitest', 'wait-on');\n } else if (devDeps['@remix-run/dev']) {\n newDeps.push('pm2');\n newDevDeps.push('concurrently', 'open-cli', 'vitest', 'wait-on');\n } else if (deps['express'] || deps['fastify']) {\n newDeps.push('pm2');\n newDevDeps.push('concurrently', 'vitest', 'wait-on');\n }\n if (newDeps.length > 0) {\n await runWithSpawn(`yarn add ${newDeps.join(' ')}`, project, argv);\n }\n if (newDevDeps.length > 0) {\n await runWithSpawn(`yarn add -D ${newDevDeps.join(' ')}`, project, argv);\n }\n if (scripts['gen-code']) {\n await runWithSpawn('yarn gen-code', project, argv);\n }\n }\n}\n","import path from 'node:path';\n\nimport type { Project } from '../project.js';\nimport { spawnSyncOnExit } from '../utils/process.js';\n\n/**\n * A collection of scripts for executing Docker commands.\n * Note that `YARN zzz` is replaced with `yarn zzz` or `node_modules/.bin/zzz`.\n */\nclass DockerScripts {\n buildDevImage(project: Project, version: string): string {\n // e.g. coding-booster uses `\"docker/build/prepare\": \"touch drill-users.csv\",`\n const prefix = project.dockerPackageJson.scripts?.['docker/build/prepare']\n ? 'yarn run docker/build/prepare && '\n : '';\n return `cd ${path.dirname(project.findFile('Dockerfile'))}\n && ${prefix}YARN wb optimizeForDockerBuild --outside\n && YARN wb retry -- docker build -t ${project.dockerImageName}\n --build-arg ARCH=$([ $(uname -m) = 'arm64' ] && echo arm64 || echo amd64)\n --build-arg WB_ENV=${project.env.WB_ENV}\n --build-arg WB_VERSION=${version} .`;\n }\n stopAndStart(project: Project, unbuffer = false, additionalOptions = '', additionalArgs = ''): string {\n return `${this.stop(project)} && ${unbuffer ? 'unbuffer ' : ''}${this.start(\n project,\n additionalOptions,\n additionalArgs\n )}`;\n }\n start(project: Project, additionalOptions = '', additionalArgs = ''): string {\n spawnSyncOnExit(this.stop(project), project);\n return `docker run --rm -it -p 8080:8080 --name ${project.dockerImageName} ${additionalOptions} ${project.dockerImageName} ${additionalArgs}`;\n }\n\n stop(project: Project): string {\n return `true $(docker rm -f $(docker container ls -q -f name=${project.dockerImageName}) 2> /dev/null)`;\n }\n\n stopAll(): string {\n return `true $(docker rm -f $(docker ps -q) 2> /dev/null)`;\n }\n}\n\nexport const dockerScripts = new DockerScripts();\n","import type { TestArgv } from '../../commands/test.js';\nimport type { Project } from '../../project.js';\nimport type { ScriptArgv } from '../builder.js';\nimport { dockerScripts } from '../dockerScripts.js';\n\nexport interface TestE2EDevOptions {\n // '--e2e generate' calls 'codegen http://localhost:8080'\n playwrightArgs?: string;\n startCommand?: string;\n}\n\nexport interface TestE2EOptions extends TestE2EDevOptions {\n prismaDirectory?: string;\n}\n\n/**\n * A collection of scripts for executing an app.\n * Note that YARN zzz` is replaced with `yarn zzz` or `node_modules/.bin/zzz`.\n */\nexport abstract class BaseExecutionScripts {\n protected constructor(private readonly defaultPort = Number(process.env.PORT) || 3000) {}\n\n buildDocker(project: Project, version = 'development'): string {\n return dockerScripts.buildDevImage(project, version);\n }\n\n abstract start(project: Project, argv: ScriptArgv): string;\n\n abstract startProduction(project: Project, argv: ScriptArgv, port: number): string;\n\n startDocker(project: Project, argv: ScriptArgv): string {\n return `${this.buildDocker(project)}\n && YARN concurrently --raw --kill-others-on-fail\n \"${dockerScripts.stopAndStart(\n project,\n false,\n argv.normalizedDockerOptionsText ?? '',\n argv.normalizedArgsText ?? ''\n )}\"\n \"${this.waitAndOpenApp(project, argv, 8080)}\"`;\n }\n\n testE2E(\n project: Project,\n argv: TestArgv,\n { playwrightArgs = 'test tests/e2e', prismaDirectory, startCommand }: TestE2EOptions\n ): string {\n // Basically, `playwright` (not `yarn playwright`) should work,\n // but it doesn't work on a project depending on `artillery-engine-playwright`.\n // So we use `yarn playwright` instead of `playwright` here.\n const env = project.env.WB_ENV;\n return `WB_ENV=${env} NEXT_PUBLIC_WB_ENV=${env} APP_ENV=${env} PORT=8080 YARN concurrently --kill-others --raw --success first\n \"rm -Rf ${prismaDirectory}/mount && ${startCommand} && exit 1\"\n \"concurrently --kill-others-on-fail --raw 'wait-on -t 600000 -i 2000 http://127.0.0.1:8080' 'BUN playwright install --with-deps'\n && BUN playwright ${playwrightArgs.replace('tests/e2e', argv.target || 'tests/e2e')}\"`;\n }\n\n testE2EDev(\n project: Project,\n argv: TestArgv,\n { playwrightArgs = 'test tests/e2e', startCommand }: TestE2EDevOptions\n ): string {\n const env = project.env.WB_ENV;\n return `WB_ENV=${env} NEXT_PUBLIC_WB_ENV=${env} APP_ENV=${env} PORT=8080 YARN concurrently --kill-others --raw --success first\n \"${startCommand} && exit 1\"\n \"concurrently --kill-others-on-fail --raw 'wait-on -t 600000 -i 2000 http://127.0.0.1:8080' 'BUN playwright install --with-deps'\n && BUN playwright ${playwrightArgs.replace('tests/e2e', argv.target || 'tests/e2e')}\"`;\n }\n\n abstract testStart(project: Project, argv: ScriptArgv): string;\n\n testUnit(project: Project, argv: TestArgv): string {\n // Since this command is referred from other commands, we have to use \"vitest run\" (non-interactive mode).\n return `WB_ENV=${project.env.WB_ENV} YARN vitest run ${argv.target || 'tests/unit'} --color --passWithNoTests --allowOnly`;\n }\n\n protected waitApp(project: Project, argv: ScriptArgv, port = this.defaultPort): string {\n return `wait-on -t 10000 http://127.0.0.1:${port} 2> /dev/null\n || wait-on -t 10000 -i 500 http://127.0.0.1:${port} 2> /dev/null\n || wait-on -t 10000 -i 1000 http://127.0.0.1:${port} 2> /dev/null\n || wait-on -t 10000 -i 2000 http://127.0.0.1:${port} 2> /dev/null\n || wait-on -t 20000 -i 4000 http://127.0.0.1:${port} 2> /dev/null\n || wait-on -t 60000 -i 5000 http://127.0.0.1:${port}`;\n }\n\n protected waitAndOpenApp(project: Project, argv: ScriptArgv, port = this.defaultPort): string {\n return `${this.waitApp(\n project,\n argv,\n port\n )} || wait-on http://127.0.0.1:${port} && open-cli \"http://\\${HOST:-localhost}:${port}\"`;\n }\n}\n","import type { TestArgv } from '../../commands/test.js';\nimport type { Project } from '../../project.js';\nimport type { ScriptArgv } from '../builder.js';\nimport { prismaScripts } from '../prismaScripts.js';\n\nimport type { TestE2EDevOptions, TestE2EOptions } from './baseExecutionScripts.js';\nimport { BaseExecutionScripts } from './baseExecutionScripts.js';\n\n/**\n * A collection of scripts for executing Blitz.js commands.\n * Note that `YARN zzz` is replaced with `yarn zzz` or `node_modules/.bin/zzz`.\n */\nclass BlitzScripts extends BaseExecutionScripts {\n constructor() {\n super();\n }\n\n override start(project: Project, argv: ScriptArgv): string {\n const appEnv = project.env.WB_ENV ? `APP_ENV=${project.env.WB_ENV} ` : '';\n return `${appEnv}YARN concurrently --raw --kill-others-on-fail\n \"blitz dev ${argv.normalizedArgsText ?? ''}\"\n \"${this.waitAndOpenApp(project, argv)}\"`;\n }\n\n override startProduction(project: Project, argv: ScriptArgv, port: number): string {\n const appEnv = project.env.WB_ENV ? `APP_ENV=${project.env.WB_ENV} ` : '';\n return `${appEnv}NODE_ENV=production YARN concurrently --raw --kill-others-on-fail\n \"${prismaScripts.reset(project)} && ${project.buildCommand} && PORT=${port} pm2-runtime start ${project.findFile(\n 'ecosystem.config.cjs'\n )} ${argv.normalizedArgsText ?? ''}\"\n \"${this.waitAndOpenApp(project, argv, port)}\"`;\n }\n\n override testE2E(\n project: Project,\n argv: TestArgv,\n {\n playwrightArgs,\n startCommand = `${prismaScripts.reset(project)} && ${\n project.buildCommand\n } && pm2-runtime start ${project.findFile('ecosystem.config.cjs')}`,\n }: TestE2EOptions\n ): string {\n return super.testE2E(project, argv, {\n playwrightArgs,\n prismaDirectory: 'db',\n startCommand,\n });\n }\n\n override testE2EDev(\n project: Project,\n argv: TestArgv,\n { playwrightArgs, startCommand = 'blitz dev -p 8080' }: TestE2EDevOptions\n ): string {\n return super.testE2EDev(project, argv, { playwrightArgs, startCommand });\n }\n\n override testStart(project: Project, argv: ScriptArgv): string {\n return `YARN concurrently --kill-others --raw --success first \"blitz dev\" \"${this.waitApp(project, argv)}\"`;\n }\n}\n\nexport const blitzScripts = new BlitzScripts();\n","import type { TestArgv } from '../../commands/test.js';\nimport type { Project } from '../../project.js';\nimport { runtimeWithArgs } from '../../utils/runtime.js';\nimport type { ScriptArgv } from '../builder.js';\nimport { dockerScripts } from '../dockerScripts.js';\n\nimport type { TestE2EDevOptions, TestE2EOptions } from './baseExecutionScripts.js';\nimport { BaseExecutionScripts } from './baseExecutionScripts.js';\n\n/**\n * A collection of scripts for executing an app that utilizes an HTTP server like express.\n * Note that `YARN zzz` is replaced with `yarn zzz` or `node_modules/.bin/zzz`.\n */\nclass HttpServerScripts extends BaseExecutionScripts {\n constructor() {\n super();\n }\n\n override start(project: Project, argv: ScriptArgv): string {\n return `YARN build-ts run src/index.ts ${argv.watch ? '--watch' : ''} -- ${argv.normalizedArgsText ?? ''}`;\n }\n\n override startDocker(project: Project, argv: ScriptArgv): string {\n return `${this.buildDocker(project)} && ${dockerScripts.stopAndStart(\n project,\n false,\n argv.normalizedDockerOptionsText ?? '',\n argv.normalizedArgsText ?? ''\n )}`;\n }\n\n override startProduction(project: Project, argv: ScriptArgv, port = 8080): string {\n return `NODE_ENV=production ${\n project.buildCommand\n } && NODE_ENV=production PORT=\\${PORT:-${port}} ${runtimeWithArgs} dist/index.js ${argv.normalizedArgsText ?? ''}`;\n }\n\n override testE2E(\n project: Project,\n argv: TestArgv,\n {\n startCommand = `if [ -e \"prisma\" ]; then prisma migrate reset --force --skip-generate; fi && (${this.startProduction(\n project,\n argv\n )})`,\n }: TestE2EOptions\n ): string {\n return `NODE_ENV=production WB_ENV=${project.env.WB_ENV} PORT=8080 YARN concurrently --kill-others --raw --success first\n \"${startCommand} && exit 1\"\n \"wait-on -t 600000 -i 2000 http://127.0.0.1:8080 && vitest run ${argv.target || 'tests/e2e'} --color --passWithNoTests --allowOnly\"`;\n }\n\n override testE2EDev(project: Project, argv: TestArgv, { startCommand }: TestE2EDevOptions): string {\n return `NODE_ENV=production WB_ENV=${\n project.env.WB_ENV\n } PORT=8080 YARN concurrently --kill-others --raw --success first\n \"${startCommand || this.start(project, argv)} && exit 1\"\n \"wait-on -t 600000 -i 2000 http://127.0.0.1:8080 && vitest run ${argv.target || 'tests/e2e'} --color --passWithNoTests --allowOnly\"`;\n }\n\n override testStart(project: Project, argv: ScriptArgv): string {\n return `YARN concurrently --kill-others --raw --success first \"${this.start(project, argv)}\" \"${this.waitApp(\n project,\n argv\n )}\"`;\n }\n}\n\nexport const httpServerScripts = new HttpServerScripts();\n","import type { TestArgv } from '../../commands/test.js';\nimport type { Project } from '../../project.js';\nimport type { ScriptArgv } from '../builder.js';\nimport { prismaScripts } from '../prismaScripts.js';\n\nimport type { TestE2EDevOptions, TestE2EOptions } from './baseExecutionScripts.js';\nimport { BaseExecutionScripts } from './baseExecutionScripts.js';\n\n/**\n * A collection of scripts for executing Next.js commands.\n * Note that `YARN zzz` is replaced with `yarn zzz` or `node_modules/.bin/zzz`.\n */\nclass NextScripts extends BaseExecutionScripts {\n constructor() {\n super();\n }\n\n override start(project: Project, argv: ScriptArgv): string {\n return `YARN concurrently --raw --kill-others-on-fail\n \"next dev --turbo ${argv.normalizedArgsText ?? ''}\"\n \"${this.waitAndOpenApp(project, argv)}\"`;\n }\n\n override startProduction(project: Project, argv: ScriptArgv, port: number): string {\n return `NODE_ENV=production YARN concurrently --raw --kill-others-on-fail\n \"${[\n ...(project.hasPrisma ? [prismaScripts.reset(project)] : []),\n project.buildCommand,\n `PORT=${port} pm2-runtime start ${project.findFile('ecosystem.config.cjs')} ${argv.normalizedArgsText ?? ''}`,\n ].join(' && ')}\"\n \"${this.waitAndOpenApp(project, argv, port)}\"`;\n }\n\n override testE2E(project: Project, argv: TestArgv, options: TestE2EOptions): string {\n return super.testE2E(project, argv, {\n playwrightArgs: options.playwrightArgs,\n prismaDirectory: 'db',\n startCommand:\n options.startCommand ??\n [\n ...(project.hasPrisma ? [prismaScripts.reset(project)] : []),\n project.buildCommand,\n `pm2-runtime start ${project.findFile('ecosystem.config.cjs')}`,\n ].join(' && '),\n });\n }\n\n override testE2EDev(\n project: Project,\n argv: TestArgv,\n { startCommand = 'next dev --turbo -p 8080' }: TestE2EDevOptions\n ): string {\n return super.testE2EDev(project, argv, { startCommand });\n }\n\n override testStart(project: Project, argv: ScriptArgv): string {\n return `YARN concurrently --kill-others --raw --success first \"next dev --turbo\" \"${this.waitApp(project, argv)}\"`;\n }\n}\n\nexport const nextScripts = new NextScripts();\n","import type { Project } from '../../project.js';\nimport { runtimeWithArgs } from '../../utils/runtime.js';\nimport type { ScriptArgv } from '../builder.js';\nimport { dockerScripts } from '../dockerScripts.js';\n\nimport { BaseExecutionScripts } from './baseExecutionScripts.js';\n\n/**\n * A collection of scripts for executing an app that utilizes an HTTP server like express.\n * Note that `YARN zzz` is replaced with `yarn zzz` or `node_modules/.bin/zzz`.\n */\nclass PlainAppScripts extends BaseExecutionScripts {\n constructor() {\n super();\n }\n\n override start(project: Project, argv: ScriptArgv): string {\n return `YARN build-ts run src/index.ts ${argv.watch ? '--watch' : ''} -- ${argv.normalizedArgsText ?? ''}`;\n }\n\n override startDocker(project: Project, argv: ScriptArgv): string {\n return `${this.buildDocker(project)} && ${dockerScripts.stopAndStart(\n project,\n false,\n argv.normalizedDockerOptionsText ?? '',\n argv.normalizedArgsText ?? ''\n )}`;\n }\n\n override startProduction(project: Project, argv: ScriptArgv): string {\n return `NODE_ENV=production ${project.buildCommand} && NODE_ENV=production ${runtimeWithArgs} dist/index.js ${\n argv.normalizedArgsText ?? ''\n }`;\n }\n\n override testE2E(): string {\n return `echo 'do nothing.'`;\n }\n\n override testE2EDev(): string {\n return `echo 'do nothing.'`;\n }\n\n override testStart(): string {\n return `echo 'do nothing.'`;\n }\n}\n\nexport const plainAppScripts = new PlainAppScripts();\n","import type { TestArgv } from '../../commands/test.js';\nimport type { Project } from '../../project.js';\nimport type { ScriptArgv } from '../builder.js';\nimport { prismaScripts } from '../prismaScripts.js';\n\nimport type { TestE2EDevOptions, TestE2EOptions } from './baseExecutionScripts.js';\nimport { BaseExecutionScripts } from './baseExecutionScripts.js';\n\n/**\n * A collection of scripts for executing Remix commands.\n * Note that `YARN zzz` is replaced with `yarn zzz` or `node_modules/.bin/zzz`.\n */\nclass RemixScripts extends BaseExecutionScripts {\n constructor() {\n super();\n }\n\n override start(project: Project, argv: ScriptArgv): string {\n return `YARN concurrently --raw --kill-others-on-fail\n \"remix dev ${argv.normalizedArgsText ?? ''}\"\n \"${this.waitAndOpenApp(project, argv)}\"`;\n }\n\n override startProduction(project: Project, argv: ScriptArgv, port: number): string {\n return `NODE_ENV=production YARN concurrently --raw --kill-others-on-fail\n \"${prismaScripts.reset(project)} && ${project.buildCommand} && PORT=${port} pm2-runtime start ${project.findFile(\n 'ecosystem.config.cjs'\n )} ${argv.normalizedArgsText ?? ''}\"\n \"${this.waitAndOpenApp(project, argv, port)}\"`;\n }\n\n override testE2E(\n project: Project,\n argv: TestArgv,\n {\n playwrightArgs,\n startCommand = `${prismaScripts.reset(project)} && ${\n project.buildCommand\n } && pm2-runtime start ${project.findFile('ecosystem.config.cjs')}`,\n }: TestE2EOptions\n ): string {\n return super.testE2E(project, argv, { playwrightArgs, prismaDirectory: 'prisma', startCommand });\n }\n\n override testE2EDev(\n project: Project,\n argv: TestArgv,\n { playwrightArgs, startCommand = 'remix dev' }: TestE2EDevOptions\n ): string {\n return super.testE2EDev(project, argv, { playwrightArgs, startCommand });\n }\n\n override testStart(project: Project, argv: ScriptArgv): string {\n return `YARN concurrently --kill-others --raw --success first \"remix dev\" \"${this.waitApp(project, argv)}\"`;\n }\n}\n\nexport const remixScripts = new RemixScripts();\n","import chalk from 'chalk';\nimport type { CommandModule, InferredOptionTypes } from 'yargs';\n\nimport { findAllProjects } from '../project.js';\nimport { normalizeArgs, scriptOptionsBuilder } from '../scripts/builder.js';\nimport type { BaseExecutionScripts } from '../scripts/execution/baseExecutionScripts.js';\nimport { blitzScripts } from '../scripts/execution/blitzScripts.js';\nimport { httpServerScripts } from '../scripts/execution/httpServerScripts.js';\nimport { nextScripts } from '../scripts/execution/nextScripts.js';\nimport { plainAppScripts } from '../scripts/execution/plainAppScripts.js';\nimport { remixScripts } from '../scripts/execution/remixScripts.js';\nimport { runWithSpawn } from '../scripts/run.js';\nimport type { sharedOptionsBuilder } from '../sharedOptionsBuilder.js';\n\nconst builder = {\n ...scriptOptionsBuilder,\n mode: {\n description: 'Start mode: dev[elopment] (default) | staging | docker | docker-debug',\n type: 'string',\n alias: 'm',\n },\n} as const;\n\nexport const startCommand: CommandModule<unknown, InferredOptionTypes<typeof builder & typeof sharedOptionsBuilder>> = {\n command: 'start [args..]',\n describe: 'Start app',\n builder,\n async handler(argv) {\n normalizeArgs(argv);\n\n const projects = await findAllProjects(argv);\n if (!projects) {\n console.error(chalk.red('No project found.'));\n process.exit(1);\n }\n\n for (const project of projects.all) {\n const deps = project.packageJson.dependencies || {};\n const devDeps = project.packageJson.devDependencies || {};\n let scripts: BaseExecutionScripts;\n if (deps['blitz']) {\n scripts = blitzScripts;\n } else if (deps['next']) {\n scripts = nextScripts;\n } else if (devDeps['@remix-run/dev']) {\n scripts = remixScripts;\n } else if (\n ((deps['express'] || deps['fastify']) && !deps['firebase-functions']) ||\n (project.hasDockerfile && /EXPOSE\\s+8080/.test(project.dockerfile))\n ) {\n scripts = httpServerScripts;\n } else if (deps['build-ts'] || devDeps['build-ts']) {\n scripts = plainAppScripts;\n } else {\n continue;\n }\n console.info(`Running \"start\" for ${project.name} ...`);\n\n switch (argv.mode || 'dev') {\n case 'dev':\n case 'development': {\n const prefix = configureEnvironmentVariables(deps, 'development');\n await runWithSpawn(`${prefix}${scripts.start(project, argv)}`, project, argv);\n break;\n }\n case 'staging': {\n const prefix = configureEnvironmentVariables(deps, 'staging');\n await runWithSpawn(`${prefix}${scripts.startProduction(project, argv, 8080)}`, project, argv);\n break;\n }\n case 'docker': {\n const prefix = configureEnvironmentVariables(deps, 'staging');\n await runWithSpawn(`${prefix}${scripts.startDocker(project, argv)}`, project, argv);\n break;\n }\n case 'docker-debug': {\n const prefix = configureEnvironmentVariables(deps, 'staging');\n argv.normalizedArgsText = `'/bin/bash'`;\n await runWithSpawn(`${prefix}${scripts.startDocker(project, argv)}`, project, argv);\n break;\n }\n default: {\n throw new Error(`Unknown start mode: ${argv.mode}`);\n }\n }\n }\n },\n};\n\nfunction configureEnvironmentVariables(deps: Partial<Record<string, string>>, wbEnv: string): string {\n process.env.WB_ENV ||= wbEnv;\n let prefix = `WB_ENV=${process.env.WB_ENV} `;\n if (deps['next']) {\n process.env.NEXT_PUBLIC_WB_ENV = process.env.WB_ENV;\n prefix += `NEXT_PUBLIC_WB_ENV=${process.env.WB_ENV} `;\n }\n return prefix;\n}\n","import type { ArgumentsCamelCase, InferredOptionTypes } from 'yargs';\n\nexport const scriptOptionsBuilder = {\n watch: {\n description: 'Whether to watch files',\n type: 'boolean',\n },\n args: {\n description: 'Arguments for core command',\n type: 'array',\n alias: 'a',\n default: [],\n },\n 'docker-options': {\n description: 'Arguments for \"docker run\"',\n type: 'array',\n default: [],\n },\n} as const;\n\nexport type ScriptArgv = Partial<ArgumentsCamelCase<InferredOptionTypes<typeof scriptOptionsBuilder>>> & {\n normalizedArgsText?: string;\n normalizedDockerOptionsText?: string;\n};\n\nexport function normalizeArgs(\n argv: Partial<ArgumentsCamelCase<InferredOptionTypes<typeof scriptOptionsBuilder>>>\n): void {\n (argv as ScriptArgv).normalizedArgsText = [...(argv.args ?? []), ...(argv._?.slice(1) ?? [])]\n .map((arg) => `'${arg}'`)\n .join(' ');\n (argv as ScriptArgv).normalizedDockerOptionsText = (argv.dockerOptions ?? []).map((arg) => `'${arg}'`).join(' ');\n}\n","import path from 'node:path';\n\nimport { existsAsync } from '@willbooster/shared-lib-node/src';\nimport chalk from 'chalk';\nimport type { ArgumentsCamelCase, CommandModule, InferredOptionTypes } from 'yargs';\n\nimport type { Project } from '../project.js';\nimport { findAllProjects } from '../project.js';\nimport type { scriptOptionsBuilder } from '../scripts/builder.js';\nimport { dockerScripts } from '../scripts/dockerScripts.js';\nimport type { BaseExecutionScripts } from '../scripts/execution/baseExecutionScripts.js';\nimport { blitzScripts } from '../scripts/execution/blitzScripts.js';\nimport { httpServerScripts } from '../scripts/execution/httpServerScripts.js';\nimport { nextScripts } from '../scripts/execution/nextScripts.js';\nimport { plainAppScripts } from '../scripts/execution/plainAppScripts.js';\nimport { remixScripts } from '../scripts/execution/remixScripts.js';\nimport { runWithSpawn, runWithSpawnInParallel } from '../scripts/run.js';\nimport type { sharedOptionsBuilder } from '../sharedOptionsBuilder.js';\nimport { promisePool } from '../utils/promisePool.js';\n\nconst builder = {\n ci: {\n description: 'Whether to run tests on CI',\n type: 'boolean',\n },\n e2e: {\n description:\n 'Whether to run e2e tests. You may pass mode as argument: none | headless (default) | headless-dev | headed | headed-dev | docker | docker-debug | debug | generate | trace',\n type: 'string',\n },\n start: {\n description: 'Whether to run start tests',\n type: 'boolean',\n },\n unit: {\n description: 'Whether to run unit tests',\n type: 'boolean',\n },\n 'unit-timeout': {\n description: 'Timeout for unit tests',\n type: 'number',\n },\n target: {\n description: 'Test target',\n type: 'string',\n alias: 't',\n },\n} as const;\n\nexport type TestArgv = Partial<ArgumentsCamelCase<InferredOptionTypes<typeof builder & typeof scriptOptionsBuilder>>>;\n\nexport const testCommand: CommandModule<unknown, InferredOptionTypes<typeof builder & typeof sharedOptionsBuilder>> = {\n command: 'test',\n describe: 'Test project',\n builder,\n async handler(argv) {\n await test(argv);\n },\n};\n\nexport async function test(\n argv: ArgumentsCamelCase<InferredOptionTypes<typeof builder & typeof sharedOptionsBuilder>>\n): Promise<void> {\n const projects = await findAllProjects(argv);\n if (!projects) {\n console.error(chalk.red('No project found.'));\n process.exit(1);\n }\n\n if (projects.all.length > 1) {\n // Disable interactive mode\n process.env.CI = '1';\n }\n process.env.FORCE_COLOR ||= '3';\n process.env.WB_ENV ||= 'test';\n\n for (const project of projects.all) {\n const deps = project.packageJson.dependencies || {};\n const devDeps = project.packageJson.devDependencies || {};\n let scripts: BaseExecutionScripts;\n if (deps['blitz']) {\n scripts = blitzScripts;\n } else if (deps['next']) {\n scripts = nextScripts;\n } else if (devDeps['@remix-run/dev']) {\n scripts = remixScripts;\n } else if ((deps['express'] || deps['fastify']) && !deps['firebase-functions']) {\n scripts = httpServerScripts;\n } else {\n scripts = plainAppScripts;\n }\n\n console.info(`Running \"test\" for ${project.name} ...`);\n\n const promises: Promise<unknown>[] = [];\n if (argv.ci) {\n const unitTestsExistPromise = existsAsync(path.join(project.dirPath, 'tests', 'unit'));\n const e2eTestsExistPromise = existsAsync(path.join(project.dirPath, 'tests', 'e2e'));\n\n await runWithSpawnInParallel(dockerScripts.stopAll(), project, argv);\n if (argv.unit !== false && (await unitTestsExistPromise)) {\n await runWithSpawnInParallel(scripts.testUnit(project, argv).replaceAll(' --allowOnly', ''), project, argv, {\n timeout: argv.unitTimeout,\n });\n }\n if (argv.start !== false) {\n await runWithSpawnInParallel(scripts.testStart(project, argv), project, argv);\n }\n await promisePool.promiseAll();\n // Check playwright installation because --ci includes --e2e implicitly\n if (argv.e2e !== 'none' && (await e2eTestsExistPromise)) {\n if (project.hasDockerfile) {\n await runWithSpawn(`${scripts.buildDocker(project, 'test')}`, project, argv);\n }\n const options = project.hasDockerfile\n ? {\n startCommand: dockerScripts.stopAndStart(project, true),\n }\n : {};\n process.exitCode = await runWithSpawn(\n scripts.testE2E(project, argv, options).replaceAll(' --allowOnly', ''),\n project,\n argv,\n {\n exitIfFailed: false,\n }\n );\n await runWithSpawn(dockerScripts.stop(project), project, argv);\n }\n continue;\n }\n\n if (argv.unit || (!argv.start && argv.e2e === undefined)) {\n promises.push(runWithSpawn(scripts.testUnit(project, argv), project, argv, { timeout: argv.unitTimeout }));\n }\n if (argv.start) {\n promises.push(runWithSpawn(scripts.testStart(project, argv), project, argv));\n }\n await Promise.all(promises);\n // Don't check playwright installation because --e2e is set explicitly\n switch (argv.e2e) {\n case undefined:\n case 'none': {\n continue;\n }\n case '':\n case 'headless': {\n await runWithSpawn(scripts.testE2E(project, argv, {}), project, argv);\n continue;\n }\n case 'headless-dev': {\n await runWithSpawn(scripts.testE2EDev(project, argv, {}), project, argv);\n continue;\n }\n case 'docker': {\n await testOnDocker(project, argv, scripts);\n continue;\n }\n case 'docker-debug': {\n await testOnDocker(project, argv, scripts, `test ${argv.target || 'tests/e2e'} --debug`);\n continue;\n }\n }\n if (deps['blitz'] || deps['next'] || devDeps['@remix-run/dev']) {\n switch (argv.e2e) {\n case 'headed': {\n await runWithSpawn(\n scripts.testE2E(project, argv, { playwrightArgs: `test ${argv.target || 'tests/e2e'} --headed` }),\n project,\n argv\n );\n continue;\n }\n case 'headed-dev': {\n await runWithSpawn(\n scripts.testE2EDev(project, argv, { playwrightArgs: `test ${argv.target || 'tests/e2e'} --headed` }),\n project,\n argv\n );\n continue;\n }\n case 'debug': {\n await runWithSpawn(\n scripts.testE2E(project, argv, { playwrightArgs: `test ${argv.target || 'tests/e2e'} --debug` }),\n project,\n argv\n );\n continue;\n }\n case 'generate': {\n await runWithSpawn(\n scripts.testE2E(project, argv, { playwrightArgs: 'codegen http://localhost:8080' }),\n project,\n argv\n );\n continue;\n }\n case 'trace': {\n await runWithSpawn(`BUN playwright show-trace`, project, argv);\n continue;\n }\n }\n }\n throw new Error(`Unknown e2e mode: ${argv.e2e}`);\n }\n}\n\nasync function testOnDocker(\n project: Project,\n argv: ArgumentsCamelCase<InferredOptionTypes<typeof builder>>,\n scripts: BaseExecutionScripts,\n playwrightArgs?: string\n): Promise<void> {\n await runWithSpawn(`${scripts.buildDocker(project, 'test')}`, project, argv);\n process.exitCode = await runWithSpawn(\n `${scripts.testE2E(project, argv, {\n playwrightArgs,\n startCommand: dockerScripts.stopAndStart(project, true),\n })}`,\n project,\n argv,\n { exitIfFailed: false }\n );\n await runWithSpawn(dockerScripts.stop(project), project, argv);\n}\n","import fs from 'node:fs/promises';\n\nimport chalk from 'chalk';\nimport type { PackageJson } from 'type-fest';\nimport type { CommandModule, InferredOptionTypes } from 'yargs';\n\nimport { findAllProjects } from '../project.js';\nimport { runWithSpawn } from '../scripts/run.js';\nimport type { sharedOptionsBuilder } from '../sharedOptionsBuilder.js';\n\nconst builder = {} as const;\n\nexport const typeCheckCommand: CommandModule<\n unknown,\n InferredOptionTypes<typeof builder & typeof sharedOptionsBuilder>\n> = {\n command: 'typecheck',\n describe: 'Run type checking. .env files are ignored.',\n builder,\n async handler(argv) {\n const projects = await findAllProjects(argv, false);\n if (!projects) {\n console.error(chalk.red('No project found.'));\n process.exit(1);\n }\n\n for (const project of projects.all) {\n const commands: string[] = [];\n if (!project.packageJson.workspaces) {\n if (project.packageJson.dependencies?.typescript || project.packageJson.devDependencies?.typescript) {\n commands.push('BUN tsc --noEmit --Pretty');\n }\n if (project.packageJson.devDependencies?.pyright) {\n commands.push('YARN pyright');\n }\n } else if (\n project.hasSourceCode &&\n (project.packageJson.dependencies?.typescript || project.packageJson.devDependencies?.typescript)\n ) {\n commands.push('BUN tsc --noEmit --Pretty');\n }\n if (commands.length === 0) continue;\n\n console.info(`Running \"typecheck\" for ${project.name} ...`);\n\n if (projects.all.length > 1) {\n // Disable interactive mode\n project.env['CI'] = '1';\n }\n project.env['FORCE_COLOR'] ||= '3';\n\n const exitCode = await runWithSpawn(commands.join(' && '), project, argv);\n if (exitCode !== 0) {\n const packageJson = JSON.parse(await fs.readFile('package.json', 'utf8')) as PackageJson;\n const deps = packageJson.dependencies || {};\n if (deps['blitz']) {\n console.info(chalk.yellow('Please try \"yarn gen-code\" if you face unknown type errors.'));\n }\n }\n }\n },\n};\n\nexport const tcCommand: CommandModule<unknown, InferredOptionTypes<typeof builder & typeof sharedOptionsBuilder>> = {\n ...typeCheckCommand,\n command: 'tc',\n};\n","import { yargsOptionsBuilderForEnv } from '@willbooster/shared-lib-node/src';\n\nexport const sharedOptionsBuilder = {\n ...yargsOptionsBuilderForEnv,\n // This option is for debugging mainly.\n 'working-dir': {\n description: 'A working directory',\n type: 'string',\n alias: 'w',\n },\n 'dry-run': {\n description: 'Whether to skip actual command execution',\n type: 'boolean',\n alias: 'd',\n },\n} as const;\n","import path from 'node:path';\n\nimport { removeNpmAndYarnEnvironmentVariables } from '@willbooster/shared-lib-node/src';\nimport yargs from 'yargs';\nimport { hideBin } from 'yargs/helpers';\n\nimport { buildIfNeededCommand } from './commands/buildIfNeeded.js';\nimport { optimizeForDockerBuildCommand } from './commands/optimizeForDockerBuild.js';\nimport { prismaCommand } from './commands/prisma.js';\nimport { retryCommand } from './commands/retry.js';\nimport { setupCommand } from './commands/setup.js';\nimport { startCommand } from './commands/start.js';\nimport { testCommand } from './commands/test.js';\nimport { tcCommand, typeCheckCommand } from './commands/typecheck.js';\nimport { sharedOptionsBuilder } from './sharedOptionsBuilder.js';\n\nawait yargs(hideBin(process.argv))\n .scriptName('wb')\n .options(sharedOptionsBuilder)\n .middleware((argv) => {\n const workingDir = argv['working-dir'];\n if (workingDir) {\n const dirPath = path.resolve(workingDir);\n process.chdir(dirPath);\n }\n\n removeNpmAndYarnEnvironmentVariables(process.env);\n })\n .command(buildIfNeededCommand)\n .command(optimizeForDockerBuildCommand)\n .command(prismaCommand)\n .command(retryCommand)\n .command(setupCommand)\n .command(startCommand)\n .command(testCommand)\n .command(typeCheckCommand)\n .command(tcCommand)\n .demandCommand()\n .strict()\n .help().argv;\n\nfor (const signal of ['SIGINT', 'SIGTERM', 'SIGQUIT']) {\n process.on(signal, () => process.exit());\n}\n"],"names":["readEnvironmentVariables","argv","cwd","cacheEnabled","envPaths","env","map","envPath","path","resolve","toString","cascade","cascadeEnv","cascadeNodeEnv","process","NODE_ENV","autoCascadeEnv","WB_ENV","undefined","length","push","join","includeRootEnv","rootPath","fs","existsSync","flatMap","relative","verbose","console","info","envVars","orgEnvVars","readEnvFile","count","key","value","Object","entries","checkEnv","missingKeys","keys","filter","Error","cachedEnvVars","Map","filePath","cached","get","parsed","config","processEnv","set","existsAsync","Promise","access","constants","F_OK","err","async","spawnAsync","command","args","options","reject","proc","spawn","stdout","setEncoding","stderr","input","stdin","write","end","on","data","mergeOutAndError","stopped","stopProcess","pid","treeKill","killOnExit","error","removeListener","removeAllListeners","code","signal","status","align","right","str","width","trim","strWidth","mixin","stringWidth","repeat","center","UI","constructor","opts","_a","this","wrap","rows","span","div","resetOutput","shouldApplyLayoutDSL","applyLayoutDSL","cols","arg","colFromString","test","split","row","leftColumnWidth","forEach","columns","Math","min","floor","r","i","text","padding","measurePadding","noAnsi","stripAnsi","match","lines","rowToString","line","hidden","rasterize","rrow","col","c","wrapWidth","negatePadding","ts","fn","addBorder","renderInline","replace","source","previousLine","leadingWhitespace","target","targetTextWidth","trimRight","trimLeft","rrows","widths","columnWidths","wrapped","hard","border","unshift","Array","fill","unset","remainingWidth","unsetWidth","w","max","minWidth","_minWidth","style","ansi","RegExp","start","charAt","camelCase","toLowerCase","toUpperCase","indexOf","camelcase","nextChrUpper","leadingHyphens","chr","decamelize","joinString","lowercase","notCamelcase","chrLower","chrString","looksLikeNumber","x","DefaultValuesForTypeKey","increment","orig","sanitizeKey","_b","_c","minNodeVersion","YARGS_MIN_NODE_VERSION","Number","nodeVersion","versions","node","version","slice","parser","_mixin","parse","argsInput","assign","alias","array","boolean","configObjects","configuration","coerce","default","envPrefix","narg","normalize","string","number","__","argString","isArray","e","prevC","opening","ii","tokenizeArgString","inputIsString","aliases","aliasArrays","combined","create","change","concat","v","splice","aliasArray","lastAlias","self","pop","combineAliases","defaults","notFlagsOption","notFlagsArgv","newAliases","defaulted","format","flags","arrays","bools","strings","numbers","counts","configs","nargs","coercions","negative","negatedBoolean","Boolean","opt","assignment","obj","y","extendAliases","find","checkAllAliases","notFlags","_","argvReturn","truncatedArg","broken","letters","m","next","isUnknownOptionAsArg","pushPositional","eatArray","eatNargs","setArg","defaultValue","j","maybeCoercedNumber","maybeCoerceNumber","argAfterEqualSign","toEat","isNaN","isUndefined","available","consumed","argsToSet","nargsCount","defVal","processValue","val","shouldStripQuotes","prop","addNewAlias","splitKey","setKey","keyProperties","a","shift","includes","defineProperty","enumerable","substring","stripQuotes","isSafeInteger","parseFloat","setConfigObject","prev","fullKey","hasKey","applyEnvVars","configOnly","prefix","envVar","lastIndexOf","applyDefaultsAndAliases","canLog","o","isTypeArray","isValueArray","duplicate","flag","toCheck","setAlias","hasAnyFlag","flagsKeys","k","some","hasAllFlags","hasAllShortFlags","patterns","pattern","hasFlagsMatching","isUnknownOption","type","BOOLEAN","STRING","NUMBER","ARRAY","guessType","num","configLookup","configKey","configPath","resolvedConfigPath","resolveConfig","require","ex","name","setConfig","configObject","applied","Set","has","ali","add","applyCoercions","setPlaceholderKeys","JSON","readFileSync","yargsParser","getProcessArgvBinIndex","electron","defaultApp","detailed","YError","msg","super","captureStackTrace","shim$3","writeFile","exists","file","statSync","isFile","shim","Y18N","directory","updateFiles","locale","fallbackToLanguage","cache","writeQueue","arguments","_taggedLiteral","cb","_readLocaleFile","_enqueueWrite","apply","__n","prototype","call","singular","plural","quantity","one","other","values","setLocale","getLocale","updateLocale","hasOwnProperty","parts","part","work","_processWriteQueue","_this","languageFile","_resolveLocaleFile","serializedLocale","stringify","localeLookup","SyntaxError","message","_fileExistsSync","REQUIRE_DIRECTORY_ERROR","__dirname","fileURLToPath","url","shim$1","assert","notStrictEqual","strictEqual","cliui","findUp","callback","tmp","dir","isDirectory","dirname","readdirSync","getEnv","inspect","getCallerFile","getProcessArgvBin","mainFilename","Parser","basename","extname","emitWarning","warning","execPath","exit","nextTick","stdColumns","requireDirectory","y18n","_shim","bind","_y18n","assertNotStrictEqual","actual","expected","assertSingleKey","objectKeys","object","isPromise","maybePromise","then","parseCommand","cmd","splitCommand","bregex","firstCommand","parsedCommand","demanded","optional","variadic","positionName","argsert","arg1","arg2","arg3","position","callerArguments","_length","totalCommands","observedType","argumentTypeError","warn","stack","allowedTypes","GlobalMiddleware","yargs","globalMiddleware","frozens","addMiddleware","applyBeforeValidation","global","mutates","addCoerceMiddleware","option","getAliases","getMiddleware","freeze","unfreeze","frozen","reset","applyMiddleware","middlewares","beforeValidation","reduce","acc","middleware","initialObj","all","middlewareObj","result","maybeAsyncResult","getResult","resultHandler","errorHandler","DEFAULT_MARKER","CommandInstance","usage","validation","requireCache","handlers","aliasMap","addDirectory","req","callerFile","recurse","extensions","parentVisit","visit","joined","filename","visited","addHandler","description","builder","handler","commandMiddleware","deprecated","commandMiddlewareFactory","every","isCommandAndAliases","isCommandHandlerDefinition","moduleName","extractDesc","isCommandBuilderDefinition","isDefault","parsedAliases","original","defaultCommand","getCommandHandlers","getCommands","hasDefaultCommand","runCommand","commandIndex","helpOnly","helpOrVersionSet","commandHandler","currentContext","getInternalMethods","getContext","parentCommands","commands","isDefaultCommand","fullCommands","builderResult","applyBuilderUpdateUsageAndParse","applyMiddlewareAndGetResult","innerArgv","innerYargs","isCommandBuilderCallback","getUsageInstance","builderOutput","output","parseAndUpdateUsage","isCommandBuilderOptionDefinitions","shouldUpdateUsage","usageFromParentCommandsCommandHandler","runYargsParserAndExecuteCommands","getUsageDisabled","getUsage","pc","handleValidationAndGetResult","positionalMap","getHasOutput","runValidation","setHasOutput","populateDoubleDash","getOptions","postProcess","handlerResult","cacheHelpMessage","hasParseCallback","catch","fail","_err","populatePositionals","maybePromiseArgv","resolvedInnerArgv","context","positionalCount","demand","populatePositional","maybe","postProcessPositionals","cmdToParseOptions","positional","String","cmdString","parseOptions","d","unparsed","positionalKeys","isInConfigs","isDefaulted","runDefaultBuilderOn","commandString","mod","exported","files","exports","whichModule","commandFromFilename","describe","desc","objFilter","setBlocking","blocking","_stream","stream","_handle","isTTY","isBoolean","fails","failFn","f","failMessage","globalFailMessage","showHelpOnFail","enabled","isGlobalContext","failureOutput","logger","getLoggerInstance","getExitProcess","showHelp","globalOrCommandFailMessage","usages","usageDisabled","getPositionalGroupName","examples","example","cmdArray","descriptions","keyOrKeys","getDescriptions","epilogs","epilog","wrapSet","getWrap","maxWidth","windowWidth","deferY18nLookupPrefix","table","theWrap","modifier","getText","getIndentation","parseInt","cachedHelpMessage","filterHiddenOptions","hiddenOptions","showHiddenOpt","defaultString","defaultDescription","deferY18nLookup","help","demandedOptions","getDemandedOptions","demandOption","normalizeAliases","base$0","customScriptName","$0","demandedCommands","getDemandedCommands","deprecatedOptions","getDeprecatedOptions","groups","getGroups","ui","u","getParserConfiguration","sort","b","localeCompare","hints","aliasKeys","defaultGroup","groupedKeys","group","addUngroupedKeys","isLongSwitch","sw","displayedGroups","groupName","normalizedKeys","aliasKey","switches","sw1","sw2","indent","isIndentedText","indentation","kswitch","extra","choices","stringifiedValues","shouldHideOptionExtras","getUsageConfiguration","clearCachedHelpMessage","hasCachedHelpMessage","level","functionDescription","separator","sep","ver","showVersion","localLookup","Completion","completionKey","customCompletionFunction","indexAfterLastReset","zshShell","defaultCompletion","current","done","completions","commandCompletions","optionCompletions","choicesFromOptionsCompletions","choicesFromPositionalsCompletions","previousArgHasChoices","usageCommand","commandName","negable","argsContainKey","completeOptionKey","getPreviousArgChoices","offset","positionalKey","choice","startsWith","previousArg","previousArgKey","possibleAliases","possibleAlias","argsContains","s","_d","keyWithDesc","descs","descFromAlias","dashes","startsByTwoDashes","isShortOption","customCompletion","list","completionFunction","isFallbackCompletionFunction","onCompleted","getCompletion","generateCompletionScript","script","registerFunction","setParsed","levenshtein","matrix","specialKeys","previouslyVisitedConfigs","applyExtends","mergeExtends","defaultConfig","extends","isPath","pathToDefault","pathToExtend","getPathToDefaultConfig","cfgPath","checkForCircularExtends","mergeDeep","config1","config2","isObject","_YargsInstance_command","_YargsInstance_cwd","_YargsInstance_context","_YargsInstance_completion","_YargsInstance_completionCommand","_YargsInstance_defaultShowHiddenOpt","_YargsInstance_exitError","_YargsInstance_detectLocale","_YargsInstance_emittedWarnings","_YargsInstance_exitProcess","_YargsInstance_frozens","_YargsInstance_globalMiddleware","_YargsInstance_groups","_YargsInstance_hasOutput","_YargsInstance_helpOpt","_YargsInstance_isGlobalContext","_YargsInstance_logger","_YargsInstance_output","_YargsInstance_options","_YargsInstance_parentRequire","_YargsInstance_parserConfig","_YargsInstance_parseFn","_YargsInstance_parseContext","_YargsInstance_pkgs","_YargsInstance_preservedGroups","_YargsInstance_processArgs","_YargsInstance_recommendCommands","_YargsInstance_shim","_YargsInstance_strict","_YargsInstance_strictCommands","_YargsInstance_strictOptions","_YargsInstance_usage","_YargsInstance_usageConfig","_YargsInstance_versionOpt","_YargsInstance_validation","__classPrivateFieldSet","receiver","state","kind","TypeError","__classPrivateFieldGet","kCopyDoubleDash","Symbol","kCreateLogger","kDeleteFromParserHintObject","kEmitWarning","kFreeze","kGetDollarZero","kGetParserConfiguration","kGetUsageConfiguration","kGuessLocale","kGuessVersion","kParsePositionalNumbers","kPkgUp","kPopulateParserHintArray","kPopulateParserHintSingleValueDictionary","kPopulateParserHintArrayDictionary","kPopulateParserHintDictionary","kSanitizeKey","kSetKey","kUnfreeze","kValidateAsync","kGetCommandInstance","kGetContext","kGetHasOutput","kGetLoggerInstance","kGetParseContext","kGetUsageInstance","kGetValidationInstance","kHasParseCallback","kIsGlobalContext","kPostProcess","kRebase","kReset","kRunYargsParserAndExecuteCommands","kRunValidation","kSetHasOutput","kTrackManuallySetKeys","YargsInstance","processArgs","parentRequire","addHelpOpt","addShowHiddenOpt","showHidden","check","_yargs","stripAliased","conflicts","key1","key2","parseFn","completion","commandDir","demandCommand","minMsg","maxMsg","Infinity","deprecateOption","detectLocale","detect","epilogue","exampleParams","exitProcess","getDetectLocale","getHelp","builderResponse","getStrict","getStrictCommands","getStrictOptions","globals","local","l","g","existing","seen","hide","implies","deprecate","required","configParser","skipValidation","requiresArg","shortCircuit","_parseFn","tmpParsed","finally","parseAsync","parseSync","parserConfiguration","pkgConf","conf","supportedOpts","fullCommand","pk","parseOption","recommendCommands","recommend","NaN","showCompletionScript","log","scriptName","strict","strictCommands","strictOptions","terminalWidth","updateStrings","usageConfiguration","defaultVersionOpt","WeakMap","optionKey","hintKey","hint","deduplicationId","completionCommand","exitError","hasOutput","parseContext","default$0","npath","startDir","pkgJsonPath","names","_noop","singleKeyHandler","_e","_f","_g","_h","_j","_k","_l","_m","_o","getCommandInstance","getParseContext","getValidationInstance","calledFromCommand","runGlobalMiddleware","tmpOptions","Usage","_s","observed","missing","customMsgs","customMsg","checkPositionals","commandKeys","unknown","isValidAndSomeAliasIsNotNew","maxNonOptDemanded","invalid","invalidKeys","implied","keyExists","getImplied","implications","implyFail","origKey","origValue","conflicting","getConflicting","potentialCommands","recommended","bestDistance","candidate","distance","Validation","Command","base","argvPromise","helpOptSet","versionOptSet","handlerKeys","requestCompletions","skipRecommendation","firstUnknownCommand","completionArgs","parseErrors","nonOptionCount","requiredArguments","failedStrictCommands","unknownCommands","unknownArguments","limitedChoices","Yargs","esmPlatformShim","memoize","cacheDuration","t","POSITIVE_INFINITY","caches","calcKey","n","codePointAt","imul","padStart","maxCachedArgsSize","maxCachedThisSize","Date","now","size","delete","h","memoizeFactory","MAX_SAFE_INTEGER","Project","_initProto","_applyDecs","pathByName","dirPath","loadEnv","_dirPath","isBunProject","rootDirPath","isBunAvailable","buildCommand","packageJson","scripts","build","dockerfile","findFile","hasDockerfile","hasSourceCode","dockerImageName","replaceAll","hasPrisma","dependencies","devDependencies","dockerPackageJson","binExists","binFound","currentPath","binPath","PATH","parentPath","fileName","p","findSelfProject","findAllProjects","rootAndSelfProjects","thisProject","rootProject","workspaces","endsWith","root","findRootAndSelfProjects","getAllProjects","allProjects","workspace","globPattern","packageDirs","workspacePath","ws","globby","dot","onlyDirectories","subPackageDirPath","buildIfNeededCommand","projectPathForTesting","project","chalk","red","canSkip","cacheFilePath","contentHash","cacheDirectoryPath","promises","mkdir","recursive","hash","createHash","commitHash","child_process","execSync","update","environmentJson","ignoringEnvVarNames","filteredFilePaths","spawnSync","stdio","encoding","includePatterns","includeSuffix","suffix","excludePatterns","copy","digest","updateHashWithDiffResult","cachedContentHash","ignoreEnoentAsync","readFile","canSkipBuild","green","dryRun","buildIfNeeded","ret","shell","exitCode","prepareForRunningCommand","projects","optimizeForDockerBuildCommand","outside","deps","optimizeDevDependencies","optimizeScripts","optimizeRootProps","distDirPath","devDeps","nameWordsToBeRemoved","word","nameWordsOfUnnecessaryScripts","contentWordsOfUnnecessaryScripts","content","private","publishConfig","prettier","isRunningOnBun","runtimeWithArgs","packageManagerWithArgs","prismaScripts","deploy","deployForce","backupPath","dirName","litestream","migrate","seed","migrateDev","restore","outputPath","scriptPath","prisma","studio","dbUrlOrPath","URL","absolutePath","killed","killPortProcessHandlingErrors","port","killPortProcess","promisePool","PromisePool","defaultOptions","exitIfFailed","runWithSpawn","printableScript","runnableScript","normalizeScript","printStart","printFinishedAndExitIfNeeded","killFunc","killPortProcessImmediatelyAndOnExit","timeout","runWithSpawnInParallel","run","out","newScript","normalizedScript","weak","gray","cyan","bold","prismaCommand","deployCommand","deployForceCommand","litestreamCommand","migrateCommand","migrateDevCommand","resetCommand","restoreCommand","seedCommand","studioCommand","findPrismaProjects","deployForceBuilder","restored","trimEnd","filtered","retryCommand","retry","cmdAndArgs","lastStatus","yellow","setupCommand","dirents","readdir","withFileTypes","os","platform","packages","promiseAll","newDeps","newDevDeps","setup","dockerScripts","buildDevImage","stopAndStart","unbuffer","additionalOptions","additionalArgs","stop","spawnSyncOnExit","stopAll","BaseExecutionScripts","defaultPort","PORT","buildDocker","startDocker","normalizedDockerOptionsText","normalizedArgsText","waitAndOpenApp","testE2E","playwrightArgs","prismaDirectory","startCommand","testE2EDev","testUnit","waitApp","blitzScripts","startProduction","testStart","httpServerScripts","watch","nextScripts","plainAppScripts","remixScripts","mode","dockerOptions","normalizeArgs","configureEnvironmentVariables","wbEnv","NEXT_PUBLIC_WB_ENV","testCommand","ci","e2e","unit","CI","FORCE_COLOR","unitTimeout","testOnDocker","unitTestsExistPromise","e2eTestsExistPromise","typeCheckCommand","typescript","pyright","tcCommand","sharedOptionsBuilder","workingDir","chdir","BERRY_BIN_FOLDER","upperKey","removeNpmAndYarnEnvironmentVariables"],"mappings":"krBA+CO,SAASA,EACdC,EACAC,EACAC,GAAe,GAEf,IAAIC,GAAYH,EAAKI,KAAO,IAAIC,KAAKC,GAAYC,EAAKC,QAAQP,EAAKK,EAAQG,cAC3E,MAAMC,EACJV,EAAKW,aACJX,EAAKY,eACFC,QAAQT,IAAIU,UAAY,cACxBd,EAAKe,eACHF,QAAQT,IAAIY,QAAUH,QAAQT,IAAIU,UAAY,mBAC9CG,GACR,GAAuB,iBAAZP,EAAsB,CAC/B,GAAwB,IAApBP,EAASe,SACXf,EAASgB,KAAKZ,EAAKa,KAAKnB,EAAK,SACzBD,EAAKqB,gBAAgB,CACvB,MAAMC,EAAWf,EAAKC,QAAQP,EAAK,KAAM,MACrCsB,EAAGC,WAAWjB,EAAKa,KAAKE,EAAU,kBACpCnB,EAASgB,KAAKZ,EAAKa,KAAKE,EAAU,QAEtC,CAEFnB,EAAWA,EAASsB,SAASnB,GAC3BI,EACI,CAAE,GAAEJ,KAAWI,UAAkB,GAAEJ,UAAkB,GAAEA,KAAWI,IAAWJ,GAC7E,CAAE,GAAEA,UAAiBA,IAE7B,CACAH,EAAWA,EAASE,KAAKC,GAAYC,EAAKmB,SAASzB,EAAKK,KACpDN,EAAK2B,UACPC,QAAQC,KAAM,WAAUhB,QAAQT,IAAIY,qBAAqBH,QAAQT,IAAIU,YACrEc,QAAQC,KAAK,qBAAsB1B,IAGrC,IAAI2B,EAAkC,CAAA,EACtC,MAAMC,EAAa,IAAKlB,QAAQT,KAChC,IAAK,MAAME,KAAWH,EAAU,CAC9B2B,EAAU,IAAKE,EAAYzB,EAAKa,KAAKnB,EAAKK,GAAUJ,MAAkB4B,GACtE,IAAIG,EAAQ,EACZ,IAAK,MAAOC,EAAKC,KAAUC,OAAOC,QAAQP,GACpCC,EAAWG,KAASC,IACtBJ,EAAWG,GAAOC,EAClBF,KAGAA,EAAQ,GACVL,QAAQC,KAAM,QAAOI,2BAAgC3B,EAEzD,CAEA,GAAIN,EAAKsC,SAAU,CACjB,MACMC,EADcH,OAAOI,KAAKR,EAAYzB,EAAKa,KAAKnB,EAAKD,EAAKsC,UAAWpC,IAAiB,CAAE,GAC9DuC,QAAQP,KAAUA,KAAOJ,KACzD,GAAIS,EAAYrB,OAAS,EACvB,MAAM,IAAIwB,MAAO,qCAAoCvC,EAASiB,KAAK,YAAYmB,EAAYnB,KAAK,SAEpG,CACA,OAAOU,CACT,CAeA,MAAMa,EAAgB,IAAIC,IAE1B,SAASZ,EAAYa,EAAkB3C,GAAe,GACpD,MAAM4C,EAAS5C,GAAgByC,EAAcI,IAAIF,GACjD,GAAIC,EAAQ,OAAOA,EAEnB,MAAME,EAASC,EAAO,CAAE1C,KAAMA,EAAKC,QAAQqC,GAAWK,WAAY,CAAC,IAAKF,QAAU,GAIlF,OAHI9C,GACFyC,EAAcQ,IAAIN,EAAUG,GAEvBA,CACT,CClIO,SAASI,EAAYP,GAC1B,OAAO,IAAIQ,SAAS7C,IAClBe,EAAG+B,OAAOT,EAAUtB,EAAGgC,UAAUC,MAAOC,IACtCjD,GAASiD,EAAI,GACb,GAEN,CCwBOC,eAAeC,EACpBC,EACAC,EACAC,GAEA,OAAO,IAAIT,SAAQ,CAAC7C,EAASuD,KAC3B,IACE,MAAMC,EAAOC,EAAML,EAASC,GAAQ,GAAIC,GAAW,CAAA,GAEnDE,EAAKE,QAAQC,cAAc,QAC3BH,EAAKI,QAAQD,cAAc,QAE3B,IAAID,EAAS,GACTE,EAAS,GACTN,GAASO,QACXL,EAAKM,OAAOC,MAAMT,EAAQO,OAC1BL,EAAKM,OAAOE,OAEdR,EAAKE,QAAQO,GAAG,QAASC,IACvBR,GAAUQ,CAAI,IAEhBV,EAAKI,QAAQK,GAAG,QAASC,IACnBZ,GAASa,iBACXT,GAAUQ,EAEVN,GAAUM,CACZ,IAGF,IAAIE,GAAU,EACd,MAAMC,EAAcA,MACdD,GAAYZ,EAAKc,MAErBF,GAAU,EACNd,GAASnC,SACXC,QAAQC,KAAM,YAAWmC,EAAKc,QAEhCC,EAASf,EAAKc,KAAI,EAEhBhB,GAASkB,aACXnE,QAAQ4D,GAAG,aAAcI,GACzBhE,QAAQ4D,GAAG,SAAUI,IAGvBb,EAAKS,GAAG,SAAUQ,IAChBpE,QAAQqE,eAAe,aAAcL,GACrChE,QAAQqE,eAAe,SAAUL,GACjCb,EAAKmB,mBAAmB,SACxBpB,EAAOkB,EAAM,IAEfjB,EAAKS,GAAG,SAAS,CAACW,EAAqBC,KACrCxE,QAAQqE,eAAe,aAAcL,GACrChE,QAAQqE,eAAe,SAAUL,QAChB5D,IAAb+C,EAAKc,IACPf,EAAO,IAAIrB,MAAM,wBAEjBlC,EAAQ,CACNsE,IAAKd,EAAKc,IACVZ,SACAE,SACAkB,OAAQF,EACRC,UAEJ,GAEH,CAAC,MAAOJ,GACPlB,EAAOkB,EACT,IAEJ,CCpGA,MAAMM,EAAQ,CACVC,MAoQJ,SAAoBC,EAAKC,GACrBD,EAAMA,EAAIE,OACV,MAAMC,EAAWC,EAAMC,YAAYL,GACnC,GAAIG,EAAWF,EACX,MAAO,IAAIK,OAAOL,EAAQE,GAAYH,EAE1C,OAAOA,CACX,EA1QIO,OA2QJ,SAAqBP,EAAKC,GACtBD,EAAMA,EAAIE,OACV,MAAMC,EAAWC,EAAMC,YAAYL,GAEnC,GAAIG,GAAYF,EACZ,OAAOD,EAEX,MAAO,IAAIM,OAAQL,EAAQE,GAAa,GAAKH,CACjD,GA7QO,MAAMQ,EACT,WAAAC,CAAYC,GACR,IAAIC,EACJC,KAAKX,MAAQS,EAAKT,MAClBW,KAAKC,KAA4B,QAApBF,EAAKD,EAAKG,YAAyB,IAAPF,GAAgBA,EACzDC,KAAKE,KAAO,EACf,CACD,IAAAC,IAAQ3C,GACSwC,KAAKI,OAAO5C,GACpB2C,MAAO,CACf,CACD,WAAAE,GACIL,KAAKE,KAAO,EACf,CACD,GAAAE,IAAO5C,GAIH,GAHoB,IAAhBA,EAAK3C,QACLmF,KAAKI,IAAI,IAETJ,KAAKC,MAAQD,KAAKM,wBAAwB9C,IAA4B,iBAAZA,EAAK,GAC/D,OAAOwC,KAAKO,eAAe/C,EAAK,IAEpC,MAAMgD,EAAOhD,EAAKxD,KAAIyG,GACC,iBAARA,EACAT,KAAKU,cAAcD,GAEvBA,IAGX,OADAT,KAAKE,KAAKpF,KAAK0F,GACRA,CACV,CACD,oBAAAF,IAAwB9C,GACpB,OAAuB,IAAhBA,EAAK3C,QAAmC,iBAAZ2C,EAAK,IACpC,SAASmD,KAAKnD,EAAK,GAC1B,CACD,cAAA+C,CAAenB,GACX,MAAMc,EAAOd,EAAIwB,MAAM,MAAM5G,KAAI6G,GAAOA,EAAID,MAAM,QAClD,IAAIE,EAAkB,EAsBtB,OAjBAZ,EAAKa,SAAQC,IACLA,EAAQnG,OAAS,GAAK2E,EAAMC,YAAYuB,EAAQ,IAAMF,IACtDA,EAAkBG,KAAKC,IAAID,KAAKE,MAAmB,GAAbnB,KAAKX,OAAcG,EAAMC,YAAYuB,EAAQ,KACtF,IAKLd,EAAKa,SAAQC,IACThB,KAAKI,OAAOY,EAAQhH,KAAI,CAACoH,EAAGC,KACjB,CACHC,KAAMF,EAAE9B,OACRiC,QAASvB,KAAKwB,eAAeJ,GAC7B/B,MAAc,IAANgC,GAAWL,EAAQnG,OAAS,EAAKiG,OAAkBlG,MAEhE,IAEAoF,KAAKE,KAAKF,KAAKE,KAAKrF,OAAS,EACvC,CACD,aAAA6F,CAAcY,GACV,MAAO,CACHA,OACAC,QAASvB,KAAKwB,eAAeF,GAEpC,CACD,cAAAE,CAAepC,GAEX,MAAMqC,EAASjC,EAAMkC,UAAUtC,GAC/B,MAAO,CAAC,EAAGqC,EAAOE,MAAM,QAAQ,GAAG9G,OAAQ,EAAG4G,EAAOE,MAAM,QAAQ,GAAG9G,OACzE,CACD,QAAAT,GACI,MAAMwH,EAAQ,GAMd,OALA5B,KAAKE,KAAKa,SAAQF,IACdb,KAAK6B,YAAYhB,EAAKe,EAAM,IAIzBA,EACFxF,QAAO0F,IAASA,EAAKC,SACrB/H,KAAI8H,GAAQA,EAAKR,OACjBvG,KAAK,KACb,CACD,WAAA8G,CAAYhB,EAAKe,GAyCb,OAxCA5B,KAAKgC,UAAUnB,GAAKE,SAAQ,CAACkB,EAAMb,KAC/B,IAAIhC,EAAM,GACV6C,EAAKlB,SAAQ,CAACmB,EAAKC,KACf,MAAM9C,MAAEA,GAAUwB,EAAIsB,GAChBC,EAAYpC,KAAKqC,cAAcxB,EAAIsB,IACzC,IAAIG,EAAKJ,EAKT,GAJIE,EAAY5C,EAAMC,YAAYyC,KAC9BI,GAAM,IAAI5C,OAAO0C,EAAY5C,EAAMC,YAAYyC,KAG/CrB,EAAIsB,GAAGjD,OAA0B,SAAjB2B,EAAIsB,GAAGjD,OAAoBc,KAAKC,KAAM,CAEtDqC,GAAKC,EADMrD,EAAM2B,EAAIsB,GAAGjD,QAChBoD,EAAIF,GACR5C,EAAMC,YAAY6C,GAAMF,IACxBE,GAAM,IAAI5C,QAAQL,GAAS,GAAKG,EAAMC,YAAY6C,GAAM,GAE/D,CAED,MAAMf,EAAUV,EAAIsB,GAAGZ,SAAW,CAAC,EAAG,EAAG,EAAG,GACxCA,EAxGP,KAyGOnC,GAAO,IAAIM,OAAO6B,EAzGzB,KA2GGnC,GAAOoD,EAAU3B,EAAIsB,GAAIG,EAAI,MAC7BlD,GAAOkD,EACPlD,GAAOoD,EAAU3B,EAAIsB,GAAIG,EAAI,MACzBf,EAhHN,KAiHMnC,GAAO,IAAIM,OAAO6B,EAjHxB,KAqHY,IAANH,GAAWQ,EAAM/G,OAAS,IAC1BuE,EAAMY,KAAKyC,aAAarD,EAAKwC,EAAMA,EAAM/G,OAAS,IACrD,IAGL+G,EAAM9G,KAAK,CACPwG,KAAMlC,EAAIsD,QAAQ,MAAO,IACzBvC,KAAMU,EAAIV,MACZ,IAECyB,CACV,CAGD,YAAAa,CAAaE,EAAQC,GACjB,MAAMjB,EAAQgB,EAAOhB,MAAM,OACrBkB,EAAoBlB,EAAQA,EAAM,GAAG9G,OAAS,EAC9CiI,EAASF,EAAatB,KACtByB,EAAkBvD,EAAMC,YAAYqD,EAAOE,aACjD,OAAKJ,EAAazC,KAKbH,KAAKC,KAIN4C,EAAoBE,EACbJ,GAEXC,EAAab,QAAS,EACfe,EAAOE,YAAc,IAAItD,OAAOmD,EAAoBE,GAAmBJ,EAAOM,aAPjFL,EAAab,QAAS,EACfe,EAASH,GANTA,CAad,CACD,SAAAX,CAAUnB,GACN,MAAMqC,EAAQ,GACRC,EAASnD,KAAKoD,aAAavC,GACjC,IAAIwC,EAkCJ,OA/BAxC,EAAIE,SAAQ,CAACmB,EAAKC,KAEdD,EAAI7C,MAAQ8D,EAAOhB,GAEfkB,EADArD,KAAKC,KACKT,EAAMS,KAAKiC,EAAIZ,KAAMtB,KAAKqC,cAAcH,GAAM,CAAEoB,MAAM,IAAQ1C,MAAM,MAGpEsB,EAAIZ,KAAKV,MAAM,MAEzBsB,EAAIqB,SACJF,EAAQG,QAAQ,IAAM,IAAI9D,OAAOM,KAAKqC,cAAcH,GAAO,GAAK,KAChEmB,EAAQvI,KAAK,IAAM,IAAI4E,OAAOM,KAAKqC,cAAcH,GAAO,GAAK,MAG7DA,EAAIX,UACJ8B,EAAQG,WAAW,IAAIC,MAAMvB,EAAIX,QA7KrC,IA6KqD,GAAGmC,KAAK,KACzDL,EAAQvI,QAAQ,IAAI2I,MAAMvB,EAAIX,QA5K/B,IA4KkD,GAAGmC,KAAK,MAE7DL,EAAQtC,SAAQ,CAAC3B,EAAKgC,KACb8B,EAAM9B,IACP8B,EAAMpI,KAAK,IAEf,MAAMmH,EAAOiB,EAAM9B,GACnB,IAAK,IAAIC,EAAI,EAAGA,EAAIc,EAAGd,SACHzG,IAAZqH,EAAKZ,IACLY,EAAKnH,KAAK,IAGlBmH,EAAKnH,KAAKsE,EAAI,GAChB,IAEC8D,CACV,CACD,aAAAb,CAAcH,GACV,IAAIE,EAAYF,EAAI7C,OAAS,EAO7B,OANI6C,EAAIX,UACJa,IAAcF,EAAIX,QA/LjB,IA+LkC,IAAMW,EAAIX,QAjM3C,IAiM6D,IAE/DW,EAAIqB,SACJnB,GAAa,GAEVA,CACV,CACD,YAAAgB,CAAavC,GACT,IAAKb,KAAKC,KACN,OAAOY,EAAI7G,KAAIkI,GACJA,EAAI7C,OAASG,EAAMC,YAAYyC,EAAIZ,QAGlD,IAAIqC,EAAQ9C,EAAIhG,OACZ+I,EAAiB5D,KAAKX,MAE1B,MAAM8D,EAAStC,EAAI7G,KAAIkI,IACnB,GAAIA,EAAI7C,MAGJ,OAFAsE,IACAC,GAAkB1B,EAAI7C,MACf6C,EAAI7C,KAEC,IAGdwE,EAAaF,EAAQ1C,KAAKE,MAAMyC,EAAiBD,GAAS,EAChE,OAAOR,EAAOnJ,KAAI,CAAC8J,EAAGzC,SACRzG,IAANkJ,EACO7C,KAAK8C,IAAIF,EAoBhC,SAAmB3B,GACf,MAAMX,EAAUW,EAAIX,SAAW,GACzByC,EAAW,GAAKzC,EAjPb,IAiP8B,IAAMA,EAnPnC,IAmPqD,GAC/D,GAAIW,EAAIqB,OACJ,OAAOS,EAAW,EAEtB,OAAOA,CACX,CA3B4CC,CAAUpD,EAAIQ,KAEvCyC,GAEd,EAEL,SAAStB,EAAUN,EAAKI,EAAI4B,GACxB,OAAIhC,EAAIqB,OACA,aAAa5C,KAAK2B,GACX,GAEc,IAArBA,EAAGhD,OAAOzE,OACHqJ,EAEJ,KAEJ,EACX,CAmCA,IAAI1E,EChRJ,MAAM2E,EAAO,IAAIC,OAAO,qFACsB,KACvC,SAAS1C,EAAUtC,GACtB,OAAOA,EAAIsD,QAAQyB,EAAM,GAC7B,CACO,SAASlE,EAAKb,EAAKC,GACtB,MAAOgF,EAAOlG,GAAOiB,EAAIuC,MAAMwC,IAAS,CAAC,GAAI,IAC7C/E,EAAMsC,EAAUtC,GAChB,IAAIiE,EAAU,GACd,IAAK,IAAIhC,EAAI,EAAGA,EAAIjC,EAAIvE,OAAQwG,IAClB,IAANA,GAAYA,EAAIhC,GAAW,IAC3BgE,GAAW,MAEfA,GAAWjE,EAAIkF,OAAOjD,GAK1B,OAHIgD,GAASlG,IACTkF,EAAU,GAAGgB,IAAQhB,IAAUlF,KAE5BkF,CACX;;;;;;ACrBO,SAASkB,EAAUnF,GAOtB,GAJoBA,IAAQA,EAAIoF,eAAiBpF,IAAQA,EAAIqF,gBAEzDrF,EAAMA,EAAIoF,gBAEY,IAAtBpF,EAAIsF,QAAQ,OAAqC,IAAtBtF,EAAIsF,QAAQ,KACvC,OAAOtF,EAEN,CACD,IAAIuF,EAAY,GACZC,GAAe,EACnB,MAAMC,EAAiBzF,EAAIuC,MAAM,OACjC,IAAK,IAAIN,EAAIwD,EAAiBA,EAAe,GAAGhK,OAAS,EAAGwG,EAAIjC,EAAIvE,OAAQwG,IAAK,CAC7E,IAAIyD,EAAM1F,EAAIkF,OAAOjD,GACjBuD,IACAA,GAAe,EACfE,EAAMA,EAAIL,eAEJ,IAANpD,GAAoB,MAARyD,GAAuB,MAARA,EAGd,MAARA,GAAuB,MAARA,IACpBH,GAAaG,GAHbF,GAAe,CAKtB,CACD,OAAOD,CACV,CACL,CACO,SAASI,EAAW3F,EAAK4F,GAC5B,MAAMC,EAAY7F,EAAIoF,cACtBQ,EAAaA,GAAc,IAC3B,IAAIE,EAAe,GACnB,IAAK,IAAI7D,EAAI,EAAGA,EAAIjC,EAAIvE,OAAQwG,IAAK,CACjC,MAAM8D,EAAWF,EAAUX,OAAOjD,GAC5B+D,EAAYhG,EAAIkF,OAAOjD,GAEzB6D,GADAC,IAAaC,GAAa/D,EAAI,EACd,GAAG2D,IAAaC,EAAUX,OAAOjD,KAGjC+D,CAEvB,CACD,OAAOF,CACX,CACO,SAASG,EAAgBC,GAC5B,OAAIA,UAGa,iBAANA,MAGP,iBAAiB3E,KAAK2E,KAGtB,SAAS3E,KAAK2E,IAEX,4CAA4C3E,KAAK2E,IAC5D;;;;;;;;;;;AC3DO,IAAIC;;;;;;ACGX,IAAI/F,GDFJ,SAAW+F,GACPA,EAAiC,QAAI,UACrCA,EAAgC,OAAI,SACpCA,EAAgC,OAAI,SACpCA,EAA+B,MAAI,OACtC,CALD,CAKGA,IAA4BA,EAA0B,CAAA,ICy/BzD,SAASC,EAAUC,GACf,YAAgB7K,IAAT6K,EAAqBA,EAAO,EAAI,CAC3C,CAGA,SAASC,EAAY7J,GACjB,MAAY,cAARA,EACO,cACJA,CACX;;;;;;;;;ACrgCA,IAAIkE,EAAI4F,EAAIC,EAQZ,MAAMC,EAAkBrL,SAAWA,QAAQT,KAAOS,QAAQT,IAAI+L,uBACxDC,OAAOvL,QAAQT,IAAI+L,wBACnB,GACAE,EAAgJ,QAAjIL,EAAmF,QAA7E5F,EAAiB,OAAZvF,cAAgC,IAAZA,aAAqB,EAASA,QAAQyL,gBAA6B,IAAPlG,OAAgB,EAASA,EAAGmG,YAAyB,IAAPP,EAAgBA,EAAkF,QAA5EC,EAAiB,OAAZpL,cAAgC,IAAZA,aAAqB,EAASA,QAAQ2L,eAA4B,IAAPP,OAAgB,EAASA,EAAGQ,MAAM,GAC1S,GAAIJ,EAAa,CAEb,GADcD,OAAOC,EAAYrE,MAAM,YAAY,IACvCkE,EACR,MAAMxJ,MAAM,sDAAsDwJ,sGAE1E,CAEA,MAAM9L,EAAMS,QAAUA,QAAQT,IAAM,CAAA,EAC9BsM,GAAS,IDnBR,MACH,WAAAxG,CAAYyG,GACR9G,EAAQ8G,CACX,CACD,KAAAC,CAAMC,EAAW/I,GACb,MAAMqC,EAAO/D,OAAO0K,OAAO,CACvBC,WAAO9L,EACP+L,WAAO/L,EACPgM,aAAShM,EACTgC,YAAQhC,EACRiM,mBAAejM,EACfkM,mBAAelM,EACfmM,YAAQnM,EACRgB,WAAOhB,EACPoM,aAASpM,EACTqM,eAAWrM,EACXsM,UAAMtM,EACNuM,eAAWvM,EACXwM,YAAQxM,EACRyM,YAAQzM,EACR0M,QAAI1M,EACJiB,SAAKjB,GACN6C,GAGGD,EE5BP,SAA2B+J,GAC9B,GAAI9D,MAAM+D,QAAQD,GACd,OAAOA,EAAUvN,KAAIyN,GAAkB,iBAANA,EAAiBA,EAAI,GAAKA,IAE/DF,EAAYA,EAAUjI,OACtB,IAAI+B,EAAI,EACJqG,EAAQ,KACRvF,EAAI,KACJwF,EAAU,KACd,MAAMnK,EAAO,GACb,IAAK,IAAIoK,EAAK,EAAGA,EAAKL,EAAU1M,OAAQ+M,IACpCF,EAAQvF,EACRA,EAAIoF,EAAUjD,OAAOsD,GAEX,MAANzF,GAAcwF,GAQdxF,IAAMwF,EACNA,EAAU,KAEE,MAANxF,GAAmB,MAANA,GAAewF,IAClCA,EAAUxF,GAET3E,EAAK6D,KACN7D,EAAK6D,GAAK,IACd7D,EAAK6D,IAAMc,GAfS,MAAVuF,GACFrG,IAgBZ,OAAO7D,CACX,CFLqBqK,CAAkBrB,GAGzBsB,EAAqC,iBAAdtB,EAEvBuB,EAk7Bd,SAAwBA,GACpB,MAAMC,EAAc,GACdC,EAAWlM,OAAOmM,OAAO,MAC/B,IAAIC,GAAS,EAGbpM,OAAOI,KAAK4L,GAAShH,SAAQ,SAAUlF,GACnCmM,EAAYlN,KAAK,GAAGsN,OAAOL,EAAQlM,GAAMA,GACjD,IAGI,KAAOsM,GAAQ,CACXA,GAAS,EACT,IAAK,IAAI9G,EAAI,EAAGA,EAAI2G,EAAYnN,OAAQwG,IACpC,IAAK,IAAIuG,EAAKvG,EAAI,EAAGuG,EAAKI,EAAYnN,OAAQ+M,IAAM,CAIhD,GAHkBI,EAAY3G,GAAGjF,QAAO,SAAUiM,GAC9C,OAAuC,IAAhCL,EAAYJ,GAAIlD,QAAQ2D,EACnD,IAC8BxN,OAAQ,CAClBmN,EAAY3G,GAAK2G,EAAY3G,GAAG+G,OAAOJ,EAAYJ,IACnDI,EAAYM,OAAOV,EAAI,GACvBO,GAAS,EACT,KACH,CACJ,CAER,CAYD,OATAH,EAAYjH,SAAQ,SAAUwH,GAI1B,MAAMC,GAHND,EAAaA,EAAWnM,QAAO,SAAUiM,EAAGhH,EAAGoH,GAC3C,OAAOA,EAAK/D,QAAQ2D,KAAOhH,CACvC,KACqCqH,WACX9N,IAAd4N,GAAgD,iBAAdA,IAClCP,EAASO,GAAaD,EAElC,IACWN,CACX,CAz9BwBU,CAAe5M,OAAO0K,OAAO1K,OAAOmM,OAAO,MAAOpI,EAAK4G,QACjEI,EAAgB/K,OAAO0K,OAAO,CAChC,oBAAoB,EACpB,wBAAwB,EACxB,kBAAkB,EAClB,gBAAgB,EAChB,6BAA6B,EAC7B,4BAA4B,EAC5B,iBAAiB,EACjB,sBAAsB,EACtB,sBAAsB,EACtB,kBAAmB,MACnB,iBAAiB,EACjB,4BAA4B,EAC5B,cAAc,EACd,uBAAuB,EACvB,uBAAuB,EACvB,iBAAiB,EACjB,gBAAgB,EAChB,2BAA2B,GAC5B3G,EAAKgH,eACF8B,EAAW7M,OAAO0K,OAAO1K,OAAOmM,OAAO,MAAOpI,EAAKkH,SACnDH,EAAgB/G,EAAK+G,eAAiB,GACtCI,EAAYnH,EAAKmH,UACjB4B,EAAiB/B,EAAc,cAC/BgC,EAAeD,EAAiB,KAAO,IACvCE,EAAahN,OAAOmM,OAAO,MAC3Bc,EAAYjN,OAAOmM,OAAO,MAE1BZ,EAAKxH,EAAKwH,IAAM9H,EAAMyJ,OACtBC,EAAQ,CACVnB,QAAShM,OAAOmM,OAAO,MACvBiB,OAAQpN,OAAOmM,OAAO,MACtBkB,MAAOrN,OAAOmM,OAAO,MACrBmB,QAAStN,OAAOmM,OAAO,MACvBoB,QAASvN,OAAOmM,OAAO,MACvBqB,OAAQxN,OAAOmM,OAAO,MACtBf,UAAWpL,OAAOmM,OAAO,MACzBsB,QAASzN,OAAOmM,OAAO,MACvBuB,MAAO1N,OAAOmM,OAAO,MACrBwB,UAAW3N,OAAOmM,OAAO,MACzB/L,KAAM,IAEJwN,EAAW,kCACXC,EAAiB,IAAIxF,OAAO,MAAQ0C,EAAc,mBAAqB,QAC7E,GAAGsB,OAAOtI,EAAK6G,OAAS,IAAIvK,OAAOyN,SAAS9I,SAAQ,SAAU+I,GAC1D,MAAMjO,EAAqB,iBAARiO,EAAmBA,EAAIjO,IAAMiO,EAE1CC,EAAahO,OAAOI,KAAK2N,GAAK9P,KAAI,SAAU6B,GAM9C,MALsB,CAClB+K,QAAS,QACTQ,OAAQ,UACRC,OAAQ,WAESxL,EACxB,IAAEO,OAAOyN,SAASnB,MAEfqB,IACAb,EAAMa,GAAYlO,IAAO,GAE7BqN,EAAMC,OAAOtN,IAAO,EACpBqN,EAAM/M,KAAKrB,KAAKe,EAC5B,IACQ,GAAGuM,OAAOtI,EAAK8G,SAAW,IAAIxK,OAAOyN,SAAS9I,SAAQ,SAAUlF,GAC5DqN,EAAME,MAAMvN,IAAO,EACnBqN,EAAM/M,KAAKrB,KAAKe,EAC5B,IACQ,GAAGuM,OAAOtI,EAAKsH,QAAU,IAAIhL,OAAOyN,SAAS9I,SAAQ,SAAUlF,GAC3DqN,EAAMG,QAAQxN,IAAO,EACrBqN,EAAM/M,KAAKrB,KAAKe,EAC5B,IACQ,GAAGuM,OAAOtI,EAAKuH,QAAU,IAAIjL,OAAOyN,SAAS9I,SAAQ,SAAUlF,GAC3DqN,EAAMI,QAAQzN,IAAO,EACrBqN,EAAM/M,KAAKrB,KAAKe,EAC5B,IACQ,GAAGuM,OAAOtI,EAAKlE,OAAS,IAAIQ,OAAOyN,SAAS9I,SAAQ,SAAUlF,GAC1DqN,EAAMK,OAAO1N,IAAO,EACpBqN,EAAM/M,KAAKrB,KAAKe,EAC5B,IACQ,GAAGuM,OAAOtI,EAAKqH,WAAa,IAAI/K,OAAOyN,SAAS9I,SAAQ,SAAUlF,GAC9DqN,EAAM/B,UAAUtL,IAAO,EACvBqN,EAAM/M,KAAKrB,KAAKe,EAC5B,IACiC,iBAAdiE,EAAKoH,MACZnL,OAAOC,QAAQ8D,EAAKoH,MAAMnG,SAAQ,EAAElF,EAAKC,MAChB,iBAAVA,IACPoN,EAAMO,MAAM5N,GAAOC,EACnBoN,EAAM/M,KAAKrB,KAAKe,GACnB,IAGkB,iBAAhBiE,EAAKiH,QACZhL,OAAOC,QAAQ8D,EAAKiH,QAAQhG,SAAQ,EAAElF,EAAKC,MAClB,mBAAVA,IACPoN,EAAMQ,UAAU7N,GAAOC,EACvBoN,EAAM/M,KAAKrB,KAAKe,GACnB,SAGkB,IAAhBiE,EAAKlD,SACR6G,MAAM+D,QAAQ1H,EAAKlD,SAAkC,iBAAhBkD,EAAKlD,OAE1C,GAAGwL,OAAOtI,EAAKlD,QAAQR,OAAOyN,SAAS9I,SAAQ,SAAUlF,GACrDqN,EAAMM,QAAQ3N,IAAO,CACzC,IAE4C,iBAAhBiE,EAAKlD,QACjBb,OAAOC,QAAQ8D,EAAKlD,QAAQmE,SAAQ,EAAElF,EAAKC,MAClB,kBAAVA,GAAwC,mBAAVA,IACrCoN,EAAMM,QAAQ3N,GAAOC,EACxB,KAwpBb,YAA0B0B,GACtBA,EAAKuD,SAAQ,SAAUiJ,GACnBjO,OAAOI,KAAK6N,GAAO,CAAE,GAAEjJ,SAAQ,SAAUlF,GAIjCqN,EAAMnB,QAAQlM,KAElBqN,EAAMnB,QAAQlM,GAAO,GAAGuM,OAAOL,EAAQlM,IAAQ,IAE/CqN,EAAMnB,QAAQlM,GAAKuM,OAAOvM,GAAKkF,SAAQ,SAAUuE,GAC7C,GAAI,IAAI3E,KAAK2E,IAAMwB,EAAc,wBAAyB,CACtD,MAAM3E,EAAIoC,EAAUe,GAChBnD,IAAMtG,IAA0C,IAAnCqN,EAAMnB,QAAQlM,GAAK6I,QAAQvC,KACxC+G,EAAMnB,QAAQlM,GAAKf,KAAKqH,GACxB4G,EAAW5G,IAAK,EAEvB,CACzB,IAEoB+G,EAAMnB,QAAQlM,GAAKuM,OAAOvM,GAAKkF,SAAQ,SAAUuE,GAC7C,GAAIA,EAAEzK,OAAS,GAAK,QAAQ8F,KAAK2E,IAAMwB,EAAc,wBAAyB,CAC1E,MAAM3E,EAAI4C,EAAWO,EAAG,KACpBnD,IAAMtG,IAA0C,IAAnCqN,EAAMnB,QAAQlM,GAAK6I,QAAQvC,KACxC+G,EAAMnB,QAAQlM,GAAKf,KAAKqH,GACxB4G,EAAW5G,IAAK,EAEvB,CACzB,IACoB+G,EAAMnB,QAAQlM,GAAKkF,SAAQ,SAAUuE,GACjC4D,EAAMnB,QAAQzC,GAAK,CAACzJ,GAAKuM,OAAOc,EAAMnB,QAAQlM,GAAKO,QAAO,SAAU6N,GAChE,OAAO3E,IAAM2E,CAChB,IACzB,IACA,GACA,GACS,CAtrBDC,CAAcpK,EAAKjE,IAAKkM,EAASjI,EAAKkH,QAASkC,EAAMC,QAErDpN,OAAOI,KAAKyM,GAAU7H,SAAQ,SAAUlF,IACnCqN,EAAMnB,QAAQlM,IAAQ,IAAIkF,SAAQ,SAAU2F,GACzCkC,EAASlC,GAASkC,EAAS/M,EAC3C,GACA,IACQ,IAAI+C,EAAQ,KA+xBR7C,OAAOI,KAAK+M,EAAMK,QAAQY,MAAKtO,GACvBuO,EAAgBvO,EAAKqN,EAAMC,SAC3BvK,EAAQvC,MAAMiL,EAAG,6DAA8DzL,KACxE,KAEFuO,EAAgBvO,EAAKqN,EAAMO,SAChC7K,EAAQvC,MAAMiL,EAAG,4DAA6DzL,KACvE,KApyBnB,IAAIwO,EAAW,GACf,MAAM1Q,EAAOoC,OAAO0K,OAAO1K,OAAOmM,OAAO,MAAO,CAAEoC,EAAG,KAI/CC,EAAa,CAAA,EACnB,IAAK,IAAIlJ,EAAI,EAAGA,EAAI7D,EAAK3C,OAAQwG,IAAK,CAClC,MAAMZ,EAAMjD,EAAK6D,GACXmJ,EAAe/J,EAAIiC,QAAQ,SAAU,OAC3C,IAAI+H,EACA5O,EACA6O,EACAC,EACAC,EACA9O,EAEJ,GAAY,OAAR2E,GAAgB,KAAKE,KAAKF,IAAQoK,EAAqBpK,GACvDqK,EAAerK,OAGd,IAAI+J,EAAa7I,MAAM,cAAe,CAEvCmJ,EAAerK,GACf,QAEH,CACI,GAAIA,EAAIkB,MAAM,YAAemF,EAAc,wBAA0BrG,EAAIkB,MAAM,SAIhFgJ,EAAIlK,EAAIkB,MAAM,0BAEJ,OAANgJ,GAAclH,MAAM+D,QAAQmD,IAAMA,EAAE9P,QAAU,IAC1CuP,EAAgBO,EAAE,GAAIzB,EAAMC,QAC5B9H,EAAI0J,EAAS1J,EAAGsJ,EAAE,GAAInN,EAAMmN,EAAE,KAEc,IAAvCP,EAAgBO,EAAE,GAAIzB,EAAMO,OAEjCpI,EAAI2J,EAAS3J,EAAGsJ,EAAE,GAAInN,EAAMmN,EAAE,IAG9BM,EAAON,EAAE,GAAIA,EAAE,IAAI,SAI1B,GAAIlK,EAAIkB,MAAMiI,IAAmB9C,EAAc,oBAChD6D,EAAIlK,EAAIkB,MAAMiI,GACJ,OAANe,GAAclH,MAAM+D,QAAQmD,IAAMA,EAAE9P,QAAU,IAC9CgB,EAAM8O,EAAE,GACRM,EAAOpP,IAAKuO,EAAgBvO,EAAKqN,EAAMC,SAAU,EAAC,UAIrD,GAAI1I,EAAIkB,MAAM,WAAcmF,EAAc,wBAA0BrG,EAAIkB,MAAM,WAC/EgJ,EAAIlK,EAAIkB,MAAM,YACJ,OAANgJ,GAAclH,MAAM+D,QAAQmD,IAAMA,EAAE9P,QAAU,IAC9CgB,EAAM8O,EAAE,GACJP,EAAgBvO,EAAKqN,EAAMC,QAE3B9H,EAAI0J,EAAS1J,EAAGxF,EAAK2B,IAEsB,IAAtC4M,EAAgBvO,EAAKqN,EAAMO,OAGhCpI,EAAI2J,EAAS3J,EAAGxF,EAAK2B,IAGrBoN,EAAOpN,EAAK6D,EAAI,QACHzG,IAATgQ,GAAwBA,EAAKjJ,MAAM,QACnCiJ,EAAKjJ,MAAMgI,IACVS,EAAgBvO,EAAKqN,EAAME,QAC3BgB,EAAgBvO,EAAKqN,EAAMK,QAIvB,iBAAiB5I,KAAKiK,IAC3BK,EAAOpP,EAAK+O,GACZvJ,KAGA4J,EAAOpP,EAAKqP,EAAarP,KARzBoP,EAAOpP,EAAK+O,GACZvJ,YAaX,GAAIZ,EAAIkB,MAAM,YACfgJ,EAAIlK,EAAIkB,MAAM,wBACJ,OAANgJ,GAAclH,MAAM+D,QAAQmD,IAAMA,EAAE9P,QAAU,GAC9CoQ,EAAON,EAAE,GAAIA,EAAE,SAIlB,GAAIlK,EAAIkB,MAAM,aAAelB,EAAIkB,MAAMgI,GACxCiB,EAAOpN,EAAK6D,EAAI,GAChBsJ,EAAIlK,EAAIkB,MAAM,aACJ,OAANgJ,GAAclH,MAAM+D,QAAQmD,IAAMA,EAAE9P,QAAU,IAC9CgB,EAAM8O,EAAE,QACK/P,IAATgQ,GAAuBA,EAAKjJ,MAAM,OACjCyI,EAAgBvO,EAAKqN,EAAME,QAC3BgB,EAAgBvO,EAAKqN,EAAMK,QAK5B0B,EAAOpP,EAAKqP,EAAarP,KAJzBoP,EAAOpP,EAAK+O,GACZvJ,WAOP,GAAIZ,EAAIkB,MAAM,aAAelB,EAAIkB,MAAMgI,GAAW,CACnDe,EAAUjK,EAAI2F,MAAM,GAAI,GAAGxF,MAAM,IACjC6J,GAAS,EACT,IAAK,IAAIU,EAAI,EAAGA,EAAIT,EAAQ7P,OAAQsQ,IAAK,CAErC,GADAP,EAAOnK,EAAI2F,MAAM+E,EAAI,GACjBT,EAAQS,EAAI,IAAyB,MAAnBT,EAAQS,EAAI,GAAY,CAC1CrP,EAAQ2E,EAAI2F,MAAM+E,EAAI,GACtBtP,EAAM6O,EAAQS,GACVf,EAAgBvO,EAAKqN,EAAMC,QAE3B9H,EAAI0J,EAAS1J,EAAGxF,EAAK2B,EAAM1B,IAEgB,IAAtCsO,EAAgBvO,EAAKqN,EAAMO,OAEhCpI,EAAI2J,EAAS3J,EAAGxF,EAAK2B,EAAM1B,GAG3BmP,EAAOpP,EAAKC,GAEhB2O,GAAS,EACT,KACH,CACD,GAAa,MAATG,EAAJ,CAKA,GAAI,WAAWjK,KAAK+J,EAAQS,KACxB,2BAA2BxK,KAAKiK,KACO,IAAvCR,EAAgBQ,EAAM1B,EAAME,OAAkB,CAC9C6B,EAAOP,EAAQS,GAAIP,GACnBH,GAAS,EACT,KACH,CACD,GAAIC,EAAQS,EAAI,IAAMT,EAAQS,EAAI,GAAGxJ,MAAM,MAAO,CAC9CsJ,EAAOP,EAAQS,GAAIP,GACnBH,GAAS,EACT,KACH,CAEGQ,EAAOP,EAAQS,GAAID,EAAaR,EAAQS,IAf3C,MAFGF,EAAOP,EAAQS,GAAIP,EAmB1B,CACD/O,EAAM4E,EAAI2F,OAAO,GAAG,GACfqE,GAAkB,MAAR5O,IACPuO,EAAgBvO,EAAKqN,EAAMC,QAE3B9H,EAAI0J,EAAS1J,EAAGxF,EAAK2B,IAEsB,IAAtC4M,EAAgBvO,EAAKqN,EAAMO,OAGhCpI,EAAI2J,EAAS3J,EAAGxF,EAAK2B,IAGrBoN,EAAOpN,EAAK6D,EAAI,QACHzG,IAATgQ,GAAwB,cAAcjK,KAAKiK,KAC3CA,EAAKjJ,MAAMgI,IACVS,EAAgBvO,EAAKqN,EAAME,QAC3BgB,EAAgBvO,EAAKqN,EAAMK,QAIvB,iBAAiB5I,KAAKiK,IAC3BK,EAAOpP,EAAK+O,GACZvJ,KAGA4J,EAAOpP,EAAKqP,EAAarP,KARzBoP,EAAOpP,EAAK+O,GACZvJ,MAWf,MACI,GAAIZ,EAAIkB,MAAM,aACflB,EAAIkB,MAAMgI,IACVS,EAAgB3J,EAAI2F,MAAM,GAAI8C,EAAME,OAEpCvN,EAAM4E,EAAI2F,MAAM,GAChB6E,EAAOpP,EAAKqP,EAAarP,QAExB,IAAY,OAAR4E,EAAc,CACnB4J,EAAW7M,EAAK4I,MAAM/E,EAAI,GAC1B,KACH,CACI,GAAIyF,EAAc,sBAAuB,CAC1CuD,EAAW7M,EAAK4I,MAAM/E,GACtB,KACH,CAEGyJ,EAAerK,EAClB,EACJ,CAyCD,SAASqK,EAAerK,GACpB,MAAM2K,EAAqBC,EAAkB,IAAK5K,GAChB,iBAAvB2K,GAAiE,iBAAvBA,GACjDzR,EAAK2Q,EAAExP,KAAKsQ,EAEnB,CAGD,SAASJ,EAAS3J,EAAGxF,EAAK2B,EAAM8N,GAC5B,IAAI1D,EACA2D,EAAQnB,EAAgBvO,EAAKqN,EAAMO,OAIvC,GADA8B,EAAyB,iBAAVA,GAAsBC,MAAMD,GAAS,EAAIA,EAC1C,IAAVA,EAKA,OAJKE,EAAYH,KACb1M,EAAQvC,MAAMiL,EAAG,8BAA+BzL,KAEpDoP,EAAOpP,EAAKqP,EAAarP,IAClBwF,EAEX,IAAIqK,EAAYD,EAAYH,GAAqB,EAAI,EACrD,GAAIxE,EAAc,sBAEVtJ,EAAK3C,QAAUwG,EAAI,GAAKqK,EAAYH,IACpC3M,EAAQvC,MAAMiL,EAAG,qCAAsCzL,KAE3D6P,EAAYH,MAEX,CAGD,IAAK3D,EAAKvG,EAAI,EAAGuG,EAAKpK,EAAK3C,UAClB2C,EAAKoK,GAAIjG,MAAM,aAAenE,EAAKoK,GAAIjG,MAAMgI,IAAakB,EAAqBrN,EAAKoK,KAD1DA,IAE3B8D,IAIJA,EAAYH,IACZ3M,EAAQvC,MAAMiL,EAAG,qCAAsCzL,IAC9D,CACD,IAAI8P,EAAW1K,KAAKC,IAAIwK,EAAWH,GAKnC,KAJKE,EAAYH,IAAsBK,EAAW,IAC9CV,EAAOpP,EAAKyP,GACZK,KAEC/D,EAAKvG,EAAI,EAAGuG,EAAM+D,EAAWtK,EAAI,EAAIuG,IACtCqD,EAAOpP,EAAK2B,EAAKoK,IAErB,OAAQvG,EAAIsK,CACf,CAID,SAASZ,EAAS1J,EAAGxF,EAAK2B,EAAM8N,GAC5B,IAAIM,EAAY,GACZhB,EAAOU,GAAqB9N,EAAK6D,EAAI,GAEzC,MAAMwK,EAAazB,EAAgBvO,EAAKqN,EAAMO,OAC9C,GAAIW,EAAgBvO,EAAKqN,EAAME,SAAY,iBAAiBzI,KAAKiK,GAC7DgB,EAAU9Q,MAAK,QAEd,GAAI2Q,EAAYb,IAChBa,EAAYH,IAAsB,KAAK3K,KAAKiK,KAAUjB,EAAShJ,KAAKiK,KAAUC,EAAqBD,IAGpG,QAAsBhQ,IAAlBgO,EAAS/M,GAAoB,CAC7B,MAAMiQ,EAASlD,EAAS/M,GACxB+P,EAAYnI,MAAM+D,QAAQsE,GAAUA,EAAS,CAACA,EACjD,MAEA,CAEIL,EAAYH,IACbM,EAAU9Q,KAAKiR,EAAalQ,EAAKyP,GAAmB,IAExD,IAAK,IAAI1D,EAAKvG,EAAI,EAAGuG,EAAKpK,EAAK3C,WACrBiM,EAAc,kBAAoB8E,EAAU/Q,OAAS,GACtDgR,GAAoC,iBAAfA,GAA2BD,EAAU/Q,QAAUgR,KAEzEjB,EAAOpN,EAAKoK,IACR,KAAKjH,KAAKiK,IAAUjB,EAAShJ,KAAKiK,IAAUC,EAAqBD,IALlChD,IAOnCvG,EAAIuG,EACJgE,EAAU9Q,KAAKiR,EAAalQ,EAAK+O,EAAM9C,GAE9C,CASD,MAL0B,iBAAf+D,IAA6BA,GAAcD,EAAU/Q,OAASgR,GACpEL,MAAMK,IAAoC,IAArBD,EAAU/Q,UAChC+D,EAAQvC,MAAMiL,EAAG,qCAAsCzL,KAE3DoP,EAAOpP,EAAK+P,GACLvK,CACV,CACD,SAAS4J,EAAOpP,EAAKmQ,EAAKC,EAAoBnE,GAC1C,GAAI,IAAInH,KAAK9E,IAAQiL,EAAc,wBAAyB,CACxD,MAAMJ,EAAQ7K,EAAI+E,MAAM,KAAK5G,KAAI,SAAUkS,GACvC,OAAO3H,EAAU2H,EACrC,IAAmBnR,KAAK,KACRoR,EAAYtQ,EAAK6K,EACpB,CACD,MAAM5K,EAAQiQ,EAAalQ,EAAKmQ,EAAKC,GAC/BG,EAAWvQ,EAAI+E,MAAM,KA0B3B,GAzBAyL,EAAO1S,EAAMyS,EAAUtQ,GAEnBoN,EAAMnB,QAAQlM,IACdqN,EAAMnB,QAAQlM,GAAKkF,SAAQ,SAAUuE,GACjC,MAAMgH,EAAgBhH,EAAE1E,MAAM,KAC9ByL,EAAO1S,EAAM2S,EAAexQ,EAChD,IAGgBsQ,EAASvR,OAAS,GAAKiM,EAAc,kBAEpCoC,EAAMnB,QAAQqE,EAAS,KAAO,IAAIrL,SAAQ,SAAUuE,GACjD,IAAIgH,EAAgBhH,EAAE1E,MAAM,KAE5B,MAAM2L,EAAI,GAAGnE,OAAOgE,GACpBG,EAAEC,QACFF,EAAgBA,EAAclE,OAAOmE,IAG/BrD,EAAMnB,QAAQlM,IAAQ,IAAI4Q,SAASH,EAAcvR,KAAK,OACxDsR,EAAO1S,EAAM2S,EAAexQ,EAEpD,IAGgBsO,EAAgBvO,EAAKqN,EAAM/B,aAAeiD,EAAgBvO,EAAKqN,EAAMC,QAAS,CACjE,CAACtN,GAAKuM,OAAOc,EAAMnB,QAAQlM,IAAQ,IAC3CkF,SAAQ,SAAUlF,GACnBE,OAAO2Q,eAAenC,EAAY1O,EAAK,CACnC8Q,YAAY,EACZjQ,IAAG,IACQsP,EAEX,GAAAlP,CAAIhB,GACAkQ,EAAuB,iBAAVlQ,EAAqB0D,EAAM2H,UAAUrL,GAASA,CAC9D,GAEzB,GACa,CACJ,CACD,SAASqQ,EAAYtQ,EAAK6K,GAChBwC,EAAMnB,QAAQlM,IAAQqN,EAAMnB,QAAQlM,GAAKhB,SAC3CqO,EAAMnB,QAAQlM,GAAO,CAAC6K,GACtBqC,EAAWrC,IAAS,GAElBwC,EAAMnB,QAAQrB,IAAUwC,EAAMnB,QAAQrB,GAAO7L,QAC/CsR,EAAYzF,EAAO7K,EAE1B,CACD,SAASkQ,EAAalQ,EAAKmQ,EAAKC,GAExBA,IACAD,EA2dhB,SAAqBA,GACjB,MAAuB,iBAARA,GACC,MAAXA,EAAI,IAAyB,MAAXA,EAAI,IACvBA,EAAIA,EAAInR,OAAS,KAAOmR,EAAI,GAE1BA,EADAA,EAAIY,UAAU,EAAGZ,EAAInR,OAAS,EAExC,CAjesBgS,CAAYb,KAGlB5B,EAAgBvO,EAAKqN,EAAME,QAAUgB,EAAgBvO,EAAKqN,EAAMK,UAC7C,iBAARyC,IACPA,EAAc,SAARA,GAEd,IAAIlQ,EAAQ2H,MAAM+D,QAAQwE,GACpBA,EAAIhS,KAAI,SAAUqO,GAAK,OAAOgD,EAAkBxP,EAAKwM,MACrDgD,EAAkBxP,EAAKmQ,GAY7B,OAVI5B,EAAgBvO,EAAKqN,EAAMK,UAAYkC,EAAY3P,IAA2B,kBAAVA,KACpEA,EAAQ0J,KAGR4E,EAAgBvO,EAAKqN,EAAM/B,YAAciD,EAAgBvO,EAAKqN,EAAMC,UAEhErN,EADA2H,MAAM+D,QAAQwE,GACNA,EAAIhS,KAAKgS,GAAiBxM,EAAM2H,UAAU6E,KAE1CxM,EAAM2H,UAAU6E,IAEzBlQ,CACV,CACD,SAASuP,EAAkBxP,EAAKC,GAC5B,IAAKgL,EAAc,6BAAuC,MAARjL,EAC9C,OAAOC,EACX,IAAKsO,EAAgBvO,EAAKqN,EAAMG,WAAae,EAAgBvO,EAAKqN,EAAME,SAAW3F,MAAM+D,QAAQ1L,GAAQ,EAC1EuJ,EAAgBvJ,IAAUgL,EAAc,kBAAqBf,OAAO+G,cAAc7L,KAAKE,MAAM4L,WAAW,GAAGjR,SAC1G2P,EAAY3P,IAAUsO,EAAgBvO,EAAKqN,EAAMI,YACzExN,EAAQiK,OAAOjK,GAEtB,CACD,OAAOA,CACV,CA6CD,SAASkR,EAAgBpQ,EAAQqQ,GAC7BlR,OAAOI,KAAKS,GAAQmE,SAAQ,SAAUlF,GAClC,MAAMC,EAAQc,EAAOf,GACfqR,EAAUD,EAAOA,EAAO,IAAMpR,EAAMA,EAIrB,iBAAVC,GAAgC,OAAVA,IAAmB2H,MAAM+D,QAAQ1L,IAAUgL,EAAc,gBAEtFkG,EAAgBlR,EAAOoR,KAKlBC,EAAOxT,EAAMuT,EAAQtM,MAAM,OAAUwJ,EAAgB8C,EAAShE,EAAMC,SAAWrC,EAAc,oBAC9FmE,EAAOiC,EAASpR,EAGxC,GACS,CASD,SAASsR,EAAazT,EAAM0T,GACxB,QAAyB,IAAdpG,EACP,OACJ,MAAMqG,EAA8B,iBAAdrG,EAAyBA,EAAY,GACrDlN,EAAMyF,EAAMzF,MAClBgC,OAAOI,KAAKpC,GAAKgH,SAAQ,SAAUwM,GAC/B,GAAe,KAAXD,GAAmD,IAAlCC,EAAOC,YAAYF,EAAQ,GAAU,CAEtD,MAAMnR,EAAOoR,EAAO3M,MAAM,MAAM5G,KAAI,SAAU6B,EAAKwF,GAI/C,OAHU,IAANA,IACAxF,EAAMA,EAAI+Q,UAAUU,EAAOzS,SAExB0J,EAAU1I,EACzC,KAC0BwR,GAAcnE,EAAMM,QAAQrN,EAAKpB,KAAK,QAAWsS,KAAgBF,EAAOxT,EAAMwC,IAChF8O,EAAO9O,EAAKpB,KAAK,KAAMhB,EAAIwT,GAElC,CACjB,GACS,CAgCD,SAASE,EAAwBzD,EAAKjC,EAASa,EAAU8E,GAAS,GAC9D3R,OAAOI,KAAKyM,GAAU7H,SAAQ,SAAUlF,GAC/BsR,EAAOnD,EAAKnO,EAAI+E,MAAM,QACvByL,EAAOrC,EAAKnO,EAAI+E,MAAM,KAAMgI,EAAS/M,IACjC6R,IACA1E,EAAUnN,IAAO,IACpBkM,EAAQlM,IAAQ,IAAIkF,SAAQ,SAAUuE,GAC/B6H,EAAOnD,EAAK1E,EAAE1E,MAAM,OAExByL,EAAOrC,EAAK1E,EAAE1E,MAAM,KAAMgI,EAAS/M,GAC3D,IAEA,GACS,CACD,SAASsR,EAAOnD,EAAK7N,GACjB,IAAIwR,EAAI3D,EACHlD,EAAc,kBACf3K,EAAO,CAACA,EAAKpB,KAAK,OACtBoB,EAAKiK,MAAM,GAAI,GAAGrF,SAAQ,SAAUlF,GAChC8R,EAAKA,EAAE9R,IAAQ,CAAE,CACjC,IACY,MAAMA,EAAMM,EAAKA,EAAKtB,OAAS,GAC/B,MAAiB,iBAAN8S,GAGA9R,KAAO8R,CACrB,CACD,SAAStB,EAAOrC,EAAK7N,EAAML,GACvB,IAAI6R,EAAI3D,EACHlD,EAAc,kBACf3K,EAAO,CAACA,EAAKpB,KAAK,OACtBoB,EAAKiK,MAAM,GAAI,GAAGrF,SAAQ,SAAUlF,GAGhCA,EAAM6J,EAAY7J,GACD,iBAAN8R,QAA6B/S,IAAX+S,EAAE9R,KAC3B8R,EAAE9R,GAAO,IAES,iBAAX8R,EAAE9R,IAAqB4H,MAAM+D,QAAQmG,EAAE9R,KAE1C4H,MAAM+D,QAAQmG,EAAE9R,IAChB8R,EAAE9R,GAAKf,KAAK,CAAE,GAGd6S,EAAE9R,GAAO,CAAC8R,EAAE9R,GAAM,CAAA,GAGtB8R,EAAIA,EAAE9R,GAAK8R,EAAE9R,GAAKhB,OAAS,IAG3B8S,EAAIA,EAAE9R,EAE1B,IAGY,MAAMA,EAAM6J,EAAYvJ,EAAKA,EAAKtB,OAAS,IACrC+S,EAAcxD,EAAgBjO,EAAKpB,KAAK,KAAMmO,EAAMC,QACpD0E,EAAepK,MAAM+D,QAAQ1L,GACnC,IAAIgS,EAAYhH,EAAc,8BAEzBgH,GAAa1D,EAAgBvO,EAAKqN,EAAMO,SACzCqE,GAAY,IACNrC,EAAYkC,EAAE9R,KAA8B,IAArBqN,EAAMO,MAAM5N,IAAgB4H,MAAM+D,QAAQmG,EAAE9R,KAAS8R,EAAE9R,GAAKhB,SAAWqO,EAAMO,MAAM5N,MAC5G8R,EAAE9R,QAAOjB,IAGbkB,IAAU0J,IACVmI,EAAE9R,GAAO2J,EAAUmI,EAAE9R,IAEhB4H,MAAM+D,QAAQmG,EAAE9R,IACjBiS,GAAaF,GAAeC,EAC5BF,EAAE9R,GAAOiL,EAAc,4BAA8B6G,EAAE9R,GAAKuM,OAAOtM,IAAU2H,MAAM+D,QAAQmG,EAAE9R,GAAK,IAAM8R,EAAE9R,GAAO,CAAC8R,EAAE9R,KAAOuM,OAAO,CAACtM,IAE7HgS,GAAajE,QAAQ+D,KAAiB/D,QAAQgE,GAIpDF,EAAE9R,GAAO8R,EAAE9R,GAAKuM,OAAO,CAACtM,IAHxB6R,EAAE9R,GAAOC,OAMGlB,IAAX+S,EAAE9R,IAAsB+R,EAC7BD,EAAE9R,GAAOgS,EAAe/R,EAAQ,CAACA,IAE5BgS,QAA0BlT,IAAX+S,EAAE9R,IACtBuO,EAAgBvO,EAAKqN,EAAMK,SAC3Ba,EAAgBvO,EAAKqN,EAAME,OAI3BuE,EAAE9R,GAAOC,EAHT6R,EAAE9R,GAAO,CAAC8R,EAAE9R,GAAMC,EAKzB,CAuCD,SAASsO,EAAgBvO,EAAKkS,GAC1B,MAAMC,EAAU,GAAG5F,OAAOc,EAAMnB,QAAQlM,IAAQ,GAAIA,GAC9CM,EAAOJ,OAAOI,KAAK4R,GACnBE,EAAWD,EAAQ7D,MAAKtO,GAAOM,EAAKsQ,SAAS5Q,KACnD,QAAOoS,GAAWF,EAAKE,EAC1B,CACD,SAASC,EAAWrS,GAChB,MAAMsS,EAAYpS,OAAOI,KAAK+M,GAE9B,MADgB,GAAGd,OAAO+F,EAAUnU,KAAIoU,GAAKlF,EAAMkF,MACpCC,MAAK,SAAUN,GAC1B,OAAOtK,MAAM+D,QAAQuG,GAAQA,EAAKtB,SAAS5Q,GAAOkS,EAAKlS,EACvE,GACS,CAgCD,SAASgP,EAAqBpK,GAC1B,OAAOqG,EAAc,4BAEzB,SAAyBrG,GAGrB,GAFAA,EAAMA,EAAIiC,QAAQ,SAAU,MAExBjC,EAAIkB,MAAMgI,GACV,OAAO,EAGX,GAjCJ,SAA0BlJ,GAEtB,GAAIA,EAAIkB,MAAMgI,KAAclJ,EAAIkB,MAAM,WAClC,OAAO,EAEX,IACIiJ,EADA0D,GAAc,EAElB,MAAM5D,EAAUjK,EAAI2F,MAAM,GAAGxF,MAAM,IACnC,IAAK,IAAIuK,EAAI,EAAGA,EAAIT,EAAQ7P,OAAQsQ,IAAK,CAErC,GADAP,EAAOnK,EAAI2F,MAAM+E,EAAI,IAChB+C,EAAWxD,EAAQS,IAAK,CACzBmD,GAAc,EACd,KACH,CACD,GAAK5D,EAAQS,EAAI,IAAyB,MAAnBT,EAAQS,EAAI,IACtB,MAATP,GACC,WAAWjK,KAAK+J,EAAQS,KAAO,2BAA2BxK,KAAKiK,IAC/DF,EAAQS,EAAI,IAAMT,EAAQS,EAAI,GAAGxJ,MAAM,MACxC,KAEP,CACD,OAAO2M,CACV,CAWOC,CAAiB9N,GACjB,OAAO,EAaX,OAvDJ,SAA0BA,KAAQ+N,GAE9B,MADgB,GAAGpG,UAAUoG,GACdH,MAAK,SAAUI,GAC1B,MAAM9M,EAAQlB,EAAIkB,MAAM8M,GACxB,OAAO9M,GAASuM,EAAWvM,EAAM,GACjD,GACS,CAiDW+M,CAAiBjO,EAVF,uBAUuBmJ,EAR3B,eAEQ,gBAEA,kBAEW,oBAGzC,CAxBsD+E,CAAgBlO,EACtE,CA0BD,SAASyK,EAAarP,GAClB,OAAKuO,EAAgBvO,EAAKqN,EAAME,QAC3BgB,EAAgBvO,EAAKqN,EAAMK,WAC5B,GAAG1N,MAAS+M,IAQIgG,EAUxB,SAAmB/S,GACf,IAAI+S,EAAOrJ,EAAwBsJ,QASnC,OARIzE,EAAgBvO,EAAKqN,EAAMG,SAC3BuF,EAAOrJ,EAAwBuJ,OAC1B1E,EAAgBvO,EAAKqN,EAAMI,SAChCsF,EAAOrJ,EAAwBwJ,OAC1B3E,EAAgBvO,EAAKqN,EAAME,OAChCwF,EAAOrJ,EAAwBsJ,QAC1BzE,EAAgBvO,EAAKqN,EAAMC,UAChCyF,EAAOrJ,EAAwByJ,OAC5BJ,CACV,CAzB6BK,CAAUpT,GAKxB,CACR,CAAC0J,EAAwBsJ,UAAU,EACnC,CAACtJ,EAAwBuJ,QAAS,GAClC,CAACvJ,EAAwBwJ,aAASnU,EAClC,CAAC2K,EAAwByJ,OAAQ,IAE1BJ,IAdAhG,EAAS/M,GAOxB,IAAwB+S,CAFvB,CAwBD,SAASnD,EAAYyD,GACjB,YAAetU,IAARsU,CACV,CAgBD,OA1lBA9B,EAAazT,GAAM,GACnByT,EAAazT,GAAM,GAmOnB,SAAmBA,GACf,MAAMwV,EAAepT,OAAOmM,OAAO,MAGnCuF,EAAwB0B,EAAcjG,EAAMnB,QAASa,GACrD7M,OAAOI,KAAK+M,EAAMM,SAASzI,SAAQ,SAAUqO,GACzC,MAAMC,EAAa1V,EAAKyV,IAAcD,EAAaC,GACnD,GAAIC,EACA,IACI,IAAIzS,EAAS,KACb,MAAM0S,EAAqB9P,EAAMrF,QAAQqF,EAAM5F,MAAOyV,GAChDE,EAAgBrG,EAAMM,QAAQ4F,GACpC,GAA6B,mBAAlBG,EAA8B,CACrC,IACI3S,EAAS2S,EAAcD,EAC1B,CACD,MAAO7H,GACH7K,EAAS6K,CACZ,CACD,GAAI7K,aAAkBP,MAElB,YADAuC,EAAQhC,EAGf,MAEGA,EAAS4C,EAAMgQ,QAAQF,GAE3BtC,EAAgBpQ,EACnB,CACD,MAAO6S,GAGa,qBAAZA,EAAGC,KACH9Q,EAAQ6Q,EACH9V,EAAKyV,KACVxQ,EAAQvC,MAAMiL,EAAG,+BAAgC+H,IACxD,CAErB,GACS,CAzQDM,CAAUhW,QAkSuB,IAAlBkN,GACPA,EAAc9F,SAAQ,SAAU6O,GAC5B5C,EAAgB4C,EACpC,IAnSQnC,EAAwB9T,EAAMuP,EAAMnB,QAASa,GAAU,GA0TvD,SAAwBjP,GACpB,IAAIoN,EACJ,MAAM8I,EAAU,IAAIC,IACpB/T,OAAOI,KAAKxC,GAAMoH,SAAQ,SAAUlF,GAChC,IAAKgU,EAAQE,IAAIlU,KACbkL,EAASqD,EAAgBvO,EAAKqN,EAAMQ,WACd,mBAAX3C,GACP,IACI,MAAMjL,EAAQuP,EAAkBxP,EAAKkL,EAAOpN,EAAKkC,KAChD,GAAGuM,OAAOc,EAAMnB,QAAQlM,IAAQ,GAAIA,GAAMkF,SAAQiP,IAC/CH,EAAQI,IAAID,GACZrW,EAAKqW,GAAOlU,CAAK,GAExB,CACD,MAAOsB,GACHwB,EAAQxB,CACX,CAGzB,GACS,CA7UD8S,CAAevW,GACXmN,EAAc,wBA6UlB,SAA4BnN,GACxBuP,EAAM/M,KAAK4E,SAASlF,KAEXA,EAAI6I,QAAQ,WAEQ,IAAd/K,EAAKkC,KACZlC,EAAKkC,QAAOjB,EAAS,GAGhC,CArVGuV,CAAmBxW,GAEvBoC,OAAOI,KAAK+M,EAAMK,QAAQxI,SAAQ,SAAUlF,GACnCsR,EAAOxT,EAAMkC,EAAI+E,MAAM,OACxBqK,EAAOpP,EAAK,EAC5B,IAEYgN,GAAkBwB,EAASxP,SAC3BlB,EAAKmP,GAAgB,IACzBuB,EAAStJ,SAAQ,SAAUlF,GACvBlC,EAAKmP,GAAchO,KAAKe,EACpC,IACYiL,EAAc,yBAA2BA,EAAc,iBACvD/K,OAAOI,KAAKxC,GAAMyC,QAAOP,GAAe,OAARA,GAAgBA,EAAI4Q,SAAS,OAAM1L,SAAQlF,WAChElC,EAAKkC,EAAI,IAGpBiL,EAAc,kBAEd,GAAGsB,UAAUrM,OAAOI,KAAK4L,GAAS/N,KAAIoU,GAAKrG,EAAQqG,MAAKrN,SAAQ2F,IACxDI,EAAc,yBAA2BJ,EAAM+F,SAAS,aACjD9S,EAAK+M,EAAM9F,MAAM,KAAK5G,KAAIkS,GAAQ3H,EAAU2H,KAAOnR,KAAK,aAE5DpB,EAAK+M,EAAM,IA4jBnB,CACHqB,QAAShM,OAAO0K,OAAO,CAAA,EAAIyC,EAAMnB,SACjCpO,KAAMoC,OAAO0K,OAAO8D,EAAY5Q,GAChCmN,cAAeA,EACfkC,UAAWjN,OAAO0K,OAAO,CAAA,EAAIuC,GAC7BpK,MAAOA,EACPmK,WAAYhN,OAAO0K,OAAO,CAAA,EAAIsC,GAErC,GCz7B0B,CAC3BnP,IAAKY,QAAQZ,IACbG,IAAK,IACMA,EAEXkP,SACA9B,YACAhN,UAGAqV,QAAUtV,IACN,GAAuB,oBAAZsV,QACP,OAAOA,QAAQtV,GAEd,GAAIA,EAAKyH,MAAM,WAEhB,OAAOyO,KAAK7J,MAAM8J,EAAanW,EAAM,SAGrC,MAAMmC,MAAM,+CACf,IAGHiU,GAAc,SAAgB9S,EAAMsC,GAEtC,OADeuG,GAAOE,MAAM/I,EAAK4I,QAAStG,GAC5BnG,IAClB,EEtDA,SAAS4W,KACL,OAQS/V,QAAQyL,SAASuK,WAHChW,QAAQiW,WAJxB,EACJ,CACX,CFmDAH,GAAYI,SAAW,SAAUlT,EAAMsC,GACnC,OAAOuG,GAAOE,MAAM/I,EAAK4I,QAAStG,EACtC,EACAwQ,GAAY/L,UAAYA,EACxB+L,GAAYvL,WAAaA,EACzBuL,GAAYjL,gBAAkBA,EG5DvB,MAAMsL,WAAetU,MACxB,WAAAwD,CAAY+Q,GACRC,MAAMD,GAAO,eACb5Q,KAAK0P,KAAO,SACRrT,MAAMyU,mBACNzU,MAAMyU,kBAAkB9Q,KAAM2Q,GAErC,ECJL,IAAeI,GAAA,CACX7V,GAAI,CACAmV,eACAW,aAEJ/H,SACA9O,UACA8W,OAASC,IACL,IACI,OAAOC,EAASD,GAAME,QACzB,CACD,MAAOhU,GACH,OAAO,CACV,IChBT,IAAIiU,GACJ,MAAMC,GACF,WAAAzR,CAAYC,GAERA,EAAOA,GAAQ,GACfE,KAAKuR,UAAYzR,EAAKyR,WAAa,YACnCvR,KAAKwR,YAA0C,kBAArB1R,EAAK0R,aAA4B1R,EAAK0R,YAChExR,KAAKyR,OAAS3R,EAAK2R,QAAU,KAC7BzR,KAAK0R,mBAAwD,kBAA5B5R,EAAK4R,oBAAmC5R,EAAK4R,mBAE9E1R,KAAK2R,MAAQ5V,OAAOmM,OAAO,MAC3BlI,KAAK4R,WAAa,EACrB,CACD,EAAAtK,IAAM9J,GACF,GAA4B,iBAAjBqU,UAAU,GACjB,OAAO7R,KAAK8R,eAAeD,UAAU,MAAOA,WAEhD,MAAMzS,EAAM5B,EAAKgP,QACjB,IAAIuF,EAAK,aAqBT,MApBqC,mBAA1BvU,EAAKA,EAAK3C,OAAS,KAC1BkX,EAAKvU,EAAKkL,OACdqJ,EAAKA,GAAM,aACN/R,KAAK2R,MAAM3R,KAAKyR,SACjBzR,KAAKgS,mBAEJhS,KAAK2R,MAAM3R,KAAKyR,QAAQrS,IAAQY,KAAKwR,aACtCxR,KAAK2R,MAAM3R,KAAKyR,QAAQrS,GAAOA,EAI/BY,KAAKiS,cAAc,CACfV,UAAWvR,KAAKuR,UAChBE,OAAQzR,KAAKyR,OACbM,QAIJA,IAEGV,GAAKpI,OAAOiJ,MAAMb,GAAKpI,OAAQ,CAACjJ,KAAK2R,MAAM3R,KAAKyR,QAAQrS,IAAQA,GAAKgJ,OAAO5K,GACtF,CACD,GAAA2U,GACI,MAAM3U,EAAOiG,MAAM2O,UAAUhM,MAAMiM,KAAKR,WAClCS,EAAW9U,EAAKgP,QAChB+F,EAAS/U,EAAKgP,QACdgG,EAAWhV,EAAKgP,QACtB,IAAIuF,EAAK,aAC4B,mBAA1BvU,EAAKA,EAAK3C,OAAS,KAC1BkX,EAAKvU,EAAKkL,OACT1I,KAAK2R,MAAM3R,KAAKyR,SACjBzR,KAAKgS,kBACT,IAAI5S,EAAmB,IAAboT,EAAiBF,EAAWC,EACtC,GAAIvS,KAAK2R,MAAM3R,KAAKyR,QAAQa,GAAW,CAEnClT,EADcY,KAAK2R,MAAM3R,KAAKyR,QAAQa,GACb,IAAbE,EAAiB,MAAQ,QACxC,EAEIxS,KAAK2R,MAAM3R,KAAKyR,QAAQa,IAAatS,KAAKwR,aAC3CxR,KAAK2R,MAAM3R,KAAKyR,QAAQa,GAAY,CAChCG,IAAKH,EACLI,MAAOH,GAKXvS,KAAKiS,cAAc,CACfV,UAAWvR,KAAKuR,UAChBE,OAAQzR,KAAKyR,OACbM,QAIJA,IAIJ,MAAMY,EAAS,CAACvT,GAGhB,OAFKA,EAAIsF,QAAQ,OACbiO,EAAO7X,KAAK0X,GACTnB,GAAKpI,OAAOiJ,MAAMb,GAAKpI,OAAQ0J,EAAOvK,OAAO5K,GACvD,CACD,SAAAoV,CAAUnB,GACNzR,KAAKyR,OAASA,CACjB,CACD,SAAAoB,GACI,OAAO7S,KAAKyR,MACf,CACD,YAAAqB,CAAa9I,GACJhK,KAAK2R,MAAM3R,KAAKyR,SACjBzR,KAAKgS,kBACT,IAAK,MAAMnW,KAAOmO,EACVjO,OAAOqW,UAAUW,eAAeV,KAAKrI,EAAKnO,KAC1CmE,KAAK2R,MAAM3R,KAAKyR,QAAQ5V,GAAOmO,EAAInO,GAG9C,CACD,cAAAiW,CAAekB,KAAUxV,GACrB,IAAI4B,EAAM,GAQV,OAPA4T,EAAMjS,SAAQ,SAAUkS,EAAM5R,GAC1B,MAAMZ,EAAMjD,EAAK6D,EAAI,GACrBjC,GAAO6T,OACY,IAARxS,IACPrB,GAAO,KAEvB,IACeY,KAAKsH,GAAG4K,MAAMlS,KAAM,CAACZ,GAAKgJ,OAAO,GAAGhC,MAAMiM,KAAK7U,EAAM,IAC/D,CACD,aAAAyU,CAAciB,GACVlT,KAAK4R,WAAW9W,KAAKoY,GACU,IAA3BlT,KAAK4R,WAAW/W,QAChBmF,KAAKmT,oBACZ,CACD,kBAAAA,GACI,MAAMC,EAAQpT,KACRkT,EAAOlT,KAAK4R,WAAW,GAEvBL,EAAY2B,EAAK3B,UACjBE,EAASyB,EAAKzB,OACdM,EAAKmB,EAAKnB,GACVsB,EAAerT,KAAKsT,mBAAmB/B,EAAWE,GAClD8B,EAAmBnD,KAAKoD,UAAUxT,KAAK2R,MAAMF,GAAS,KAAM,GAClEJ,GAAKnW,GAAG8V,UAAUqC,EAAcE,EAAkB,SAAS,SAAUnW,GACjEgW,EAAMxB,WAAWpF,QACb4G,EAAMxB,WAAW/W,OAAS,GAC1BuY,EAAMD,qBACVpB,EAAG3U,EACf,GACK,CACD,eAAA4U,GACI,IAAIyB,EAAe,CAAA,EACnB,MAAMJ,EAAerT,KAAKsT,mBAAmBtT,KAAKuR,UAAWvR,KAAKyR,QAClE,IAEQJ,GAAKnW,GAAGmV,eACRoD,EAAerD,KAAK7J,MAAM8K,GAAKnW,GAAGmV,aAAagD,EAAc,UAEpE,CACD,MAAOjW,GAIH,GAHIA,aAAesW,cACftW,EAAIuW,QAAU,mBAAqBN,GAEtB,WAAbjW,EAAI2B,KAGJ,MAAM3B,EAFNqW,EAAe,CAAA,CAGtB,CACDzT,KAAK2R,MAAM3R,KAAKyR,QAAUgC,CAC7B,CACD,kBAAAH,CAAmB/B,EAAWE,GAC1B,IAAIP,EAAOG,GAAKlX,QAAQoX,EAAW,KAAME,EAAS,SAClD,GAAIzR,KAAK0R,qBAAuB1R,KAAK4T,gBAAgB1C,KAAUO,EAAOjE,YAAY,KAAM,CAEpF,MAAM6F,EAAehC,GAAKlX,QAAQoX,EAAW,KAAME,EAAO7Q,MAAM,KAAK,GAAK,SACtEZ,KAAK4T,gBAAgBP,KACrBnC,EAAOmC,EACd,CACD,OAAOnC,CACV,CACD,eAAA0C,CAAgB1C,GACZ,OAAOG,GAAKJ,OAAOC,EACtB,EC7JL,MCYM2C,GAA0B,+DAEhC,IAAIC,GACJ,IACEA,GAAYC,cAA0BC,IACxC,CAAE,MAAOvM,GACPqM,GAAYtZ,QAAQZ,KACtB,CAGA,IDtBckG,GCsBCmU,GAAA,CACbC,OAAQ,CACNC,iBACAC,eAEJC,MC1Be,SAAavU,GAC1B,ObmRK,SAAeA,EAAMwG,GAExB,OADA9G,EAAQ8G,EACD,IAAI1G,EAAG,CACVP,OAAQS,aAAmC,EAASA,EAAKT,SA1BtC,iBAAZ7E,SAAwBA,QAAQqD,QAAUrD,QAAQqD,OAAOmD,QACzDxG,QAAQqD,OAAOmD,QAEnB,IAwBHf,KAAMH,aAAmC,EAASA,EAAKG,MAE/D,CazRSoU,CAAMvU,EAAM,CACjBL,YAAcL,GACL,IAAIA,GAAKvE,OAElB6G,YACAzB,QAEJ,EDmBEqU,OE5Ba,SAAUjQ,EAAOkQ,GAC/B,IACIC,EADAC,EAAMta,EAAQ,IAAKkK,GAOvB,IANiB8M,EAASsD,GAEfC,gBACVD,EAAME,EAAQF,MAGF,CAEZ,GADAD,EAAMD,EAASE,EAAKG,EAAYH,IAC5BD,EAAK,OAAOra,EAAQsa,EAAKD,GAE7B,GADAC,EAAME,EAAQH,EAAMC,GAChBD,IAAQC,EAAK,KACjB,CACF,EFeEI,OAAShZ,GACArB,QAAQT,IAAI8B,GAErBiZ,UACAC,cAAe,KACb,MAAM,IAAIpE,GAAOkD,GAAuB,EAE1CmB,kBLzBK,WACH,OAAOxa,QAAQb,KAAK4W,KACxB,EKwBE0E,aAjBmBnB,GAAUlH,UAAU,EAAGkH,GAAUtG,YAAY,kBAiBlChT,QAAQZ,MACxCsb,OAAEA,GACAhb,KAAM,CACJib,WACAR,UACAS,UACA/Z,WACAlB,WAEFK,QAAS,CACPb,KAAM,IAAMa,QAAQb,KACpBC,IAAKY,QAAQZ,IACbyb,YAAa,CAACC,EAAS1G,IAASpU,QAAQ6a,YAAYC,EAAS1G,GAC7D2G,SAAU,IAAM/a,QAAQ+a,SACxBC,KAAMhb,QAAQgb,KACdC,SAAUjb,QAAQib,SAClBC,gBAA8C,IAA3Blb,QAAQqD,OAAOmD,QAA0BxG,QAAQqD,OAAOmD,QAAU,MAEvFqP,eACAb,QAAS,KACP,MAAM,IAAImB,GA9CQ,kCA8CY,EAEhCgF,iBAAkB,KAChB,MAAM,IAAIhF,GAAOkD,GAAuB,EAE1CpU,YAAcL,GACL,IAAIA,GAAKvE,OAElB+a,MDjEY9V,GCiED,CACTyR,UAAWpX,EAAQ2Z,GAAW,oBAC9BtC,aAAa,GF4FV,SAAc1R,EAAM+V,GACvBxE,GAAOwE,EACP,MAAMD,EAAO,IAAItE,GAAKxR,GACtB,MAAO,CACHwH,GAAIsO,EAAKtO,GAAGwO,KAAKF,GACjBzD,IAAKyD,EAAKzD,IAAI2D,KAAKF,GACnBhD,UAAWgD,EAAKhD,UAAUkD,KAAKF,GAC/B/C,UAAW+C,EAAK/C,UAAUiD,KAAKF,GAC/B9C,aAAc8C,EAAK9C,aAAagD,KAAKF,GACrCnE,OAAQmE,EAAKnE,OAErB,CCzKSsE,CAAMjW,GAAMuR,MIJd,SAAS2E,GAAqBC,EAAQC,EAAU7E,EAAMsC,GACzDtC,EAAK6C,OAAOC,eAAe8B,EAAQC,EAAUvC,EACjD,CACO,SAASwC,GAAgBF,EAAQ5E,GACpCA,EAAK6C,OAAOE,mBAAmB6B,EAAQ,SAC3C,CACO,SAASG,GAAWC,GACvB,OAAOta,OAAOI,KAAKka,EACvB,CCRO,SAASC,GAAUC,GACtB,QAAUA,KACJA,EAAaC,MACc,mBAAtBD,EAAaC,IAC5B,CCJO,SAASC,GAAaC,GACzB,MACMC,EAD6BD,EAAIhU,QAAQ,UAAW,KACV9B,MAAM,wBAChDgW,EAAS,cACTC,EAAeF,EAAanK,QAClC,IAAKqK,EACD,MAAM,IAAIxa,MAAM,wBAAwBqa,KAC5C,MAAMI,EAAgB,CAClBJ,IAAKG,EAAanU,QAAQkU,EAAQ,IAClCG,SAAU,GACVC,SAAU,IAoBd,OAlBAL,EAAa5V,SAAQ,CAAC2V,EAAKrV,KACvB,IAAI4V,GAAW,EACfP,EAAMA,EAAIhU,QAAQ,MAAO,IACrB,WAAW/B,KAAK+V,IAAQrV,IAAMsV,EAAa9b,OAAS,IACpDoc,GAAW,GACX,MAAMtW,KAAK+V,GACXI,EAAcE,SAASlc,KAAK,CACxB4b,IAAKA,EAAIhU,QAAQkU,EAAQ,IAAIhW,MAAM,KACnCqW,aAIJH,EAAcC,SAASjc,KAAK,CACxB4b,IAAKA,EAAIhU,QAAQkU,EAAQ,IAAIhW,MAAM,KACnCqW,YAEP,IAEEH,CACX,CC7BA,MAAMI,GAAe,CAAC,QAAS,SAAU,QAAS,SAAU,QAAS,SAC9D,SAASC,GAAQC,EAAMC,EAAMC,GAUhC,IACI,IAAIC,EAAW,EACf,MAAO5a,EAAQ6a,EAAiBC,GAVT,iBAATL,EACR,CAAC,CAAEL,SAAU,GAAIC,SAAU,IAAMI,EAAMC,GACvC,CACEZ,GAAa,OAAOW,KACpBC,EACAC,GAMF9Z,EAAO,GAAG4I,MAAMiM,KAAKmF,GAC3B,KAAOha,EAAK3C,aAAoCD,IAA1B4C,EAAKA,EAAK3C,OAAS,IACrC2C,EAAKkL,MACT,MAAM7N,EAAS4c,GAAWja,EAAK3C,OAC/B,GAAIA,EAAS8B,EAAOoa,SAASlc,OACzB,MAAM,IAAI8V,GAAO,2CAA2ChU,EAAOoa,SAASlc,uBAAuB2C,EAAK3C,WAE5G,MAAM6c,EAAgB/a,EAAOoa,SAASlc,OAAS8B,EAAOqa,SAASnc,OAC/D,GAAIA,EAAS6c,EACT,MAAM,IAAI/G,GAAO,6CAA6C+G,kBAA8B7c,MAEhG8B,EAAOoa,SAAShW,SAAQgW,IACpB,MACMY,EAAe1I,GADTzR,EAAKgP,SAGY,IADPuK,EAASL,IAAIta,QAAOwS,GAAQA,IAAS+I,GAAyB,MAAT/I,IACzD/T,QACd+c,GAAkBD,EAAcZ,EAASL,IAAKa,GAClDA,GAAY,CAAC,IAEjB5a,EAAOqa,SAASjW,SAAQiW,IACpB,GAAoB,IAAhBxZ,EAAK3C,OACL,OACJ,MACM8c,EAAe1I,GADTzR,EAAKgP,SAGY,IADPwK,EAASN,IAAIta,QAAOwS,GAAQA,IAAS+I,GAAyB,MAAT/I,IACzD/T,QACd+c,GAAkBD,EAAcX,EAASN,IAAKa,GAClDA,GAAY,CAAC,GAEpB,CACD,MAAOna,GACH7B,QAAQsc,KAAKza,EAAI0a,MACpB,CACL,CACA,SAAS7I,GAAUxO,GACf,OAAIgD,MAAM+D,QAAQ/G,GACP,QAEM,OAARA,EACE,cAEGA,CAClB,CACA,SAASmX,GAAkBD,EAAcI,EAAcR,GACnD,MAAM,IAAI5G,GAAO,WAAWuG,GAAaK,IAAa,gCAAgCQ,EAAahd,KAAK,wBAAwB4c,KACpI,CC3DO,MAAMK,GACT,WAAAnY,CAAYoY,GACRjY,KAAKkY,iBAAmB,GACxBlY,KAAKmY,QAAU,GACfnY,KAAKiY,MAAQA,CAChB,CACD,aAAAG,CAAc7D,EAAU8D,EAAuBC,GAAS,EAAMC,GAAU,GAEpE,GADApB,GAAQ,iDAAkD,CAAC5C,EAAU8D,EAAuBC,GAASzG,UAAUhX,QAC3G4I,MAAM+D,QAAQ+M,GAAW,CACzB,IAAK,IAAIlT,EAAI,EAAGA,EAAIkT,EAAS1Z,OAAQwG,IAAK,CACtC,GAA2B,mBAAhBkT,EAASlT,GAChB,MAAMhF,MAAM,iCAEhB,MAAMsO,EAAI4J,EAASlT,GACnBsJ,EAAE0N,sBAAwBA,EAC1B1N,EAAE2N,OAASA,CACd,CACD7U,MAAM2O,UAAUtX,KAAKoX,MAAMlS,KAAKkY,iBAAkB3D,EACrD,MACI,GAAwB,mBAAbA,EAAyB,CACrC,MAAM5J,EAAI4J,EACV5J,EAAE0N,sBAAwBA,EAC1B1N,EAAE2N,OAASA,EACX3N,EAAE4N,QAAUA,EACZvY,KAAKkY,iBAAiBpd,KAAKyZ,EAC9B,CACD,OAAOvU,KAAKiY,KACf,CACD,mBAAAO,CAAoBjE,EAAUkE,GAC1B,MAAM1Q,EAAU/H,KAAKiY,MAAMS,aAS3B,OARA1Y,KAAKkY,iBAAmBlY,KAAKkY,iBAAiB9b,QAAOuO,IACjD,MAAMqD,EAAU,IAAKjG,EAAQ0Q,IAAW,GAAKA,GAC7C,OAAK9N,EAAE8N,SAGKzK,EAAQvB,SAAS9B,EAAE8N,OAAO,IAE1ClE,EAASkE,OAASA,EACXzY,KAAKoY,cAAc7D,GAAU,GAAM,GAAM,EACnD,CACD,aAAAoE,GACI,OAAO3Y,KAAKkY,gBACf,CACD,MAAAU,GACI5Y,KAAKmY,QAAQrd,KAAK,IAAIkF,KAAKkY,kBAC9B,CACD,QAAAW,GACI,MAAMC,EAAS9Y,KAAKmY,QAAQzP,WACb9N,IAAXke,IACA9Y,KAAKkY,iBAAmBY,EAC/B,CACD,KAAAC,GACI/Y,KAAKkY,iBAAmBlY,KAAKkY,iBAAiB9b,QAAOuO,GAAKA,EAAE2N,QAC/D,EAUE,SAASU,GAAgBrf,EAAMse,EAAOgB,EAAaC,GACtD,OAAOD,EAAYE,QAAO,CAACC,EAAKC,KAC5B,GAAIA,EAAWhB,wBAA0Ba,EACrC,OAAOE,EAEX,GAAIC,EAAWd,QAAS,CACpB,GAAIc,EAAWxJ,QACX,OAAOuJ,EACXC,EAAWxJ,SAAU,CACxB,CACD,GAAIyG,GAAU8C,GACV,OAAOA,EACF5C,MAAK8C,GAActc,QAAQuc,IAAI,CAACD,EAAYD,EAAWC,EAAYrB,OACnEzB,MAAK,EAAE8C,EAAYE,KAAmBzd,OAAO0K,OAAO6S,EAAYE,KAEpE,CACD,MAAMC,EAASJ,EAAWD,EAAKnB,GAC/B,OAAO3B,GAAUmD,GACXA,EAAOjD,MAAKgD,GAAiBzd,OAAO0K,OAAO2S,EAAKI,KAChDzd,OAAO0K,OAAO2S,EAAKK,EAC5B,IACF9f,EACP,CCtFO,SAAS+f,GAAiBC,EAAWC,EAAeC,EAAe,CAACzc,IACvE,MAAMA,CAAG,IAET,IACI,MAAMqc,EAUY,mBAVQE,EAAaA,IAAcA,EACrD,OAAOrD,GAAUmD,GACXA,EAAOjD,MAAMiD,GAAWG,EAAcH,KACtCG,EAAcH,EACvB,CACD,MAAOrc,GACH,OAAOyc,EAAazc,EACvB,CACL,CCNA,MAAM0c,GAAiB,eAChB,MAAMC,GACT,WAAAla,CAAYma,EAAOC,EAAY/B,EAAkB7G,GAC7CrR,KAAKka,aAAe,IAAIpK,IACxB9P,KAAKma,SAAW,GAChBna,KAAKoa,SAAW,GAChBpa,KAAKmY,QAAU,GACfnY,KAAKqR,KAAOA,EACZrR,KAAKga,MAAQA,EACbha,KAAKkY,iBAAmBA,EACxBlY,KAAKia,WAAaA,CACrB,CACD,YAAAI,CAAa5F,EAAK6F,EAAKC,EAAYza,GAEH,kBAD5BA,EAAOA,GAAQ,IACC0a,UACZ1a,EAAK0a,SAAU,GACd/W,MAAM+D,QAAQ1H,EAAK2a,cACpB3a,EAAK2a,WAAa,CAAC,OACvB,MAAMC,EAAoC,mBAAf5a,EAAK6a,MAAuB7a,EAAK6a,MAAShN,GAAMA,EAC3E7N,EAAK6a,MAAQ,CAAC3Q,EAAK4Q,EAAQC,KACvB,MAAMC,EAAUJ,EAAY1Q,EAAK4Q,EAAQC,GACzC,GAAIC,EAAS,CACT,GAAI9a,KAAKka,aAAanK,IAAI6K,GACtB,OAAOE,EAEP9a,KAAKka,aAAajK,IAAI2K,GAC1B5a,KAAK+a,WAAWD,EACnB,CACD,OAAOA,CAAO,EAElB9a,KAAKqR,KAAKsE,iBAAiB,CAAEnG,QAAS8K,EAAKO,SAAUN,GAAc9F,EAAK3U,EAC3E,CACD,UAAAib,CAAWrE,EAAKsE,EAAaC,EAASC,EAASC,EAAmBC,GAC9D,IAAIrT,EAAU,GACd,MAAMkR,EFgBP,SAAkCkC,GACrC,OAAKA,EAEEA,EAAkBnhB,KAAIqf,IACzBA,EAAWhB,uBAAwB,EAC5BgB,KAHA,EAKf,CEvB4BgC,CAAyBF,GAE7C,GADAD,EAAUA,SAAqB,GAC3BzX,MAAM+D,QAAQkP,GACd,GAyYZ,SAA6BA,GACzB,OAAOA,EAAI4E,OAAMnZ,GAAkB,iBAANA,GACjC,CA3YgBoZ,CAAoB7E,IACnBA,KAAQ3O,GAAW2O,OAGpB,IAAK,MAAMnZ,KAAWmZ,EAClB1W,KAAK+a,WAAWxd,OAIvB,IAyYN,SAAoCmZ,GACvC,MAAsB,iBAARA,IAAqBjT,MAAM+D,QAAQkP,EACrD,CA3YiB8E,CAA2B9E,GAAM,CACtC,IAAInZ,EAAUkG,MAAM+D,QAAQkP,EAAInZ,UAAmC,iBAAhBmZ,EAAInZ,QACjDmZ,EAAInZ,QACJyC,KAAKyb,WAAW/E,GAItB,OAHIA,EAAI3O,UACJxK,EAAU,GAAG6K,OAAO7K,GAAS6K,OAAOsO,EAAI3O,eAC5C/H,KAAK+a,WAAWxd,EAASyC,KAAK0b,YAAYhF,GAAMA,EAAIuE,QAASvE,EAAIwE,QAASxE,EAAIuC,YAAavC,EAAI0E,WAElG,CACI,GAAIO,GAA2BV,GAEhC,YADAjb,KAAK+a,WAAW,CAACrE,GAAKtO,OAAOL,GAAUiT,EAAaC,EAAQA,QAASA,EAAQC,QAASD,EAAQhC,YAAagC,EAAQG,WAEtH,CACD,GAAmB,iBAAR1E,EAAkB,CACzB,MAAMI,EAAgBL,GAAaC,GACnC3O,EAAUA,EAAQ/N,KAAI0M,GAAS+P,GAAa/P,GAAOgQ,MACnD,IAAIkF,GAAY,EAChB,MAAMC,EAAgB,CAAC/E,EAAcJ,KAAKtO,OAAOL,GAAS3L,QAAO+F,IACzD2X,GAAenZ,KAAKwB,KACpByZ,GAAY,GACL,KAIc,IAAzBC,EAAchhB,QAAgB+gB,GAC9BC,EAAc/gB,KAAK,MACnB8gB,IACA9E,EAAcJ,IAAMmF,EAAc,GAClC9T,EAAU8T,EAAczV,MAAM,GAC9BsQ,EAAMA,EAAIhU,QAAQoX,GAAgBhD,EAAcJ,MAEpD3O,EAAQhH,SAAQ2F,IACZ1G,KAAKoa,SAAS1T,GAASoQ,EAAcJ,GAAG,KAExB,IAAhBsE,GACAhb,KAAKga,MAAMzc,QAAQmZ,EAAKsE,EAAaY,EAAW7T,EAASqT,GAE7Dpb,KAAKma,SAASrD,EAAcJ,KAAO,CAC/BoF,SAAUpF,EACVsE,cACAE,UACAD,QAASA,GAAW,CAAE,EACtBhC,cACAmC,aACArE,SAAUD,EAAcC,SACxBC,SAAUF,EAAcE,UAExB4E,IACA5b,KAAK+b,eAAiB/b,KAAKma,SAASrD,EAAcJ,KACzD,CACJ,CACD,kBAAAsF,GACI,OAAOhc,KAAKma,QACf,CACD,WAAA8B,GACI,OAAOlgB,OAAOI,KAAK6D,KAAKma,UAAU/R,OAAOrM,OAAOI,KAAK6D,KAAKoa,UAC7D,CACD,iBAAA8B,GACI,QAASlc,KAAK+b,cACjB,CACD,UAAAI,CAAW5e,EAAS0a,EAAOtb,EAAQyf,EAAcC,EAAUC,GACvD,MAAMC,EAAiBvc,KAAKma,SAAS5c,IACjCyC,KAAKma,SAASna,KAAKoa,SAAS7c,KAC5ByC,KAAK+b,eACHS,EAAiBvE,EAAMwE,qBAAqBC,aAC5CC,EAAiBH,EAAeI,SAASxW,QACzCyW,GAAoBtf,EACtBA,IACAif,EAAeI,SAAS9hB,KAAKyC,GAC7Bif,EAAeM,aAAahiB,KAAKyhB,EAAeT,WAEpD,MAAMiB,EAAgB/c,KAAKgd,gCAAgCH,EAAkBN,EAAgBtE,EAAOtb,EAAOoL,QAAS4U,EAAgBP,EAAcC,EAAUC,GAC5J,OAAOhG,GAAUyG,GACXA,EAAcvG,MAAKiD,GAAUzZ,KAAKid,4BAA4BJ,EAAkBN,EAAgB9C,EAAOyD,UAAWV,EAAgBH,EAAU5C,EAAO1R,QAASkQ,KAC5JjY,KAAKid,4BAA4BJ,EAAkBN,EAAgBQ,EAAcG,UAAWV,EAAgBH,EAAUU,EAAchV,QAASkQ,EACtJ,CACD,+BAAA+E,CAAgCH,EAAkBN,EAAgBtE,EAAOlQ,EAAS4U,EAAgBP,EAAcC,EAAUC,GACtH,MAAMrB,EAAUsB,EAAetB,QAC/B,IAAIkC,EAAalF,EACjB,GAAImF,GAAyBnC,GAAU,CACnChD,EAAMwE,qBAAqBY,mBAAmBzE,SAC9C,MAAM0E,EAAgBrC,EAAQhD,EAAMwE,qBAAqB1D,MAAMhR,GAAUuU,GACzE,GAAIhG,GAAUgH,GACV,OAAOA,EAAc9G,MAAK+G,IC61CnC,IAAyBtT,ED31CZ,OADAkT,GC41CYlT,ED51CiBsT,IC61CC,mBAAzBtT,EAAEwS,mBD71CgCc,EAAStF,EACzCjY,KAAKwd,oBAAoBX,EAAkBN,EAAgBY,EAAYR,EAAgBP,EAAcC,EAAS,GAGhI,MA8ST,SAA2CpB,GACvC,MAA0B,iBAAZA,CAClB,EA/SiBwC,CAAkCxC,KACvChD,EAAMwE,qBAAqBY,mBAAmBzE,SAC9CuE,EAAalF,EAAMwE,qBAAqB1D,MAAMhR,GAC9ChM,OAAOI,KAAKogB,EAAetB,SAASla,SAAQlF,IACxCshB,EAAW1E,OAAO5c,EAAKof,EAAQpf,GAAK,KAG5C,OAAOmE,KAAKwd,oBAAoBX,EAAkBN,EAAgBY,EAAYR,EAAgBP,EAAcC,EAC/G,CACD,mBAAAmB,CAAoBX,EAAkBN,EAAgBY,EAAYR,EAAgBP,EAAcC,GACxFQ,GACAM,EAAWV,qBAAqBY,mBAAmBxE,UAAS,GAC5D7Y,KAAK0d,kBAAkBP,IACvBA,EACKV,qBACAY,mBACArD,MAAMha,KAAK2d,sCAAsChB,EAAgBJ,GAAiBA,EAAevB,aAE1G,MAAMkC,EAAYC,EACbV,qBACAmB,iCAAiC,UAAMhjB,GAAW,EAAMwhB,EAAcC,GAC3E,OAAO/F,GAAU4G,GACXA,EAAU1G,MAAK7c,IAAS,CACtBoO,QAASoV,EAAWxgB,OAAOoL,QAC3BmV,UAAWvjB,MAEb,CACEoO,QAASoV,EAAWxgB,OAAOoL,QAC3BmV,UAAWA,EAEtB,CACD,iBAAAQ,CAAkBzF,GACd,OAASA,EAAMwE,qBAAqBY,mBAAmBQ,oBACiB,IAApE5F,EAAMwE,qBAAqBY,mBAAmBS,WAAWjjB,MAChE,CACD,qCAAA8iB,CAAsChB,EAAgBJ,GAClD,MAAMpa,EAAI2X,GAAenZ,KAAK4b,EAAeT,UACvCS,EAAeT,SAASpZ,QAAQoX,GAAgB,IAAIxa,OACpDid,EAAeT,SACfiC,EAAKpB,EAAevgB,QAAO+F,IACrB2X,GAAenZ,KAAKwB,KAGhC,OADA4b,EAAGjjB,KAAKqH,GACD,MAAM4b,EAAGhjB,KAAK,MACxB,CACD,4BAAAijB,CAA6BnB,EAAkBN,EAAgBW,EAAWV,EAAgBzU,EAASkQ,EAAOgB,EAAagF,GACnH,IAAKhG,EAAMwE,qBAAqByB,eAAgB,CAC5C,MAAMjE,EAAahC,EACdwE,qBACA0B,cAAcpW,EAASkW,EAAehG,EAAMtb,OAAOiC,MAAOie,GAC/DK,EAAYxD,GAAiBwD,GAAWzD,IACpCQ,EAAWR,GACJA,IAEd,CACD,GAAI8C,EAAerB,UAAYjD,EAAMwE,qBAAqByB,eAAgB,CACtEjG,EAAMwE,qBAAqB2B,eAC3B,MAAMC,IAAuBpG,EAAMqG,aAAaxX,cAAc,cAC9DmR,EACKwE,qBACA8B,YAAYrB,EAAWmB,GAAoB,GAAO,GAEvDnB,EAAYxD,GADZwD,EAAYlE,GAAgBkE,EAAWjF,EAAOgB,GAAa,IACnBQ,IACpC,MAAM+E,EAAgBjC,EAAerB,QAAQzB,GAC7C,OAAOnD,GAAUkI,GACXA,EAAchI,MAAK,IAAMiD,IACzBA,CAAM,IAEXoD,GACD5E,EAAMwE,qBAAqBY,mBAAmBoB,mBAE9CnI,GAAU4G,KACTjF,EAAMwE,qBAAqBiC,oBAC5BxB,EAAUyB,OAAM/f,IACZ,IACIqZ,EAAMwE,qBAAqBY,mBAAmBuB,KAAK,KAAMhgB,EAC5D,CACD,MAAOigB,GACN,IAGZ,CAKD,OAJKhC,IACDL,EAAeI,SAASlU,MACxB8T,EAAeM,aAAapU,OAEzBwU,CACV,CACD,2BAAAD,CAA4BJ,EAAkBN,EAAgBW,EAAWV,EAAgBH,EAAUtU,EAASkQ,GACxG,IAAIgG,EAAgB,CAAA,EACpB,GAAI5B,EACA,OAAOa,EACNjF,EAAMwE,qBAAqByB,iBAC5BD,EAAgBje,KAAK8e,oBAAoBvC,EAAgBW,EAAWV,EAAgBvE,IAExF,MAAMgB,EAAcjZ,KAAKkY,iBACpBS,gBACAvS,MAAM,GACNgC,OAAOmU,EAAetD,aACrB8F,EAAmB/F,GAAgBkE,EAAWjF,EAAOgB,GAAa,GACxE,OAAO3C,GAAUyI,GACXA,EAAiBvI,MAAKwI,GAAqBhf,KAAKge,6BAA6BnB,EAAkBN,EAAgByC,EAAmBxC,EAAgBzU,EAASkQ,EAAOgB,EAAagF,KAC/Kje,KAAKge,6BAA6BnB,EAAkBN,EAAgBwC,EAAkBvC,EAAgBzU,EAASkQ,EAAOgB,EAAagF,EAC5I,CACD,mBAAAa,CAAoBvC,EAAgB5iB,EAAMslB,EAAShH,GAC/Cte,EAAK2Q,EAAI3Q,EAAK2Q,EAAElE,MAAM6Y,EAAQrC,SAAS/hB,QACvC,MAAMkc,EAAWwF,EAAexF,SAAS3Q,MAAM,GACzC4Q,EAAWuF,EAAevF,SAAS5Q,MAAM,GACzC6X,EAAgB,CAAA,EAEtB,IADAje,KAAKia,WAAWiF,gBAAgBnI,EAASlc,OAAQlB,EAAK2Q,EAAEzP,QACjDkc,EAASlc,QAAQ,CACpB,MAAMskB,EAASpI,EAASvK,QACxBxM,KAAKof,mBAAmBD,EAAQxlB,EAAMskB,EACzC,CACD,KAAOjH,EAASnc,QAAQ,CACpB,MAAMwkB,EAAQrI,EAASxK,QACvBxM,KAAKof,mBAAmBC,EAAO1lB,EAAMskB,EACxC,CAGD,OAFAtkB,EAAK2Q,EAAI2U,EAAQrC,SAASxU,OAAOzO,EAAK2Q,EAAEtQ,KAAIuS,GAAK,GAAKA,KACtDvM,KAAKsf,uBAAuB3lB,EAAMskB,EAAeje,KAAKuf,kBAAkBhD,EAAeT,UAAW7D,GAC3FgG,CACV,CACD,kBAAAmB,CAAmBI,EAAY7lB,EAAMskB,GACjC,MAAMvH,EAAM8I,EAAW9I,IAAI,GACvB8I,EAAWvI,SACXgH,EAAcvH,GAAO/c,EAAK2Q,EAAEhC,OAAO,GAAGtO,IAAIylB,QAGtC9lB,EAAK2Q,EAAEzP,SACPojB,EAAcvH,GAAO,CAAC+I,OAAO9lB,EAAK2Q,EAAEkC,UAE/C,CACD,iBAAA+S,CAAkBG,GACd,MAAMC,EAAe,CACjBhZ,MAAO,GACPK,QAAS,CAAE,EACXN,MAAO,CAAE,EACTyY,OAAQ,CAAE,GAERxiB,EAAS8Z,GAAaiJ,GAkB5B,OAjBA/iB,EAAOoa,SAAShW,SAAQ6e,IACpB,MAAOlJ,KAAQ3O,GAAW6X,EAAElJ,IACxBkJ,EAAE3I,WACF0I,EAAahZ,MAAM7L,KAAK4b,GACxBiJ,EAAa3Y,QAAQ0P,GAAO,IAEhCiJ,EAAajZ,MAAMgQ,GAAO3O,EAC1B4X,EAAaR,OAAOzI,IAAO,CAAI,IAEnC/Z,EAAOqa,SAASjW,SAAQ4M,IACpB,MAAO+I,KAAQ3O,GAAW4F,EAAE+I,IACxB/I,EAAEsJ,WACF0I,EAAahZ,MAAM7L,KAAK4b,GACxBiJ,EAAa3Y,QAAQ0P,GAAO,IAEhCiJ,EAAajZ,MAAMgQ,GAAO3O,CAAO,IAE9B4X,CACV,CACD,sBAAAL,CAAuB3lB,EAAMskB,EAAe0B,EAAc1H,GACtD,MAAMxa,EAAU1B,OAAO0K,OAAO,CAAE,EAAEwR,EAAMqG,cACxC7gB,EAAQuJ,QAAUjL,OAAO0K,OAAOkZ,EAAa3Y,QAASvJ,EAAQuJ,SAC9D,IAAK,MAAMnL,KAAOE,OAAOI,KAAKwjB,EAAajZ,OACvCjJ,EAAQiJ,MAAM7K,IAAQ4B,EAAQiJ,MAAM7K,IAAQ,IAAIuM,OAAOuX,EAAajZ,MAAM7K,IAE9E4B,EAAQkJ,MAAQlJ,EAAQkJ,MAAMyB,OAAOuX,EAAahZ,OAClDlJ,EAAQb,OAAS,GACjB,MAAMijB,EAAW,GASjB,GARA9jB,OAAOI,KAAK8hB,GAAeld,SAAQlF,IAC/BoiB,EAAcpiB,GAAK7B,KAAI8B,IACf2B,EAAQqJ,cAAc,6BACtBrJ,EAAQ5B,IAAIA,IAAO,GACvBgkB,EAAS/kB,KAAK,KAAKe,KACnBgkB,EAAS/kB,KAAKgB,EAAM,GACtB,KAED+jB,EAAShlB,OACV,OACJ,MAAM+B,EAASb,OAAO0K,OAAO,CAAA,EAAIhJ,EAAQqJ,cAAe,CACpD,cAAc,IAEZnK,EAASqD,KAAKqR,KAAK6D,OAAOxE,SAASmP,EAAU9jB,OAAO0K,OAAO,CAAE,EAAEhJ,EAAS,CAC1EqJ,cAAelK,KAEnB,GAAID,EAAOiC,MACPqZ,EACKwE,qBACAY,mBACAuB,KAAKjiB,EAAOiC,MAAM+U,QAAShX,EAAOiC,WAEtC,CACD,MAAMkhB,EAAiB/jB,OAAOI,KAAK8hB,GACnCliB,OAAOI,KAAK8hB,GAAeld,SAAQlF,IAC/BikB,EAAehlB,QAAQ6B,EAAOoL,QAAQlM,GAAK,IAE/CE,OAAOI,KAAKQ,EAAOhD,MAAMoH,SAAQlF,IACzBikB,EAAerT,SAAS5Q,KACnBoiB,EAAcpiB,KACfoiB,EAAcpiB,GAAOc,EAAOhD,KAAKkC,KAChCmE,KAAK+f,YAAY9H,EAAOpc,KACxBmE,KAAKggB,YAAY/H,EAAOpc,IACzBE,OAAOqW,UAAUW,eAAeV,KAAK1Y,EAAMkC,IAC3CE,OAAOqW,UAAUW,eAAeV,KAAK1V,EAAOhD,KAAMkC,KACjD4H,MAAM+D,QAAQ7N,EAAKkC,KAAS4H,MAAM+D,QAAQ7K,EAAOhD,KAAKkC,KACvDlC,EAAKkC,GAAO,GAAGuM,OAAOzO,EAAKkC,GAAMc,EAAOhD,KAAKkC,IAG7ClC,EAAKkC,GAAOc,EAAOhD,KAAKkC,GAE/B,GAER,CACJ,CACD,WAAAmkB,CAAY/H,EAAOpc,GACf,MAAQmL,QAAS4B,GAAaqP,EAAMqG,aACpC,OAAQviB,OAAOqW,UAAUW,eAAeV,KAAKzJ,EAAU/M,IACnDE,OAAOqW,UAAUW,eAAeV,KAAKzJ,EAAU5I,KAAKqR,KAAK6D,OAAO3Q,UAAU1I,GACjF,CACD,WAAAkkB,CAAY9H,EAAOpc,GACf,MAAMgL,cAAEA,GAAkBoR,EAAMqG,aAChC,OAAQzX,EAAcwH,MAAKlM,GAAKpG,OAAOqW,UAAUW,eAAeV,KAAKlQ,EAAGtG,MACpEgL,EAAcwH,MAAKlM,GAAKpG,OAAOqW,UAAUW,eAAeV,KAAKlQ,EAAGnC,KAAKqR,KAAK6D,OAAO3Q,UAAU1I,KAClG,CACD,mBAAAokB,CAAoBhI,GAChB,IAAKjY,KAAK+b,eACN,OACJ,GAAI/b,KAAK0d,kBAAkBzF,GAAQ,CAC/B,MAAMiI,EAAgBpG,GAAenZ,KAAKX,KAAK+b,eAAeD,UACxD9b,KAAK+b,eAAeD,SACpB9b,KAAK+b,eAAeD,SAASpZ,QAAQ,aAAc,OACzDuV,EACKwE,qBACAY,mBACArD,MAAMkG,EAAelgB,KAAK+b,eAAef,YACjD,CACD,MAAMC,EAAUjb,KAAK+b,eAAed,QACpC,GAAImC,GAAyBnC,GACzB,OAAOA,EAAQhD,GAAO,GAEhB0D,GAA2BV,IACjClf,OAAOI,KAAK8e,GAASla,SAAQlF,IACzBoc,EAAMQ,OAAO5c,EAAKof,EAAQpf,GAAK,GAI1C,CACD,UAAA4f,CAAWzR,GACP,MAAMmW,EErYC,SAAqBC,GAChC,GAAuB,oBAAZ5Q,QACP,OAAO,KACX,IAAK,IAA+C2Q,EAA3C9e,EAAI,EAAGgf,EAAQtkB,OAAOI,KAAKqT,QAAQmC,OAAatQ,EAAIgf,EAAMxlB,OAAQwG,IAEvE,GADA8e,EAAM3Q,QAAQmC,MAAM0O,EAAMhf,IACtB8e,EAAIG,UAAYF,EAChB,OAAOD,EAEf,OAAO,IACX,CF4XoBI,CAAYvW,GACxB,IAAKmW,EACD,MAAM,IAAI9jB,MAAM,qCAAqC2D,KAAKqR,KAAKyD,QAAQ9K,MAC3E,OAAOhK,KAAKwgB,oBAAoBL,EAAItF,SACvC,CACD,mBAAA2F,CAAoB3F,GAChB,OAAO7a,KAAKqR,KAAKnX,KAAKib,SAAS0F,EAAU7a,KAAKqR,KAAKnX,KAAKkb,QAAQyF,GACnE,CACD,WAAAa,EAAY+E,SAAEA,EAAQzF,YAAEA,EAAW0F,KAAEA,IACjC,IAAK,MAAM/f,IAAQ,CAAC8f,EAAUzF,EAAa0F,GAAO,CAC9C,GAAoB,iBAAT/f,IAA8B,IAATA,EAC5B,OAAOA,EACXqV,GAAqBrV,GAAM,EAAMX,KAAKqR,KACzC,CACD,OAAO,CACV,CACD,MAAAuH,GACI5Y,KAAKmY,QAAQrd,KAAK,CACdqf,SAAUna,KAAKma,SACfC,SAAUpa,KAAKoa,SACf2B,eAAgB/b,KAAK+b,gBAE5B,CACD,QAAAlD,GACI,MAAMC,EAAS9Y,KAAKmY,QAAQzP,MAC5BsN,GAAqB8C,OAAQle,EAAWoF,KAAKqR,QAEzC8I,SAAUna,KAAKma,SACfC,SAAUpa,KAAKoa,SACf2B,eAAgB/b,KAAK+b,gBACrBjD,EACP,CACD,KAAAC,GAKI,OAJA/Y,KAAKma,SAAW,GAChBna,KAAKoa,SAAW,GAChBpa,KAAK+b,oBAAiBnhB,EACtBoF,KAAKka,aAAe,IAAIpK,IACjB9P,IACV,EAKE,SAAS2b,GAA2BV,GACvC,MAA2B,iBAAZA,KACTA,EAAQA,SACiB,mBAApBA,EAAQC,OACvB,CAIO,SAASkC,GAAyBnC,GACrC,MAA0B,mBAAZA,CAClB,CGzbO,SAAS0F,GAAU7E,EAAW,CAAA,EAAI1f,EAAS,MAAM,IACpD,MAAM4N,EAAM,CAAA,EAMZ,OALAoM,GAAW0F,GAAU/a,SAAQlF,IACrBO,EAAOP,EAAKigB,EAASjgB,MACrBmO,EAAInO,GAAOigB,EAASjgB,GACvB,IAEEmO,CACX,CCTe,SAAS4W,GAAYC,GACT,oBAAZrmB,SAEX,CAACA,QAAQqD,OAAQrD,QAAQuD,QAAQgD,SAAQ+f,IACrC,MAAMC,EAASD,EACXC,EAAOC,SACPD,EAAOE,OAC+B,mBAA/BF,EAAOC,QAAQJ,aACtBG,EAAOC,QAAQJ,YAAYC,EAC9B,GAET,CCRA,SAASK,GAAUtC,GACf,MAAuB,kBAATA,CAClB,CACO,SAAS5E,GAAM/B,EAAO5G,GACzB,MAAM/J,EAAK+J,EAAKuE,KAAKtO,GACfmB,EAAO,CAAA,EACP0Y,EAAQ,GACd1Y,EAAK2Y,OAAS,SAAgBC,GAC1BF,EAAMrmB,KAAKumB,EACnB,EACI,IAAIC,EAAc,KACdC,EAAoB,KACpBC,GAAiB,EACrB/Y,EAAK+Y,eAAiB,SAA0BpK,GAAO,EAAMC,GACzD,MAAOoK,EAAS9N,GAA2B,iBAATyD,EAAoB,EAAC,EAAMA,GAAQ,CAACA,EAAMC,GAM5E,OALIY,EAAMwE,qBAAqBiF,oBAC3BH,EAAoB5N,GAExB2N,EAAc3N,EACd6N,EAAiBC,EACVhZ,CACf,EACI,IAAIkZ,GAAgB,EACpBlZ,EAAKmW,KAAO,SAAchO,EAAKxT,GAC3B,MAAMwkB,EAAS3J,EAAMwE,qBAAqBoF,oBAC1C,IAAIV,EAAMtmB,OAcL,CAGD,GAFIod,EAAM6J,kBACNlB,IAAY,IACXe,EAAe,CAChBA,GAAgB,EACZH,IACAvJ,EAAM8J,SAAS,SACfH,EAAOhjB,UAEPgS,GAAOxT,IACPwkB,EAAOhjB,MAAMgS,GAAOxT,GACxB,MAAM4kB,EAA6BV,GAAeC,EAC9CS,KACIpR,GAAOxT,IACPwkB,EAAOhjB,MAAM,IACjBgjB,EAAOhjB,MAAMojB,GAEpB,CAED,GADA5kB,EAAMA,GAAO,IAAIuT,GAAOC,GACpBqH,EAAM6J,iBACN,OAAO7J,EAAMzC,KAAK,GAEjB,GAAIyC,EAAMwE,qBAAqBiC,mBAChC,OAAOzG,EAAMzC,KAAK,EAAGpY,GAGrB,MAAMA,CAEb,CAzCG,IAAK,IAAIiE,EAAI8f,EAAMtmB,OAAS,EAAGwG,GAAK,IAAKA,EAAG,CACxC,MAAMud,EAAOuC,EAAM9f,GACnB,GAAI6f,GAAUtC,GAAO,CACjB,GAAIxhB,EACA,MAAMA,EACL,GAAIwT,EACL,MAAMvU,MAAMuU,EACnB,MAEGgO,EAAKhO,EAAKxT,EAAKqL,EAEtB,CA+Bb,EACI,IAAIwZ,EAAS,GACTC,GAAgB,EACpBzZ,EAAKuR,MAAQ,CAACpJ,EAAKoK,IACH,OAARpK,GACAsR,GAAgB,EAChBD,EAAS,GACFxZ,IAEXyZ,GAAgB,EAChBD,EAAOnnB,KAAK,CAAC8V,EAAKoK,GAAe,KAC1BvS,GAEXA,EAAKqV,SAAW,IACLmE,EAEXxZ,EAAKoV,iBAAmB,IACbqE,EAEXzZ,EAAK0Z,uBAAyB,IACnB7a,EAAG,gBAEd,IAAI8a,EAAW,GACf3Z,EAAK4Z,QAAU,CAAC3L,EAAKsE,KACjBoH,EAAStnB,KAAK,CAAC4b,EAAKsE,GAAe,IAAI,EAE3C,IAAI4B,EAAW,GACfnU,EAAKlL,QAAU,SAAiBmZ,EAAKsE,EAAaY,EAAW7T,EAASqT,GAAa,GAC3EQ,IACAgB,EAAWA,EAAS5iB,KAAIsoB,IACpBA,EAAS,IAAK,EACPA,MAGf1F,EAAS9hB,KAAK,CAAC4b,EAAKsE,GAAe,GAAIY,EAAW7T,EAASqT,GACnE,EACI3S,EAAKwT,YAAc,IAAMW,EACzB,IAAI2F,EAAe,CAAA,EACnB9Z,EAAKgY,SAAW,SAAkB+B,EAAW9B,GACrCjd,MAAM+D,QAAQgb,GACdA,EAAUzhB,SAAQqN,IACd3F,EAAKgY,SAASrS,EAAGsS,EAAK,IAGA,iBAAd8B,EACZzmB,OAAOI,KAAKqmB,GAAWzhB,SAAQqN,IAC3B3F,EAAKgY,SAASrS,EAAGoU,EAAUpU,GAAG,IAIlCmU,EAAaC,GAAa9B,CAEtC,EACIjY,EAAKga,gBAAkB,IAAMF,EAC7B,IAAIG,EAAU,GACdja,EAAKka,OAAS/R,IACV8R,EAAQ5nB,KAAK8V,EAAI,EAErB,IACI3Q,EADA2iB,GAAU,EAEdna,EAAKxI,KAAOO,IACRoiB,GAAU,EACV3iB,EAAOO,CAAI,EAEfiI,EAAKoa,QAAU,IACPxR,EAAKwD,OAAO,sBACL,MAEN+N,IACD3iB,EAwWR,WACI,MAAM6iB,EAAW,GACjB,OAAIzR,EAAK7W,QAAQkb,WACNzU,KAAKC,IAAI4hB,EAAUzR,EAAK7W,QAAQkb,YAGhCoN,CAEd,CAhXcC,GACPH,GAAU,GAEP3iB,GAEX,MAAM+iB,EAAwB,mBAoP9B,SAASF,EAASG,EAAOC,EAASC,GAC9B,IAAI9jB,EAAQ,EASZ,OARKoE,MAAM+D,QAAQyb,KACfA,EAAQlnB,OAAO4W,OAAOsQ,GAAOjpB,KAAIqO,GAAK,CAACA,MAE3C4a,EAAMliB,SAAQsH,IACVhJ,EAAQ4B,KAAK8C,IAAIsN,EAAK5R,YAAY0jB,EAAW,GAAGA,KAAYC,GAAQ/a,EAAE,MAAQ+a,GAAQ/a,EAAE,KAAOgb,GAAehb,EAAE,IAAKhJ,EAAM,IAE3H6jB,IACA7jB,EAAQ4B,KAAKC,IAAI7B,EAAOikB,UAAoB,GAAVJ,GAAe9oB,WAAY,MAC1DiF,CACV,CAyBD,IAAIkkB,EAwBJ,SAASC,EAAoB3nB,GACzB,OAAQoc,EAAMqG,aAAamF,cAAc/e,QAAQ7I,GAAO,GACpDoc,EAAMtb,OAAOhD,KAAKse,EAAMqG,aAAaoF,cAC5C,CA2BD,SAASC,EAAc7nB,EAAO8nB,GAC1B,IAAIxc,EAAS,IAAIE,EAAG,eACpB,QAAc1M,IAAVkB,IAAwB8nB,EACxB,OAAO,KACX,GAAIA,EACAxc,GAAUwc,OAGV,cAAe9nB,GACX,IAAK,SACDsL,GAAU,IAAItL,KACd,MACJ,IAAK,SACDsL,GAAUgJ,KAAKoD,UAAU1X,GACzB,MACJ,QACIsL,GAAUtL,EAGtB,MAAO,GAAGsL,IACb,CAjWDqB,EAAKob,gBAAkBzkB,GAAO4jB,EAAwB5jB,EACtDqJ,EAAKqb,KAAO,WACR,GAAIP,EACA,OAAOA,GA4Pf,WACI,MAAMQ,EAAkB9L,EAAM+L,qBACxBvmB,EAAUwa,EAAMqG,cACrBviB,OAAOI,KAAKsB,EAAQiJ,QAAU,IAAI3F,SAAQlF,IACvC4B,EAAQiJ,MAAM7K,GAAKkF,SAAQ2F,IACnB6b,EAAa7b,IACb+B,EAAKgY,SAAS5kB,EAAK0mB,EAAa7b,IAChCA,KAASqd,GACT9L,EAAMgM,aAAapoB,EAAKkoB,EAAgBrd,IACxCjJ,EAAQmJ,QAAQ6F,SAAS/F,IACzBuR,EAAMrR,QAAQ/K,GACd4B,EAAQ7B,MAAM6Q,SAAS/F,IACvBuR,EAAMrc,MAAMC,GACZ4B,EAAQ2J,OAAOqF,SAAS/F,IACxBuR,EAAM7Q,OAAOvL,GACb4B,EAAQ0J,UAAUsF,SAAS/F,IAC3BuR,EAAM9Q,UAAUtL,GAChB4B,EAAQkJ,MAAM8F,SAAS/F,IACvBuR,EAAMtR,MAAM9K,GACZ4B,EAAQ4J,OAAOoF,SAAS/F,IACxBuR,EAAM5Q,OAAOxL,EAAI,GACvB,GAET,CAlRGqoB,GACA,MAAMC,EAASlM,EAAMmM,iBACfnM,EAAMoM,GACNhT,EAAKnX,KAAKib,SAAS8C,EAAMoM,IACzBN,EAAkB9L,EAAM+L,qBACxBM,EAAmBrM,EAAMsM,sBACzBC,EAAoBvM,EAAMwM,uBAC1BC,EAASzM,EAAM0M,YACflnB,EAAUwa,EAAMqG,aACtB,IAAIniB,EAAO,GACXA,EAAOA,EAAKiM,OAAOrM,OAAOI,KAAKomB,IAC/BpmB,EAAOA,EAAKiM,OAAOrM,OAAOI,KAAK4nB,IAC/B5nB,EAAOA,EAAKiM,OAAOrM,OAAOI,KAAKmoB,IAC/BnoB,EAAOA,EAAKiM,OAAOrM,OAAOI,KAAKsB,EAAQuJ,UACvC7K,EAAOA,EAAKC,OAAOonB,GACnBrnB,EAAOJ,OAAOI,KAAKA,EAAKgd,QAAO,CAACC,EAAKvd,KACrB,MAARA,IACAud,EAAIvd,IAAO,GACRud,IACR,CAAA,IACH,MAAM8J,EAAUza,EAAKoa,UACf+B,EAAKvT,EAAKgD,MAAM,CAClBhV,MAAO6jB,EACPjjB,OAAQijB,IAEZ,IAAKhB,EACD,GAAID,EAAOpnB,OACPonB,EAAOlhB,SAAQiZ,IACX4K,EAAGxkB,IAAI,CAAEkB,KAAM,GAAG0Y,EAAM,GAAGtX,QAAQ,OAAQyhB,OACvCnK,EAAM,IACN4K,EAAGxkB,IAAI,CAAEkB,KAAM,GAAG0Y,EAAM,KAAMzY,QAAS,CAAC,EAAG,EAAG,EAAG,IACpD,IAELqjB,EAAGxkB,WAEF,GAAIwc,EAAS/hB,OAAQ,CACtB,IAAIgqB,EAAI,KAEJA,EADAP,EAAiBha,EACb,GAAG6Z,MAAW7c,EAAG,gBAGjB,GAAG6c,MAAW7c,EAAG,gBAEzBsd,EAAGxkB,IAAI,GAAGykB,IACb,CAEL,GAAIjI,EAAS/hB,OAAS,GAA0B,IAApB+hB,EAAS/hB,SAAiB+hB,EAAS,GAAG,GAAK,CACnEgI,EAAGxkB,IAAIkH,EAAG,cACV,MAAM2X,EAAUhH,EAAMwE,qBAAqBC,aACrCC,EAAiBsC,EAAQrC,SAAS/hB,OAClC,GAAGokB,EAAQrC,SAAS7hB,KAAK,QACzB,IAEF,IADAkd,EAAMwE,qBAAqBqI,yBAAyB,mBAEpDlI,EAAWA,EAASmI,MAAK,CAACxY,EAAGyY,IAAMzY,EAAE,GAAG0Y,cAAcD,EAAE,OAE5D,MAAM1X,EAAS6W,EAAS,GAAGA,KAAY,GACvCvH,EAAS7b,SAAQxD,IACb,MAAM2iB,EAAgB,GAAG5S,IAASqP,IAAiBpf,EAAQ,GAAGmF,QAAQ,SAAU,MAChFkiB,EAAGzkB,KAAK,CACJmB,KAAM4e,EACN3e,QAAS,CAAC,EAAG,EAAG,EAAG,GACnBlC,MAAOyjB,EAASlG,EAAUsG,EAAS,GAAGiB,IAASxH,KAAoB,GACpE,CAAErb,KAAM/D,EAAQ,KACnB,MAAM2nB,EAAQ,GACV3nB,EAAQ,IACR2nB,EAAMpqB,KAAK,IAAIwM,EAAG,eAClB/J,EAAQ,IAAMA,EAAQ,GAAG1C,QACzBqqB,EAAMpqB,KAAK,IAAIwM,EAAG,eAAe/J,EAAQ,GAAGxC,KAAK,UAEjDwC,EAAQ,KACkB,iBAAfA,EAAQ,GACf2nB,EAAMpqB,KAAK,IAAIwM,EAAG,iBAAkB/J,EAAQ,QAG5C2nB,EAAMpqB,KAAK,IAAIwM,EAAG,mBAGtB4d,EAAMrqB,OACN+pB,EAAGxkB,IAAI,CACHkB,KAAM4jB,EAAMnqB,KAAK,KACjBwG,QAAS,CAAC,EAAG,EAAG,EAAG,GACnBrC,MAAO,UAIX0lB,EAAGxkB,KACN,IAELwkB,EAAGxkB,KACN,CACD,MAAM+kB,GAAappB,OAAOI,KAAKsB,EAAQiJ,QAAU,IAAI0B,OAAOrM,OAAOI,KAAK8b,EAAMtb,OAAOoM,aAAe,IACpG5M,EAAOA,EAAKC,QAAOP,IAAQoc,EAAMtb,OAAOoM,WAAWlN,IAC/CspB,EAAU7J,OAAM5U,IAAwD,KAA9CjJ,EAAQiJ,MAAMA,IAAU,IAAIhC,QAAQ7I,OAClE,MAAMupB,EAAe9d,EAAG,YACnBod,EAAOU,KACRV,EAAOU,GAAgB,IA6L/B,SAA0BjpB,EAAM4L,EAAS2c,EAAQU,GAC7C,IAAIC,EAAc,GACdrX,EAAU,KACdjS,OAAOI,KAAKuoB,GAAQ3jB,SAAQukB,IACxBD,EAAcA,EAAYjd,OAAOsc,EAAOY,GAAO,IAEnDnpB,EAAK4E,SAAQlF,IACTmS,EAAU,CAACnS,GAAKuM,OAAOL,EAAQlM,IAC1BmS,EAAQK,MAAKD,IAAiC,IAA5BiX,EAAY3gB,QAAQ0J,MACvCsW,EAAOU,GAActqB,KAAKe,EAC7B,GAGR,CAzMG0pB,CAAiBppB,EAAMsB,EAAQiJ,MAAOge,EAAQU,GAC9C,MAAMI,EAAgBC,GAAO,MAAM9kB,KAAKyiB,GAAQqC,IAC1CC,EAAkB3pB,OAAOI,KAAKuoB,GAC/BtoB,QAAOupB,GAAajB,EAAOiB,GAAW9qB,OAAS,IAC/Cb,KAAI2rB,IAYE,CAAEA,YAAWC,eAXGlB,EAAOiB,GACzBvpB,OAAOonB,GACPxpB,KAAI6B,IACL,GAAIspB,EAAU1Y,SAAS5Q,GACnB,OAAOA,EACX,IAAK,IAAWgqB,EAAPxkB,EAAI,OAA2CzG,KAA7BirB,EAAWV,EAAU9jB,IAAmBA,IAC/D,IAAK5D,EAAQiJ,MAAMmf,IAAa,IAAIpZ,SAAS5Q,GACzC,OAAOgqB,EAEf,OAAOhqB,CAAG,QAIbO,QAAO,EAAGwpB,oBAAqBA,EAAe/qB,OAAS,IACvDb,KAAI,EAAG2rB,YAAWC,qBACnB,MAAME,EAAWF,EAAezM,QAAO,CAACC,EAAKvd,KACzCud,EAAIvd,GAAO,CAACA,GACPuM,OAAO3K,EAAQiJ,MAAM7K,IAAQ,IAC7B7B,KAAIyrB,GACDE,IAAcld,EAAK0Z,yBACZsD,GAEE,UAAU9kB,KAAK8kB,GAClBhoB,EAAQmJ,QAAQ6F,SAAS5Q,GACrB,IACA,KACJ4pB,EAAG5qB,OAAS,EACR,KACA,KAAO4qB,IAGpBV,MAAK,CAACgB,EAAKC,IAAQR,EAAaO,KAASP,EAAaQ,GACrD,EACAR,EAAaO,GACT,GACC,IACNhrB,KAAK,MACHqe,IACR,CAAE,GACL,MAAO,CAAEuM,YAAWC,iBAAgBE,WAAU,IA0FlD,GAxF0BJ,EACrBtpB,QAAO,EAAGupB,eAAgBA,IAAcld,EAAK0Z,2BAC7C9T,MAAK,EAAGuX,iBAAgBE,eAAgBF,EAAetK,OAAMzf,GAAO2pB,EAAaM,EAASjqB,SAE3F6pB,EACKtpB,QAAO,EAAGupB,eAAgBA,IAAcld,EAAK0Z,2BAC7CphB,SAAQ,EAAG6kB,iBAAgBE,eAC5BF,EAAe7kB,SAAQlF,IAiRvC,IAAwByF,EAAM2kB,EAhRNT,EAAaM,EAASjqB,MACtBiqB,EAASjqB,IA+QTyF,EA/Q+BwkB,EAASjqB,GA+QlCoqB,EA/QwC,EAgR3DC,GAAe5kB,GAChB,CAAEA,KAAMA,EAAKA,KAAM6kB,YAAa7kB,EAAK6kB,YAAcF,GACnD,CAAE3kB,OAAM6kB,YAAaF,IAjRV,GACH,IAGVP,EAAgB3kB,SAAQ,EAAG4kB,YAAWC,iBAAgBE,eAClDlB,EAAGxkB,IAAIulB,GACPC,EAAe7kB,SAAQlF,IACnB,MAAMuqB,EAAUN,EAASjqB,GACzB,IAAI6kB,EAAO6B,EAAa1mB,IAAQ,GAC5B+S,EAAO,KACP8R,EAAKjU,SAASuW,KACdtC,EAAOpZ,EAAGoZ,EAAK9T,UAAUoW,MACzBvlB,EAAQmJ,QAAQ6F,SAAS5Q,KACzB+S,EAAO,IAAItH,EAAG,eACd7J,EAAQ7B,MAAM6Q,SAAS5Q,KACvB+S,EAAO,IAAItH,EAAG,aACd7J,EAAQ2J,OAAOqF,SAAS5Q,KACxB+S,EAAO,IAAItH,EAAG,cACd7J,EAAQ0J,UAAUsF,SAAS5Q,KAC3B+S,EAAO,IAAItH,EAAG,cACd7J,EAAQkJ,MAAM8F,SAAS5Q,KACvB+S,EAAO,IAAItH,EAAG,aACd7J,EAAQ4J,OAAOoF,SAAS5Q,KACxB+S,EAAO,IAAItH,EAAG,cAClB,MAGM+e,EAAQ,CACVxqB,KAAO2oB,GAJcpJ,EAKCoJ,EAAkB3oB,GALkB,iBAAfuf,EACzC,IAAI9T,EAAG,iBAAkB8T,MACzB,IAAI9T,EAAG,kBAIH,KACNsH,EACA/S,KAAOkoB,EAAkB,IAAIzc,EAAG,eAAiB,KACjD7J,EAAQ6oB,SAAW7oB,EAAQ6oB,QAAQzqB,GAC7B,IAAIyL,EAAG,eAAemB,EAAK8d,kBAAkB9oB,EAAQ6oB,QAAQzqB,OAC7D,KACN8nB,EAAclmB,EAAQuJ,QAAQnL,GAAM4B,EAAQmmB,mBAAmB/nB,KAE9DO,OAAOyN,SACP9O,KAAK,KAfc,IAACqgB,EAgBzBwJ,EAAGzkB,KAAK,CACJmB,KAAM8hB,GAAQgD,GACd7kB,QAAS,CAAC,EAAG,EAAG,EAAG,EAAI8hB,GAAe+C,IACtC/mB,MAAOyjB,EAASgD,EAAU5C,GAAW,GACtCxC,GACH,MAAM8F,GACF,IAD2BvO,EAAMwE,qBAAqBgK,wBAAwB,cAE9EJ,IAAUG,EACV5B,EAAGxkB,IAAI,CAAEkB,KAAM+kB,EAAO9kB,QAAS,CAAC,EAAG,EAAG,EAAG,GAAIrC,MAAO,UAEpD0lB,EAAGxkB,KAAK,IAEhBwkB,EAAGxkB,KAAK,IAERgiB,EAASvnB,SACT+pB,EAAGxkB,IAAIkH,EAAG,cACV8a,EAASrhB,SAAQshB,IACbA,EAAQ,GAAKA,EAAQ,GAAG3f,QAAQ,OAAQyhB,EAAO,IAEnD/B,EAASrhB,SAAQshB,IACM,KAAfA,EAAQ,GACRuC,EAAGxkB,IAAI,CACHkB,KAAM+gB,EAAQ,GACd9gB,QAAS,CAAC,EAAG,EAAG,EAAG,KAIvBqjB,EAAGxkB,IAAI,CACHkB,KAAM+gB,EAAQ,GACd9gB,QAAS,CAAC,EAAG,EAAG,EAAG,GACnBlC,MAAOyjB,EAASV,EAAUc,GAAW,GACtC,CACC5hB,KAAM+gB,EAAQ,IAErB,IAELuC,EAAGxkB,OAEHsiB,EAAQ7nB,OAAS,EAAG,CACpB,MAAM4M,EAAIib,EACL1oB,KAAI2oB,GAAUA,EAAOjgB,QAAQ,OAAQyhB,KACrCppB,KAAK,MACV6pB,EAAGxkB,IAAI,GAAGqH,MACb,CACD,OAAOmd,EAAGxqB,WAAWsI,QAAQ,OAAQ,GAC7C,EAsCI+F,EAAKgW,iBAAmB,WACpB8E,EAAoBvjB,KAAK8jB,MACjC,EACIrb,EAAKie,uBAAyB,WAC1BnD,OAAoB3oB,CAC5B,EACI6N,EAAKke,qBAAuB,WACxB,QAASpD,CACjB,EAmBI9a,EAAKsZ,SAAY6E,IACb,MAAMhF,EAAS3J,EAAMwE,qBAAqBoF,oBACrC+E,IACDA,EAAQ,UACkB,mBAAVA,EAAuBA,EAAQhF,EAAOgF,IACrDne,EAAKqb,OAAO,EAErBrb,EAAKoe,oBAAsBtkB,GAIhB,CAAC,IAHYA,EAAGmN,KACjB2B,EAAK6D,OAAOnQ,WAAWxC,EAAGmN,KAAM,KAChCpI,EAAG,mBACiB,KAAKvM,KAAK,IAExC0N,EAAK8d,kBAAoB,SAA2B5T,EAAQmU,GACxD,IAAI1f,EAAS,GACb,MAAM2f,EAAMD,GAAa,KACnBngB,EAAQ,GAAGyB,OAAOuK,GACxB,OAAKA,GAAWhM,EAAM9L,QAEtB8L,EAAM5F,SAAQjF,IACNsL,EAAOvM,SACPuM,GAAU2f,GACd3f,GAAUgJ,KAAKoD,UAAU1X,EAAM,IAE5BsL,GANIA,CAOnB,EA+BI,IAAIjB,EAAU,KACdsC,EAAKtC,QAAU6gB,IACX7gB,EAAU6gB,CAAG,EAEjBve,EAAKwe,YAAcL,IACf,MAAMhF,EAAS3J,EAAMwE,qBAAqBoF,oBACrC+E,IACDA,EAAQ,UACkB,mBAAVA,EAAuBA,EAAQhF,EAAOgF,IACrDzgB,EAAQ,EAEjBsC,EAAKsQ,MAAQ,SAAemO,GASxB,OARA5F,EAAc,KACdK,GAAgB,EAChBM,EAAS,GACTC,GAAgB,EAChBQ,EAAU,GACVN,EAAW,GACXxF,EAAW,GACX2F,EAAe5B,GAAU4B,GAAcnU,IAAM8Y,EAAY9Y,KAClD3F,CACf,EACI,MAAM0P,EAAU,GAqChB,OApCA1P,EAAKmQ,OAAS,WACVT,EAAQrd,KAAK,CACTwmB,cACAK,gBACAM,SACAC,gBACAQ,UACAN,WACAxF,WACA2F,gBAEZ,EACI9Z,EAAKoQ,SAAW,SAAkBkD,GAAiB,GAC/C,MAAMjD,EAASX,EAAQzP,MAClBoQ,IAEDiD,GACAwG,EAAe,IAAKzJ,EAAOyJ,gBAAiBA,GAC5C3F,EAAW,IAAI9D,EAAO8D,YAAaA,GACnCqF,EAAS,IAAInJ,EAAOmJ,UAAWA,GAC/BG,EAAW,IAAItJ,EAAOsJ,YAAaA,GACnCM,EAAU,IAAI5J,EAAO4J,WAAYA,MAI7BpB,cACAK,gBACAM,SACAC,gBACAQ,UACAN,WACAxF,WACA2F,gBACAzJ,GAEhB,EACWrQ,CACX,CACA,SAASyd,GAAe5kB,GACpB,MAAuB,iBAATA,CAClB,CAMA,SAAS+hB,GAAe/hB,GACpB,OAAO4kB,GAAe5kB,GAAQA,EAAK6kB,YAAc,CACrD,CACA,SAAS/C,GAAQ9hB,GACb,OAAO4kB,GAAe5kB,GAAQA,EAAKA,KAAOA,CAC9C,CClkBO,MAAM6lB,GACT,WAAAtnB,CAAYoY,EAAO+B,EAAOzc,EAAS8T,GAC/B,IAAItR,EAAI4F,EAAIC,EACZ5F,KAAKiY,MAAQA,EACbjY,KAAKga,MAAQA,EACbha,KAAKzC,QAAUA,EACfyC,KAAKqR,KAAOA,EACZrR,KAAKonB,cAAgB,wBACrBpnB,KAAK+H,QAAU,KACf/H,KAAKqnB,yBAA2B,KAChCrnB,KAAKsnB,oBAAsB,EAC3BtnB,KAAKunB,SAEuG,QADvG3hB,GAA4C,QAApC7F,EAAKC,KAAKqR,KAAKwD,OAAO,gBAA6B,IAAP9U,OAAgB,EAASA,EAAG0M,SAAS,UAC7C,QAAvC9G,EAAK3F,KAAKqR,KAAKwD,OAAO,mBAAgC,IAAPlP,OAAgB,EAASA,EAAG8G,SAAS,eAA6B,IAAP7G,GAAgBA,CACvI,CACD,iBAAA4hB,CAAkBhqB,EAAM7D,EAAM8tB,EAASC,GACnC,MAAMvN,EAAWna,KAAKzC,QAAQye,qBAC9B,IAAK,IAAI3a,EAAI,EAAGuG,EAAKpK,EAAK3C,OAAQwG,EAAIuG,IAAMvG,EACxC,GAAI8Y,EAAS3c,EAAK6D,KAAO8Y,EAAS3c,EAAK6D,IAAI4Z,QAAS,CAChD,MAAMA,EAAUd,EAAS3c,EAAK6D,IAAI4Z,QAClC,GAAImC,GAAyBnC,GAAU,CACnCjb,KAAKsnB,oBAAsBjmB,EAAI,EAC/B,MAAM4I,EAAIjK,KAAKiY,MAAMwE,qBAAqB1D,QAE1C,OADAkC,EAAQhR,GAAG,GACJA,EAAEtQ,IACZ,CACJ,CAEL,MAAMguB,EAAc,GACpB3nB,KAAK4nB,mBAAmBD,EAAanqB,EAAMiqB,GAC3CznB,KAAK6nB,kBAAkBF,EAAanqB,EAAM7D,EAAM8tB,GAChDznB,KAAK8nB,8BAA8BH,EAAanqB,EAAM7D,EAAM8tB,GAC5DznB,KAAK+nB,kCAAkCJ,EAAanqB,EAAM7D,EAAM8tB,GAChEC,EAAK,KAAMC,EACd,CACD,kBAAAC,CAAmBD,EAAanqB,EAAMiqB,GAClC,MAAM9K,EAAiB3c,KAAKiY,MACvBwE,qBACAC,aAAaE,SACb6K,EAAQ9lB,MAAM,OACfgb,EAAeA,EAAe9hB,OAAS,KAAO4sB,GAC7CznB,KAAKgoB,sBAAsBxqB,IAC5BwC,KAAKga,MAAMiC,cAAclb,SAAQknB,IAC7B,MAAMC,EAAczR,GAAawR,EAAa,IAAIvR,IAClD,IAAmC,IAA/BlZ,EAAKkH,QAAQwjB,GACb,GAAKloB,KAAKunB,SAGL,CACD,MAAM7G,EAAOuH,EAAa,IAAM,GAChCN,EAAY7sB,KAAKotB,EAAYxlB,QAAQ,KAAM,OAAS,IAAMge,EAC7D,MALGiH,EAAY7sB,KAAKotB,EAMxB,GAGZ,CACD,iBAAAL,CAAkBF,EAAanqB,EAAM7D,EAAM8tB,GACvC,IAAKA,EAAQ9lB,MAAM,OAAsB,KAAZ8lB,GAAyC,IAAvBE,EAAY9sB,UACtDmF,KAAKgoB,sBAAsBxqB,GAAO,CACnC,MAAMC,EAAUuC,KAAKiY,MAAMqG,aACrBwB,EAAiB9f,KAAKiY,MAAM0M,YAAY3kB,KAAKga,MAAMmI,2BAA6B,GACtFpmB,OAAOI,KAAKsB,EAAQ5B,KAAKkF,SAAQlF,IAC7B,MAAMssB,IAAY1qB,EAAQqJ,cAAc,qBACpCrJ,EAAQmJ,QAAQ6F,SAAS5Q,GACLikB,EAAerT,SAAS5Q,IAE3C4B,EAAQgmB,cAAchX,SAAS5Q,IAC/BmE,KAAKooB,eAAe5qB,EAAM3B,EAAKssB,IAChCnoB,KAAKqoB,kBAAkBxsB,EAAK8rB,EAAaF,EAASU,KAAa1qB,EAAQuJ,QAAQnL,GAClF,GAER,CACJ,CACD,6BAAAisB,CAA8BH,EAAanqB,EAAM7D,EAAM8tB,GACnD,GAAIznB,KAAKgoB,sBAAsBxqB,GAAO,CAClC,MAAM8oB,EAAUtmB,KAAKsoB,sBAAsB9qB,GACvC8oB,GAAWA,EAAQzrB,OAAS,GAC5B8sB,EAAY7sB,QAAQwrB,EAAQtsB,KAAImI,GAAKA,EAAEO,QAAQ,KAAM,SAE5D,CACJ,CACD,iCAAAqlB,CAAkCJ,EAAanqB,EAAM7D,EAAM8tB,GACvD,GAAgB,KAAZA,GACAE,EAAY9sB,OAAS,GACrBmF,KAAKgoB,sBAAsBxqB,GAC3B,OAEJ,MAAMsiB,EAAiB9f,KAAKiY,MAAM0M,YAAY3kB,KAAKga,MAAMmI,2BAA6B,GAChFoG,EAAStnB,KAAK8C,IAAI/D,KAAKsnB,oBAAqBtnB,KAAKiY,MAAMwE,qBAAqBC,aAAaE,SAAS/hB,OACpG,GACE2tB,EAAgB1I,EAAenmB,EAAK2Q,EAAEzP,OAAS0tB,EAAS,GAC9D,IAAKC,EACD,OAEJ,MAAMlC,EAAUtmB,KAAKiY,MAAMqG,aAAagI,QAAQkC,IAAkB,GAClE,IAAK,MAAMC,KAAUnC,EACbmC,EAAOC,WAAWjB,IAClBE,EAAY7sB,KAAK2tB,EAAO/lB,QAAQ,KAAM,OAGjD,CACD,qBAAA4lB,CAAsB9qB,GAClB,GAAIA,EAAK3C,OAAS,EACd,OACJ,IAAI8tB,EAAcnrB,EAAKA,EAAK3C,OAAS,GACjCuB,EAAS,GAKb,IAJKusB,EAAYD,WAAW,MAAQlrB,EAAK3C,OAAS,IAC9CuB,EAASusB,EACTA,EAAcnrB,EAAKA,EAAK3C,OAAS,KAEhC8tB,EAAYD,WAAW,KACxB,OACJ,MAAME,EAAiBD,EAAYjmB,QAAQ,MAAO,IAC5CjF,EAAUuC,KAAKiY,MAAMqG,aACrBuK,EAAkB,CACpBD,KACI5oB,KAAKiY,MAAMS,aAAakQ,IAAmB,IAEnD,IAAItC,EACJ,IAAK,MAAMwC,KAAiBD,EACxB,GAAI9sB,OAAOqW,UAAUW,eAAeV,KAAK5U,EAAQ5B,IAAKitB,IAClDrlB,MAAM+D,QAAQ/J,EAAQ6oB,QAAQwC,IAAiB,CAC/CxC,EAAU7oB,EAAQ6oB,QAAQwC,GAC1B,KACH,CAEL,OAAIxC,EACOA,EAAQlqB,QAAOqsB,IAAWrsB,GAAUqsB,EAAOC,WAAWtsB,UADjE,CAGH,CACD,qBAAA4rB,CAAsBxqB,GAClB,MAAM8oB,EAAUtmB,KAAKsoB,sBAAsB9qB,GAC3C,YAAmB5C,IAAZ0rB,GAAyBA,EAAQzrB,OAAS,CACpD,CACD,cAAAutB,CAAe5qB,EAAM3B,EAAKssB,GACtB,MAAMY,EAAgBC,IAA+D,IAAzDxrB,EAAKkH,SAAS,WAAW/D,KAAKqoB,GAAK,IAAM,MAAQA,GAC7E,GAAID,EAAaltB,GACb,OAAO,EACX,GAAIssB,GAAWY,EAAa,MAAMltB,KAC9B,OAAO,EACX,GAAImE,KAAK+H,QACL,IAAK,MAAMrB,KAAS1G,KAAK+H,QAAQlM,GAC7B,GAAIktB,EAAariB,GACb,OAAO,EAGnB,OAAO,CACV,CACD,iBAAA2hB,CAAkBxsB,EAAK8rB,EAAaF,EAASU,GACzC,IAAIpoB,EAAI4F,EAAIC,EAAIqjB,EAChB,IAAIC,EAAcrtB,EAClB,GAAImE,KAAKunB,SAAU,CACf,MAAM4B,EAAQnpB,KAAKga,MAAMyI,kBACnBoD,EAAmI,QAAvHlgB,EAAyE,QAAnE5F,EAAKC,gBAAmC,EAASA,KAAK+H,eAA4B,IAAPhI,OAAgB,EAASA,EAAGlE,UAAyB,IAAP8J,OAAgB,EAASA,EAAGwE,MAAKzD,IAC9K,MAAMga,EAAOyI,EAAMziB,GACnB,MAAuB,iBAATga,GAAqBA,EAAK7lB,OAAS,CAAC,IAEhDuuB,EAAgBvD,EAAWsD,EAAMtD,QAAYjrB,EAC7C8lB,EAAmF,QAA3EuI,EAA2B,QAArBrjB,EAAKujB,EAAMttB,UAAyB,IAAP+J,EAAgBA,EAAKwjB,SAAkC,IAAPH,EAAgBA,EAAK,GACtHC,EAAc,GAAGrtB,EAAI6G,QAAQ,KAAM,UAAUge,EACxChe,QAAQ,mBAAoB,IAC5BA,QAAQ,iBAAkB,MAClC,CACD,MAEM2mB,GAFoB,CAACL,GAAM,MAAMroB,KAAKqoB,GAE5BM,CAAkB7B,IADZ,CAACuB,GAAM,WAAWroB,KAAKqoB,GACCO,CAAc1tB,GAAO,IAAM,KACzE8rB,EAAY7sB,KAAKuuB,EAASH,GACtBf,GACAR,EAAY7sB,KAAKuuB,EAAS,MAAQH,EAEzC,CACD,gBAAAM,CAAiBhsB,EAAM7D,EAAM8tB,EAASC,GAElC,GADA1R,GAAqBhW,KAAKqnB,yBAA0B,KAAMrnB,KAAKqR,MAClCrR,KAAKqnB,yBA4DZxsB,OAAS,EA5D8B,CACzD,MAAM4e,EAASzZ,KAAKqnB,yBAAyBI,EAAS9tB,GACtD,OAAI2c,GAAUmD,GACHA,EACFjD,MAAKiT,IACNzpB,KAAKqR,KAAK7W,QAAQib,UAAS,KACvBiS,EAAK,KAAM+B,EAAK,GAClB,IAED9K,OAAMvhB,IACP4C,KAAKqR,KAAK7W,QAAQib,UAAS,KACvBiS,EAAKtqB,OAAKxC,EAAU,GACtB,IAGH8sB,EAAK,KAAMjO,EACrB,CACI,OA6Cb,SAAsCiQ,GAClC,OAAOA,EAAmB7uB,OAAS,CACvC,CA/CiB8uB,CAA6B3pB,KAAKqnB,0BAChCrnB,KAAKqnB,yBAAyBI,EAAS9tB,GAAM,CAACiwB,EAAclC,IAAS1nB,KAAKwnB,kBAAkBhqB,EAAM7D,EAAM8tB,EAASmC,KAAcjC,IAClID,EAAK,KAAMC,EAAY,IAIpB3nB,KAAKqnB,yBAAyBI,EAAS9tB,GAAMguB,IAChDD,EAAK,KAAMC,EAAY,GAGlC,CACD,aAAAkC,CAAcrsB,EAAMkqB,GAChB,MAAMD,EAAUjqB,EAAK3C,OAAS2C,EAAKA,EAAK3C,OAAS,GAAK,GAChDlB,EAAOqG,KAAKiY,MAAM1R,MAAM/I,GAAM,GAC9BksB,EAAqB1pB,KAAKqnB,yBACzB1tB,GAASqG,KAAKwpB,iBAAiBhsB,EAAM7D,EAAM8tB,EAASC,GACpD/tB,GAASqG,KAAKwnB,kBAAkBhqB,EAAM7D,EAAM8tB,EAASC,GAC5D,OAAOpR,GAAU3c,GACXA,EAAK6c,KAAKkT,GACVA,EAAmB/vB,EAC5B,CACD,wBAAAmwB,CAAyBzF,EAAI3N,GACzB,IAAIqT,EAAS/pB,KAAKunB,SC5LW,mlBA7BD,yzBD4N5B,MAAM7X,EAAO1P,KAAKqR,KAAKnX,KAAKib,SAASkP,GAKrC,OAJIA,EAAG1iB,MAAM,WACT0iB,EAAK,KAAKA,KACd0F,EAASA,EAAOrnB,QAAQ,gBAAiBgN,GACzCqa,EAASA,EAAOrnB,QAAQ,0BAA2BgU,GAC5CqT,EAAOrnB,QAAQ,gBAAiB2hB,EAC1C,CACD,gBAAA2F,CAAiBznB,GACbvC,KAAKqnB,yBAA2B9kB,CACnC,CACD,SAAA0nB,CAAUttB,GACNqD,KAAK+H,QAAUpL,EAAOoL,OACzB,EExOE,SAASmiB,GAAY3d,EAAGyY,GAC3B,GAAiB,IAAbzY,EAAE1R,OACF,OAAOmqB,EAAEnqB,OACb,GAAiB,IAAbmqB,EAAEnqB,OACF,OAAO0R,EAAE1R,OACb,MAAMsvB,EAAS,GACf,IAAI9oB,EAIA8J,EAHJ,IAAK9J,EAAI,EAAGA,GAAK2jB,EAAEnqB,OAAQwG,IACvB8oB,EAAO9oB,GAAK,CAACA,GAGjB,IAAK8J,EAAI,EAAGA,GAAKoB,EAAE1R,OAAQsQ,IACvBgf,EAAO,GAAGhf,GAAKA,EAEnB,IAAK9J,EAAI,EAAGA,GAAK2jB,EAAEnqB,OAAQwG,IACvB,IAAK8J,EAAI,EAAGA,GAAKoB,EAAE1R,OAAQsQ,IACnB6Z,EAAE1gB,OAAOjD,EAAI,KAAOkL,EAAEjI,OAAO6G,EAAI,GACjCgf,EAAO9oB,GAAG8J,GAAKgf,EAAO9oB,EAAI,GAAG8J,EAAI,GAG7B9J,EAAI,GACJ8J,EAAI,GACJ6Z,EAAE1gB,OAAOjD,EAAI,KAAOkL,EAAEjI,OAAO6G,EAAI,IACjC6Z,EAAE1gB,OAAOjD,EAAI,KAAOkL,EAAEjI,OAAO6G,EAAI,GACjCgf,EAAO9oB,GAAG8J,GAAKgf,EAAO9oB,EAAI,GAAG8J,EAAI,GAAK,EAGtCgf,EAAO9oB,GAAG8J,GAAKlK,KAAKC,IAAIipB,EAAO9oB,EAAI,GAAG8J,EAAI,GAAK,EAAGlK,KAAKC,IAAIipB,EAAO9oB,GAAG8J,EAAI,GAAK,EAAGgf,EAAO9oB,EAAI,GAAG8J,GAAK,IAKpH,OAAOgf,EAAOnF,EAAEnqB,QAAQ0R,EAAE1R,OAC9B,CC7BA,MAAMuvB,GAAc,CAAC,KAAM,KAAM,KCHjC,IACI/Y,GADAgZ,GAA2B,GAExB,SAASC,GAAa1tB,EAAQhD,EAAK2wB,EAAc1U,GACpDxE,GAAOwE,EACP,IAAI2U,EAAgB,CAAA,EACpB,GAAIzuB,OAAOqW,UAAUW,eAAeV,KAAKzV,EAAQ,WAAY,CACzD,GAA8B,iBAAnBA,EAAO6tB,QACd,OAAOD,EACX,MAAME,EAAS,iBAAiB/pB,KAAK/D,EAAO6tB,SAC5C,IAAIE,EAAgB,KACpB,GAAKD,EASDC,EAoBZ,SAAgC/wB,EAAKgxB,GACjC,OAAOvZ,GAAKnX,KAAKC,QAAQP,EAAKgxB,EAClC,CAtB4BC,CAAuBjxB,EAAKgD,EAAO6tB,cARnD,IACIE,EAAgBnb,QAAQrV,QAAQyC,EAAO6tB,QAC1C,CACD,MAAO5L,GACH,OAAOjiB,CACV,EAkBb,SAAiCkuB,GAC7B,GAAIT,GAAyB3lB,QAAQomB,IAAY,EAC7C,MAAM,IAAIna,GAAO,sCAAsCma,MAE/D,CAjBQC,CAAwBJ,GACxBN,GAAyBvvB,KAAK6vB,GAC9BH,EAAgBE,EACVta,KAAK7J,MAAM8K,GAAKhB,aAAasa,EAAe,SAC5Cnb,QAAQ5S,EAAO6tB,gBACd7tB,EAAO6tB,QACdD,EAAgBF,GAAaE,EAAenZ,GAAKnX,KAAKya,QAAQgW,GAAgBJ,EAAclZ,GAC/F,CAED,OADAgZ,GAA2B,GACpBE,EACDS,GAAUR,EAAe5tB,GACzBb,OAAO0K,OAAO,CAAA,EAAI+jB,EAAe5tB,EAC3C,CASA,SAASouB,GAAUC,EAASC,GACxB,MAAMpoB,EAAS,CAAA,EACf,SAASqoB,EAASnhB,GACd,OAAOA,GAAsB,iBAARA,IAAqBvG,MAAM+D,QAAQwC,EAC3D,CACDjO,OAAO0K,OAAO3D,EAAQmoB,GACtB,IAAK,MAAMpvB,KAAOE,OAAOI,KAAK+uB,GACtBC,EAASD,EAAQrvB,KAASsvB,EAASroB,EAAOjH,IAC1CiH,EAAOjH,GAAOmvB,GAAUC,EAAQpvB,GAAMqvB,EAAQrvB,IAG9CiH,EAAOjH,GAAOqvB,EAAQrvB,GAG9B,OAAOiH,CACX,CT1DA,IAWIsoB,GAAwBC,GAAoBC,GAAwBC,GAA2BC,GAAkCC,GAAqCC,GAA0BC,GAA6BC,GAAgCC,GAA4BC,GAAwBC,GAAiCC,GAAuBC,GAA0BC,GAAwBC,GAAgCC,GAAuBC,GAAuBC,GAAwBC,GAA8BC,GAA6BC,GAAwBC,GAA6BC,GAAqBC,GAAgCC,GAA4BC,GAAkCC,GAAqBC,GAAuBC,GAA+BC,GAA8BC,GAAsBC,GAA4BC,GAA2BC,GAX15BC,GAAkE,SAAUC,EAAUC,EAAO3xB,EAAO4xB,EAAMrM,GAC1G,GAAa,MAATqM,EAAc,MAAM,IAAIC,UAAU,kCACtC,GAAa,MAATD,IAAiBrM,EAAG,MAAM,IAAIsM,UAAU,iDAC5C,GAAqB,mBAAVF,EAAuBD,IAAaC,IAAUpM,GAAKoM,EAAM1d,IAAIyd,GAAW,MAAM,IAAIG,UAAU,2EACvG,MAAiB,MAATD,EAAerM,EAAEhP,KAAKmb,EAAU1xB,GAASulB,EAAIA,EAAEvlB,MAAQA,EAAQ2xB,EAAM3wB,IAAI0wB,EAAU1xB,GAASA,CACxG,EACI8xB,GAAkE,SAAUJ,EAAUC,EAAOC,EAAMrM,GACnG,GAAa,MAATqM,IAAiBrM,EAAG,MAAM,IAAIsM,UAAU,iDAC5C,GAAqB,mBAAVF,EAAuBD,IAAaC,IAAUpM,GAAKoM,EAAM1d,IAAIyd,GAAW,MAAM,IAAIG,UAAU,4EACvG,MAAgB,MAATD,EAAerM,EAAa,MAATqM,EAAerM,EAAEhP,KAAKmb,GAAYnM,EAAIA,EAAEvlB,MAAQ2xB,EAAM/wB,IAAI8wB,EACxF,EA6BA,MAAMK,GAAkBC,OAAO,kBACzBC,GAAgBD,OAAO,kBACvBE,GAA8BF,OAAO,8BACrCG,GAAeH,OAAO,eACtBI,GAAUJ,OAAO,UACjBK,GAAiBL,OAAO,iBACxBM,GAA0BN,OAAO,0BACjCO,GAAyBP,OAAO,yBAChCQ,GAAeR,OAAO,eACtBS,GAAgBT,OAAO,gBACvBU,GAA0BV,OAAO,0BACjCW,GAASX,OAAO,SAChBY,GAA2BZ,OAAO,2BAClCa,GAA2Cb,OAAO,2CAClDc,GAAqCd,OAAO,qCAC5Ce,GAAgCf,OAAO,gCACvCgB,GAAehB,OAAO,eACtBiB,GAAUjB,OAAO,UACjBkB,GAAYlB,OAAO,YACnBmB,GAAiBnB,OAAO,iBACxBoB,GAAsBpB,OAAO,sBAC7BqB,GAAcrB,OAAO,cACrBsB,GAAgBtB,OAAO,gBACvBuB,GAAqBvB,OAAO,qBAC5BwB,GAAmBxB,OAAO,mBAC1ByB,GAAoBzB,OAAO,oBAC3B0B,GAAyB1B,OAAO,yBAChC2B,GAAoB3B,OAAO,oBAC3B4B,GAAmB5B,OAAO,mBAC1B6B,GAAe7B,OAAO,eACtB8B,GAAU9B,OAAO,UACjB+B,GAAS/B,OAAO,SAChBgC,GAAoChC,OAAO,oCAC3CiC,GAAiBjC,OAAO,iBACxBkC,GAAgBlC,OAAO,gBACvBmC,GAAwBnC,OAAO,yBAC9B,MAAMoC,GACT,WAAArwB,CAAYswB,EAAc,GAAIv2B,EAAKw2B,EAAe/e,GAC9CrR,KAAKokB,kBAAmB,EACxBpkB,KAAKrD,QAAS,EACdyuB,GAAuBtuB,IAAIkD,UAAM,GACjCqrB,GAAmBvuB,IAAIkD,UAAM,GAC7BsrB,GAAuBxuB,IAAIkD,KAAM,CAAE4c,SAAU,GAAIE,aAAc,KAC/DyO,GAA0BzuB,IAAIkD,KAAM,MACpCwrB,GAAiC1uB,IAAIkD,KAAM,MAC3CyrB,GAAoC3uB,IAAIkD,KAAM,eAC9C0rB,GAAyB5uB,IAAIkD,KAAM,MACnC2rB,GAA4B7uB,IAAIkD,MAAM,GACtC4rB,GAA+B9uB,IAAIkD,KAAM,CAAA,GACzC6rB,GAA2B/uB,IAAIkD,MAAM,GACrC8rB,GAAuBhvB,IAAIkD,KAAM,IACjC+rB,GAAgCjvB,IAAIkD,UAAM,GAC1CgsB,GAAsBlvB,IAAIkD,KAAM,CAAA,GAChCisB,GAAyBnvB,IAAIkD,MAAM,GACnCksB,GAAuBpvB,IAAIkD,KAAM,MACjCmsB,GAA+BrvB,IAAIkD,MAAM,GACzCosB,GAAsBtvB,IAAIkD,UAAM,GAChCqsB,GAAsBvvB,IAAIkD,KAAM,IAChCssB,GAAuBxvB,IAAIkD,UAAM,GACjCusB,GAA6BzvB,IAAIkD,UAAM,GACvCwsB,GAA4B1vB,IAAIkD,KAAM,CAAA,GACtCysB,GAAuB3vB,IAAIkD,KAAM,MACjC0sB,GAA4B5vB,IAAIkD,KAAM,MACtC2sB,GAAoB7vB,IAAIkD,KAAM,CAAA,GAC9B4sB,GAA+B9vB,IAAIkD,KAAM,CAAA,GACzC6sB,GAA2B/vB,IAAIkD,UAAM,GACrC8sB,GAAiChwB,IAAIkD,MAAM,GAC3C+sB,GAAoBjwB,IAAIkD,UAAM,GAC9BgtB,GAAsBlwB,IAAIkD,MAAM,GAChCitB,GAA8BnwB,IAAIkD,MAAM,GACxCktB,GAA6BpwB,IAAIkD,MAAM,GACvCmtB,GAAqBrwB,IAAIkD,UAAM,GAC/BotB,GAA2BtwB,IAAIkD,KAAM,CAAA,GACrCqtB,GAA0BvwB,IAAIkD,KAAM,MACpCstB,GAA0BxwB,IAAIkD,UAAM,GACpCutB,GAAuBvtB,KAAM+sB,GAAqB1b,EAAM,KACxDkc,GAAuBvtB,KAAM6sB,GAA4BsD,EAAa,KACtE5C,GAAuBvtB,KAAMqrB,GAAoBzxB,EAAK,KACtD2zB,GAAuBvtB,KAAMusB,GAA8B6D,EAAe,KAC1E7C,GAAuBvtB,KAAM+rB,GAAiC,IAAI/T,GAAiBhY,MAAO,KAC1FA,KAAKqkB,GAAKrkB,KAAKmuB,MACfnuB,KAAK6vB,MACLtC,GAAuBvtB,KAAMorB,GAAwBwC,GAAuB5tB,KAAMorB,GAAwB,KAAM,KAChHmC,GAAuBvtB,KAAMmtB,GAAsBS,GAAuB5tB,KAAMmtB,GAAsB,KAAM,KAC5GI,GAAuBvtB,KAAMstB,GAA2BM,GAAuB5tB,KAAMstB,GAA2B,KAAM,KACtHC,GAAuBvtB,KAAMssB,GAAwBsB,GAAuB5tB,KAAMssB,GAAwB,KAAM,KAChHsB,GAAuB5tB,KAAMssB,GAAwB,KAAK5I,cAAgBkK,GAAuB5tB,KAAMyrB,GAAqC,KAC5I8B,GAAuBvtB,KAAMosB,GAAuBpsB,KAAK+tB,MAAkB,IAC9E,CACD,UAAAsC,CAAWvmB,EAAK8G,GAOZ,OALAuG,GAAQ,4BAA6B,CAACrN,EAAK8G,GAAMiB,UAAUhX,QACvD+yB,GAAuB5tB,KAAMksB,GAAwB,OACrDlsB,KAAKguB,IAA6BJ,GAAuB5tB,KAAMksB,GAAwB,MACvFqB,GAAuBvtB,KAAMksB,GAAwB,KAAM,OAEnD,IAARpiB,QAAyBlP,IAARgW,IAErB2c,GAAuBvtB,KAAMksB,GAAuC,iBAARpiB,EAAmBA,EARxD,OAQ8E,KACrG9J,KAAK4G,QAAQgnB,GAAuB5tB,KAAMksB,GAAwB,MAClElsB,KAAKygB,SAASmN,GAAuB5tB,KAAMksB,GAAwB,KAAMtb,GAAOgd,GAAuB5tB,KAAMmtB,GAAsB,KAAKtJ,gBAAgB,eAH7I7jB,IAKd,CACD,IAAA8jB,CAAKha,EAAK8G,GACN,OAAO5Q,KAAKqwB,WAAWvmB,EAAK8G,EAC/B,CACD,gBAAA0f,CAAiBxmB,EAAK8G,GAElB,GADAuG,GAAQ,4BAA6B,CAACrN,EAAK8G,GAAMiB,UAAUhX,SAC/C,IAARiP,QAAyBlP,IAARgW,EACjB,OAAO5Q,KACX,MAAM0jB,EAA+B,iBAAR5Z,EAAmBA,EAAM8jB,GAAuB5tB,KAAMyrB,GAAqC,KAIxH,OAHAzrB,KAAK4G,QAAQ8c,GACb1jB,KAAKygB,SAASiD,EAAe9S,GAAOgd,GAAuB5tB,KAAMmtB,GAAsB,KAAKtJ,gBAAgB,wBAC5G+J,GAAuB5tB,KAAMssB,GAAwB,KAAK5I,cAAgBA,EACnE1jB,IACV,CACD,UAAAuwB,CAAWzmB,EAAK8G,GACZ,OAAO5Q,KAAKswB,iBAAiBxmB,EAAK8G,EACrC,CACD,KAAAlK,CAAM7K,EAAKC,GAGP,OAFAqb,GAAQ,uCAAwC,CAACtb,EAAKC,GAAQ+V,UAAUhX,QACxEmF,KAAK4uB,IAAoC5uB,KAAK0G,MAAMoP,KAAK9V,MAAO,QAASnE,EAAKC,GACvEkE,IACV,CACD,KAAA2G,CAAMxK,GAIF,OAHAgb,GAAQ,iBAAkB,CAAChb,GAAO0V,UAAUhX,QAC5CmF,KAAK0uB,IAA0B,QAASvyB,GACxC6D,KAAKiwB,IAAuB9zB,GACrB6D,IACV,CACD,OAAA4G,CAAQzK,GAIJ,OAHAgb,GAAQ,iBAAkB,CAAChb,GAAO0V,UAAUhX,QAC5CmF,KAAK0uB,IAA0B,UAAWvyB,GAC1C6D,KAAKiwB,IAAuB9zB,GACrB6D,IACV,CACD,KAAAwwB,CAAMnP,EAAG/I,GAkBL,OAjBAnB,GAAQ,uBAAwB,CAACkK,EAAG/I,GAASzG,UAAUhX,QACvDmF,KAAKqZ,YAAW,CAAC1f,EAAM82B,IACZ/W,IAAiB,IACb2H,EAAE1nB,EAAM82B,EAAOnS,gBACtB7E,IACKA,GAGsB,iBAAXA,GAAuBA,aAAkBpd,QACrDuxB,GAAuB5tB,KAAMmtB,GAAsB,KAAKvO,KAAKnF,EAAOrf,WAAYqf,GAHhFmU,GAAuB5tB,KAAMmtB,GAAsB,KAAKvO,KAAKgP,GAAuB5tB,KAAM+sB,GAAqB,KAAKnX,KAAKtO,GAAG,4BAA6B+Z,EAAEjnB,aAKxJT,KACPyD,IACAwwB,GAAuB5tB,KAAMmtB,GAAsB,KAAKvO,KAAKxhB,EAAIuW,QAAUvW,EAAIuW,QAAUvW,EAAIhD,WAAYgD,GAClGzD,OAEZ,EAAO2e,GACHtY,IACV,CACD,OAAAsmB,CAAQzqB,EAAKC,GAGT,OAFAqb,GAAQ,uCAAwC,CAACtb,EAAKC,GAAQ+V,UAAUhX,QACxEmF,KAAK4uB,IAAoC5uB,KAAKsmB,QAAQxQ,KAAK9V,MAAO,UAAWnE,EAAKC,GAC3EkE,IACV,CACD,MAAA+G,CAAO5K,EAAML,GAET,GADAqb,GAAQ,mCAAoC,CAAChb,EAAML,GAAQ+V,UAAUhX,QACjE4I,MAAM+D,QAAQrL,GAAO,CACrB,IAAKL,EACD,MAAM,IAAI6U,GAAO,oCAErB,IAAK,MAAM9U,KAAOM,EACd6D,KAAK+G,OAAOlL,EAAKC,GAErB,OAAOkE,IACV,CACI,GAAoB,iBAAT7D,EAAmB,CAC/B,IAAK,MAAMN,KAAOE,OAAOI,KAAKA,GAC1B6D,KAAK+G,OAAOlL,EAAKM,EAAKN,IAE1B,OAAOmE,IACV,CACD,IAAKlE,EACD,MAAM,IAAI6U,GAAO,oCA2BrB,OAzBAid,GAAuB5tB,KAAMssB,GAAwB,KAAKzwB,IAAIM,IAAQ,EACtEyxB,GAAuB5tB,KAAM+rB,GAAiC,KAAKvT,qBAAoB,CAAC7e,EAAMse,KAC1F,IAAIlQ,EAEJ,OADqBhM,OAAOqW,UAAUW,eAAeV,KAAK1Y,EAAMwC,GAIzDud,IAAiB,KACpB3R,EAAUkQ,EAAMS,aACT5c,EAAMnC,EAAKwC,OAClBsd,IACA9f,EAAKwC,GAAQsd,EACb,MAAMiX,EAAezY,EAChBwE,qBACAqI,yBAAyB,iBAC9B,GAAI/c,EAAQ5L,KAA0B,IAAjBu0B,EACjB,IAAK,MAAMhqB,KAASqB,EAAQ5L,GACxBxC,EAAK+M,GAAS+S,EAGtB,OAAO9f,CAAI,IACXyD,IACA,MAAM,IAAIuT,GAAOvT,EAAIuW,QAAQ,IAjBtBha,CAkBT,GACHwC,GACI6D,IACV,CACD,SAAA2wB,CAAUC,EAAMC,GAGZ,OAFA1Z,GAAQ,iCAAkC,CAACyZ,EAAMC,GAAOhf,UAAUhX,QAClE+yB,GAAuB5tB,KAAMstB,GAA2B,KAAKqD,UAAUC,EAAMC,GACtE7wB,IACV,CACD,MAAApD,CAAOf,EAAM,SAAU+U,EAAKkgB,GAExB,OADA3Z,GAAQ,+CAAgD,CAACtb,EAAK+U,EAAKkgB,GAAUjf,UAAUhX,QACpE,iBAARgB,GAAqB4H,MAAM+D,QAAQ3L,IAK3B,mBAAR+U,IACPkgB,EAAUlgB,EACVA,OAAMhW,GAEVoF,KAAKygB,SAAS5kB,EAAK+U,GAAOgd,GAAuB5tB,KAAMmtB,GAAsB,KAAKtJ,gBAAgB,8BACjGpgB,MAAM+D,QAAQ3L,GAAOA,EAAM,CAACA,IAAMkF,SAAQqN,IACvCwf,GAAuB5tB,KAAMssB,GAAwB,KAAK1vB,OAAOwR,GAAK0iB,IAAW,CAAI,IAElF9wB,OAZHnE,EAAMyuB,GAAazuB,EAAK+xB,GAAuB5tB,KAAMqrB,GAAoB,KAAMrrB,KAAKouB,MAA2B,uBAAwB,EAAOR,GAAuB5tB,KAAM+sB,GAAqB,MAChMa,GAAuB5tB,KAAMssB,GAAwB,KAAKzlB,eAAiB+mB,GAAuB5tB,KAAMssB,GAAwB,KAAKzlB,eAAiB,IAAIuB,OAAOvM,GAC1JmE,KAWd,CACD,UAAA+wB,CAAWra,EAAKgK,EAAMne,GAalB,OAZA4U,GAAQ,gDAAiD,CAACT,EAAKgK,EAAMne,GAAKsP,UAAUhX,QAChE,mBAAT6lB,IACPne,EAAKme,EACLA,OAAO9lB,GAEX2yB,GAAuBvtB,KAAMwrB,GAAkC9U,GAAOkX,GAAuB5tB,KAAMwrB,GAAkC,MAAQ,aAAc,KACtJ9K,IAAiB,IAATA,IACTA,EAAO,8BAEX1gB,KAAKzC,QAAQqwB,GAAuB5tB,KAAMwrB,GAAkC,KAAM9K,GAC9Ene,GACAqrB,GAAuB5tB,KAAMurB,GAA2B,KAAKvB,iBAAiBznB,GAC3EvC,IACV,CACD,OAAAzC,CAAQmZ,EAAKsE,EAAaC,EAASC,EAASjC,EAAamC,GAGrD,OAFAjE,GAAQ,+FAAgG,CAACT,EAAKsE,EAAaC,EAASC,EAASjC,EAAamC,GAAavJ,UAAUhX,QACjL+yB,GAAuB5tB,KAAMorB,GAAwB,KAAKrQ,WAAWrE,EAAKsE,EAAaC,EAASC,EAASjC,EAAamC,GAC/Gpb,IACV,CACD,QAAA4c,CAASlG,EAAKsE,EAAaC,EAASC,EAASjC,EAAamC,GACtD,OAAOpb,KAAKzC,QAAQmZ,EAAKsE,EAAaC,EAASC,EAASjC,EAAamC,EACxE,CACD,UAAA4V,CAAWvc,EAAK3U,GACZqX,GAAQ,oBAAqB,CAAC1C,EAAK3U,GAAO+R,UAAUhX,QACpD,MAAMyf,EAAMsT,GAAuB5tB,KAAMusB,GAA8B,MAAQqB,GAAuB5tB,KAAM+sB,GAAqB,KAAKvd,QAEtI,OADAoe,GAAuB5tB,KAAMorB,GAAwB,KAAK/Q,aAAa5F,EAAK6F,EAAKsT,GAAuB5tB,KAAM+sB,GAAqB,KAAKhY,gBAAiBjV,GAClJE,IACV,CACD,KAAApE,CAAMO,GAIF,OAHAgb,GAAQ,iBAAkB,CAAChb,GAAO0V,UAAUhX,QAC5CmF,KAAK0uB,IAA0B,QAASvyB,GACxC6D,KAAKiwB,IAAuB9zB,GACrB6D,IACV,CACD,QAAQnE,EAAKC,EAAO8nB,GAchB,OAbAzM,GAAQ,qCAAsC,CAACtb,EAAKC,EAAO8nB,GAAqB/R,UAAUhX,QACtF+oB,IACAzN,GAAgBta,EAAK+xB,GAAuB5tB,KAAM+sB,GAAqB,MACvEa,GAAuB5tB,KAAMssB,GAAwB,KAAK1I,mBAAmB/nB,GAAO+nB,GAEnE,mBAAV9nB,IACPqa,GAAgBta,EAAK+xB,GAAuB5tB,KAAM+sB,GAAqB,MAClEa,GAAuB5tB,KAAMssB,GAAwB,KAAK1I,mBAAmB/nB,KAC9E+xB,GAAuB5tB,KAAMssB,GAAwB,KAAK1I,mBAAmB/nB,GACzE+xB,GAAuB5tB,KAAMmtB,GAAsB,KAAKtG,oBAAoB/qB,IACpFA,EAAQA,EAAMuW,QAElBrS,KAAK2uB,IAA0C3uB,KAAKgH,QAAQ8O,KAAK9V,MAAO,UAAWnE,EAAKC,GACjFkE,IACV,CACD,QAAA4I,CAAS/M,EAAKC,EAAO8nB,GACjB,OAAO5jB,KAAKgH,QAAQnL,EAAKC,EAAO8nB,EACnC,CACD,aAAAqN,CAAc/vB,EAAM,EAAG6C,EAAKmtB,EAAQC,GAahC,OAZAha,GAAQ,2EAA4E,CAACjW,EAAK6C,EAAKmtB,EAAQC,GAAStf,UAAUhX,QACvG,iBAARkJ,IACPmtB,EAASntB,EACTA,EAAMqtB,KAEVpxB,KAAKsY,OAAO,KAAK,GACjBsV,GAAuB5tB,KAAMssB,GAAwB,KAAKhI,iBAAiBha,EAAI,CAC3EpJ,MACA6C,MACAmtB,SACAC,UAEGnxB,IACV,CACD,MAAAmf,CAAOhjB,EAAM4H,EAAK6M,GA8Bd,OA7BInN,MAAM+D,QAAQzD,IACdA,EAAIhD,SAAQlF,IACRma,GAAqBpF,GAAK,EAAMgd,GAAuB5tB,KAAM+sB,GAAqB,MAClF/sB,KAAKikB,aAAapoB,EAAK+U,EAAI,IAE/B7M,EAAMqtB,KAEc,iBAARrtB,IACZ6M,EAAM7M,EACNA,EAAMqtB,KAEU,iBAATj1B,GACP6Z,GAAqBpF,GAAK,EAAMgd,GAAuB5tB,KAAM+sB,GAAqB,MAClF/sB,KAAKixB,cAAc90B,EAAM4H,EAAK6M,EAAKA,IAE9BnN,MAAM+D,QAAQrL,GACnBA,EAAK4E,SAAQlF,IACTma,GAAqBpF,GAAK,EAAMgd,GAAuB5tB,KAAM+sB,GAAqB,MAClF/sB,KAAKikB,aAAapoB,EAAK+U,EAAI,IAIZ,iBAARA,EACP5Q,KAAKikB,aAAa9nB,EAAMyU,IAEX,IAARA,QAA+B,IAARA,GAC5B5Q,KAAKikB,aAAa9nB,GAGnB6D,IACV,CACD,YAAAikB,CAAa9nB,EAAMyU,GAGf,OAFAuG,GAAQ,iCAAkC,CAAChb,EAAMyU,GAAMiB,UAAUhX,QACjEmF,KAAK2uB,IAA0C3uB,KAAKikB,aAAanO,KAAK9V,MAAO,kBAAmB7D,EAAMyU,GAC/F5Q,IACV,CACD,eAAAqxB,CAAgB5Y,EAAQ9E,GAGpB,OAFAwD,GAAQ,4BAA6B,CAACsB,EAAQ9E,GAAU9B,UAAUhX,QAClE+yB,GAAuB5tB,KAAMssB,GAAwB,KAAK9H,kBAAkB/L,GAAU9E,EAC/E3T,IACV,CACD,QAAAygB,CAAStkB,EAAM6e,GAIX,OAHA7D,GAAQ,iCAAkC,CAAChb,EAAM6e,GAAcnJ,UAAUhX,QACzEmF,KAAK+uB,IAAS5yB,GAAM,GACpByxB,GAAuB5tB,KAAMmtB,GAAsB,KAAK1M,SAAStkB,EAAM6e,GAChEhb,IACV,CACD,YAAAsxB,CAAaC,GAGT,OAFApa,GAAQ,YAAa,CAACoa,GAAS1f,UAAUhX,QACzC0yB,GAAuBvtB,KAAM2rB,GAA6B4F,EAAQ,KAC3DvxB,IACV,CACD,GAAAjG,CAAIuT,GAMA,OALA6J,GAAQ,mBAAoB,CAAC7J,GAASuE,UAAUhX,SACjC,IAAXyS,SACOsgB,GAAuB5tB,KAAMssB,GAAwB,KAAKrlB,UAEjE2mB,GAAuB5tB,KAAMssB,GAAwB,KAAKrlB,UAAYqG,GAAU,GAC7EtN,IACV,CACD,QAAAwxB,CAAS5gB,GAGL,OAFAuG,GAAQ,WAAY,CAACvG,GAAMiB,UAAUhX,QACrC+yB,GAAuB5tB,KAAMmtB,GAAsB,KAAKxK,OAAO/R,GACxD5Q,IACV,CACD,MAAA2iB,CAAO/R,GACH,OAAO5Q,KAAKwxB,SAAS5gB,EACxB,CACD,OAAAyR,CAAQ3L,EAAKsE,GAQT,OAPA7D,GAAQ,0BAA2B,CAACT,EAAKsE,GAAcnJ,UAAUhX,QAC7D4I,MAAM+D,QAAQkP,GACdA,EAAI3V,SAAQ0wB,GAAiBzxB,KAAKqiB,WAAWoP,KAG7C7D,GAAuB5tB,KAAMmtB,GAAsB,KAAK9K,QAAQ3L,EAAKsE,GAElEhb,IACV,CACD,IAAAwV,CAAKzW,EAAM3B,GACPmwB,GAAuBvtB,KAAMisB,IAA0B,EAAM,KAC7DsB,GAAuBvtB,KAAM0rB,GAA0BtuB,EAAK,KACxDwwB,GAAuB5tB,KAAM6rB,GAA4B,MACzD+B,GAAuB5tB,KAAM+sB,GAAqB,KAAKvyB,QAAQgb,KAAKzW,EAC3E,CACD,WAAA2yB,CAAYjQ,GAAU,GAGlB,OAFAtK,GAAQ,YAAa,CAACsK,GAAU5P,UAAUhX,QAC1C0yB,GAAuBvtB,KAAM6rB,GAA4BpK,EAAS,KAC3DzhB,IACV,CACD,IAAA4e,CAAKyC,GAED,GADAlK,GAAQ,qBAAsB,CAACkK,GAAIxP,UAAUhX,QAC5B,kBAANwmB,IAAyB,IAANA,EAC1B,MAAM,IAAI1Q,GAAO,gEAGrB,OADAid,GAAuB5tB,KAAMmtB,GAAsB,KAAK/L,OAAOC,GACxDrhB,IACV,CACD,UAAA0Y,GACI,OAAO1Y,KAAKrD,OAASqD,KAAKrD,OAAOoL,QAAU,CAAA,CAC9C,CACD,mBAAM8hB,CAAcrsB,EAAMkqB,GAEtB,OADAvQ,GAAQ,qBAAsB,CAAC3Z,EAAMkqB,GAAO7V,UAAUhX,QACjD6sB,EAWMkG,GAAuB5tB,KAAMurB,GAA2B,KAAK1B,cAAcrsB,EAAMkqB,GAVjF,IAAI1qB,SAAQ,CAAC7C,EAASuD,KACzBkwB,GAAuB5tB,KAAMurB,GAA2B,KAAK1B,cAAcrsB,GAAM,CAACJ,EAAKuqB,KAC/EvqB,EACAM,EAAON,GAEPjD,EAAQwtB,EAAY,GAC1B,GAMb,CACD,kBAAA3D,GAEI,OADA7M,GAAQ,GAAI,GACLyW,GAAuB5tB,KAAMssB,GAAwB,KAAKvI,eACpE,CACD,mBAAAQ,GAEI,OADApN,GAAQ,GAAI,GACLyW,GAAuB5tB,KAAMssB,GAAwB,KAAKhI,gBACpE,CACD,oBAAAG,GAEI,OADAtN,GAAQ,GAAI,GACLyW,GAAuB5tB,KAAMssB,GAAwB,KAAK9H,iBACpE,CACD,eAAAmN,GACI,OAAO/D,GAAuB5tB,KAAM2rB,GAA6B,IACpE,CACD,cAAA7J,GACI,OAAO8L,GAAuB5tB,KAAM6rB,GAA4B,IACnE,CACD,SAAAlH,GACI,OAAO5oB,OAAO0K,OAAO,GAAImnB,GAAuB5tB,KAAMgsB,GAAuB,KAAM4B,GAAuB5tB,KAAM4sB,GAAgC,KACnJ,CACD,OAAAgF,GAEI,GADArE,GAAuBvtB,KAAMisB,IAA0B,EAAM,MACxD2B,GAAuB5tB,KAAMmtB,GAAsB,KAAKxG,uBAAwB,CACjF,IAAK3mB,KAAKrD,OAAQ,CACd,MAAM4J,EAAQvG,KAAK8vB,IAAmClC,GAAuB5tB,KAAM6sB,GAA4B,UAAMjyB,OAAWA,EAAW,GAAG,GAC9I,GAAI0b,GAAU/P,GACV,OAAOA,EAAMiQ,MAAK,IACPoX,GAAuB5tB,KAAMmtB,GAAsB,KAAKrJ,QAG1E,CACD,MAAM+N,EAAkBjE,GAAuB5tB,KAAMorB,GAAwB,KAAKnL,oBAAoBjgB,MACtG,GAAIsW,GAAUub,GACV,OAAOA,EAAgBrb,MAAK,IACjBoX,GAAuB5tB,KAAMmtB,GAAsB,KAAKrJ,QAG1E,CACD,OAAO9mB,QAAQ7C,QAAQyzB,GAAuB5tB,KAAMmtB,GAAsB,KAAKrJ,OAClF,CACD,UAAAxF,GACI,OAAOsP,GAAuB5tB,KAAMssB,GAAwB,IAC/D,CACD,SAAAwF,GACI,OAAOlE,GAAuB5tB,KAAMgtB,GAAuB,IAC9D,CACD,iBAAA+E,GACI,OAAOnE,GAAuB5tB,KAAMitB,GAA+B,IACtE,CACD,gBAAA+E,GACI,OAAOpE,GAAuB5tB,KAAMktB,GAA8B,IACrE,CACD,MAAA5U,CAAO2Z,EAAS3Z,GAYZ,OAXAnB,GAAQ,2BAA4B,CAAC8a,EAAS3Z,GAASzG,UAAUhX,QACjEo3B,EAAU,GAAG7pB,OAAO6pB,IACL,IAAX3Z,EACAsV,GAAuB5tB,KAAMssB,GAAwB,KAAK4F,MAAQtE,GAAuB5tB,KAAMssB,GAAwB,KAAK4F,MAAM91B,QAAO+1B,IAA6B,IAAxBF,EAAQvtB,QAAQytB,KAG9JF,EAAQlxB,SAAQqxB,IACPxE,GAAuB5tB,KAAMssB,GAAwB,KAAK4F,MAAMzlB,SAAS2lB,IAC1ExE,GAAuB5tB,KAAMssB,GAAwB,KAAK4F,MAAMp3B,KAAKs3B,EAAE,IAG5EpyB,IACV,CACD,KAAAslB,CAAMxlB,EAAM6lB,GACRxO,GAAQ,0BAA2B,CAACrX,EAAM6lB,GAAY9T,UAAUhX,QAChE,MAAMw3B,EAAWzE,GAAuB5tB,KAAM4sB,GAAgC,KAAKjH,IAAciI,GAAuB5tB,KAAMgsB,GAAuB,KAAKrG,GACtJiI,GAAuB5tB,KAAM4sB,GAAgC,KAAKjH,WAC3DiI,GAAuB5tB,KAAM4sB,GAAgC,KAAKjH,GAE7E,MAAM2M,EAAO,CAAA,EAMb,OALA1E,GAAuB5tB,KAAMgsB,GAAuB,KAAKrG,IAAc0M,GAAY,IAAIjqB,OAAOtI,GAAM1D,QAAOP,IACnGy2B,EAAKz2B,KAEDy2B,EAAKz2B,IAAO,KAEjBmE,IACV,CACD,IAAAuyB,CAAK12B,GAGD,OAFAsb,GAAQ,WAAY,CAACtb,GAAMgW,UAAUhX,QACrC+yB,GAAuB5tB,KAAMssB,GAAwB,KAAK7I,cAAc3oB,KAAKe,GACtEmE,IACV,CACD,OAAAwyB,CAAQ32B,EAAKC,GAGT,OAFAqb,GAAQ,wCAAyC,CAACtb,EAAKC,GAAQ+V,UAAUhX,QACzE+yB,GAAuB5tB,KAAMstB,GAA2B,KAAKkF,QAAQ32B,EAAKC,GACnEkE,IACV,CACD,MAAAyR,CAAOA,GAEH,OADA0F,GAAQ,WAAY,CAAC1F,GAASI,UAAUhX,aACzBD,IAAX6W,GACAzR,KAAKsuB,MACEV,GAAuB5tB,KAAM+sB,GAAqB,KAAKnX,KAAK/C,cAEvE0a,GAAuBvtB,KAAM2rB,IAA6B,EAAO,KACjEiC,GAAuB5tB,KAAM+sB,GAAqB,KAAKnX,KAAKhD,UAAUnB,GAC/DzR,KACV,CACD,UAAAqZ,CAAW9E,EAAU8D,EAAuBC,GACxC,OAAOsV,GAAuB5tB,KAAM+rB,GAAiC,KAAK3T,cAAc7D,IAAY8D,EAAuBC,EAC9H,CACD,KAAA7O,CAAM5N,EAAKC,GAGP,OAFAqb,GAAQ,iCAAkC,CAACtb,EAAKC,GAAQ+V,UAAUhX,QAClEmF,KAAK2uB,IAA0C3uB,KAAKyJ,MAAMqM,KAAK9V,MAAO,OAAQnE,EAAKC,GAC5EkE,IACV,CACD,SAAAmH,CAAUhL,GAGN,OAFAgb,GAAQ,iBAAkB,CAAChb,GAAO0V,UAAUhX,QAC5CmF,KAAK0uB,IAA0B,YAAavyB,GACrC6D,IACV,CACD,MAAAqH,CAAOlL,GAIH,OAHAgb,GAAQ,iBAAkB,CAAChb,GAAO0V,UAAUhX,QAC5CmF,KAAK0uB,IAA0B,SAAUvyB,GACzC6D,KAAKiwB,IAAuB9zB,GACrB6D,IACV,CACD,MAAAyY,CAAO5c,EAAKiO,GAER,GADAqN,GAAQ,2BAA4B,CAACtb,EAAKiO,GAAM+H,UAAUhX,QACvC,iBAARgB,EACPE,OAAOI,KAAKN,GAAKkF,SAAQqN,IACrBpO,KAAKvC,QAAQ2Q,EAAGvS,EAAIuS,GAAG,QAG1B,CACkB,iBAARtE,IACPA,EAAM,CAAA,GAEV9J,KAAKiwB,IAAuBp0B,IACxB+xB,GAAuB5tB,KAAMqtB,GAA2B,MAAiB,YAARxxB,GAA+E,aAAzDiO,aAAiC,EAASA,EAAIpD,QACrI1G,KAAKiuB,IAAc,CACf,gCACA,kCACA,gFACA,oEACA,+BACA,oDACFlzB,KAAK,WAAOH,EAAW,kBAE7BgzB,GAAuB5tB,KAAMssB,GAAwB,KAAKzwB,IAAIA,IAAO,EACjEiO,EAAIpD,OACJ1G,KAAK0G,MAAM7K,EAAKiO,EAAIpD,OACxB,MAAM+rB,EAAY3oB,EAAI2oB,WAAa3oB,EAAIsR,WACnCqX,GACAzyB,KAAKqxB,gBAAgBx1B,EAAK42B,GAE9B,MAAMtT,EAASrV,EAAIqV,QAAUrV,EAAI4oB,UAAY5oB,EAAI0F,QAC7C2P,GACAnf,KAAKmf,OAAOtjB,EAAKsjB,GAEjBrV,EAAIma,cACJjkB,KAAKikB,aAAapoB,EAAiC,iBAArBiO,EAAIma,aAA4Bna,EAAIma,kBAAerpB,GAEjFkP,EAAI6mB,WACJ3wB,KAAK2wB,UAAU90B,EAAKiO,EAAI6mB,WAExB,YAAa7mB,GACb9J,KAAKgH,QAAQnL,EAAKiO,EAAI9C,cAENpM,IAAhBkP,EAAI0oB,SACJxyB,KAAKwyB,QAAQ32B,EAAKiO,EAAI0oB,cAER53B,IAAdkP,EAAIL,OACJzJ,KAAKyJ,MAAM5N,EAAKiO,EAAIL,OAEpBK,EAAIlN,QACJoD,KAAKpD,OAAOf,EAAKiO,EAAI6oB,cAErB7oB,EAAI3C,WACJnH,KAAKmH,UAAUtL,GAEfiO,EAAIwc,SACJtmB,KAAKsmB,QAAQzqB,EAAKiO,EAAIwc,SAEtBxc,EAAI/C,QACJ/G,KAAK+G,OAAOlL,EAAKiO,EAAI/C,QAErB+C,EAAIwb,OACJtlB,KAAKslB,MAAMzpB,EAAKiO,EAAIwb,QAEpBxb,EAAIlD,SAAwB,YAAbkD,EAAI8E,QACnB5O,KAAK4G,QAAQ/K,GACTiO,EAAIpD,OACJ1G,KAAK4G,QAAQkD,EAAIpD,SAErBoD,EAAInD,OAAsB,UAAbmD,EAAI8E,QACjB5O,KAAK2G,MAAM9K,GACPiO,EAAIpD,OACJ1G,KAAK2G,MAAMmD,EAAIpD,SAEnBoD,EAAIzC,QAAuB,WAAbyC,EAAI8E,QAClB5O,KAAKqH,OAAOxL,GACRiO,EAAIpD,OACJ1G,KAAKqH,OAAOyC,EAAIpD,SAEpBoD,EAAI1C,QAAuB,WAAb0C,EAAI8E,QAClB5O,KAAKoH,OAAOvL,GACRiO,EAAIpD,OACJ1G,KAAKoH,OAAO0C,EAAIpD,SAEpBoD,EAAIlO,OAAsB,UAAbkO,EAAI8E,OACjB5O,KAAKpE,MAAMC,GAEW,kBAAfiO,EAAIwO,QACXtY,KAAKsY,OAAOzc,EAAKiO,EAAIwO,QAErBxO,EAAI8Z,qBACJgK,GAAuB5tB,KAAMssB,GAAwB,KAAK1I,mBAAmB/nB,GAAOiO,EAAI8Z,oBAExF9Z,EAAI8oB,gBACJ5yB,KAAK4yB,eAAe/2B,GAExB,MAAM6kB,EAAO5W,EAAI2W,UAAY3W,EAAIkR,aAAelR,EAAI4W,KAC9C6B,EAAeqL,GAAuB5tB,KAAMmtB,GAAsB,KAAK1K,kBACxE1mB,OAAOqW,UAAUW,eAAeV,KAAKkQ,EAAc1mB,IACpC,iBAAT6kB,GACP1gB,KAAKygB,SAAS5kB,EAAK6kB,GAEnB5W,EAAI/H,QACJ/B,KAAKuyB,KAAK12B,GAEViO,EAAI+oB,aACJ7yB,KAAK6yB,YAAYh3B,EAExB,CACD,OAAOmE,IACV,CACD,OAAAvC,CAAQ5B,EAAKiO,GACT,OAAO9J,KAAKyY,OAAO5c,EAAKiO,EAC3B,CACD,KAAAvD,CAAM/I,EAAMs1B,EAAcC,GACtB5b,GAAQ,sDAAuD,CAAC3Z,EAAMs1B,EAAcC,GAAWlhB,UAAUhX,QACzGmF,KAAKkuB,WACe,IAAT1wB,IACPA,EAAOowB,GAAuB5tB,KAAM6sB,GAA4B,MAExC,iBAAjBiG,IACPvF,GAAuBvtB,KAAM0sB,GAA6BoG,EAAc,KACxEA,EAAeC,GAES,mBAAjBD,IACPvF,GAAuBvtB,KAAMysB,GAAwBqG,EAAc,KACnEA,GAAe,GAEdA,GACDvF,GAAuBvtB,KAAM6sB,GAA4BrvB,EAAM,KAC/DowB,GAAuB5tB,KAAMysB,GAAwB,MACrDc,GAAuBvtB,KAAM6rB,IAA4B,EAAO,KACpE,MAAMlvB,EAASqD,KAAK8vB,IAAmCtyB,IAAQs1B,GACzDE,EAAYhzB,KAAKrD,OAEvB,OADAixB,GAAuB5tB,KAAMurB,GAA2B,KAAKtB,UAAUjqB,KAAKrD,QACxE2Z,GAAU3Z,GACHA,EACF6Z,MAAK7c,IACFi0B,GAAuB5tB,KAAMysB,GAAwB,MACrDmB,GAAuB5tB,KAAMysB,GAAwB,KAAKpa,KAAKrS,KAAM4tB,GAAuB5tB,KAAM0rB,GAA0B,KAAM/xB,EAAMi0B,GAAuB5tB,KAAMqsB,GAAuB,MACzL1yB,KAENglB,OAAMvhB,IAIP,MAHIwwB,GAAuB5tB,KAAMysB,GAAwB,MACrDmB,GAAuB5tB,KAAMysB,GAAwB,IAArDmB,CAA0DxwB,EAAK4C,KAAKrD,OAAOhD,KAAMi0B,GAAuB5tB,KAAMqsB,GAAuB,MAEnIjvB,CAAG,IAER61B,SAAQ,KACTjzB,KAAKgvB,MACLhvB,KAAKrD,OAASq2B,CAAS,KAIvBpF,GAAuB5tB,KAAMysB,GAAwB,MACrDmB,GAAuB5tB,KAAMysB,GAAwB,KAAKpa,KAAKrS,KAAM4tB,GAAuB5tB,KAAM0rB,GAA0B,KAAM/uB,EAAQixB,GAAuB5tB,KAAMqsB,GAAuB,MAClMrsB,KAAKgvB,MACLhvB,KAAKrD,OAASq2B,EAEXr2B,EACV,CACD,UAAAu2B,CAAW11B,EAAMs1B,EAAcC,GAC3B,MAAMxc,EAAevW,KAAKuG,MAAM/I,EAAMs1B,EAAcC,GACpD,OAAQzc,GAAUC,GAEZA,EADAvZ,QAAQ7C,QAAQoc,EAEzB,CACD,SAAA4c,CAAU31B,EAAMs1B,EAAcC,GAC1B,MAAMxc,EAAevW,KAAKuG,MAAM/I,EAAMs1B,EAAcC,GACpD,GAAIzc,GAAUC,GACV,MAAM,IAAI5F,GAAO,qFAErB,OAAO4F,CACV,CACD,mBAAA6c,CAAoBx2B,GAGhB,OAFAua,GAAQ,WAAY,CAACva,GAASiV,UAAUhX,QACxC0yB,GAAuBvtB,KAAMwsB,GAA6B5vB,EAAQ,KAC3DoD,IACV,CACD,OAAAqzB,CAAQx3B,EAAKZ,GACTkc,GAAQ,oBAAqB,CAACtb,EAAKZ,GAAW4W,UAAUhX,QACxD,IAAIy4B,EAAO,KACX,MAAMtpB,EAAMhK,KAAKyuB,IAAQxzB,GAAY2yB,GAAuB5tB,KAAMqrB,GAAoB,MAKtF,OAJIrhB,EAAInO,IAA4B,iBAAbmO,EAAInO,KACvBy3B,EAAOhJ,GAAatgB,EAAInO,GAAMZ,GAAY2yB,GAAuB5tB,KAAMqrB,GAAoB,KAAMrrB,KAAKouB,MAA2B,uBAAwB,EAAOR,GAAuB5tB,KAAM+sB,GAAqB,MAClNa,GAAuB5tB,KAAMssB,GAAwB,KAAKzlB,eAAiB+mB,GAAuB5tB,KAAMssB,GAAwB,KAAKzlB,eAAiB,IAAIuB,OAAOkrB,IAE9JtzB,IACV,CACD,UAAAwf,CAAW3jB,EAAKiE,GACZqX,GAAQ,oBAAqB,CAACtb,EAAKiE,GAAO+R,UAAUhX,QACpD,MAAM04B,EAAgB,CAClB,UACA,qBACA,UACA,YACA,UACA,YACA,SACA,OACA,WACA,OACA,cACA,SAEJzzB,EAAO6gB,GAAU7gB,GAAM,CAACsO,EAAG/F,MACb,SAAN+F,IAAiB,CAAC,SAAU,SAAU,WAAW3B,SAASpE,KAEvDkrB,EAAc9mB,SAAS2B,KAElC,MAAMolB,EAAc5F,GAAuB5tB,KAAMsrB,GAAwB,KAAKxO,aAAa8Q,GAAuB5tB,KAAMsrB,GAAwB,KAAKxO,aAAajiB,OAAS,GACrK8kB,EAAe6T,EACf5F,GAAuB5tB,KAAMorB,GAAwB,KAAK7L,kBAAkBiU,GAC5E,CACE7sB,MAAO,GACPD,MAAO,CAAE,EACTM,QAAS,CAAE,EACXmY,OAAQ,CAAE,GAclB,OAZA/I,GAAWuJ,GAAc5e,SAAQ0yB,IAC7B,MAAMC,EAAc/T,EAAa8T,GAC7BhwB,MAAM+D,QAAQksB,IACoB,IAA9BA,EAAYhvB,QAAQ7I,KACpBiE,EAAK2zB,IAAM,GAGXC,EAAY73B,MAAU43B,KAAM3zB,KAC5BA,EAAK2zB,GAAMC,EAAY73B,GAC9B,IAELmE,KAAKslB,MAAMzpB,EAAK+xB,GAAuB5tB,KAAMmtB,GAAsB,KAAKhL,0BACjEniB,KAAKyY,OAAO5c,EAAKiE,EAC3B,CACD,iBAAA6zB,CAAkBC,GAAY,GAG1B,OAFAzc,GAAQ,YAAa,CAACyc,GAAY/hB,UAAUhX,QAC5C0yB,GAAuBvtB,KAAM8sB,GAAkC8G,EAAW,KACnE5zB,IACV,CACD,QAAA0yB,CAASv2B,EAAM4H,EAAK6M,GAChB,OAAO5Q,KAAKmf,OAAOhjB,EAAM4H,EAAK6M,EACjC,CACD,OAAApB,CAAQrT,EAAM4H,EAAK6M,GACf,OAAO5Q,KAAKmf,OAAOhjB,EAAM4H,EAAK6M,EACjC,CACD,WAAAiiB,CAAY12B,GAER,OADAgb,GAAQ,iCAAkC,CAAChb,GAAO0V,UAAUhX,QACxC,iBAATsB,GAAqByxB,GAAuB5tB,KAAMssB,GAAwB,KAAKplB,KAAK/K,IAI3F6D,KAAK2uB,IAA0C3uB,KAAK6yB,YAAY/c,KAAK9V,MAAO,OAAQ7D,EAAM03B,KAHnF7zB,IAMd,CACD,oBAAA8zB,CAAqBzP,EAAI3N,GAIrB,OAHAS,GAAQ,oBAAqB,CAACkN,EAAI3N,GAAM7E,UAAUhX,QAClDwpB,EAAKA,GAAMrkB,KAAKqkB,GAChBuJ,GAAuB5tB,KAAMosB,GAAuB,KAAK2H,IAAInG,GAAuB5tB,KAAMurB,GAA2B,KAAKzB,yBAAyBzF,EAAI3N,GAAOkX,GAAuB5tB,KAAMwrB,GAAkC,MAAQ,eAC9NxrB,IACV,CACD,QAAA+hB,CAAS6E,GAGL,GAFAzP,GAAQ,oBAAqB,CAACyP,GAAQ/U,UAAUhX,QAChD0yB,GAAuBvtB,KAAMisB,IAA0B,EAAM,MACxD2B,GAAuB5tB,KAAMmtB,GAAsB,KAAKxG,uBAAwB,CACjF,IAAK3mB,KAAKrD,OAAQ,CACd,MAAM4J,EAAQvG,KAAK8vB,IAAmClC,GAAuB5tB,KAAM6sB,GAA4B,UAAMjyB,OAAWA,EAAW,GAAG,GAC9I,GAAI0b,GAAU/P,GAIV,OAHAA,EAAMiQ,MAAK,KACPoX,GAAuB5tB,KAAMmtB,GAAsB,KAAKpL,SAAS6E,EAAM,IAEpE5mB,IAEd,CACD,MAAM6xB,EAAkBjE,GAAuB5tB,KAAMorB,GAAwB,KAAKnL,oBAAoBjgB,MACtG,GAAIsW,GAAUub,GAIV,OAHAA,EAAgBrb,MAAK,KACjBoX,GAAuB5tB,KAAMmtB,GAAsB,KAAKpL,SAAS6E,EAAM,IAEpE5mB,IAEd,CAED,OADA4tB,GAAuB5tB,KAAMmtB,GAAsB,KAAKpL,SAAS6E,GAC1D5mB,IACV,CACD,UAAAg0B,CAAWA,GAGP,OAFAh0B,KAAKokB,kBAAmB,EACxBpkB,KAAKqkB,GAAK2P,EACHh0B,IACV,CACD,cAAAwhB,CAAeC,EAAS9N,GAGpB,OAFAwD,GAAQ,4BAA6B,CAACsK,EAAS9N,GAAU9B,UAAUhX,QACnE+yB,GAAuB5tB,KAAMmtB,GAAsB,KAAK3L,eAAeC,EAAS9N,GACzE3T,IACV,CACD,WAAAinB,CAAYL,GAGR,OAFAzP,GAAQ,oBAAqB,CAACyP,GAAQ/U,UAAUhX,QAChD+yB,GAAuB5tB,KAAMmtB,GAAsB,KAAKlG,YAAYL,GAC7D5mB,IACV,CACD,cAAA4yB,CAAez2B,GAGX,OAFAgb,GAAQ,iBAAkB,CAAChb,GAAO0V,UAAUhX,QAC5CmF,KAAK0uB,IAA0B,iBAAkBvyB,GAC1C6D,IACV,CACD,MAAAi0B,CAAOxS,GAGH,OAFAtK,GAAQ,YAAa,CAACsK,GAAU5P,UAAUhX,QAC1C0yB,GAAuBvtB,KAAMgtB,IAAmC,IAAZvL,EAAmB,KAChEzhB,IACV,CACD,cAAAk0B,CAAezS,GAGX,OAFAtK,GAAQ,YAAa,CAACsK,GAAU5P,UAAUhX,QAC1C0yB,GAAuBvtB,KAAMitB,IAA2C,IAAZxL,EAAmB,KACxEzhB,IACV,CACD,aAAAm0B,CAAc1S,GAGV,OAFAtK,GAAQ,YAAa,CAACsK,GAAU5P,UAAUhX,QAC1C0yB,GAAuBvtB,KAAMktB,IAA0C,IAAZzL,EAAmB,KACvEzhB,IACV,CACD,MAAAoH,CAAOjL,GAIH,OAHAgb,GAAQ,iBAAkB,CAAChb,GAAO0V,UAAUhX,QAC5CmF,KAAK0uB,IAA0B,SAAUvyB,GACzC6D,KAAKiwB,IAAuB9zB,GACrB6D,IACV,CACD,aAAAo0B,GAEI,OADAjd,GAAQ,GAAI,GACLyW,GAAuB5tB,KAAM+sB,GAAqB,KAAKvyB,QAAQkb,UACzE,CACD,YAAA5C,CAAa9I,GACT,OAAOhK,KAAKq0B,cAAcrqB,EAC7B,CACD,aAAAqqB,CAAcrqB,GAIV,OAHAmN,GAAQ,WAAY,CAACnN,GAAM6H,UAAUhX,QACrC0yB,GAAuBvtB,KAAM2rB,IAA6B,EAAO,KACjEiC,GAAuB5tB,KAAM+sB,GAAqB,KAAKnX,KAAK9C,aAAa9I,GAClEhK,IACV,CACD,KAAAga,CAAMpJ,EAAKoK,EAAaC,EAASC,GAE7B,GADA/D,GAAQ,wEAAyE,CAACvG,EAAKoK,EAAaC,EAASC,GAAUrJ,UAAUhX,aAC7GD,IAAhBogB,EAA2B,CAE3B,GADAhF,GAAqBpF,EAAK,KAAMgd,GAAuB5tB,KAAM+sB,GAAqB,OAC7Enc,GAAO,IAAIjP,MAAM,aAClB,OAAO3B,KAAKzC,QAAQqT,EAAKoK,EAAaC,EAASC,GAG/C,MAAM,IAAIvK,GAAO,gFAExB,CAGG,OADAid,GAAuB5tB,KAAMmtB,GAAsB,KAAKnT,MAAMpJ,GACvD5Q,IAEd,CACD,kBAAAs0B,CAAmB13B,GAGf,OAFAua,GAAQ,WAAY,CAACva,GAASiV,UAAUhX,QACxC0yB,GAAuBvtB,KAAMotB,GAA4BxwB,EAAQ,KAC1DoD,IACV,CACD,OAAAmG,CAAQ2D,EAAK8G,EAAKoW,GACd,MAAMuN,EAAoB,UAO1B,GANApd,GAAQ,qCAAsC,CAACrN,EAAK8G,EAAKoW,GAAMnV,UAAUhX,QACrE+yB,GAAuB5tB,KAAMqtB,GAA2B,OACxDrtB,KAAKguB,IAA6BJ,GAAuB5tB,KAAMqtB,GAA2B,MAC1FO,GAAuB5tB,KAAMmtB,GAAsB,KAAKhnB,aAAQvL,GAChE2yB,GAAuBvtB,KAAMqtB,GAA2B,KAAM,MAEzC,IAArBxb,UAAUhX,OACVmsB,EAAMhnB,KAAKuuB,MACXzkB,EAAMyqB,OAEL,GAAyB,IAArB1iB,UAAUhX,OAAc,CAC7B,IAAY,IAARiP,EACA,OAAO9J,KAEXgnB,EAAMld,EACNA,EAAMyqB,CACT,MAC6B,IAArB1iB,UAAUhX,SACfmsB,EAAMpW,EACNA,OAAMhW,GAOV,OALA2yB,GAAuBvtB,KAAMqtB,GAA0C,iBAARvjB,EAAmBA,EAAMyqB,EAAmB,KAC3G3jB,EAAMA,GAAOgd,GAAuB5tB,KAAMmtB,GAAsB,KAAKtJ,gBAAgB,uBACrF+J,GAAuB5tB,KAAMmtB,GAAsB,KAAKhnB,QAAQ6gB,QAAOpsB,GACvEoF,KAAK4G,QAAQgnB,GAAuB5tB,KAAMqtB,GAA2B,MACrErtB,KAAKygB,SAASmN,GAAuB5tB,KAAMqtB,GAA2B,KAAMzc,GACrE5Q,IACV,CACD,IAAAC,CAAKO,GAGD,OAFA2W,GAAQ,0BAA2B,CAAC3W,GAAOqR,UAAUhX,QACrD+yB,GAAuB5tB,KAAMmtB,GAAsB,KAAKltB,KAAKO,GACtDR,IACV,CACD,EAAEorB,GAAyB,IAAIoJ,QAAWnJ,GAAqB,IAAImJ,QAAWlJ,GAAyB,IAAIkJ,QAAWjJ,GAA4B,IAAIiJ,QAAWhJ,GAAmC,IAAIgJ,QAAW/I,GAAsC,IAAI+I,QAAW9I,GAA2B,IAAI8I,QAAW7I,GAA8B,IAAI6I,QAAW5I,GAAiC,IAAI4I,QAAW3I,GAA6B,IAAI2I,QAAW1I,GAAyB,IAAI0I,QAAWzI,GAAkC,IAAIyI,QAAWxI,GAAwB,IAAIwI,QAAWvI,GAA2B,IAAIuI,QAAWtI,GAAyB,IAAIsI,QAAWrI,GAAiC,IAAIqI,QAAWpI,GAAwB,IAAIoI,QAAWnI,GAAwB,IAAImI,QAAWlI,GAAyB,IAAIkI,QAAWjI,GAA+B,IAAIiI,QAAWhI,GAA8B,IAAIgI,QAAW/H,GAAyB,IAAI+H,QAAW9H,GAA8B,IAAI8H,QAAW7H,GAAsB,IAAI6H,QAAW5H,GAAiC,IAAI4H,QAAW3H,GAA6B,IAAI2H,QAAW1H,GAAmC,IAAI0H,QAAWzH,GAAsB,IAAIyH,QAAWxH,GAAwB,IAAIwH,QAAWvH,GAAgC,IAAIuH,QAAWtH,GAA+B,IAAIsH,QAAWrH,GAAuB,IAAIqH,QAAWpH,GAA6B,IAAIoH,QAAWnH,GAA4B,IAAImH,QAAWlH,GAA4B,IAAIkH,QAAW3G,KAAkBl0B,GACr/C,IAAKA,EAAK2Q,IAAM3Q,EAAK,MACjB,OAAOA,EACXA,EAAK2Q,EAAExP,KAAKoX,MAAMvY,EAAK2Q,EAAG3Q,EAAK,OAC/B,WACWA,EAAK,KACf,CACD,MAAOklB,GAAS,CAChB,OAAOllB,CACV,CACD,CAACo0B,MACG,MAAO,CACHgG,IAAK,IAAIv2B,KACAwC,KAAKyvB,OACNl0B,QAAQw4B,OAAOv2B,GACnB+vB,GAAuBvtB,KAAMisB,IAA0B,EAAM,KACzD2B,GAAuB5tB,KAAMqsB,GAAuB,KAAKxxB,QACzD0yB,GAAuBvtB,KAAMqsB,GAAuBuB,GAAuB5tB,KAAMqsB,GAAuB,KAAO,KAAM,KACzHkB,GAAuBvtB,KAAMqsB,GAAuBuB,GAAuB5tB,KAAMqsB,GAAuB,KAAO7uB,EAAKzC,KAAK,KAAM,IAAI,EAEvI6D,MAAO,IAAIpB,KACFwC,KAAKyvB,OACNl0B,QAAQqD,SAASpB,GACrB+vB,GAAuBvtB,KAAMisB,IAA0B,EAAM,KACzD2B,GAAuB5tB,KAAMqsB,GAAuB,KAAKxxB,QACzD0yB,GAAuBvtB,KAAMqsB,GAAuBuB,GAAuB5tB,KAAMqsB,GAAuB,KAAO,KAAM,KACzHkB,GAAuBvtB,KAAMqsB,GAAuBuB,GAAuB5tB,KAAMqsB,GAAuB,KAAO7uB,EAAKzC,KAAK,KAAM,IAAI,EAG9I,CACD,CAACizB,IAA6ByG,GAC1Bre,GAAWwX,GAAuB5tB,KAAMssB,GAAwB,MAAMvrB,SAAS2zB,IAC3E,GAAsB,kBAAiBA,EACnC,OACJ,MAAMC,EAAO/G,GAAuB5tB,KAAMssB,GAAwB,KAAKoI,GACnEjxB,MAAM+D,QAAQmtB,GACVA,EAAKloB,SAASgoB,IACdE,EAAKrsB,OAAOqsB,EAAKjwB,QAAQ+vB,GAAY,GAEpB,iBAATE,UACLA,EAAKF,EACf,WAEE7G,GAAuB5tB,KAAMmtB,GAAsB,KAAK1K,kBAAkBgS,EACpF,CACD,CAACxG,IAAc3Y,EAAS1G,EAAMgmB,GACrBhH,GAAuB5tB,KAAM4rB,GAAgC,KAAKgJ,KACnEhH,GAAuB5tB,KAAM+sB,GAAqB,KAAKvyB,QAAQ6a,YAAYC,EAAS1G,GACpFgf,GAAuB5tB,KAAM4rB,GAAgC,KAAKgJ,IAAmB,EAE5F,CACD,CAAC1G,MACGN,GAAuB5tB,KAAM8rB,GAAwB,KAAKhxB,KAAK,CAC3D2C,QAASmwB,GAAuB5tB,KAAMssB,GAAwB,KAC9DzlB,cAAe+mB,GAAuB5tB,KAAMssB,GAAwB,KAAKzlB,cAAcT,MAAM,GAC7FsrB,YAAa9D,GAAuB5tB,KAAM6rB,GAA4B,KACtEnH,OAAQkJ,GAAuB5tB,KAAMgsB,GAAuB,KAC5DiI,OAAQrG,GAAuB5tB,KAAMgtB,GAAuB,KAC5DkH,eAAgBtG,GAAuB5tB,KAAMitB,GAA+B,KAC5EkH,cAAevG,GAAuB5tB,KAAMktB,GAA8B,KAC1E2H,kBAAmBjH,GAAuB5tB,KAAMwrB,GAAkC,KAClFjO,OAAQqQ,GAAuB5tB,KAAMqsB,GAAuB,KAC5DyI,UAAWlH,GAAuB5tB,KAAM0rB,GAA0B,KAClEqJ,UAAWnH,GAAuB5tB,KAAMisB,GAA0B,KAClEtvB,OAAQqD,KAAKrD,OACbm0B,QAASlD,GAAuB5tB,KAAMysB,GAAwB,KAC9DuI,aAAcpH,GAAuB5tB,KAAM0sB,GAA6B,OAE5EkB,GAAuB5tB,KAAMmtB,GAAsB,KAAKvU,SACxDgV,GAAuB5tB,KAAMstB,GAA2B,KAAK1U,SAC7DgV,GAAuB5tB,KAAMorB,GAAwB,KAAKxS,SAC1DgV,GAAuB5tB,KAAM+rB,GAAiC,KAAKnT,QACtE,CACD,CAACuV,MACG,IACI8G,EADA5Q,EAAK,GAqBT,OAlBI4Q,EADA,kCAAkCt0B,KAAKitB,GAAuB5tB,KAAM+sB,GAAqB,KAAKvyB,QAAQb,OAAO,IACjGi0B,GAAuB5tB,KAAM+sB,GAAqB,KAAKvyB,QAAQb,OAAOyM,MAAM,EAAG,GAG/EwnB,GAAuB5tB,KAAM+sB,GAAqB,KAAKvyB,QAAQb,OAAOyM,MAAM,EAAG,GAE/Fie,EAAK4Q,EACAj7B,KAAIsL,IACL,MAAM0f,EAAIhlB,KAAK4vB,IAAShC,GAAuB5tB,KAAMqrB,GAAoB,KAAM/lB,GAC/E,OAAOA,EAAE3D,MAAM,yBAA2BqjB,EAAEnqB,OAASyK,EAAEzK,OAASmqB,EAAI1f,CAAC,IAEpEvK,KAAK,KACLuE,OACDsuB,GAAuB5tB,KAAM+sB,GAAqB,KAAKlY,OAAO,MAC9D+Y,GAAuB5tB,KAAM+sB,GAAqB,KAAK/X,sBAAwB4Y,GAAuB5tB,KAAM+sB,GAAqB,KAAKlY,OAAO,OAC7IwP,EAAKuJ,GAAuB5tB,KAAM+sB,GAAqB,KAClDlY,OAAO,KACPnS,QAAQ,GAAGkrB,GAAuB5tB,KAAM+sB,GAAqB,KAAK7yB,KAAKya,QAAQiZ,GAAuB5tB,KAAM+sB,GAAqB,KAAKvyB,QAAQ+a,eAAgB,KAEhK8O,CACV,CACD,CAAC+J,MACG,OAAOR,GAAuB5tB,KAAMwsB,GAA6B,IACpE,CACD,CAAC6B,MACG,OAAOT,GAAuB5tB,KAAMotB,GAA4B,IACnE,CACD,CAACkB,MACG,IAAKV,GAAuB5tB,KAAM2rB,GAA6B,KAC3D,OACJ,MAAMla,EAASmc,GAAuB5tB,KAAM+sB,GAAqB,KAAKlY,OAAO,WACzE+Y,GAAuB5tB,KAAM+sB,GAAqB,KAAKlY,OAAO,gBAC9D+Y,GAAuB5tB,KAAM+sB,GAAqB,KAAKlY,OAAO,SAC9D+Y,GAAuB5tB,KAAM+sB,GAAqB,KAAKlY,OAAO,aAC9D,QACJ7U,KAAKyR,OAAOA,EAAO/O,QAAQ,SAAU,IACxC,CACD,CAAC6rB,MAEG,OADYvuB,KAAKyuB,MACNtoB,SAAW,SACzB,CACD,CAACqoB,IAAyB70B,GACtB,MAAM6D,EAAO7D,EAAK,MAAQA,EAAK,MAAQA,EAAK2Q,EAC5C,IAAK,IAAW7J,EAAPY,EAAI,OAA4BzG,KAAnB6F,EAAMjD,EAAK6D,IAAmBA,IAC5CusB,GAAuB5tB,KAAM+sB,GAAqB,KAAK7X,OAAO7P,gBAAgB5E,IAC9EsF,OAAO+G,cAAc7L,KAAKE,MAAM4L,WAAW,GAAGtM,SAC9CjD,EAAK6D,GAAK0E,OAAOtF,IAGzB,OAAO9G,CACV,CACD,CAAC80B,IAAQxzB,GACL,MAAMi6B,EAAQj6B,GAAY,IAC1B,GAAI2yB,GAAuB5tB,KAAM2sB,GAAqB,KAAKuI,GACvD,OAAOtH,GAAuB5tB,KAAM2sB,GAAqB,KAAKuI,GAClE,IAAIlrB,EAAM,CAAA,EACV,IACI,IAAImrB,EAAWl6B,GAAY2yB,GAAuB5tB,KAAM+sB,GAAqB,KAAK9X,cAC7Eha,GAAY2yB,GAAuB5tB,KAAM+sB,GAAqB,KAAK7yB,KAAKkb,QAAQ+f,KACjFA,EAAWvH,GAAuB5tB,KAAM+sB,GAAqB,KAAK7yB,KAAKya,QAAQwgB,IAEnF,MAAMC,EAAcxH,GAAuB5tB,KAAM+sB,GAAqB,KAAKzY,OAAO6gB,GAAU,CAAC1gB,EAAK4gB,IAC1FA,EAAM5oB,SAAS,gBACR,oBAGP,IAGRuJ,GAAqBof,OAAax6B,EAAWgzB,GAAuB5tB,KAAM+sB,GAAqB,MAC/F/iB,EAAMoG,KAAK7J,MAAMqnB,GAAuB5tB,KAAM+sB,GAAqB,KAAK1c,aAAa+kB,EAAa,QACrG,CACD,MAAOE,GAAU,CAEjB,OADA1H,GAAuB5tB,KAAM2sB,GAAqB,KAAKuI,GAASlrB,GAAO,GAChE4jB,GAAuB5tB,KAAM2sB,GAAqB,KAAKuI,EACjE,CACD,CAACxG,IAA0B9f,EAAMzS,IAC7BA,EAAO,GAAGiM,OAAOjM,IACZ4E,SAAQlF,IACTA,EAAMmE,KAAK8uB,IAAcjzB,GACzB+xB,GAAuB5tB,KAAMssB,GAAwB,KAAK1d,GAAM9T,KAAKe,EAAI,GAEhF,CACD,CAAC8yB,IAA0C1T,EAASrM,EAAM/S,EAAKC,GAC3DkE,KAAK6uB,IAA+B5T,EAASrM,EAAM/S,EAAKC,GAAO,CAAC8S,EAAM/S,EAAKC,KACvE8xB,GAAuB5tB,KAAMssB,GAAwB,KAAK1d,GAAM/S,GAAOC,CAAK,GAEnF,CACD,CAAC8yB,IAAoC3T,EAASrM,EAAM/S,EAAKC,GACrDkE,KAAK6uB,IAA+B5T,EAASrM,EAAM/S,EAAKC,GAAO,CAAC8S,EAAM/S,EAAKC,KACvE8xB,GAAuB5tB,KAAMssB,GAAwB,KAAK1d,GAAM/S,IAAQ+xB,GAAuB5tB,KAAMssB,GAAwB,KAAK1d,GAAM/S,IAAQ,IAAIuM,OAAOtM,EAAM,GAExK,CACD,CAAC+yB,IAA+B5T,EAASrM,EAAM/S,EAAKC,EAAOy5B,GACvD,GAAI9xB,MAAM+D,QAAQ3L,GACdA,EAAIkF,SAAQqN,IACR6M,EAAQ7M,EAAGtS,EAAM,SAGpB,GAAI,CAAED,GAAuB,iBAARA,EAAjB,CAAmCA,GACxC,IAAK,MAAMuS,KAAKgI,GAAWva,GACvBof,EAAQ7M,EAAGvS,EAAIuS,SAInBmnB,EAAiB3mB,EAAM5O,KAAK8uB,IAAcjzB,GAAMC,EAEvD,CACD,CAACgzB,IAAcjzB,GACX,MAAY,cAARA,EACO,cACJA,CACV,CACD,CAACkzB,IAASlzB,EAAKiB,GAEX,OADAkD,KAAK2uB,IAA0C3uB,KAAK+uB,IAASjZ,KAAK9V,MAAO,MAAOnE,EAAKiB,GAC9EkD,IACV,CACD,CAACgvB,MACG,IAAIjvB,EAAI4F,EAAIC,EAAIqjB,EAAIuM,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAChD,MAAMjd,EAAS8U,GAAuB5tB,KAAM8rB,GAAwB,KAAKpjB,MAEzE,IAAI7B,EADJmP,GAAqB8C,OAAQle,EAAWgzB,GAAuB5tB,KAAM+sB,GAAqB,MAEzFhtB,EAAKC,KAAM2F,EAAK3F,KAAM4F,EAAK5F,KAAMipB,EAAKjpB,KAAMw1B,EAAKx1B,KAAMy1B,EAAKz1B,KAAM01B,EAAK11B,KAAM21B,EAAK31B,KAAM41B,EAAK51B,KAAM61B,EAAK71B,KAAM81B,EAAK91B,KAAM+1B,EAAK/1B,OAC3HvC,QAAS,CAAG,SAAI3B,CAAMk6B,GAAMzI,GAAuBxtB,EAAIusB,GAAwB0J,EAAI,IAAK,GAAMl6B,MAC9F+K,gBACA6qB,YAAa,CAAG,SAAI51B,CAAMk6B,GAAMzI,GAAuB5nB,EAAIkmB,GAA4BmK,EAAI,IAAK,GAAMl6B,MACtG4oB,OAAQ,CAAG,SAAI5oB,CAAMk6B,GAAMzI,GAAuB3nB,EAAIomB,GAAuBgK,EAAI,IAAK,GAAMl6B,MAC5FyhB,OAAQ,CAAG,SAAIzhB,CAAMk6B,GAAMzI,GAAuBtE,EAAIoD,GAAuB2J,EAAI,IAAK,GAAMl6B,MAC5Fg5B,UAAW,CAAG,SAAIh5B,CAAMk6B,GAAMzI,GAAuBiI,EAAI9J,GAA0BsK,EAAI,IAAK,GAAMl6B,MAClGi5B,UAAW,CAAG,SAAIj5B,CAAMk6B,GAAMzI,GAAuBkI,EAAIxJ,GAA0B+J,EAAI,IAAK,GAAMl6B,MAClGa,OAAQqD,KAAKrD,OACbs3B,OAAQ,CAAG,SAAIn4B,CAAMk6B,GAAMzI,GAAuBmI,EAAI1I,GAAuBgJ,EAAI,IAAK,GAAMl6B,MAC5Fo4B,eAAgB,CAAG,SAAIp4B,CAAMk6B,GAAMzI,GAAuBoI,EAAI1I,GAA+B+I,EAAI,IAAK,GAAMl6B,MAC5Gq4B,cAAe,CAAG,SAAIr4B,CAAMk6B,GAAMzI,GAAuBqI,EAAI1I,GAA8B8I,EAAI,IAAK,GAAMl6B,MAC1G+4B,kBAAmB,CAAG,SAAI/4B,CAAMk6B,GAAMzI,GAAuBsI,EAAIrK,GAAkCwK,EAAI,IAAK,GAAMl6B,MAClHg1B,QAAS,CAAG,SAAIh1B,CAAMk6B,GAAMzI,GAAuBuI,EAAIrJ,GAAwBuJ,EAAI,IAAK,GAAMl6B,MAC9Fk5B,aAAc,CAAG,SAAIl5B,CAAMk6B,GAAMzI,GAAuBwI,EAAIrJ,GAA6BsJ,EAAI,IAAK,GAAMl6B,OACxGgd,GACJ8U,GAAuB5tB,KAAMssB,GAAwB,KAAKzlB,cAAgBA,EAC1E+mB,GAAuB5tB,KAAMmtB,GAAsB,KAAKtU,WACxD+U,GAAuB5tB,KAAMstB,GAA2B,KAAKzU,WAC7D+U,GAAuB5tB,KAAMorB,GAAwB,KAAKvS,WAC1D+U,GAAuB5tB,KAAM+rB,GAAiC,KAAKlT,UACtE,CACD,CAACoW,IAAgBhV,EAAYtgB,GACzB,OAAO+f,GAAiB/f,GAAM8f,IAC1BQ,EAAWR,GACJA,IAEd,CACD,kBAAAgD,GACI,MAAO,CACHwZ,mBAAoBj2B,KAAKkvB,IAAqBpZ,KAAK9V,MACnD0c,WAAY1c,KAAKmvB,IAAarZ,KAAK9V,MACnCke,aAAcle,KAAKovB,IAAetZ,KAAK9V,MACvC6hB,kBAAmB7hB,KAAKqvB,IAAoBvZ,KAAK9V,MACjDk2B,gBAAiBl2B,KAAKsvB,IAAkBxZ,KAAK9V,MAC7C8kB,uBAAwB9kB,KAAKouB,IAAyBtY,KAAK9V,MAC3DymB,sBAAuBzmB,KAAKquB,IAAwBvY,KAAK9V,MACzDqd,iBAAkBrd,KAAKuvB,IAAmBzZ,KAAK9V,MAC/Cm2B,sBAAuBn2B,KAAKwvB,IAAwB1Z,KAAK9V,MACzD0e,iBAAkB1e,KAAKyvB,IAAmB3Z,KAAK9V,MAC/C0hB,gBAAiB1hB,KAAK0vB,IAAkB5Z,KAAK9V,MAC7Cue,YAAave,KAAK2vB,IAAc7Z,KAAK9V,MACrC+Y,MAAO/Y,KAAK6vB,IAAQ/Z,KAAK9V,MACzBme,cAAene,KAAK+vB,IAAgBja,KAAK9V,MACzC4d,iCAAkC5d,KAAK8vB,IAAmCha,KAAK9V,MAC/Eoe,aAAcpe,KAAKgwB,IAAela,KAAK9V,MAE9C,CACD,CAACkvB,MACG,OAAOtB,GAAuB5tB,KAAMorB,GAAwB,IAC/D,CACD,CAAC+D,MACG,OAAOvB,GAAuB5tB,KAAMsrB,GAAwB,IAC/D,CACD,CAAC8D,MACG,OAAOxB,GAAuB5tB,KAAMisB,GAA0B,IACjE,CACD,CAACoD,MACG,OAAOzB,GAAuB5tB,KAAMosB,GAAuB,IAC9D,CACD,CAACkD,MACG,OAAO1B,GAAuB5tB,KAAM0sB,GAA6B,MAAQ,CAAA,CAC5E,CACD,CAAC6C,MACG,OAAO3B,GAAuB5tB,KAAMmtB,GAAsB,IAC7D,CACD,CAACqC,MACG,OAAO5B,GAAuB5tB,KAAMstB,GAA2B,IAClE,CACD,CAACmC,MACG,QAAS7B,GAAuB5tB,KAAMysB,GAAwB,IACjE,CACD,CAACiD,MACG,OAAO9B,GAAuB5tB,KAAMmsB,GAAgC,IACvE,CACD,CAACwD,IAAch2B,EAAM0kB,EAAoB+X,EAAmBC,GACxD,GAAID,EACA,OAAOz8B,EACX,GAAI2c,GAAU3c,GACV,OAAOA,EACN0kB,IACD1kB,EAAOqG,KAAK6tB,IAAiBl0B,IAUjC,OAR+BqG,KAAKouB,MAA2B,kCACKxzB,IAAhEoF,KAAKouB,MAA2B,+BAEhCz0B,EAAOqG,KAAKwuB,IAAyB70B,IAErC08B,IACA18B,EAAOqf,GAAgBrf,EAAMqG,KAAM4tB,GAAuB5tB,KAAM+rB,GAAiC,KAAKpT,iBAAiB,IAEpHhf,CACV,CACD,CAACk2B,IAAQ9nB,EAAU,IACfwlB,GAAuBvtB,KAAMssB,GAAwBsB,GAAuB5tB,KAAMssB,GAAwB,MAAQ,GAAI,KACtH,MAAMgK,EAAa,CAAA,EACnBA,EAAWpE,MAAQtE,GAAuB5tB,KAAMssB,GAAwB,KAAK4F,OAAS,GACtFoE,EAAWzvB,cAAgB+mB,GAAuB5tB,KAAMssB,GAAwB,KAAKzlB,eAAiB,GACtG,MAAMqgB,EAAc,CAAA,EACpBoP,EAAWpE,MAAMnxB,SAAQoxB,IACrBjL,EAAYiL,IAAK,GAChBpqB,EAAQoqB,IAAM,IAAIpxB,SAAQwL,IACvB2a,EAAY3a,IAAK,CAAI,GACvB,IAENxQ,OAAO0K,OAAOmnB,GAAuB5tB,KAAM4sB,GAAgC,KAAM7wB,OAAOI,KAAKyxB,GAAuB5tB,KAAMgsB,GAAuB,MAAM7S,QAAO,CAACC,EAAKuM,KAChK,MAAMxpB,EAAOyxB,GAAuB5tB,KAAMgsB,GAAuB,KAAKrG,GAAWvpB,QAAOP,KAASA,KAAOqrB,KAIxG,OAHI/qB,EAAKtB,OAAS,IACdue,EAAIuM,GAAaxpB,GAEdid,CAAG,GACX,CAAA,IACHmU,GAAuBvtB,KAAMgsB,GAAuB,CAAE,EAAE,KAgDxD,MA/CqB,CACjB,QACA,UACA,SACA,iBACA,QACA,YACA,SACA,iBAcSjrB,SAAQqN,IACjBkoB,EAAWloB,IAAMwf,GAAuB5tB,KAAMssB,GAAwB,KAAKle,IAAM,IAAIhS,QAAQgS,IAAO8Y,EAAY9Y,IAAG,IAbjG,CAClB,OACA,MACA,QACA,UACA,qBACA,SACA,UACA,kBACA,mBACA,qBAKUrN,SAASqN,IACnBkoB,EAAWloB,GAAKuS,GAAUiN,GAAuB5tB,KAAMssB,GAAwB,KAAKle,IAAIA,IAAM8Y,EAAY9Y,IAAG,IAEjHkoB,EAAWrvB,UAAY2mB,GAAuB5tB,KAAMssB,GAAwB,KAAKrlB,UACjFsmB,GAAuBvtB,KAAMssB,GAAwBgK,EAAY,KACjE/I,GAAuBvtB,KAAMmtB,GAAsBS,GAAuB5tB,KAAMmtB,GAAsB,KAChGS,GAAuB5tB,KAAMmtB,GAAsB,KAAKpU,MAAMmO,GAC9DqP,GAAMv2B,KAAM4tB,GAAuB5tB,KAAM+sB,GAAqB,MAAO,KAC3EQ,GAAuBvtB,KAAMstB,GAA2BM,GAAuB5tB,KAAMstB,GAA2B,KAC1GM,GAAuB5tB,KAAMstB,GAA2B,KAAKvU,MAAMmO,GQ5xC1E,SAAoBjP,EAAO+B,EAAO3I,GACrC,MAAM/J,EAAK+J,EAAKuE,KAAKtO,GACf6K,EAAMd,EAAKuE,KAAKzD,IAChB1J,EAAO,CACbA,eAAsB,SAAwB9O,GAC1C,MAAM2qB,EAAmBrM,EAAMsM,sBAEzBiS,EADkB78B,EAAK2Q,EAAEzP,QAAUlB,EAAK,MAAQA,EAAK,MAAMkB,OAAS,GAC7Cod,EAAMwE,qBAAqBC,aAAaE,SAAS/hB,OAC1EypB,EAAiBha,IAChBksB,EAAKlS,EAAiBha,EAAEpJ,KAAOs1B,EAAKlS,EAAiBha,EAAEvG,OACpDyyB,EAAKlS,EAAiBha,EAAEpJ,SACUtG,IAA9B0pB,EAAiBha,EAAE4mB,OACnBlX,EAAM4E,KAAK0F,EAAiBha,EAAE4mB,OACxB5M,EAAiBha,EAAE4mB,OAChBxuB,QAAQ,OAAQ8zB,EAAGp8B,YACnBsI,QAAQ,MAAO4hB,EAAiBha,EAAEpJ,IAAI9G,YACzC,MAGN4f,EAAM4E,KAAKzM,EAAI,4DAA6D,4DAA6DqkB,EAAIA,EAAGp8B,WAAYkqB,EAAiBha,EAAEpJ,IAAI9G,aAGlLo8B,EAAKlS,EAAiBha,EAAEvG,WACKnJ,IAA9B0pB,EAAiBha,EAAE6mB,OACnBnX,EAAM4E,KAAK0F,EAAiBha,EAAE6mB,OACxB7M,EAAiBha,EAAE6mB,OAChBzuB,QAAQ,OAAQ8zB,EAAGp8B,YACnBsI,QAAQ,MAAO4hB,EAAiBha,EAAEvG,IAAI3J,YACzC,MAGN4f,EAAM4E,KAAKzM,EAAI,uDAAwD,uDAAwDqkB,EAAIA,EAAGp8B,WAAYkqB,EAAiBha,EAAEvG,IAAI3J,cAI7L,EACIqO,gBAAuB,SAAyBiqB,EAAU+D,GAClDA,EAAW/D,GACX1Y,EAAM4E,KAAKzM,EAAI,4DAA6D,4DAA6DskB,EAAUA,EAAW,GAAI/D,EAAW,IAEzL,EACIjqB,kBAAyB,SAA2B9O,EAAMoqB,GACtD,IAAI2S,EAAU,KACd,IAAK,MAAM76B,KAAOE,OAAOI,KAAK4nB,GACrBhoB,OAAOqW,UAAUW,eAAeV,KAAK1Y,EAAMkC,SACvB,IAAdlC,EAAKkC,KACZ66B,EAAUA,GAAW,GACrBA,EAAQ76B,GAAOkoB,EAAgBloB,IAGvC,GAAI66B,EAAS,CACT,MAAMC,EAAa,GACnB,IAAK,MAAM96B,KAAOE,OAAOI,KAAKu6B,GAAU,CACpC,MAAM9lB,EAAM8lB,EAAQ76B,GAChB+U,GAAO+lB,EAAWjyB,QAAQkM,GAAO,GACjC+lB,EAAW77B,KAAK8V,EAEvB,CACD,MAAMgmB,EAAYD,EAAW97B,OAAS,KAAK87B,EAAW57B,KAAK,QAAU,GACrEif,EAAM4E,KAAKzM,EAAI,gCAAiC,iCAAkCpW,OAAOI,KAAKu6B,GAAS77B,OAAQkB,OAAOI,KAAKu6B,GAAS37B,KAAK,MAAQ67B,GACpJ,CACT,EACInuB,iBAAwB,SAA0B9O,EAAMoO,EAASkW,EAAepB,EAAkBga,GAAmB,GACjH,IAAI92B,EACJ,MAAM+2B,EAAc7e,EACfwE,qBACAwZ,qBACAha,cACC8a,EAAU,GACVva,EAAiBvE,EAAMwE,qBAAqBC,aAmBlD,GAlBA3gB,OAAOI,KAAKxC,GAAMoH,SAAQlF,IACjBuuB,GAAY3d,SAAS5Q,IACrBE,OAAOqW,UAAUW,eAAeV,KAAK4L,EAAepiB,IACpDE,OAAOqW,UAAUW,eAAeV,KAAK4F,EAAMwE,qBAAqByZ,kBAAmBr6B,IACnF4M,EAAKuuB,4BAA4Bn7B,EAAKkM,IACvCgvB,EAAQj8B,KAAKe,EAChB,IAEDg7B,IACCra,EAAeI,SAAS/hB,OAAS,GAC9Bi8B,EAAYj8B,OAAS,GACrBgiB,IACJljB,EAAK2Q,EAAElE,MAAMoW,EAAeI,SAAS/hB,QAAQkG,SAAQlF,IAC5Ci7B,EAAYrqB,SAAS,GAAK5Q,IAC3Bk7B,EAAQj8B,KAAK,GAAKe,EACrB,IAGLg7B,EAAkB,CAClB,MACMI,GAAmD,QAA7Bl3B,EADHkY,EAAMsM,sBACmBja,SAAsB,IAAPvK,OAAgB,EAASA,EAAGgE,MAAQ,EAC/FmS,EAAWsG,EAAeI,SAAS/hB,OAASo8B,EAC9C/gB,EAAWvc,EAAK2Q,EAAEzP,QAClBlB,EAAK2Q,EAAElE,MAAM8P,GAAUnV,SAAQlF,IAC3BA,EAAM4jB,OAAO5jB,GACR2gB,EAAeI,SAASnQ,SAAS5Q,IACjCk7B,EAAQtqB,SAAS5Q,IAClBk7B,EAAQj8B,KAAKe,EAChB,GAGZ,CACGk7B,EAAQl8B,QACRmf,EAAM4E,KAAKzM,EAAI,uBAAwB,wBAAyB4kB,EAAQl8B,OAAQk8B,EAAQ/8B,KAAIgvB,GAAMA,EAAE1pB,OAAS0pB,EAAI,IAAIA,OAAOjuB,KAAK,OAE7I,EACI0N,gBAAuB,SAAyB9O,GAC5C,MAAMm9B,EAAc7e,EACfwE,qBACAwZ,qBACAha,cACC8a,EAAU,GACVva,EAAiBvE,EAAMwE,qBAAqBC,aAQlD,OAPIF,EAAeI,SAAS/hB,OAAS,GAAKi8B,EAAYj8B,OAAS,IAC3DlB,EAAK2Q,EAAElE,MAAMoW,EAAeI,SAAS/hB,QAAQkG,SAAQlF,IAC5Ci7B,EAAYrqB,SAAS,GAAK5Q,IAC3Bk7B,EAAQj8B,KAAK,GAAKe,EACrB,IAGLk7B,EAAQl8B,OAAS,IACjBmf,EAAM4E,KAAKzM,EAAI,sBAAuB,uBAAwB4kB,EAAQl8B,OAAQk8B,EAAQh8B,KAAK,SACpF,EAKnB,EACI0N,4BAAmC,SAAqC5M,EAAKkM,GACzE,IAAKhM,OAAOqW,UAAUW,eAAeV,KAAKtK,EAASlM,GAC/C,OAAO,EAEX,MAAMkN,EAAakP,EAAMtb,OAAOoM,WAChC,MAAO,CAAClN,KAAQkM,EAAQlM,IAAMwS,MAAK9B,IAAMxQ,OAAOqW,UAAUW,eAAeV,KAAKtJ,EAAYwD,KAAOxD,EAAWlN,IACpH,EACI4M,eAAsB,SAAwB9O,GAC1C,MAAM8D,EAAUwa,EAAMqG,aAChB4Y,EAAU,CAAA,EAChB,IAAKn7B,OAAOI,KAAKsB,EAAQ6oB,SAASzrB,OAC9B,OACJkB,OAAOI,KAAKxC,GAAMoH,SAAQlF,KACY,IAA9BuuB,GAAY1lB,QAAQ7I,IACpBE,OAAOqW,UAAUW,eAAeV,KAAK5U,EAAQ6oB,QAASzqB,IACtD,GAAGuM,OAAOzO,EAAKkC,IAAMkF,SAAQjF,KACoB,IAAzC2B,EAAQ6oB,QAAQzqB,GAAK6I,QAAQ5I,SACnBlB,IAAVkB,IACAo7B,EAAQr7B,IAAQq7B,EAAQr7B,IAAQ,IAAIuM,OAAOtM,GAC9C,GAER,IAEL,MAAMq7B,EAAcp7B,OAAOI,KAAK+6B,GAChC,IAAKC,EAAYt8B,OACb,OACJ,IAAI+V,EAAMtJ,EAAG,mBACb6vB,EAAYp2B,SAAQlF,IAChB+U,GAAO,OAAOtJ,EAAG,uCAAwCzL,EAAKme,EAAMuM,kBAAkB2Q,EAAQr7B,IAAOme,EAAMuM,kBAAkB9oB,EAAQ6oB,QAAQzqB,MAAQ,IAEzJme,EAAM4E,KAAKhO,EACnB,GACI,IAAIwmB,EAAU,CAAA,EAyBd,SAASC,EAAU19B,EAAMqS,GACrB,MAAMkD,EAAMnJ,OAAOiG,GAYnB,MAVmB,iBADnBA,EAAMR,MAAM0D,GAAOlD,EAAMkD,GAErBlD,EAAMrS,EAAK2Q,EAAEzP,QAAUmR,EAElBA,EAAIrK,MAAM,aACfqK,EAAMA,EAAIrK,MAAM,cAAc,GAC9BqK,GAAOjQ,OAAOqW,UAAUW,eAAeV,KAAK1Y,EAAMqS,IAGlDA,EAAMjQ,OAAOqW,UAAUW,eAAeV,KAAK1Y,EAAMqS,GAE9CA,CACV,CAtCDvD,EAAK+pB,QAAU,SAAiB32B,EAAKC,GACjCqb,GAAQ,wCAAyC,CAACtb,EAAKC,GAAQ+V,UAAUhX,QACtD,iBAARgB,EACPE,OAAOI,KAAKN,GAAKkF,SAAQqN,IACrB3F,EAAK+pB,QAAQpkB,EAAGvS,EAAIuS,GAAG,KAI3B6J,EAAMK,OAAOzc,GACRu7B,EAAQv7B,KACTu7B,EAAQv7B,GAAO,IAEf4H,MAAM+D,QAAQ1L,GACdA,EAAMiF,SAAQM,GAAKoH,EAAK+pB,QAAQ32B,EAAKwF,MAGrC2U,GAAqBla,OAAOlB,EAAWyW,GACvC+lB,EAAQv7B,GAAKf,KAAKgB,IAGlC,EACI2M,EAAK6uB,WAAa,WACd,OAAOF,CACf,EAgBI3uB,EAAK8uB,aAAe,SAAsB59B,GACtC,MAAM69B,EAAY,GAalB,GAZAz7B,OAAOI,KAAKi7B,GAASr2B,SAAQlF,IACzB,MAAM47B,EAAU57B,GACfu7B,EAAQv7B,IAAQ,IAAIkF,SAAQjF,IACzB,IAAID,EAAM47B,EACV,MAAMC,EAAY57B,EAClBD,EAAMw7B,EAAU19B,EAAMkC,GACtBC,EAAQu7B,EAAU19B,EAAMmC,GACpBD,IAAQC,GACR07B,EAAU18B,KAAK,IAAI28B,QAAcC,IACpC,GACH,IAEFF,EAAU38B,OAAQ,CAClB,IAAI+V,EAAM,GAAGtJ,EAAG,4BAChBkwB,EAAUz2B,SAAQjF,IACd8U,GAAO9U,CAAK,IAEhBke,EAAM4E,KAAKhO,EACd,CACT,EACI,IAAI+mB,EAAc,CAAA,EAClBlvB,EAAKkoB,UAAY,SAAmB90B,EAAKC,GACrCqb,GAAQ,iCAAkC,CAACtb,EAAKC,GAAQ+V,UAAUhX,QAC/C,iBAARgB,EACPE,OAAOI,KAAKN,GAAKkF,SAAQqN,IACrB3F,EAAKkoB,UAAUviB,EAAGvS,EAAIuS,GAAG,KAI7B6J,EAAMK,OAAOzc,GACR87B,EAAY97B,KACb87B,EAAY97B,GAAO,IAEnB4H,MAAM+D,QAAQ1L,GACdA,EAAMiF,SAAQM,GAAKoH,EAAKkoB,UAAU90B,EAAKwF,KAGvCs2B,EAAY97B,GAAKf,KAAKgB,GAGtC,EACI2M,EAAKmvB,eAAiB,IAAMD,EAC5BlvB,EAAKkvB,YAAc,SAAuBh+B,GACtCoC,OAAOI,KAAKxC,GAAMoH,SAAQlF,IAClB87B,EAAY97B,IACZ87B,EAAY97B,GAAKkF,SAAQjF,IACjBA,QAAuBlB,IAAdjB,EAAKkC,SAAsCjB,IAAhBjB,EAAKmC,IACzCke,EAAM4E,KAAKtX,EAAG,6CAA8CzL,EAAKC,GACpE,GAER,IAEDmc,EAAMwE,qBAAqBqI,yBAAyB,iBACpD/oB,OAAOI,KAAKw7B,GAAa52B,SAAQlF,IAC7B87B,EAAY97B,GAAKkF,SAAQjF,IACjBA,QACqClB,IAArCjB,EAAK0X,EAAK6D,OAAO3Q,UAAU1I,UACYjB,IAAvCjB,EAAK0X,EAAK6D,OAAO3Q,UAAUzI,KAC3Bke,EAAM4E,KAAKtX,EAAG,6CAA8CzL,EAAKC,GACpE,GACH,GAGlB,EACI2M,EAAKkrB,kBAAoB,SAA2Bjd,EAAKmhB,GAErDA,EAAoBA,EAAkB9S,MAAK,CAACxY,EAAGyY,IAAMA,EAAEnqB,OAAS0R,EAAE1R,SAClE,IAAIi9B,EAAc,KACdC,EAAe3G,IACnB,IAAK,IAAW4G,EAAP32B,EAAI,OAAqDzG,KAAtCo9B,EAAYH,EAAkBx2B,IAAmBA,IAAK,CAC9E,MAAMue,EAAIqY,GAASvhB,EAAKshB,GACpBpY,GANU,GAMQA,EAAImY,IACtBA,EAAenY,EACfkY,EAAcE,EAErB,CACGF,GACA9d,EAAM4E,KAAKtX,EAAG,mBAAoBwwB,GAC9C,EACIrvB,EAAKsQ,MAAQ,SAAemO,GAGxB,OAFAkQ,EAAUzW,GAAUyW,GAAShpB,IAAM8Y,EAAY9Y,KAC/CupB,EAAchX,GAAUgX,GAAavpB,IAAM8Y,EAAY9Y,KAChD3F,CACf,EACI,MAAM0P,EAAU,GAYhB,OAXA1P,EAAKmQ,OAAS,WACVT,EAAQrd,KAAK,CACTs8B,UACAO,eAEZ,EACIlvB,EAAKoQ,SAAW,WACZ,MAAMC,EAASX,EAAQzP,MACvBsN,GAAqB8C,OAAQle,EAAWyW,KACrC+lB,UAASO,eAAgB7e,EACpC,EACWrQ,CACX,CRk/BcyvB,CAAWl4B,KAAM4tB,GAAuB5tB,KAAMmtB,GAAsB,KAAMS,GAAuB5tB,KAAM+sB,GAAqB,MAAO,KACzIQ,GAAuBvtB,KAAMorB,GAAwBwC,GAAuB5tB,KAAMorB,GAAwB,KACpGwC,GAAuB5tB,KAAMorB,GAAwB,KAAKrS,QDv3BjE,SAAiBiB,EAAOC,EAAY/B,EAAkB7G,GACzD,OAAO,IAAI0I,GAAgBC,EAAOC,EAAY/B,EAAkB7G,EACpE,CCs3Bc8mB,CAAQvK,GAAuB5tB,KAAMmtB,GAAsB,KAAMS,GAAuB5tB,KAAMstB,GAA2B,KAAMM,GAAuB5tB,KAAM+rB,GAAiC,KAAM6B,GAAuB5tB,KAAM+sB,GAAqB,MAAO,KAC7Pa,GAAuB5tB,KAAMurB,GAA2B,MACzDgC,GAAuBvtB,KAAMurB,GK7jClC,SAAoBtT,EAAO+B,EAAOzc,EAAS8T,GAC9C,OAAO,IAAI8V,GAAWlP,EAAO+B,EAAOzc,EAAS8T,EACjD,CL2jCoE8V,CAAWnnB,KAAM4tB,GAAuB5tB,KAAMmtB,GAAsB,KAAMS,GAAuB5tB,KAAMorB,GAAwB,KAAMwC,GAAuB5tB,KAAM+sB,GAAqB,MAAO,KAC1Pa,GAAuB5tB,KAAM+rB,GAAiC,KAAKhT,QACnEwU,GAAuBvtB,KAAMwrB,GAAkC,KAAM,KACrE+B,GAAuBvtB,KAAMqsB,GAAuB,GAAI,KACxDkB,GAAuBvtB,KAAM0rB,GAA0B,KAAM,KAC7D6B,GAAuBvtB,KAAMisB,IAA0B,EAAO,KAC9DjsB,KAAKrD,QAAS,EACPqD,IACV,CACD,CAAC4vB,IAASwI,EAAM3jB,GACZ,OAAOmZ,GAAuB5tB,KAAM+sB,GAAqB,KAAK7yB,KAAKmB,SAAS+8B,EAAM3jB,EACrF,CACD,CAACqb,IAAmCtyB,EAAMs1B,EAAcsD,EAAmBha,EAAe,EAAGC,GAAW,GACpG,IAAIuW,IAAmBwD,GAAqB/Z,EAC5C7e,EAAOA,GAAQowB,GAAuB5tB,KAAM6sB,GAA4B,KACxEe,GAAuB5tB,KAAMssB,GAAwB,KAAKhlB,GAAKsmB,GAAuB5tB,KAAM+sB,GAAqB,KAAKnX,KAAKtO,GAC3HsmB,GAAuB5tB,KAAMssB,GAAwB,KAAKxlB,cAAgB9G,KAAKouB,MAC/E,MAAM/P,IAAuBuP,GAAuB5tB,KAAMssB,GAAwB,KAAKxlB,cAAc,cAC/FlK,EAASb,OAAO0K,OAAO,CAAE,EAAEmnB,GAAuB5tB,KAAMssB,GAAwB,KAAKxlB,cAAe,CACtG,cAAc,IAEZnK,EAASixB,GAAuB5tB,KAAM+sB,GAAqB,KAAK7X,OAAOxE,SAASlT,EAAMzB,OAAO0K,OAAO,GAAImnB,GAAuB5tB,KAAMssB,GAAwB,KAAM,CACrKxlB,cAAe,CAAE,4BAA4B,KAAUlK,MAErDjD,EAAOoC,OAAO0K,OAAO9J,EAAOhD,KAAMi0B,GAAuB5tB,KAAM0sB,GAA6B,MAClG,IAAI2L,EACJ,MAAMtwB,EAAUpL,EAAOoL,QACvB,IAAIuwB,GAAa,EACbC,GAAgB,EACpBx8B,OAAOI,KAAKxC,GAAMoH,SAAQlF,IAClBA,IAAQ+xB,GAAuB5tB,KAAMksB,GAAwB,MAAQvyB,EAAKkC,GAC1Ey8B,GAAa,EAERz8B,IAAQ+xB,GAAuB5tB,KAAMqtB,GAA2B,MAAQ1zB,EAAKkC,KAClF08B,GAAgB,EACnB,IAEL5+B,EAAK0qB,GAAKrkB,KAAKqkB,GACfrkB,KAAKrD,OAASA,EACO,IAAjByf,GACAwR,GAAuB5tB,KAAMmtB,GAAsB,KAAKzG,yBAE5D,IAEI,GADA1mB,KAAKsuB,MACDwE,EACA,OAAO9yB,KAAK2vB,IAAch2B,EAAM0kB,IAAsB+X,GAAmB,GAE7E,GAAIxI,GAAuB5tB,KAAMksB,GAAwB,KAAM,CAC1C,CAAC0B,GAAuB5tB,KAAMksB,GAAwB,MAClE9jB,OAAOL,EAAQ6lB,GAAuB5tB,KAAMksB,GAAwB,OAAS,IAC7E9vB,QAAOgS,GAAKA,EAAEvT,OAAS,IACf4R,SAAS,GAAK9S,EAAK2Q,EAAE3Q,EAAK2Q,EAAEzP,OAAS,MAC9ClB,EAAK2Q,EAAE5B,MACP4vB,GAAa,EAEpB,CACD/K,GAAuBvtB,KAAMmsB,IAAgC,EAAO,KACpE,MAAMqM,EAAc5K,GAAuB5tB,KAAMorB,GAAwB,KAAKnP,cACxEwc,EAAqB7K,GAAuB5tB,KAAMurB,GAA2B,KAAKnE,iBAAiBztB,EACnG++B,EAAqBJ,GAAcG,GAAsBpc,EAC/D,GAAI1iB,EAAK2Q,EAAEzP,OAAQ,CACf,GAAI29B,EAAY39B,OAAQ,CACpB,IAAI89B,EACJ,IAAK,IAA2BjiB,EAAvBrV,EAAI+a,GAAgB,OAAsBxhB,IAAdjB,EAAK2Q,EAAEjJ,GAAkBA,IAAK,CAE/D,GADAqV,EAAM+I,OAAO9lB,EAAK2Q,EAAEjJ,IAChBm3B,EAAY/rB,SAASiK,IAAQA,IAAQkX,GAAuB5tB,KAAMwrB,GAAkC,KAAM,CAC1G,MAAMtO,EAAY0Q,GAAuB5tB,KAAMorB,GAAwB,KAAKjP,WAAWzF,EAAK1W,KAAMrD,EAAQ0E,EAAI,EAAGgb,EAAUic,GAAcC,GAAiBlc,GAC1J,OAAOrc,KAAK2vB,IAAczS,EAAWmB,IAAsB+X,GAAmB,EACjF,CACI,IAAKuC,GACNjiB,IAAQkX,GAAuB5tB,KAAMwrB,GAAkC,KAAM,CAC7EmN,EAAsBjiB,EACtB,KACH,CACJ,EACIkX,GAAuB5tB,KAAMorB,GAAwB,KAAKlP,qBAC3D0R,GAAuB5tB,KAAM8sB,GAAkC,MAC/D6L,IACCD,GACD9K,GAAuB5tB,KAAMstB,GAA2B,KAAKqG,kBAAkBgF,EAAqBH,EAE3G,CACG5K,GAAuB5tB,KAAMwrB,GAAkC,MAC/D7xB,EAAK2Q,EAAEmC,SAASmhB,GAAuB5tB,KAAMwrB,GAAkC,QAC9EiN,IACG7K,GAAuB5tB,KAAM6rB,GAA4B,MACzDjL,IAAY,GAChB5gB,KAAK8zB,uBACL9zB,KAAKwV,KAAK,GAEjB,CACD,GAAIoY,GAAuB5tB,KAAMorB,GAAwB,KAAKlP,sBAAwBwc,EAAoB,CACtG,MAAMxb,EAAY0Q,GAAuB5tB,KAAMorB,GAAwB,KAAKjP,WAAW,KAAMnc,KAAMrD,EAAQ,EAAG0f,EAAUic,GAAcC,GAAiBlc,GACvJ,OAAOrc,KAAK2vB,IAAczS,EAAWmB,IAAsB+X,GAAmB,EACjF,CACD,GAAIqC,EAAoB,CAChB7K,GAAuB5tB,KAAM6rB,GAA4B,MACzDjL,IAAY,GAEhB,MAAMgY,GADNp7B,EAAO,GAAG4K,OAAO5K,IACW4I,MAAM5I,EAAKkH,QAAQ,KAAKkpB,GAAuB5tB,KAAMurB,GAA2B,KAAKnE,iBAAmB,GASpI,OARAwG,GAAuB5tB,KAAMurB,GAA2B,KAAK1B,cAAc+O,GAAgB,CAACx7B,EAAKuqB,KAC7F,GAAIvqB,EACA,MAAM,IAAIuT,GAAOvT,EAAIuW,UACxBgU,GAAe,IAAI5mB,SAAQgwB,IACxBnD,GAAuB5tB,KAAMosB,GAAuB,KAAK2H,IAAIhD,EAAW,IAE5E/wB,KAAKwV,KAAK,EAAE,IAETxV,KAAK2vB,IAAch2B,GAAO0kB,IAAsB+X,GAAmB,EAC7E,CAoBD,GAnBKxI,GAAuB5tB,KAAMisB,GAA0B,OACpDqM,GACI1K,GAAuB5tB,KAAM6rB,GAA4B,MACzDjL,IAAY,GAChBgS,GAAiB,EACjB5yB,KAAK+hB,SAAS,OACd/hB,KAAKwV,KAAK,IAEL+iB,IACD3K,GAAuB5tB,KAAM6rB,GAA4B,MACzDjL,IAAY,GAChBgS,GAAiB,EACjBhF,GAAuB5tB,KAAMmtB,GAAsB,KAAKlG,YAAY,OACpEjnB,KAAKwV,KAAK,MAGbod,GAAkBhF,GAAuB5tB,KAAMssB,GAAwB,KAAKsG,eAAe/3B,OAAS,IACrG+3B,EAAiB72B,OAAOI,KAAKxC,GAAM0U,MAAKxS,GAAO+xB,GAAuB5tB,KAAMssB,GAAwB,KAAKsG,eAAeluB,QAAQ7I,IAAQ,IAAmB,IAAdlC,EAAKkC,OAEjJ+2B,EAAgB,CACjB,GAAIj2B,EAAOiC,MACP,MAAM,IAAI+R,GAAOhU,EAAOiC,MAAM+U,SAClC,IAAK8kB,EAAoB,CACrB,MAAMxe,EAAaja,KAAK+vB,IAAgBhoB,EAAS,GAAIpL,EAAOiC,OACvDw3B,IACDiC,EAAcrf,GAAgBrf,EAAMqG,KAAM4tB,GAAuB5tB,KAAM+rB,GAAiC,KAAKpT,iBAAiB,IAElI0f,EAAcr4B,KAAKivB,IAAgBhV,EAAYoe,QAAiDA,EAAc1+B,GAC1G2c,GAAU+hB,KAAiBjC,IAC3BiC,EAAcA,EAAY7hB,MAAK,IACpBwC,GAAgBrf,EAAMqG,KAAM4tB,GAAuB5tB,KAAM+rB,GAAiC,KAAKpT,iBAAiB,KAGlI,CACJ,CACJ,CACD,MAAOvb,GACH,KAAIA,aAAeuT,IAGf,MAAMvT,EAFNwwB,GAAuB5tB,KAAMmtB,GAAsB,KAAKvO,KAAKxhB,EAAIuW,QAASvW,EAGjF,CACD,OAAO4C,KAAK2vB,IAAc0I,QAAiDA,EAAc1+B,EAAM0kB,IAAsB+X,GAAmB,EAC3I,CACD,CAACrG,IAAgBhoB,EAASkW,EAAe4a,EAAahc,GAClD,MAAMkH,EAAkB,IAAK/jB,KAAKgkB,sBAClC,OAAQrqB,IACJ,GAAIk/B,EACA,MAAM,IAAIloB,GAAOkoB,EAAYllB,SACjCia,GAAuB5tB,KAAMstB,GAA2B,KAAKwL,eAAen/B,GAC5Ei0B,GAAuB5tB,KAAMstB,GAA2B,KAAKyL,kBAAkBp/B,EAAMoqB,GACrF,IAAIiV,GAAuB,EACvBpL,GAAuB5tB,KAAMitB,GAA+B,OAC5D+L,EAAuBpL,GAAuB5tB,KAAMstB,GAA2B,KAAK2L,gBAAgBt/B,IAEpGi0B,GAAuB5tB,KAAMgtB,GAAuB,OAASgM,EAC7DpL,GAAuB5tB,KAAMstB,GAA2B,KAAK4L,iBAAiBv/B,EAAMoO,EAASkW,IAAiBpB,GAEzG+Q,GAAuB5tB,KAAMktB,GAA8B,MAChEU,GAAuB5tB,KAAMstB,GAA2B,KAAK4L,iBAAiBv/B,EAAMoO,EAAS,CAAA,GAAI,GAAO,GAE5G6lB,GAAuB5tB,KAAMstB,GAA2B,KAAK6L,eAAex/B,GAC5Ei0B,GAAuB5tB,KAAMstB,GAA2B,KAAKiK,aAAa59B,GAC1Ei0B,GAAuB5tB,KAAMstB,GAA2B,KAAKqK,YAAYh+B,EAAK,CAErF,CACD,CAACq2B,MACGzC,GAAuBvtB,KAAMisB,IAA0B,EAAM,IAChE,CACD,CAACgE,IAAuB9zB,GACpB,GAAoB,iBAATA,EACPyxB,GAAuB5tB,KAAMssB,GAAwB,KAAKzwB,IAAIM,IAAQ,OAGtE,IAAK,MAAMiS,KAAKjS,EACZyxB,GAAuB5tB,KAAMssB,GAAwB,KAAKzwB,IAAIuS,IAAK,CAG9E,EU79CL,MAAMgrB,IVmBuBvjB,GUnBFwjB,GVoBhB,CAAClJ,EAAc,GAAIv2B,EAAMic,GAAMrb,QAAQZ,MAAOw2B,KACjD,MAAMnY,EAAQ,IAAIiY,GAAcC,EAAav2B,EAAKw2B,EAAeva,IASjE,OARA9Z,OAAO2Q,eAAeuL,EAAO,OAAQ,CACjCvb,IAAK,IACMub,EAAM1R,QAEjBoG,YAAY,IAEhBsL,EAAM6L,OACN7L,EAAM9R,UACC8R,CAAK,GAXb,IAAsBpC,4nBWhB7B,MAAMyjB,GCTuD,UAAYC,cAAcC,EAAEzzB,OAAO0zB,kBAAkBC,OAAO1Q,EAAE2Q,QAAQC,GAAGJ,GCAtI,SAAWA,EAAEI,EAAE,GAAG,MAAMv4B,EAAED,GAAG,SAASo4B,EAAEI,EAAE,GAAG,IAAIv4B,EAAE,WAAWu4B,EAAEx4B,EAAE,WAAWw4B,EAAE,IAAI,IAAIA,EAAErtB,EAAE,EAAEA,EAAEitB,EAAE3+B,OAAO0R,IAAIqtB,EAAEJ,EAAEK,YAAYttB,GAAGlL,EAAEJ,KAAK64B,KAAKz4B,EAAEu4B,EAAE,YAAYx4B,EAAEH,KAAK64B,KAAK14B,EAAEw4B,EAAE,YAAY,OAAOv4B,EAAEJ,KAAK64B,KAAKz4B,EAAEA,IAAI,GAAG,YAAYA,GAAGJ,KAAK64B,KAAK14B,EAAEA,IAAI,GAAG,YAAYA,EAAEH,KAAK64B,KAAK14B,EAAEA,IAAI,GAAG,YAAYA,GAAGH,KAAK64B,KAAKz4B,EAAEA,IAAI,GAAG,YAAY,CAACD,IAAI,EAAEC,IAAI,EAAE,CAApT,CAAsTm4B,EAAEI,GAAG,OAAOJ,EAAE3+B,OAAOT,SAAS,IAAIiH,EAAEjH,SAAS,IAAI2/B,SAAS,EAAE,KAAK34B,EAAEhH,SAAS,IAAI2/B,SAAS,EAAE,IAAI,CDAzStyB,CAAE2I,KAAKoD,UAAUgmB,KAAKQ,kBAAkB34B,EAAE,IAAI44B,kBAAkB93B,EAAE,IAAI,CAAA,GAAI,OAAO,SAASsF,EAAEkG,GAAG,GAAG,WAAWA,GAAG+f,KAAK,CAAC,MAAMkM,EAAE,IAAIr9B,IAAI,OAAOysB,GAAGluB,KAAK8+B,GAAG,WAAW,MAAM5Q,EAAEkR,KAAKC,MAAM,GAAGP,EAAE7pB,IAAI/P,MAAM,CAAC,MAAMyH,EAAEpG,GAAGu4B,EAAEl9B,IAAIsD,MAAM,GAAGgpB,EAAE3nB,GAAGm4B,EAAE,OAAO/xB,CAAC,CAAC,MAAMpG,EAAEoG,EAAE4K,KAAKrS,MAAM,GAAG45B,EAAEQ,MAAMj4B,EAAE,CAAC,MAAMsF,EAAEmyB,EAAEz9B,OAAOyO,OAAO9O,MAAM89B,EAAES,OAAO5yB,EAAE,CAAC,OAAOmyB,EAAE98B,IAAIkD,KAAK,CAACqB,EAAE2nB,IAAI3nB,CAAC,CAAC,CAAC,CAAC,MAAMD,EAAE,IAAI7E,IAAI,OAAOysB,GAAGluB,KAAKsG,GAAG,YAAY4nB,GAAG,MAAMzc,EAAEqtB,EAAE5Q,GAAG,IAAIsR,EAAEl5B,EAAE1E,IAAIsD,MAAM,MAAM6kB,EAAEqV,KAAKC,MAAM,GAAGG,GAAG,GAAGA,EAAEvqB,IAAIxD,GAAG,CAAC,MAAM9E,EAAEuhB,GAAGsR,EAAE59B,IAAI6P,GAAG,GAAGsY,EAAEmE,GAAGwQ,EAAE,OAAO/xB,CAAC,MAAM,CAAC,GAAG6yB,EAAE,IAAI/9B,IAAI6E,EAAEg5B,MAAMj4B,EAAE,CAAC,MAAMsF,EAAErG,EAAEjF,OAAOyO,OAAO9O,MAAMsF,EAAEi5B,OAAO5yB,EAAE,CAACrG,EAAEtE,IAAIkD,KAAKs6B,EAAE,CAAC,MAAMjZ,EAAE1T,EAAElG,EAAE4K,KAAKrS,QAAQgpB,GAAGvhB,KAAKuhB,GAAG,GAAGsR,EAAEF,MAAM/4B,EAAE,CAAC,MAAMoG,EAAE6yB,EAAEn+B,OAAOyO,OAAO9O,MAAMw+B,EAAED,OAAO5yB,EAAE,CAAC,OAAO6yB,EAAEx9B,IAAIyP,EAAE,CAAC8U,EAAEwD,IAAIxD,CAAC,CAAC,CAAC,CAAC,CDS5zBkZ,CAAe,CAAEN,kBAAmBl0B,OAAOy0B,iBAAkBR,kBAAmB,IAEzF,MAAMS,WAAQC,+qFAAAC,CAAA36B,KAAA,GAAA,CAAA,CAalBs5B,GAKAA,EAAAA,gBAAAA,CAAAA,GASAA,EAAAA,kBAAAA,CAAAA,GAWAA,EAAAA,gBAAAA,CAAAA,GAOAA,EAAAA,eAAAA,CAAAA,oBAKAA,GAAO,EAAA,iBAAA,CASPA,GAAO,EAAA,iBAAA,CAKPA,GAAO,EAAA,QAAA,CAKPA,GAAO,EAAA,mBAAA,CAMPA,GAKAA,EAAAA,OAAAA,CAAAA,GAKAA,EAAAA,eAAAA,CAAAA,GAKAA,EAAAA,aAAAA,CAAAA,GAOAA,EAAAA,qBAAAA,CAAAA,oBAAO7xB,CAAA,CAhGS9N,UAAI+gC,GAAA16B,MAEJ46B,WAAa,IAAIr+B,IAIlCsD,WAAAA,CAAYg7B,EAAiBlhC,EAAwBmhC,GACnD96B,KAAK+6B,SAAW7gC,EAAKC,QAAQ0gC,GAC7B76B,KAAKrG,KAAOA,EACZqG,KAAK86B,QAAUA,CACjB,CAEA,gBACIE,GACF,OAAO9/B,EAAGC,WAAWjB,EAAKa,KAAKiF,KAAKi7B,YAAa,eACnD,CAEA,kBACIC,GACF,IACE,MAAO,cAAcv6B,KAAKzF,EAAGmV,aAAanW,EAAKa,KAAKiF,KAAKi7B,YAAa,kBAAmB,QAC3F,CAAE,MACA,OAAO,CACT,CACF,CAEA,gBACIE,GACF,OAAOn7B,KAAKo7B,YAAYC,SAASC,OAAO7uB,SAAS,iBAC7C,aACC,0BAAwBzM,KAAKrG,KAAK2B,QAAU,YAAc,GACjE,CAEA,WAAIu/B,GACF,OAAO76B,KAAK+6B,QACd,CAEA,eACIE,GACF,OAAO//B,EAAGC,WAAWjB,EAAKa,KAAKiF,KAAK66B,QAAS,KAAM,KAAM,iBACrD3gC,EAAKC,QAAQ6F,KAAK66B,QAAS,KAAM,MACjC76B,KAAK66B,OACX,CAEA,cACIU,GACF,OAAOrgC,EAAGmV,aAAarQ,KAAKw7B,SAAS,cAAe,OACtD,CAEA,iBACIC,GACF,IACE,QAASz7B,KAAKw7B,SAAS,aACzB,CAAE,MACA,OAAO,CACT,CACF,CAEA,iBACIE,GACF,OAAOxgC,EAAGC,WAAWjB,EAAKa,KAAKiF,KAAK66B,QAAS,OAC/C,CAEA,QACInrB,GACF,OAAO1P,KAAKo7B,YAAY1rB,MAAQ,SAClC,CAEA,mBACIisB,GAEF,OADa37B,KAAKo7B,YAAY1rB,MAAQ,WAC1BksB,WAAW,IAAK,IAAIA,WAAW,IAAK,IAClD,CAEA,OACI7hC,GACF,OAAOiG,KAAK86B,QAAU,IAAKphC,EAAyBsG,KAAKrG,KAAMqG,KAAK66B,YAAargC,QAAQT,KAAQS,QAAQT,GAC3G,CAEA,eACIqhC,GACF,OAAOhrB,KAAK7J,MAAMrL,EAAGmV,aAAanW,EAAKa,KAAKiF,KAAK66B,QAAS,gBAAiB,QAC7E,CAEA,aACIgB,GACF,SAAU77B,KAAKo7B,YAAYU,cAAuB,SAAK97B,KAAKo7B,YAAYW,iBAA0B,OACpG,CAEA,qBACIC,GACF,OAAO9hC,EAAKya,QAAQ3U,KAAKw7B,SAAS,iBAAmBx7B,KAAK66B,QACtD76B,KAAKo7B,YACLhrB,KAAK7J,MAAMrL,EAAGmV,aAAanW,EAAKa,KAAKb,EAAKya,QAAQ3U,KAAKw7B,SAAS,eAAgB,gBAAiB,QACvG,CAEA,aACIS,GACF,IAAIC,GAAW,EACXC,EAAcn8B,KAAK66B,QACvB,OAAS,CACP,MAAMuB,EAAUliC,EAAKa,KAAKohC,EAAa,eAAgB,QAMvD,GALIjhC,EAAGC,WAAWihC,KAChBp8B,KAAKjG,IAAIsiC,KAAQ,GAAED,KAAWp8B,KAAKjG,IAAIsiC,OACvCH,GAAW,GAGThhC,EAAGC,WAAWjB,EAAKa,KAAKohC,EAAa,SACvC,MAEF,MAAMG,EAAapiC,EAAKya,QAAQwnB,GAChC,GAAIA,IAAgBG,EAClB,MAEFH,EAAcG,CAChB,CACA,OAAOJ,CACT,CAEAV,QAAAA,CAASe,GACP,IAAI//B,EAAWwD,KAAK46B,WAAWl+B,IAAI6/B,GACnC,GAAI//B,EAAU,OAAOA,EAKrB,GAHAA,EAAW,CAAC+/B,EAAUriC,EAAKa,KAAK,KAAM,KAAMwhC,IACzCviC,KAAKwiC,GAAMtiC,EAAKC,QAAQ6F,KAAK66B,QAAS2B,KACtCryB,MAAMqyB,GAAMthC,EAAGC,WAAWqhC,MACxBhgC,EACH,MAAM,IAAIH,MAAO,mBAAkBkgC,KAGrC,OADAv8B,KAAK46B,WAAW99B,IAAIy/B,EAAU//B,GACvBA,CACT,EASK,SAASigC,GAAgB9iC,EAAwBmhC,GAAU,EAAMD,GAEtE,GADAA,IAAYrgC,QAAQZ,MACfsB,EAAGC,WAAWjB,EAAKa,KAAK8/B,EAAS,iBAEtC,OAAO,IAAIJ,GAAQI,EAASlhC,EAAMmhC,EACpC,CAEOz9B,eAAeq/B,GACpB/iC,EACAmhC,GAAU,EACVD,GAEA,MAAM8B,EAYD,SACLhjC,EACAmhC,GAAU,EACVD,GAGA,GADAA,IAAYrgC,QAAQZ,OACfsB,EAAGC,WAAWjB,EAAKa,KAAK8/B,EAAS,iBAAkB,OAExD,MAAM+B,EAAc,IAAInC,GAAQI,EAASlhC,EAAMmhC,GAC/C,IAAI+B,EAAcD,EAClB,IAAKA,EAAYxB,YAAY0B,YAAc5iC,EAAKya,QAAQkmB,GAASkC,SAAS,aAAc,CACtF,MAAM9B,EAAc/gC,EAAKC,QAAQ0gC,EAAS,KAAM,MAC5C3/B,EAAGC,WAAWjB,EAAKa,KAAKkgC,EAAa,mBACvC4B,EAAc,IAAIpC,GAAQQ,EAAathC,EAAMmhC,GAEjD,CACA,MAAO,CAAEkC,KAAMH,EAAap0B,KAAMm0B,EACpC,CA7B8BK,CAAwBtjC,EAAMmhC,EAASD,GACnE,GAAK8B,EAEL,MAAO,IACFA,EACHpjB,IACEojB,EAAoBK,OAASL,EAAoBl0B,WACvCy0B,GAAevjC,EAAMgjC,EAAoBK,KAAMlC,GACrD,CAAC6B,EAAoBl0B,MAE/B,CAqBApL,eAAe6/B,GAAevjC,EAAwBkjC,EAAsB/B,GAC1E,MAAMqC,EAAc,CAACN,GAEfO,EAAYP,EAAYzB,YAAY0B,WAC1C,IAAKr5B,MAAM+D,QAAQ41B,GAAY,OAAOD,EAEtC,MAAME,EAAwB,GACxBC,EAAwB,GAC9B,IAAK,MAAMC,KAAiBH,EAAUpjC,KAAKwjC,GAAetjC,EAAKa,KAAK8hC,EAAYhC,QAAS2C,KACnFtiC,EAAGC,WAAWoiC,GAChBD,EAAYxiC,KAAKyiC,GAEjBF,EAAYviC,KAAKyiC,GAGrBD,EAAYxiC,cAAe2iC,EAAOJ,EAAa,CAAEK,KAAK,EAAMC,iBAAiB,KAC7E,IAAK,MAAMC,KAAqBN,EACzBpiC,EAAGC,WAAWjB,EAAKa,KAAK6iC,EAAmB,kBAEhDT,EAAYriC,KAAK,IAAI2/B,GAAQmD,EAAmBjkC,EAAMmhC,IAExD,OAAOqC,CACT,CG3MA,MASaU,GAAoF,CAC/FtgC,QAAS,gBACTkjB,SAAU,6CAXI,CACdljB,QAAS,CACPyd,YAAa,kBACbpM,KAAM,SACN5H,QAAS,aACTN,MAAO,MAQT,aAAMwU,CAAQvhB,SAsBT0D,eAEL1D,EACAmkC,GAEA,MAAMC,QAAgBtB,GAAgB9iC,GAAM,EAAMmkC,GAClD,IAAKC,EAEH,OADAxiC,QAAQqD,MAAMo/B,EAAMC,IAAI,uBACjB,EAGT,IAAK/iC,EAAGC,WAAWjB,EAAKa,KAAKgjC,EAAQ9C,YAAa,SAEhD,OADAK,GAAMyC,EAASpkC,IACR,EAGT,MAAOukC,EAASC,EAAeC,SAgB1B/gC,eACL0gC,EACApkC,GAEA,MAAM0kC,EAAqBnkC,EAAKC,QAAQ4jC,EAAQlD,QAAS,eAAgB,SAAU,SAC7EsD,EAAgBjkC,EAAKC,QAAQkkC,EAAoB,oBACjDnjC,EAAGojC,SAASC,MAAMF,EAAoB,CAAEG,WAAW,IAEzD,MAAMC,EAAOC,EAAW,UAElBC,EAAaC,EAAcC,SAAS,qBAAsB,CAAEjlC,IAAKmkC,EAAQlD,UAAWzgC,WAAWkF,OACrGm/B,EAAKK,OAAOH,GAEZ,MAAMI,EAAkB3uB,KAAKoD,UAC3BzX,OAAOC,QAAQ+hC,EAAQhkC,KACpBqC,QAAO,EAAEP,MAAUmjC,GAAoBjvB,IAAIlU,KAC3CkpB,MAAK,EAAE6L,IAAQC,KAAUD,EAAK3L,cAAc4L,MAEjD4N,EAAKK,OAAOC,SA2Bd1hC,eACE0gC,EACApkC,EACA8kC,GAEA,OAAO,IAAIzhC,SAAS7C,IAClB,MAYM8kC,EAZML,EAAcM,UAAU,MAAO,CAAC,OAAQ,eAAgB,CAClEtlC,IAAKmkC,EAAQlD,QACb9gC,IAAKgkC,EAAQhkC,IACbolC,MAAO,OACPC,SAAU,SAEUvhC,OACnByB,OACAsB,MAAM,MACN5G,KAAKwC,GACmB,SAAvBuhC,EAAQhkC,IAAIY,OAAoB6B,EAASkG,QAAQ,4CAA6C,IAAMlG,IAEpEJ,QACjCI,IACE6iC,GAAgBhxB,MAAMI,GAAYjS,EAASiQ,SAASgC,MACnD6wB,GAAcjxB,MAAMkxB,GAAW/iC,EAASugC,SAASwC,QAClDC,GAAgBnxB,MAAMI,GAAYjS,EAASiQ,SAASgC,OAErD9U,EAAK2B,SACPC,QAAQC,KAAM,kBAAiByjC,EAAkBlkC,KAAK,SAIxD,MAAM4C,EAAOihC,EAAchhC,MAAM,MAAO,CAAC,OAAQ,QAASqhC,GAAoB,CAAErlC,IAAKmkC,EAAQ9C,cAC7Ft9B,EAAKE,QAAQO,GAAG,QAASC,IACvBogC,EAAKK,OAAOzgC,GACR1E,EAAK2B,UACPC,QAAQC,KAAK6C,EAAKjE,YAClBmB,QAAQC,KAAK,QAASijC,EAAKgB,OAAOC,OAAO,QAC3C,IAEF/hC,EAAKS,GAAG,SAAS,KACfjE,GAAS,GACT,GAEN,CAlEQwlC,CAAyB5B,EAASpkC,EAAM8kC,GAC9C,MAAML,EAAcK,EAAKiB,OAAO,OAE1BE,QC7DDviC,eAAoCkF,GACzC,IACE,aAAaA,GACd,CAAC,MAAO3D,GACP,GAAqB,iBAAVA,GAAsBA,GAAS,SAAUA,GAAwB,WAAfA,EAAMG,KACjE,OAEF,MAAMH,CACR,CACF,CDoDkCihC,EAAkB,IAAM3kC,EAAGojC,SAASwB,SAAS3B,EAAe,UAC5F,MAAO,CAACyB,IAAsBxB,EAAaD,EAAeC,EAC5D,CAzCsD2B,CAAahC,EAASpkC,GAC1E,GAAIukC,EAEF,OADA3iC,QAAQC,KAAKwiC,EAAMgC,MAAO,gBAAermC,EAAK4D,iBACvC,EAGT,IAAK+9B,GAAMyC,EAASpkC,GAAO,OAEtBA,EAAKsmC,cACF/kC,EAAGojC,SAASttB,UAAUmtB,EAAeC,EAAa,QAE1D,OAAO,CACT,CAjDU8B,CAAcvmC,EACtB,GAGF,SAAS2hC,GAAMyC,EAAkBpkC,GAE/B,GADA4B,QAAQC,KAAKwiC,EAAMgC,MAAO,QAAOrmC,EAAK4D,cACjC5D,EAAKsmC,OAAQ,CAChB,MAAME,EAAMvB,EAAcM,UAAUvlC,EAAK4D,SAAW,GAAI,CACtD3D,IAAKmkC,EAAQlD,QACb9gC,IAAKgkC,EAAQhkC,IACbqmC,OAAO,EACPjB,MAAO,YAET,GAAmB,IAAfgB,EAAIlhC,OAEN,OADAzE,QAAQ6lC,SAAWF,EAAIlhC,QAAU,GAC1B,CAEX,CACA,OAAO,CACT,CAgCA,MAAM+/B,GAAsB,IAAIlvB,IAAI,CAAC,KAAM,UAAW,WA6BtD,MAAMuvB,GAAkB,CAAC,OAAQ,WAC3BC,GAAgB,CACpB,MACA,OACA,OACA,OACA,MACA,OACA,OACA,OACA,QACA,kBAEA,eACA,aAEIE,GAAkB,CAAC,QAAS,SAAU,aAAc,kBE1HnD,SAAUc,GAAyBpY,EAAqBqY,GAC7D,IAAK,MAAMxC,KAAWwC,EACpBhlC,QAAQC,KAAM,YAAW0sB,UAAoB6V,EAAQruB,kBAE/CquB,CAEV,CCIA,MAQayC,GAA6F,CACxGjjC,QAAS,yBACTkjB,SAAU,8DAVI,CACdggB,QAAS,CACPzlB,YAAa,yEACbpM,KAAM,UACNlI,MAAO,MAQT,aAAMwU,CAAQvhB,GACZ,MAAM4mC,QAAiB7D,GAAgB/iC,GAClC4mC,IACHhlC,QAAQqD,MAAMo/B,EAAMC,IAAI,sBACxBzjC,QAAQgb,KAAK,IAGf,IAAK,MAAMuoB,KAAWuC,GAAyB,yBAA0BC,EAAShnB,KAAM,CACtF,MAAM6hB,EAA2B2C,EAAQ3C,YACnCj/B,EAAO,CAAC,eAAgB,mBAC9B,IAAK,MAAMN,KAAOM,EAAM,CACtB,MAAMukC,EAAOtF,EAAYv/B,IAAQ,CAAA,EACjC,IAAK,MAAO6T,EAAM5T,KAAUC,OAAOC,QAAQ0kC,GACrC5kC,GAAO4sB,WAAW,qBACpBgY,EAAKhxB,GAAS,KAAIA,IAGxB,CAQA,GANAixB,GAAwBhnC,EAAMyhC,GAE9BwF,GAAgBxF,GAEhByF,GAAkBzF,GAEdzhC,EAAKsmC,OAAQ,SAEjB,MAAMa,EAAcnnC,EAAK8mC,QAAUvmC,EAAKa,KAAKgjC,EAAQlD,QAAS,QAAUkD,EAAQlD,cAC1E3/B,EAAGojC,SAASC,MAAMuC,EAAa,CAAEtC,WAAW,UAC5CtjC,EAAGojC,SAASttB,UAAU9W,EAAKa,KAAK+lC,EAAa,gBAAiB1wB,KAAKoD,UAAU4nB,GAAc,OACnG,CACKzhC,EAAKsmC,QAAWtmC,EAAK8mC,SACxB7B,EAAcM,UAAU,OAAQ,CAC9BC,MAAO,WAGb,GAGF,SAASwB,GAAwBhnC,EAA2CyhC,GAC1E,IAAKzhC,EAAK8mC,QAER,mBADOrF,EAAYW,gBAIrB,MAAMgF,EAAU3F,EAAYW,iBAAmB,GACzCiF,EAAuB,CAC3B,YACA,eACA,6CACA,SACA,QACA,WACA,OACA,YACA,cACA,WACA,aACA,WACA,QACA,oBACA,UACA,mBACA,UAEF,IAAK,MAAMtxB,KAAQ3T,OAAOI,KAAK4kC,IAE3BC,EAAqB3yB,MAAM4yB,GAASvxB,EAAKjD,SAASw0B,OAChDtnC,EAAK8mC,SAAW/wB,EAAKjD,SAAS,gBAAkBiD,EAAKjD,SAAS,mBAEzDs0B,EAAQrxB,EAGrB,CAEA,SAASkxB,GAAgBxF,GACvB,MAAM8F,EAAgC,CAAC,QAAS,SAAU,SAAU,OAAQ,QAAS,QAC/EC,EAAmC,CAAC,SAAU,UAC9C9F,EAAWD,EAAYC,SAAW,GACxC,IAAK,MAAO3rB,EAAM0xB,KAAYrlC,OAAOC,QAAQq/B,IAEzC6F,EAA8B7yB,MAAM4yB,GAASvxB,EAAKjD,SAASw0B,MAE3DE,EAAiC9yB,MAAM4yB,GAASG,EAAQ30B,SAASw0B,IAASG,EAAQ9hC,SAAW2hC,EAAK3hC,kBAE3F+7B,EAAQ3rB,EAGrB,CAEA,SAASmxB,GAAkBzF,UAClBA,EAAYiG,eACZjG,EAAYkG,qBACZlG,EAAYmG,QACrB,CCtHO,MAAMC,GAAiBhnC,QAAQb,KAAK,GAAGojC,SAAS,QAE1C0E,GAAkBD,GAAiB,YAAc,OACjDE,GAAyBF,GAAiB,YAAc,OCwE9D,MAAMG,GAAgB,IAjE7B,MACEC,MAAAA,CAAOt3B,GACL,MAAO,uBACT,CAEAu3B,WAAAA,CAAY9D,EAAkB+D,GAC5B,MAAMC,EAAUhE,EAAQ3C,YAAYU,cAAsB,MAAI,KAAO,SAErE,MAAQ,UAASiG,iEAAuEA,yDAC3DA,wBAA8BD,iDAC7D,CAEAE,UAAAA,CAAW13B,GACT,MAAQ,GAAEm3B,+MAKZ,CAEAQ,OAAAA,CAAQlE,GACN,MAAQ,+CAA8C/9B,KAAKkiC,KAAKnE,IAClE,CAEAoE,UAAAA,CAAW73B,GACT,MAAQ,oBACV,CAEAyO,KAAAA,CAAMglB,GAGJ,MAAQ,+CAA8C/9B,KAAKkiC,KAAKnE,IAGlE,CAEAqE,OAAAA,CAAQrE,EAAkB+D,EAAoBO,GAE5C,MAAQ,UADQtE,EAAQ3C,YAAYU,cAAsB,MAAI,KAAO,mGAC8CuG,KAAcP,GACnI,CAEAI,IAAAA,CAAKnE,EAAkBuE,GACrB,OAAIvE,EAAQ3C,YAAYU,cAAsB,MACpC,sBAAoBwG,EAAc,OAAMA,IAAe,IAC7DA,EAAmB,oCAClBvE,EAAQ3C,YAAYmH,QAAsD,KAAW,sBAClF,yEACV,CAEAC,MAAAA,CAAOl4B,EAAYm4B,GACjB,IAAIn1B,EAAS,GACb,GAAIm1B,EACF,IACE,IAAIC,IAAID,GACRn1B,EAAU,gBAAem1B,IAC3B,CAAE,MACA,MAAME,EAAezoC,EAAKC,QAAQsoC,GAClClnC,QAAQC,KAAKinC,EAAaE,GAC1Br1B,EAAU,uBAAsBq1B,IAClC,CAEF,MAAQ,GAAEr1B,gBACZ,GCjEIs1B,GAAS,IAAI9yB,IAenBzS,eAAewlC,GAA8BC,GAC3C,UACQC,EAAgBD,EACxB,CAAE,MACA,CAEJ,CC1BO,MAAME,GAAc,IAAIC,ECazBC,GAA0B,CAC9BC,cAAc,GAGT9lC,eAAe+lC,GACpBrZ,EACAgU,EACApkC,EACAmG,EAAgBojC,IAEhB,MAAOG,EAAiBC,GAAkBC,GAAgBxZ,EAAQgU,GAKlE,GAJAyF,GAAWH,EAAiBtF,GACxBpkC,EAAK2B,SACPkoC,GAAWF,EAAgBvF,EAAS,eAAe,GAEjDpkC,EAAKsmC,OAEP,OADAwD,GAA6BJ,EAAiB,EAAGvjC,GAC1C,EAGT,MAAMgjC,EAAOQ,EAAe3hC,MAAM,8BAA8B,GAC5D2hC,EAAe72B,SAAS,YAAcq2B,IAASQ,EAAe72B,SAAS,qBF3BtEpP,eAAmDylC,SAClDD,GAA8BC,GACpC,MAAMY,EAAWrmC,UACXulC,GAAO7yB,IAAI+yB,KAEfF,GAAO3yB,IAAI6yB,SACLD,GAA8BC,GAAK,EAE3C,IAAK,MAAM9jC,IAAU,CAAC,aAAc,SAAU,UAAW,WACvDxE,QAAQ4D,GAAGY,EAAQ0kC,EAEvB,CEiBUC,CAAoC59B,OAAO+8B,IAEnD,MAAM3C,QAAY7iC,EAAWgmC,OAAgB1oC,EAAW,CACtDhB,IAAKmkC,EAAQlD,QACb9gC,IAAKgkC,EAAQhkC,IACbqmC,OAAO,EACPjB,MAAO,UACPyE,QAAS9jC,GAAM8jC,QACfjlC,YAAY,EACZrD,QAAS3B,EAAK2B,UAGhB,OADAmoC,GAA6BJ,EAAiBlD,EAAIlhC,OAAQa,GACnDqgC,EAAIlhC,QAAU,CACvB,CAEO,SAAS4kC,GACd9Z,EACAgU,EACApkC,EACAmG,EAAgBojC,IAEhB,OAAOF,GAAYc,KAAIzmC,UACrB,MAAOgmC,EAAiBC,GAAkBC,GAAgBxZ,EAAQgU,GAElE,GADAyF,GAAWH,EAAiBtF,EAAS,oBAAoB,GACrDpkC,EAAKsmC,OAMP,OALAuD,GAAWH,EAAiBtF,EAAS,iBACjCpkC,EAAK2B,SACPkoC,GAAWF,EAAgBvF,EAAS,iBAAiB,QAEvD0F,GAA6BJ,EAAiB,EAAGvjC,GAInD,MAAMqgC,QAAY7iC,EAAWgmC,OAAgB1oC,EAAW,CACtDhB,IAAKmkC,EAAQlD,QACb9gC,IAAKgkC,EAAQhkC,IACbqmC,OAAO,EACPjB,MAAO,OACPyE,QAAS9jC,GAAM8jC,QACftlC,kBAAkB,EAClBK,YAAY,EACZrD,QAAS3B,EAAK2B,UAEhBkoC,GAAWH,EAAiBtF,EAAS,iBACjCpkC,EAAK2B,SACPkoC,GAAWF,EAAgBvF,EAAS,iBAAiB,GAEvD,MAAMgG,EAAM5D,EAAItiC,OAAOyB,OACnBykC,GAAKxoC,QAAQC,KAAKuoC,GACtBN,GAA6BJ,EAAiBlD,EAAIlhC,OAAQa,EAAK,GAEnE,CAEA,SAASyjC,GAAgBxZ,EAAgBgU,GACvC,MAAMiG,EAAYja,EACf6R,WAAW,KAAM,IACjBA,WAAW,SAAU,KACrBA,WAAW,UAAWmC,EAAQ3C,YAAYU,cAAsB,MAAI,qBAAuB,gBAC3FF,WAAW,OAAQmC,EAAQ7C,eAAiB,aAAe,SAC3D57B,OACH,MAAO,CACL0kC,EAAUpI,WAAW,QAAU,GAAE8F,OACjCsC,EAAUpI,WAAW,SAAU4F,IAAkBzD,EAAQ9B,UAAY,GAAM,GAAEyF,OAEjF,CAEO,SAAS8B,GAAWS,EAA0BlG,EAAkBzwB,EAAS,QAAS42B,GAAO,GAC9F3oC,QAAQC,KACN,MACG0oC,EAAOlG,EAAMmG,KAAOnG,EAAMoG,MAAMpG,EAAMqG,KAAM,GAAE/2B,MAAY22B,GAC3DjG,EAAMmG,KAAM,OAAMpG,EAAQlD,WAEhC,CAEO,SAAS4I,GACd1Z,EACAsW,EACAvgC,GAEiB,IAAbugC,EACF9kC,QAAQC,KAAKwiC,EAAMgC,MAAMhC,EAAMqG,KAAK,aAActa,KAElDxuB,QAAQC,KAAKwiC,EAAMC,IAAID,EAAMqG,KAAM,qBAAoBhE,QAAgBtW,KAC7C,IAAtBjqB,EAAKqjC,cACP3oC,QAAQgb,KAAK6qB,GAAY,GAG/B,CCjHA,MAAMplB,GAAU,CAAA,EAEHqpB,GAA+B,CAC1C/mC,QAAS,SACTkjB,SAAU,sBACVxF,QAAUhD,GACDA,EACJ1a,QAAQgnC,IACRhnC,QAAQinC,IACRjnC,QAAQknC,IACRlnC,QAAQmnC,IACRnnC,QAAQonC,IACRpnC,QAAQqnC,IACRrnC,QAAQsnC,IACRtnC,QAAQunC,IACRvnC,QAAQwnC,IACRxnC,QAAQwe,IACRkV,gBAEL/V,OAAAA,GACE,GAIEqpB,GAA6E,CACjFhnC,QAAS,SACTkjB,SAAU,wDACVxF,GACA,aAAMC,CAAQvhB,GACZ,MAAMwjC,QAAoB6H,GAAmBrrC,GAC7C,IAAK,MAAMokC,KAAWuC,GAAyB,gBAAiBnD,SACxDiG,GAAazB,GAAcC,OAAO7D,GAAUA,EAASpkC,EAE/D,GAGIsrC,GAAqB,IACtBhqB,GACH,cAAe,CACbD,YAAa,2CACbiJ,cAAc,EACdrV,KAAM,SACNlI,MAAO,MAIL89B,GAA6F,CACjGjnC,QAAS,6BACTkjB,SAAU,uFACVxF,QAASgqB,GACT,aAAM/pB,CAAQvhB,GACZ,MAAMwjC,QAAoB6H,GAAmBrrC,GAC7C,IAAK,MAAMokC,KAAWuC,GAAyB,sBAAuBnD,SAC9DiG,GAAazB,GAAcE,YAAY9D,EAASpkC,EAAKmoC,YAAa/D,EAASpkC,EAErF,GAGI8qC,GAAiF,CACrFlnC,QAAS,aACTkjB,SAAU,kCACVxF,GACA,aAAMC,CAAQvhB,GACZ,MAAMwjC,QAAoB6H,GAAmBrrC,GAC7C,IAAK,MAAMokC,KAAWuC,GAAyB,oBAAqBnD,SAC5DiG,GAAazB,GAAcK,WAAWjE,GAAUA,EAASpkC,EAEnE,GAGI+qC,GAA8E,CAClFnnC,QAAS,UACTkjB,SAAU,qDACVxF,GACA,aAAMC,CAAQvhB,GACZ,MAAMwjC,QAAoB6H,GAAmBrrC,GAC7C,IAAK,MAAMokC,KAAWuC,GAAyB,iBAAkBnD,SACzDiG,GAAazB,GAAcM,QAAQlE,GAAUA,EAASpkC,EAEhE,GAGIgrC,GAAiF,CACrFpnC,QAAS,cACTkjB,SAAU,kCACVxF,GACA,aAAMC,CAAQvhB,GACZ,MAAMwjC,QAAoB6H,GAAmBrrC,GAC7C,IAAK,MAAMokC,KAAWuC,GAAyB,qBAAsBnD,SAC7DiG,GAAazB,GAAcQ,WAAWpE,GAAUA,EAASpkC,EAEnE,GAGIirC,GAA4E,CAChFrnC,QAAS,QACTkjB,SAAU,mBACVxF,GACA,aAAMC,CAAQvhB,GACZ,MAAMwjC,QAAoB6H,GAAmBrrC,GAC7C,IAAK,MAAMokC,KAAWuC,GAAyB,eAAgBnD,SACvDiG,GAAazB,GAAc5oB,MAAMglB,GAAUA,EAASpkC,EAE9D,GAWIkrC,GAAqF,CACzFtnC,QAAS,wBACTkjB,SAAU,sCACVxF,QAXqB,IAClBgqB,GACH1nB,OAAQ,CACNvC,YAAa,oFACbpM,KAAM,WAQR,aAAMsM,CAAQvhB,GACZ,MAAMwjC,QAAoB6H,GAAmBrrC,GAC7C,IAAK,MAAMokC,KAAWuC,GAAyB,iBAAkBnD,GAAc,CAC7E,MAAM5f,EACJ5jB,EAAK4jB,SACJwgB,EAAQ3C,YAAYU,cAAsB,MAAI,sBAAwB,iCACnEsH,GAAazB,GAAcS,QAAQrE,EAASpkC,EAAKmoC,WAAYvkB,GAASwgB,EAASpkC,EACvF,CACF,GAYImrC,GAA+E,CACnFvnC,QAAS,OACTkjB,SAAU,6BACVxF,QAZkB,IACfA,GACH/J,KAAM,CACJxK,MAAO,IACPsU,YAAa,2BACbpM,KAAM,WAQR,aAAMsM,CAAQvhB,GACZ,MAAMwjC,QAAoB6H,GAAmBrrC,GAC7C,IAAK,MAAMokC,KAAWuC,GAAyB,cAAenD,SACtDiG,GAAazB,GAAcO,KAAKnE,EAASpkC,EAAKuX,MAAO6sB,EAASpkC,EAExE,GAeIorC,GAAmF,CACvFxnC,QAAS,0BACTkjB,SAAU,qBACVxF,QAfoB,IACjBA,GACH,iBAAkB,CAChBD,YAAa,8BACbpM,KAAM,UAERs2B,SAAU,CACRlqB,YAAa,gFACbpM,KAAM,YAQR,aAAMsM,CAAQvhB,GACZ,GAAIA,EAAKurC,UAAYvrC,EAAK8oC,YACxB,MAAM,IAAIpmC,MAAM,4DAGlB,MAAM8gC,QAAoB6H,GAAmBrrC,GAC7C,IAAK,MAAMokC,KAAWuC,GAAyB,gBAAiBnD,GAAc,CAC5E,MAAMsF,EAAc9oC,EAAKurC,SACrBnH,EAAQ3C,YAAYU,cAAsB,MACxC,sBACA,0BACFniC,EAAK8oC,aAAaroC,iBAChBgpC,GAAazB,GAAca,OAAOzE,EAAS0E,GAAc1E,EAASpkC,EAC1E,CACF,GAKIoiB,GAA4F,CAChGxe,QAAS,cACTkjB,SAAU,iDACVxF,QAL4B,CAAEzd,KAAM,CAAEoR,KAAM,UAM5C,aAAMsM,CAAQvhB,GACZ,MAAMwjC,QAAoB6H,GAAmBrrC,GACvCowB,EAAU,GAAEpwB,EAAK6D,MAAMzC,KAAK,MAAQ,KAAKoqC,UAC/C,IAAK,MAAMpH,KAAWuC,GAA0B,UAASvW,IAAUoT,SAC3DiG,GAAc,UAASrZ,IAAUgU,EAASpkC,EAEpD,GAGF0D,eAAe2nC,GAAmBrrC,GAChC,MAAM4mC,QAAiB7D,GAAgB/iC,GAClC4mC,IACHhlC,QAAQqD,MAAMo/B,EAAMC,IAAI,sBACxBzjC,QAAQgb,KAAK,IAGf,MAAM4vB,EAAW7E,EAAShnB,IAAInd,QAC3B2hC,GAAYA,EAAQ3C,YAAYU,cAAuB,QAAKiC,EAAQ3C,YAAYW,iBAA0B,SAM7G,OAJwB,IAApBqJ,EAASvqC,SACXU,QAAQqD,MAAMo/B,EAAMC,IAAI,6BACxBzjC,QAAQgb,KAAK,IAER4vB,CACT,CCzNA,MAoBaC,GAGT,CACF9nC,QAAS,4BACTkjB,SAAU,oDAzBI,CACd6kB,MAAO,CACLtqB,YAAa,wBACbpM,KAAM,SACNlI,MAAO,IACPM,QAAS,IAsBX,aAAMkU,CAAQvhB,GACZ,MAAMokC,EAAUtB,GAAgB9iC,GAC3BokC,IACHxiC,QAAQqD,MAAMo/B,EAAMC,IAAI,sBACxBzjC,QAAQgb,KAAK,IAGf,MAAM+vB,EAAa,CAAC5rC,EAAK4D,WAAa5D,EAAK6D,MAAQ,MAAQ7D,EAAK2Q,EAAElE,MAAM,IAAIhK,OAAOyN,SACnF,IAAI27B,EAAa,EACjB,IAAK,IAAInkC,EAAI,EAAGA,EAAI1H,EAAK2rC,MAAOjkC,IAQ9B,GAPIA,EAAI,GACN9F,QAAQC,KAAM,KAAIwiC,EAAMyH,OAAQ,IAAGpkC,eAAekkC,EAAWxqC,KAAK,WAGpEyqC,QAAmBpC,GAAamC,EAAWxqC,KAAK,KAAMgjC,EAASpkC,EAAM,CACnEwpC,cAAc,IAEG,IAAfqC,EAAkB,OAExBhrC,QAAQgb,KAAKgwB,EACf,GCvCWE,GAA4E,CACvFnoC,QAAS,QACTkjB,SAAU,iEAJI,CAAA,EAMd,aAAMvF,CAAQvhB,SAMT0D,eACL1D,EACAmkC,GAEA,MAAMyC,QAAiB7D,GAAgB/iC,GAAM,EAAOmkC,GAC/CyC,IACHhlC,QAAQqD,MAAMo/B,EAAMC,IAAI,sBACxBzjC,QAAQgb,KAAK,IAGf,IAAK,MAAMuoB,KAAWuC,GAAyB,QAASC,EAAShnB,KAAM,CACrE,MAAMosB,QAAgBzqC,EAAG0qC,QAAQ7H,EAAQlD,QAAS,CAAEgL,eAAe,IACnE,GAAI9H,IAAYwC,EAASvD,KAAM,CAC7B,GAAsB,WAAlB8I,EAAGC,WAAyB,CAC9B,MAAMC,EAAW,CAAC,UACdjI,EAAQtC,eACVuK,EAASlrC,KAAK,gBAEV+oC,GAAwB,gBAAemC,EAASjrC,KAAK,OAAQgjC,EAASpkC,EAC9E,CAEIgsC,EAAQt3B,MAAMuR,GAAMA,EAAExO,UAAYwO,EAAElQ,KAAKjD,SAAS,qBAC9C22B,GAAa,eAAgBrF,EAASpkC,EAEhD,CAEA,GAAIgsC,EAAQt3B,MAAMuR,GAAMA,EAAExO,UAAuB,mBAAXwO,EAAElQ,OAA4B,OAC5Dm0B,GAAuB,4CAA6C9F,EAASpkC,SAC7EkqC,GAAuB,sDAAuD9F,EAASpkC,GAC7F,OAASwM,GAAWy4B,EAAcC,SAAS,uBAAuBzkC,WAAWkF,OAAOsB,MAAM,aACpFijC,GAAwB,kBAAiB19B,IAAW43B,EAASpkC,SAC7DqpC,GAAYiD,mBACZ7C,GAAa,uCAAwCrF,EAASpkC,SAC9DypC,GAAa,wBAAyBrF,EAASpkC,EACvD,CAEA,MAAM+mC,EAAO3C,EAAQ3C,YAAYU,cAAgB,CAAA,EAC3CiF,EAAUhD,EAAQ3C,YAAYW,iBAAmB,CAAA,EACjDV,EAAU0C,EAAQ3C,YAAYC,SAAW,CAAA,EACzC6K,EAAoB,GACpBC,EAAuB,GACzBzF,EAAY,OAAKA,EAAW,MAGrBK,EAAQ,mBAFjBmF,EAAQprC,KAAK,OACbqrC,EAAWrrC,KAAK,eAAgB,WAAY,SAAU,aAI7C4lC,EAAc,SAAKA,EAAc,WAC1CwF,EAAQprC,KAAK,OACbqrC,EAAWrrC,KAAK,eAAgB,SAAU,YAExCorC,EAAQrrC,OAAS,SACbuoC,GAAc,YAAW8C,EAAQnrC,KAAK,OAAQgjC,EAASpkC,GAE3DwsC,EAAWtrC,OAAS,SAChBuoC,GAAc,eAAc+C,EAAWprC,KAAK,OAAQgjC,EAASpkC,GAEjE0hC,EAAQ,mBACJ+H,GAAa,gBAAiBrF,EAASpkC,EAEjD,CACF,CAlEUysC,CAAMzsC,EACd,GCsBK,MAAM0sC,GAAgB,IAlC7B,MACEC,aAAAA,CAAcvI,EAAkB53B,GAE9B,MAAMmH,EAASywB,EAAQ/B,kBAAkBX,UAAU,wBAC/C,oCACA,GACJ,MAAQ,MAAKnhC,EAAKya,QAAQopB,EAAQvC,SAAS,0BACtCluB,sFACiCywB,EAAQpC,kIAErBoC,EAAQhkC,IAAIY,0CACRwL,KAC/B,CACAogC,YAAAA,CAAaxI,EAAkByI,GAAW,EAAOC,EAAoB,GAAIC,EAAiB,IACxF,MAAQ,GAAE1mC,KAAK2mC,KAAK5I,SAAeyI,EAAW,YAAc,KAAKxmC,KAAKqE,MACpE05B,EACA0I,EACAC,IAEJ,CACAriC,KAAAA,CAAM05B,EAAkB0I,EAAoB,GAAIC,EAAiB,IAE/D,ONDG,SAAyB3c,EAAgBgU,GAC9C,MAAM2F,EAAWrmC,UACf,GAAIulC,GAAO7yB,IAAIga,GAAS,OAExB6Y,GAAO3yB,IAAI8Z,GACXyZ,GAAWzZ,EAAQgU,GACnB,MAAM9+B,OAAEA,GAAWigC,EAAUnV,EAAQ,CAAEnwB,IAAKmkC,EAAQlD,QAASuF,OAAO,EAAMjB,MAAO,YACjFsE,GAA6B1Z,EAAQ9qB,EAAQ,CAAA,EAAG,EAElD,IAAK,MAAMD,IAAU,CAAC,aAAc,SAAU,UAAW,WACvDxE,QAAQ4D,GAAGY,EAAQ0kC,EAEvB,CMZIkD,CAAgB5mC,KAAK2mC,KAAK5I,GAAUA,GAC5B,2CAA0CA,EAAQpC,mBAAmB8K,KAAqB1I,EAAQpC,mBAAmB+K,GAC/H,CAEAC,IAAAA,CAAK5I,GACH,MAAQ,wDAAuDA,EAAQpC,gCACzE,CAEAkL,OAAAA,GACE,MAAQ,mDACV,GCrBK,MAAeC,GACVjnC,WAAAA,CAA6BknC,EAAchhC,OAAOvL,QAAQT,IAAIitC,OAAS,KAAMhnC,KAAhD+mC,YAAAA,CAAiD,CAExFE,WAAAA,CAAYlJ,EAAkB53B,EAAU,eACtC,OAAOkgC,GAAcC,cAAcvI,EAAS53B,EAC9C,CAMA+gC,WAAAA,CAAYnJ,EAAkBpkC,GAC5B,MAAQ,GAAEqG,KAAKinC,YAAYlJ,wEAEpBsI,GAAcE,aACfxI,GACA,EACApkC,EAAKwtC,6BAA+B,GACpCxtC,EAAKytC,oBAAsB,kBAE1BpnC,KAAKqnC,eAAetJ,EAASpkC,EAAM,QAC5C,CAEA2tC,OAAAA,CACEvJ,EACApkC,GACA4tC,eAAEA,EAAiB,iBAAgBC,gBAAEA,EAAeC,aAAEA,IAKtD,MAAM1tC,EAAMgkC,EAAQhkC,IAAIY,OACxB,MAAQ,UAASZ,wBAA0BA,aAAeA,oFAC9CytC,cAA4BC,mLAEhBF,EAAe7kC,QAAQ,YAAa/I,EAAKmJ,QAAU,eAC7E,CAEA4kC,UAAAA,CACE3J,EACApkC,GACA4tC,eAAEA,EAAiB,iBAAgBE,aAAEA,IAErC,MAAM1tC,EAAMgkC,EAAQhkC,IAAIY,OACxB,MAAQ,UAASZ,wBAA0BA,aAAeA,6EACrD0tC,mLAEmBF,EAAe7kC,QAAQ,YAAa/I,EAAKmJ,QAAU,eAC7E,CAIA6kC,QAAAA,CAAS5J,EAAkBpkC,GAEzB,MAAQ,UAASokC,EAAQhkC,IAAIY,0BAA0BhB,EAAKmJ,QAAU,oDACxE,CAEU8kC,OAAAA,CAAQ7J,EAAkBpkC,EAAkBmpC,EAAO9iC,KAAK+mC,aAChE,MAAQ,qCAAoCjE,qEACIA,sEACCA,sEACAA,sEACAA,sEACAA,GACnD,CAEUuE,cAAAA,CAAetJ,EAAkBpkC,EAAkBmpC,EAAO9iC,KAAK+mC,aACvE,MAAQ,GAAE/mC,KAAK4nC,QACb7J,EACApkC,EACAmpC,kCAC+BA,6CAAgDA,IACnF,EC5BK,MAAM+E,GAAe,IAnD5B,cAA2Bf,GACzBjnC,WAAAA,GACEgR,OACF,CAESxM,KAAAA,CAAM05B,EAAkBpkC,GAE/B,MAAQ,GADOokC,EAAQhkC,IAAIY,OAAU,WAAUojC,EAAQhkC,IAAIY,UAAY,qEAExDhB,EAAKytC,oBAAsB,eACrCpnC,KAAKqnC,eAAetJ,EAASpkC,KACpC,CAESmuC,eAAAA,CAAgB/J,EAAkBpkC,EAAkBmpC,GAE3D,MAAQ,GADO/E,EAAQhkC,IAAIY,OAAU,WAAUojC,EAAQhkC,IAAIY,UAAY,+EAElEgnC,GAAc5oB,MAAMglB,SAAeA,EAAQ5C,wBAAwB2H,uBAA0B/E,EAAQvC,SACtG,2BACG7hC,EAAKytC,oBAAsB,eAC7BpnC,KAAKqnC,eAAetJ,EAASpkC,EAAMmpC,KAC1C,CAESwE,OAAAA,CACPvJ,EACApkC,GACA4tC,eACEA,EAAcE,aACdA,EAAgB,GAAE9F,GAAc5oB,MAAMglB,SACpCA,EAAQ5C,qCACe4C,EAAQvC,SAAS,4BAG5C,OAAO3qB,MAAMy2B,QAAQvJ,EAASpkC,EAAM,CAClC4tC,iBACAC,gBAAiB,KACjBC,gBAEJ,CAESC,UAAAA,CACP3J,EACApkC,GACA4tC,eAAEA,EAAcE,aAAEA,EAAe,sBAEjC,OAAO52B,MAAM62B,WAAW3J,EAASpkC,EAAM,CAAE4tC,iBAAgBE,gBAC3D,CAESM,SAAAA,CAAUhK,EAAkBpkC,GACnC,MAAQ,sEAAqEqG,KAAK4nC,QAAQ7J,EAASpkC,KACrG,GCQK,MAAMquC,GAAoB,IAvDjC,cAAgClB,GAC9BjnC,WAAAA,GACEgR,OACF,CAESxM,KAAAA,CAAM05B,EAAkBpkC,GAC/B,MAAQ,kCAAiCA,EAAKsuC,MAAQ,UAAY,SAAStuC,EAAKytC,oBAAsB,IACxG,CAESF,WAAAA,CAAYnJ,EAAkBpkC,GACrC,MAAQ,GAAEqG,KAAKinC,YAAYlJ,SAAesI,GAAcE,aACtDxI,GACA,EACApkC,EAAKwtC,6BAA+B,GACpCxtC,EAAKytC,oBAAsB,KAE/B,CAESU,eAAAA,CAAgB/J,EAAkBpkC,EAAkBmpC,EAAO,MAClE,MAAQ,uBACN/E,EAAQ5C,qDAC+B2H,MAASrB,oBAAiC9nC,EAAKytC,oBAAsB,IAChH,CAESE,OAAAA,CACPvJ,EACApkC,GACA8tC,aACEA,EAAgB,iFAAgFznC,KAAK8nC,gBACnG/J,EACApkC,QAIJ,MAAQ,8BAA6BokC,EAAQhkC,IAAIY,kFAC5C8sC,sFAC8D9tC,EAAKmJ,QAAU,oDACpF,CAES4kC,UAAAA,CAAW3J,EAAkBpkC,GAAgB8tC,aAAEA,IACtD,MAAQ,8BACN1J,EAAQhkC,IAAIY,kFAET8sC,GAAgBznC,KAAKqE,MAAM05B,EAASpkC,uFAC0BA,EAAKmJ,QAAU,oDACpF,CAESilC,SAAAA,CAAUhK,EAAkBpkC,GACnC,MAAQ,0DAAyDqG,KAAKqE,MAAM05B,EAASpkC,QAAWqG,KAAK4nC,QACnG7J,EACApkC,KAEJ,GCLK,MAAMuuC,GAAc,IAhD3B,cAA0BpB,GACxBjnC,WAAAA,GACEgR,OACF,CAESxM,KAAAA,CAAM05B,EAAkBpkC,GAC/B,MAAQ,0EACcA,EAAKytC,oBAAsB,eAC5CpnC,KAAKqnC,eAAetJ,EAASpkC,KACpC,CAESmuC,eAAAA,CAAgB/J,EAAkBpkC,EAAkBmpC,GAC3D,MAAQ,6EACH,IACG/E,EAAQlC,UAAY,CAAC8F,GAAc5oB,MAAMglB,IAAY,GACzDA,EAAQ5C,aACP,QAAO2H,uBAA0B/E,EAAQvC,SAAS,2BAA2B7hC,EAAKytC,oBAAsB,MACzGrsC,KAAK,oBACJiF,KAAKqnC,eAAetJ,EAASpkC,EAAMmpC,KAC1C,CAESwE,OAAAA,CAAQvJ,EAAkBpkC,EAAgB8D,GACjD,OAAOoT,MAAMy2B,QAAQvJ,EAASpkC,EAAM,CAClC4tC,eAAgB9pC,EAAQ8pC,eACxBC,gBAAiB,KACjBC,aACEhqC,EAAQgqC,cACR,IACM1J,EAAQlC,UAAY,CAAC8F,GAAc5oB,MAAMglB,IAAY,GACzDA,EAAQ5C,aACP,qBAAoB4C,EAAQvC,SAAS,2BACtCzgC,KAAK,SAEb,CAES2sC,UAAAA,CACP3J,EACApkC,GACA8tC,aAAEA,EAAe,6BAEjB,OAAO52B,MAAM62B,WAAW3J,EAASpkC,EAAM,CAAE8tC,gBAC3C,CAESM,SAAAA,CAAUhK,EAAkBpkC,GACnC,MAAQ,6EAA4EqG,KAAK4nC,QAAQ7J,EAASpkC,KAC5G,GCTK,MAAMwuC,GAAkB,IArC/B,cAA8BrB,GAC5BjnC,WAAAA,GACEgR,OACF,CAESxM,KAAAA,CAAM05B,EAAkBpkC,GAC/B,MAAQ,kCAAiCA,EAAKsuC,MAAQ,UAAY,SAAStuC,EAAKytC,oBAAsB,IACxG,CAESF,WAAAA,CAAYnJ,EAAkBpkC,GACrC,MAAQ,GAAEqG,KAAKinC,YAAYlJ,SAAesI,GAAcE,aACtDxI,GACA,EACApkC,EAAKwtC,6BAA+B,GACpCxtC,EAAKytC,oBAAsB,KAE/B,CAESU,eAAAA,CAAgB/J,EAAkBpkC,GACzC,MAAQ,uBAAsBokC,EAAQ5C,uCAAuCsG,oBAC3E9nC,EAAKytC,oBAAsB,IAE/B,CAESE,OAAAA,GACP,MAAQ,oBACV,CAESI,UAAAA,GACP,MAAQ,oBACV,CAESK,SAAAA,GACP,MAAQ,oBACV,GCYK,MAAMK,GAAe,IA7C5B,cAA2BtB,GACzBjnC,WAAAA,GACEgR,OACF,CAESxM,KAAAA,CAAM05B,EAAkBpkC,GAC/B,MAAQ,mEACOA,EAAKytC,oBAAsB,eACrCpnC,KAAKqnC,eAAetJ,EAASpkC,KACpC,CAESmuC,eAAAA,CAAgB/J,EAAkBpkC,EAAkBmpC,GAC3D,MAAQ,6EACHnB,GAAc5oB,MAAMglB,SAAeA,EAAQ5C,wBAAwB2H,uBAA0B/E,EAAQvC,SACtG,2BACG7hC,EAAKytC,oBAAsB,eAC7BpnC,KAAKqnC,eAAetJ,EAASpkC,EAAMmpC,KAC1C,CAESwE,OAAAA,CACPvJ,EACApkC,GACA4tC,eACEA,EAAcE,aACdA,EAAgB,GAAE9F,GAAc5oB,MAAMglB,SACpCA,EAAQ5C,qCACe4C,EAAQvC,SAAS,4BAG5C,OAAO3qB,MAAMy2B,QAAQvJ,EAASpkC,EAAM,CAAE4tC,iBAAgBC,gBAAiB,SAAUC,gBACnF,CAESC,UAAAA,CACP3J,EACApkC,GACA4tC,eAAEA,EAAcE,aAAEA,EAAe,cAEjC,OAAO52B,MAAM62B,WAAW3J,EAASpkC,EAAM,CAAE4tC,iBAAgBE,gBAC3D,CAESM,SAAAA,CAAUhK,EAAkBpkC,GACnC,MAAQ,sEAAqEqG,KAAK4nC,QAAQ7J,EAASpkC,KACrG,GC/BW8tC,GAA0G,CACrHlqC,QAAS,iBACTkjB,SAAU,oBAXI,CCXdwnB,MAAO,CACLjtB,YAAa,yBACbpM,KAAM,WAERpR,KAAM,CACJwd,YAAa,6BACbpM,KAAM,QACNlI,MAAO,IACPM,QAAS,IAEX,iBAAkB,CAChBgU,YAAa,6BACbpM,KAAM,QACN5H,QAAS,IDAXqhC,KAAM,CACJrtB,YAAa,wEACbpM,KAAM,SACNlI,MAAO,MAQT,aAAMwU,CAAQvhB,ICFT,SACLA,GAECA,EAAoBytC,mBAAqB,IAAKztC,EAAK6D,MAAQ,MAAS7D,EAAK2Q,GAAGlE,MAAM,IAAM,IACtFpM,KAAKyG,GAAS,IAAGA,OACjB1F,KAAK,KACPpB,EAAoBwtC,6BAA+BxtC,EAAK2uC,eAAiB,IAAItuC,KAAKyG,GAAS,IAAGA,OAAQ1F,KAAK,IAC9G,CDJIwtC,CAAc5uC,GAEd,MAAM4mC,QAAiB7D,GAAgB/iC,GAClC4mC,IACHhlC,QAAQqD,MAAMo/B,EAAMC,IAAI,sBACxBzjC,QAAQgb,KAAK,IAGf,IAAK,MAAMuoB,KAAWwC,EAAShnB,IAAK,CAClC,MAAMmnB,EAAO3C,EAAQ3C,YAAYU,cAAgB,CAAA,EAC3CiF,EAAUhD,EAAQ3C,YAAYW,iBAAmB,CAAA,EACvD,IAAIV,EACJ,GAAIqF,EAAY,MACdrF,EAAUwM,QACL,GAAInH,EAAW,KACpBrF,EAAU6M,QACL,GAAInH,EAAQ,kBACjB1F,EAAU+M,QACL,IACH1H,EAAc,SAAKA,EAAc,WAAOA,EAAK,uBAC9C3C,EAAQtC,eAAiB,gBAAgB96B,KAAKo9B,EAAQxC,YAEvDF,EAAU2M,OACL,KAAItH,EAAK,cAAeK,EAAQ,YAGrC,SAFA1F,EAAU8M,EAGZ,CAGA,OAFA5sC,QAAQC,KAAM,uBAAsBuiC,EAAQruB,YAEpC/V,EAAK0uC,MAAQ,OACnB,IAAK,MACL,IAAK,cAAe,CAClB,MAAM/6B,EAASk7B,GAA8B9H,EAAM,qBAC7C0C,GAAc,GAAE91B,IAAS+tB,EAAQh3B,MAAM05B,EAASpkC,KAASokC,EAASpkC,GACxE,KACF,CACA,IAAK,UAAW,CACd,MAAM2T,EAASk7B,GAA8B9H,EAAM,iBAC7C0C,GAAc,GAAE91B,IAAS+tB,EAAQyM,gBAAgB/J,EAASpkC,EAAM,QAASokC,EAASpkC,GACxF,KACF,CACA,IAAK,SAAU,CACb,MAAM2T,EAASk7B,GAA8B9H,EAAM,iBAC7C0C,GAAc,GAAE91B,IAAS+tB,EAAQ6L,YAAYnJ,EAASpkC,KAASokC,EAASpkC,GAC9E,KACF,CACA,IAAK,eAAgB,CACnB,MAAM2T,EAASk7B,GAA8B9H,EAAM,WACnD/mC,EAAKytC,mBAAsB,oBACrBhE,GAAc,GAAE91B,IAAS+tB,EAAQ6L,YAAYnJ,EAASpkC,KAASokC,EAASpkC,GAC9E,KACF,CACA,QACE,MAAM,IAAI0C,MAAO,uBAAsB1C,EAAK0uC,QAGlD,CACF,GAGF,SAASG,GAA8B9H,EAAuC+H,GAC5EjuC,QAAQT,IAAIY,SAAW8tC,EACvB,IAAIn7B,EAAU,UAAS9S,QAAQT,IAAIY,UAKnC,OAJI+lC,EAAW,OACblmC,QAAQT,IAAI2uC,mBAAqBluC,QAAQT,IAAIY,OAC7C2S,GAAW,sBAAqB9S,QAAQT,IAAIY,WAEvC2S,CACT,CE7EA,MA+Baq7B,GAAyG,CACpHprC,QAAS,OACTkjB,SAAU,uBAjCI,CACdmoB,GAAI,CACF5tB,YAAa,6BACbpM,KAAM,WAERi6B,IAAK,CACH7tB,YACE,6KACFpM,KAAM,UAERvK,MAAO,CACL2W,YAAa,6BACbpM,KAAM,WAERk6B,KAAM,CACJ9tB,YAAa,4BACbpM,KAAM,WAER,eAAgB,CACdoM,YAAa,yBACbpM,KAAM,UAER9L,OAAQ,CACNkY,YAAa,cACbpM,KAAM,SACNlI,MAAO,MAUT,aAAMwU,CAAQvhB,SAKT0D,eACL1D,GAEA,MAAM4mC,QAAiB7D,GAAgB/iC,GAClC4mC,IACHhlC,QAAQqD,MAAMo/B,EAAMC,IAAI,sBACxBzjC,QAAQgb,KAAK,IAGX+qB,EAAShnB,IAAI1e,OAAS,IAExBL,QAAQT,IAAIgvC,GAAK,KAEnBvuC,QAAQT,IAAIivC,cAAgB,IAC5BxuC,QAAQT,IAAIY,SAAW,OAEvB,IAAK,MAAMojC,KAAWwC,EAAShnB,IAAK,CAClC,MAAMmnB,EAAO3C,EAAQ3C,YAAYU,cAAgB,CAAA,EAC3CiF,EAAUhD,EAAQ3C,YAAYW,iBAAmB,CAAA,EACvD,IAAIV,EAEFA,EADEqF,EAAY,MACJmH,GACDnH,EAAW,KACVwH,GACDnH,EAAQ,kBACPqH,IACA1H,EAAc,UAAKA,EAAc,SAAOA,EAAK,sBAG7CyH,GAFAH,GAKZzsC,QAAQC,KAAM,sBAAqBuiC,EAAQruB,YAE3C,MAAM4uB,EAA+B,GACrC,IAAI3kC,EAAKivC,GAAT,CA6CA,QARIjvC,EAAKmvC,OAAUnvC,EAAK0K,YAAsBzJ,IAAbjB,EAAKkvC,MACpCvK,EAASxjC,KAAKsoC,GAAa/H,EAAQsM,SAAS5J,EAASpkC,GAAOokC,EAASpkC,EAAM,CAAEiqC,QAASjqC,EAAKsvC,eAEzFtvC,EAAK0K,OACPi6B,EAASxjC,KAAKsoC,GAAa/H,EAAQ0M,UAAUhK,EAASpkC,GAAOokC,EAASpkC,UAElEqD,QAAQuc,IAAI+kB,GAEV3kC,EAAKkvC,KACX,UAAKjuC,EACL,IAAK,OACH,SAEF,IAAK,GACL,IAAK,iBACGwoC,GAAa/H,EAAQiM,QAAQvJ,EAASpkC,EAAM,IAAKokC,EAASpkC,GAChE,SAEF,IAAK,qBACGypC,GAAa/H,EAAQqM,WAAW3J,EAASpkC,EAAM,IAAKokC,EAASpkC,GACnE,SAEF,IAAK,eACGuvC,GAAanL,EAASpkC,EAAM0hC,GAClC,SAEF,IAAK,qBACG6N,GAAanL,EAASpkC,EAAM0hC,EAAU,QAAO1hC,EAAKmJ,QAAU,uBAClE,SAGJ,GAAI49B,EAAY,OAAKA,EAAW,MAAKK,EAAQ,kBAC3C,OAAQpnC,EAAKkvC,KACX,IAAK,eACGzF,GACJ/H,EAAQiM,QAAQvJ,EAASpkC,EAAM,CAAE4tC,eAAiB,QAAO5tC,EAAKmJ,QAAU,yBACxEi7B,EACApkC,GAEF,SAEF,IAAK,mBACGypC,GACJ/H,EAAQqM,WAAW3J,EAASpkC,EAAM,CAAE4tC,eAAiB,QAAO5tC,EAAKmJ,QAAU,yBAC3Ei7B,EACApkC,GAEF,SAEF,IAAK,cACGypC,GACJ/H,EAAQiM,QAAQvJ,EAASpkC,EAAM,CAAE4tC,eAAiB,QAAO5tC,EAAKmJ,QAAU,wBACxEi7B,EACApkC,GAEF,SAEF,IAAK,iBACGypC,GACJ/H,EAAQiM,QAAQvJ,EAASpkC,EAAM,CAAE4tC,eAAgB,kCACjDxJ,EACApkC,GAEF,SAEF,IAAK,cACGypC,GAAc,4BAA4BrF,EAASpkC,GACzD,SAIN,MAAM,IAAI0C,MAAO,qBAAoB1C,EAAKkvC,MAzE1C,CAnCA,CACE,MAAMM,EAAwBpsC,EAAY7C,EAAKa,KAAKgjC,EAAQlD,QAAS,QAAS,SACxEuO,EAAuBrsC,EAAY7C,EAAKa,KAAKgjC,EAAQlD,QAAS,QAAS,QAa7E,SAXMgJ,GAAuBwC,GAAcQ,UAAW9I,EAASpkC,IAC7C,IAAdA,EAAKmvC,YAAyBK,SAC1BtF,GAAuBxI,EAAQsM,SAAS5J,EAASpkC,GAAMiiC,WAAW,eAAgB,IAAKmC,EAASpkC,EAAM,CAC1GiqC,QAASjqC,EAAKsvC,eAGC,IAAftvC,EAAK0K,aACDw/B,GAAuBxI,EAAQ0M,UAAUhK,EAASpkC,GAAOokC,EAASpkC,SAEpEqpC,GAAYiD,aAED,SAAbtsC,EAAKkvC,WAAyBO,EAAuB,CACnDrL,EAAQtC,qBACJ2H,GAAc,GAAE/H,EAAQ4L,YAAYlJ,EAAS,UAAWA,EAASpkC,GAEzE,MAAM8D,EAAUsgC,EAAQtC,cACpB,CACEgM,aAAcpB,GAAcE,aAAaxI,GAAS,IAEpD,GACJvjC,QAAQ6lC,eAAiB+C,GACvB/H,EAAQiM,QAAQvJ,EAASpkC,EAAM8D,GAASm+B,WAAW,eAAgB,IACnEmC,EACApkC,EACA,CACEwpC,cAAc,UAGZC,GAAaiD,GAAcM,KAAK5I,GAAUA,EAASpkC,EAC3D,CAEF,CA0EF,CACF,CArJUgH,CAAKhH,EACb,GAsJF0D,eAAe6rC,GACbnL,EACApkC,EACA0hC,EACAkM,SAEMnE,GAAc,GAAE/H,EAAQ4L,YAAYlJ,EAAS,UAAWA,EAASpkC,GACvEa,QAAQ6lC,eAAiB+C,GACtB,GAAE/H,EAAQiM,QAAQvJ,EAASpkC,EAAM,CAChC4tC,iBACAE,aAAcpB,GAAcE,aAAaxI,GAAS,OAEpDA,EACApkC,EACA,CAAEwpC,cAAc,UAEZC,GAAaiD,GAAcM,KAAK5I,GAAUA,EAASpkC,EAC3D,CCtNA,MAEa0vC,GAGT,CACF9rC,QAAS,YACTkjB,SAAU,6CACVxF,QARc,CAAA,EASd,aAAMC,CAAQvhB,GACZ,MAAM4mC,QAAiB7D,GAAgB/iC,GAAM,GACxC4mC,IACHhlC,QAAQqD,MAAMo/B,EAAMC,IAAI,sBACxBzjC,QAAQgb,KAAK,IAGf,IAAK,MAAMuoB,KAAWwC,EAAShnB,IAAK,CAClC,MAAMqD,EAAqB,GAc3B,GAbKmhB,EAAQ3C,YAAY0B,WAQvBiB,EAAQrC,gBACPqC,EAAQ3C,YAAYU,cAAcwN,YAAcvL,EAAQ3C,YAAYW,iBAAiBuN,aAEtF1sB,EAAS9hB,KAAK,+BAVVijC,EAAQ3C,YAAYU,cAAcwN,YAAcvL,EAAQ3C,YAAYW,iBAAiBuN,aACvF1sB,EAAS9hB,KAAK,6BAEZijC,EAAQ3C,YAAYW,iBAAiBwN,SACvC3sB,EAAS9hB,KAAK,iBAQM,IAApB8hB,EAAS/hB,OAAc,SAE3BU,QAAQC,KAAM,2BAA0BuiC,EAAQruB,YAE5C6wB,EAAShnB,IAAI1e,OAAS,IAExBkjC,EAAQhkC,IAAQ,GAAI,KAEtBgkC,EAAQhkC,IAAiB,cAAM,IAG/B,GAAiB,UADMqpC,GAAaxmB,EAAS7hB,KAAK,QAASgjC,EAASpkC,GAChD,EACEyW,KAAK7J,YAAYrL,EAAG4kC,SAAS,eAAgB,SACxChE,cAAgB,IACzB,OACdvgC,QAAQC,KAAKwiC,EAAMyH,OAAO,+DAE9B,CACF,CACF,GAGW+D,GAAuG,IAC/GH,GACH9rC,QAAS,MC/DEksC,GAAuB,C9DKlC1vC,IAAK,CACHihB,YAAa,2BACbpM,KAAM,SAER,cAAe,CACboM,YACE,wLACFpM,KAAM,UAER,mBAAoB,CAClBoM,YAAa,0FACbpM,KAAM,WAER,mBAAoB,CAClBoM,YAAa,iEACbpM,KAAM,UACN5H,SAAS,GAEX,mBAAoB,CAClBgU,YAAa,qGACbpM,KAAM,UACN5H,SAAS,GAEX,YAAa,CACXgU,YAAa,qFACbpM,KAAM,SACN5H,QAAS,gBAEX1L,QAAS,CACP0f,YAAa,sCACbpM,KAAM,UACNlI,MAAO,K8DjCT,cAAe,CACbsU,YAAa,sBACbpM,KAAM,SACNlI,MAAO,KAET,UAAW,CACTsU,YAAa,2CACbpM,KAAM,UACNlI,MAAO,MpDFJ,IAAiB/M,SqDKlBse,IrDLkBte,GqDKJa,QAAQb,KrDJjBA,GAAKyM,MAAMmK,KAA2B,KqDK9CyjB,WAAW,MACXv2B,QAAQgsC,IACRpwB,YAAY1f,IACX,MAAM+vC,EAAa/vC,EAAK,eACxB,GAAI+vC,EAAY,CACd,MAAM7O,EAAU3gC,EAAKC,QAAQuvC,GAC7BlvC,QAAQmvC,MAAM9O,EAChB,E/DiHG,SAA8Cp/B,GAE/CA,EAAQ4gC,MAAQ5gC,EAAQmuC,mBAC1BnuC,EAAQ4gC,KAAO5gC,EAAQ4gC,KAAK35B,QAAS,GAAEjH,EAAQmuC,oBAAqB,IAEjEhO,WAAW,mCAAoC,IAE/CA,WAAW,sBAAuB,IAClCA,WAAW,iBAAkB,KAElC,IAAK,MAAM//B,KAAOE,OAAOI,KAAKV,GAAU,CACtC,MAAMouC,EAAWhuC,EAAI4I,eAEnBolC,EAASnhB,WAAW,SACpBmhB,EAASnhB,WAAW,UACpBmhB,EAASnhB,WAAW,WACP,gBAAbmhB,GACa,aAAbA,WAEOpuC,EAAQI,EAEnB,CACF,C+DrIIiuC,CAAqCtvC,QAAQT,IAAI,IAElDwD,QAAQsgC,IACRtgC,QAAQijC,IACRjjC,QAAQ+mC,IACR/mC,QAAQ8nC,IACR9nC,QAAQmoC,IACRnoC,QAAQkqC,IACRlqC,QAAQorC,IACRprC,QAAQ8rC,IACR9rC,QAAQisC,IACRvY,gBACAgD,SACAnQ,OAAOnqB,KAEV,IAAK,MAAMqF,IAAU,CAAC,SAAU,UAAW,WACzCxE,QAAQ4D,GAAGY,GAAQ,IAAMxE,QAAQgb","x_google_ignoreList":[3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,37,38]}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../shared-lib-node/src/env.ts","../../shared-lib-node/src/exists.ts","../../shared-lib-node/src/spawn.ts","../../../node_modules/cliui/build/lib/index.js","../../../node_modules/cliui/build/lib/string-utils.js","../../../node_modules/yargs-parser/build/lib/string-utils.js","../../../node_modules/yargs-parser/build/lib/yargs-parser-types.js","../../../node_modules/yargs-parser/build/lib/yargs-parser.js","../../../node_modules/yargs-parser/build/lib/index.js","../../../node_modules/yargs-parser/build/lib/tokenize-arg-string.js","../../../node_modules/yargs/build/lib/utils/process-argv.js","../../../node_modules/yargs/build/lib/yerror.js","../../../node_modules/y18n/build/lib/platform-shims/node.js","../../../node_modules/y18n/build/lib/index.js","../../../node_modules/y18n/index.mjs","../../../node_modules/yargs/lib/platform-shims/esm.mjs","../../../node_modules/cliui/index.mjs","../../../node_modules/escalade/sync/index.mjs","../../../node_modules/yargs/build/lib/typings/common-types.js","../../../node_modules/yargs/build/lib/utils/is-promise.js","../../../node_modules/yargs/build/lib/parse-command.js","../../../node_modules/yargs/build/lib/argsert.js","../../../node_modules/yargs/build/lib/middleware.js","../../../node_modules/yargs/build/lib/utils/maybe-async-result.js","../../../node_modules/yargs/build/lib/command.js","../../../node_modules/yargs/build/lib/yargs-factory.js","../../../node_modules/yargs/build/lib/utils/which-module.js","../../../node_modules/yargs/build/lib/utils/obj-filter.js","../../../node_modules/yargs/build/lib/utils/set-blocking.js","../../../node_modules/yargs/build/lib/usage.js","../../../node_modules/yargs/build/lib/completion.js","../../../node_modules/yargs/build/lib/completion-templates.js","../../../node_modules/yargs/build/lib/utils/levenshtein.js","../../../node_modules/yargs/build/lib/validation.js","../../../node_modules/yargs/build/lib/utils/apply-extends.js","../../../node_modules/yargs/index.mjs","../src/project.ts","../../../node_modules/at-decorators/dist/memoize.js","../../../node_modules/at-decorators/dist/hash.js","../src/commands/buildIfNeeded.ts","../../shared-lib/src/error.ts","../src/commands/commandUtils.ts","../src/commands/optimizeForDockerBuild.ts","../src/utils/runtime.ts","../src/scripts/prismaScripts.ts","../src/utils/process.ts","../src/utils/promisePool.ts","../src/scripts/run.ts","../src/commands/prisma.ts","../src/commands/retry.ts","../src/commands/setup.ts","../src/scripts/dockerScripts.ts","../src/scripts/execution/baseExecutionScripts.ts","../src/scripts/execution/blitzScripts.ts","../src/scripts/execution/httpServerScripts.ts","../src/scripts/execution/nextScripts.ts","../src/scripts/execution/plainAppScripts.ts","../src/scripts/execution/remixScripts.ts","../src/commands/start.ts","../src/scripts/builder.ts","../src/commands/test.ts","../src/commands/typecheck.ts","../src/sharedOptionsBuilder.ts","../src/index.ts"],"sourcesContent":["import fs from 'node:fs';\nimport path from 'node:path';\n\nimport { config } from 'dotenv';\nimport type { ArgumentsCamelCase, InferredOptionTypes } from 'yargs';\n\nexport const yargsOptionsBuilderForEnv = {\n env: {\n description: '.env files to be loaded.',\n type: 'array',\n },\n 'cascade-env': {\n description:\n 'Environment to load cascading .env files (e.g., `.env`, `.env.<environment>`, `.env.local` and `.env.<environment>.local`). Preferred over `cascade-node-env` and `auto-cascade-env`.',\n type: 'string',\n },\n 'cascade-node-env': {\n description: 'Same with --cascade-env=<NODE_ENV || \"development\">. Preferred over `auto-cascade-env`.',\n type: 'boolean',\n },\n 'auto-cascade-env': {\n description: 'Same with --cascade-env=<WB_ENV || NODE_ENV || \"development\">.',\n type: 'boolean',\n default: true,\n },\n 'include-root-env': {\n description: 'Include .env files in root directory if the project is in a monorepo and --env option is not used.',\n type: 'boolean',\n default: true,\n },\n 'check-env': {\n description: 'Check whether the keys of the loaded .env files are same with the given .env file.',\n type: 'string',\n default: '.env.example',\n },\n verbose: {\n description: 'Whether to show verbose information',\n type: 'boolean',\n alias: 'v',\n },\n} as const;\n\nexport type EnvReaderOptions = Partial<ArgumentsCamelCase<InferredOptionTypes<typeof yargsOptionsBuilderForEnv>>>;\n\n/**\n * This function reads environment variables from `.env` files. Note it does not assign them in `process.env`.\n * */\nexport function readEnvironmentVariables(\n argv: EnvReaderOptions,\n cwd: string,\n cacheEnabled = true\n): Record<string, string> {\n let envPaths = (argv.env ?? []).map((envPath) => path.resolve(cwd, envPath.toString()));\n const cascade =\n argv.cascadeEnv ??\n (argv.cascadeNodeEnv\n ? process.env.NODE_ENV || 'development'\n : argv.autoCascadeEnv\n ? process.env.WB_ENV || process.env.NODE_ENV || 'development'\n : undefined);\n if (typeof cascade === 'string') {\n if (envPaths.length === 0) {\n envPaths.push(path.join(cwd, '.env'));\n if (argv.includeRootEnv) {\n const rootPath = path.resolve(cwd, '..', '..');\n if (fs.existsSync(path.join(rootPath, 'package.json'))) {\n envPaths.push(path.join(rootPath, '.env'));\n }\n }\n }\n envPaths = envPaths.flatMap((envPath) =>\n cascade\n ? [`${envPath}.${cascade}.local`, `${envPath}.local`, `${envPath}.${cascade}`, envPath]\n : [`${envPath}.local`, envPath]\n );\n }\n envPaths = envPaths.map((envPath) => path.relative(cwd, envPath));\n if (argv.verbose) {\n console.info(`WB_ENV: ${process.env.WB_ENV}, NODE_ENV: ${process.env.NODE_ENV}`);\n console.info('Reading env files:', envPaths);\n }\n\n let envVars: Record<string, string> = {};\n const orgEnvVars = { ...process.env };\n for (const envPath of envPaths) {\n envVars = { ...readEnvFile(path.join(cwd, envPath), cacheEnabled), ...envVars };\n let count = 0;\n for (const [key, value] of Object.entries(envVars)) {\n if (orgEnvVars[key] !== value) {\n orgEnvVars[key] = value;\n count++;\n }\n }\n if (count > 0) {\n console.info(`Read ${count} environment variables:`, envPath);\n }\n }\n\n if (argv.checkEnv) {\n const exampleKeys = Object.keys(readEnvFile(path.join(cwd, argv.checkEnv), cacheEnabled) || {});\n const missingKeys = exampleKeys.filter((key) => !(key in envVars));\n if (missingKeys.length > 0) {\n throw new Error(`Missing environment variables in [${envPaths.join(', ')}]: [${missingKeys.join(', ')}]`);\n }\n }\n return envVars;\n}\n\n/**\n * This function read environment variables from `.env` files and assign them in `process.env`.\n * */\nexport function readAndApplyEnvironmentVariables(\n argv: EnvReaderOptions,\n cwd: string,\n cacheEnabled = true\n): Record<string, string | undefined> {\n const envVars = readEnvironmentVariables(argv, cwd, cacheEnabled);\n Object.assign(process.env, envVars);\n return envVars;\n}\n\nconst cachedEnvVars = new Map<string, Record<string, string>>();\n\nfunction readEnvFile(filePath: string, cacheEnabled = true): Record<string, string> {\n const cached = cacheEnabled && cachedEnvVars.get(filePath);\n if (cached) return cached;\n\n const parsed = config({ path: path.resolve(filePath), processEnv: {} }).parsed ?? {};\n if (cacheEnabled) {\n cachedEnvVars.set(filePath, parsed);\n }\n return parsed;\n}\n\n/**\n * This function removes environment variables related to npm and yarn from the given environment variables.\n * */\nexport function removeNpmAndYarnEnvironmentVariables(envVars: Record<string, string | undefined>): void {\n // Remove npm & yarn environment variables from process.env\n if (envVars.PATH && envVars.BERRY_BIN_FOLDER) {\n envVars.PATH = envVars.PATH.replace(`${envVars.BERRY_BIN_FOLDER}:`, '')\n // Temporary directory in macOS\n .replaceAll(/\\/private\\/var\\/folders\\/[^:]+:/g, '')\n // Temporary directories in Linux\n .replaceAll(/\\/var\\/tmp\\/[^:]+:/g, '')\n .replaceAll(/\\/tmp\\/[^:]+:/g, '');\n }\n for (const key of Object.keys(envVars)) {\n const upperKey = key.toUpperCase();\n if (\n upperKey.startsWith('NPM_') ||\n upperKey.startsWith('YARN_') ||\n upperKey.startsWith('BERRY_') ||\n upperKey === 'PROJECT_CWD' ||\n upperKey === 'INIT_CWD'\n ) {\n delete envVars[key];\n }\n }\n}\n","import fs from 'node:fs';\n\nexport function existsAsync(filePath: string): Promise<boolean> {\n return new Promise((resolve) => {\n fs.access(filePath, fs.constants.F_OK, (err) => {\n resolve(!err);\n });\n });\n}\n","import type {\n SpawnOptions,\n SpawnOptionsWithoutStdio,\n SpawnOptionsWithStdioTuple,\n SpawnSyncReturns,\n StdioNull,\n StdioPipe,\n} from 'node:child_process';\nimport { spawn } from 'node:child_process';\n\nimport treeKill from 'tree-kill';\n\nexport type SpawnAsyncReturns = Omit<SpawnSyncReturns<string>, 'output' | 'error'>;\n\nexport type SpawnAsyncOptions = (\n | SpawnOptionsWithoutStdio\n | SpawnOptionsWithStdioTuple<StdioPipe, StdioPipe, StdioPipe>\n | SpawnOptionsWithStdioTuple<StdioPipe, StdioPipe, StdioNull>\n | SpawnOptionsWithStdioTuple<StdioPipe, StdioNull, StdioPipe>\n | SpawnOptionsWithStdioTuple<StdioNull, StdioPipe, StdioPipe>\n | SpawnOptionsWithStdioTuple<StdioPipe, StdioNull, StdioNull>\n | SpawnOptionsWithStdioTuple<StdioNull, StdioPipe, StdioNull>\n | SpawnOptionsWithStdioTuple<StdioNull, StdioNull, StdioPipe>\n | SpawnOptionsWithStdioTuple<StdioNull, StdioNull, StdioNull>\n | SpawnOptions\n) & {\n input?: string;\n mergeOutAndError?: boolean;\n killOnExit?: boolean;\n verbose?: boolean;\n};\n\nexport async function spawnAsync(\n command: string,\n args?: ReadonlyArray<string>,\n options?: SpawnAsyncOptions\n): Promise<SpawnAsyncReturns> {\n return new Promise((resolve, reject) => {\n try {\n const proc = spawn(command, args ?? [], options ?? {});\n // `setEncoding` is undefined in Bun\n proc.stdout?.setEncoding?.('utf8');\n proc.stderr?.setEncoding?.('utf8');\n\n let stdout = '';\n let stderr = '';\n if (options?.input) {\n proc.stdin?.write(options.input);\n proc.stdin?.end();\n }\n proc.stdout?.on('data', (data) => {\n stdout += data;\n });\n proc.stderr?.on('data', (data) => {\n if (options?.mergeOutAndError) {\n stdout += data;\n } else {\n stderr += data;\n }\n });\n\n let stopped = false;\n const stopProcess = (): void => {\n if (stopped || !proc.pid) return;\n\n stopped = true;\n if (options?.verbose) {\n console.info(`treeKill(${proc.pid})`);\n }\n treeKill(proc.pid);\n };\n if (options?.killOnExit) {\n process.on('beforeExit', stopProcess);\n process.on('SIGINT', stopProcess);\n }\n\n proc.on('error', (error) => {\n process.removeListener('beforeExit', stopProcess);\n process.removeListener('SIGINT', stopProcess);\n proc.removeAllListeners('close');\n reject(error);\n });\n proc.on('close', (code: number | null, signal: NodeJS.Signals | null) => {\n process.removeListener('beforeExit', stopProcess);\n process.removeListener('SIGINT', stopProcess);\n if (proc.pid === undefined) {\n reject(new Error('Process has no pid.'));\n } else {\n resolve({\n pid: proc.pid,\n stdout,\n stderr,\n status: code,\n signal,\n });\n }\n });\n } catch (error) {\n reject(error);\n }\n });\n}\n","'use strict';\nconst align = {\n right: alignRight,\n center: alignCenter\n};\nconst top = 0;\nconst right = 1;\nconst bottom = 2;\nconst left = 3;\nexport class UI {\n constructor(opts) {\n var _a;\n this.width = opts.width;\n this.wrap = (_a = opts.wrap) !== null && _a !== void 0 ? _a : true;\n this.rows = [];\n }\n span(...args) {\n const cols = this.div(...args);\n cols.span = true;\n }\n resetOutput() {\n this.rows = [];\n }\n div(...args) {\n if (args.length === 0) {\n this.div('');\n }\n if (this.wrap && this.shouldApplyLayoutDSL(...args) && typeof args[0] === 'string') {\n return this.applyLayoutDSL(args[0]);\n }\n const cols = args.map(arg => {\n if (typeof arg === 'string') {\n return this.colFromString(arg);\n }\n return arg;\n });\n this.rows.push(cols);\n return cols;\n }\n shouldApplyLayoutDSL(...args) {\n return args.length === 1 && typeof args[0] === 'string' &&\n /[\\t\\n]/.test(args[0]);\n }\n applyLayoutDSL(str) {\n const rows = str.split('\\n').map(row => row.split('\\t'));\n let leftColumnWidth = 0;\n // simple heuristic for layout, make sure the\n // second column lines up along the left-hand.\n // don't allow the first column to take up more\n // than 50% of the screen.\n rows.forEach(columns => {\n if (columns.length > 1 && mixin.stringWidth(columns[0]) > leftColumnWidth) {\n leftColumnWidth = Math.min(Math.floor(this.width * 0.5), mixin.stringWidth(columns[0]));\n }\n });\n // generate a table:\n // replacing ' ' with padding calculations.\n // using the algorithmically generated width.\n rows.forEach(columns => {\n this.div(...columns.map((r, i) => {\n return {\n text: r.trim(),\n padding: this.measurePadding(r),\n width: (i === 0 && columns.length > 1) ? leftColumnWidth : undefined\n };\n }));\n });\n return this.rows[this.rows.length - 1];\n }\n colFromString(text) {\n return {\n text,\n padding: this.measurePadding(text)\n };\n }\n measurePadding(str) {\n // measure padding without ansi escape codes\n const noAnsi = mixin.stripAnsi(str);\n return [0, noAnsi.match(/\\s*$/)[0].length, 0, noAnsi.match(/^\\s*/)[0].length];\n }\n toString() {\n const lines = [];\n this.rows.forEach(row => {\n this.rowToString(row, lines);\n });\n // don't display any lines with the\n // hidden flag set.\n return lines\n .filter(line => !line.hidden)\n .map(line => line.text)\n .join('\\n');\n }\n rowToString(row, lines) {\n this.rasterize(row).forEach((rrow, r) => {\n let str = '';\n rrow.forEach((col, c) => {\n const { width } = row[c]; // the width with padding.\n const wrapWidth = this.negatePadding(row[c]); // the width without padding.\n let ts = col; // temporary string used during alignment/padding.\n if (wrapWidth > mixin.stringWidth(col)) {\n ts += ' '.repeat(wrapWidth - mixin.stringWidth(col));\n }\n // align the string within its column.\n if (row[c].align && row[c].align !== 'left' && this.wrap) {\n const fn = align[row[c].align];\n ts = fn(ts, wrapWidth);\n if (mixin.stringWidth(ts) < wrapWidth) {\n ts += ' '.repeat((width || 0) - mixin.stringWidth(ts) - 1);\n }\n }\n // apply border and padding to string.\n const padding = row[c].padding || [0, 0, 0, 0];\n if (padding[left]) {\n str += ' '.repeat(padding[left]);\n }\n str += addBorder(row[c], ts, '| ');\n str += ts;\n str += addBorder(row[c], ts, ' |');\n if (padding[right]) {\n str += ' '.repeat(padding[right]);\n }\n // if prior row is span, try to render the\n // current row on the prior line.\n if (r === 0 && lines.length > 0) {\n str = this.renderInline(str, lines[lines.length - 1]);\n }\n });\n // remove trailing whitespace.\n lines.push({\n text: str.replace(/ +$/, ''),\n span: row.span\n });\n });\n return lines;\n }\n // if the full 'source' can render in\n // the target line, do so.\n renderInline(source, previousLine) {\n const match = source.match(/^ */);\n const leadingWhitespace = match ? match[0].length : 0;\n const target = previousLine.text;\n const targetTextWidth = mixin.stringWidth(target.trimRight());\n if (!previousLine.span) {\n return source;\n }\n // if we're not applying wrapping logic,\n // just always append to the span.\n if (!this.wrap) {\n previousLine.hidden = true;\n return target + source;\n }\n if (leadingWhitespace < targetTextWidth) {\n return source;\n }\n previousLine.hidden = true;\n return target.trimRight() + ' '.repeat(leadingWhitespace - targetTextWidth) + source.trimLeft();\n }\n rasterize(row) {\n const rrows = [];\n const widths = this.columnWidths(row);\n let wrapped;\n // word wrap all columns, and create\n // a data-structure that is easy to rasterize.\n row.forEach((col, c) => {\n // leave room for left and right padding.\n col.width = widths[c];\n if (this.wrap) {\n wrapped = mixin.wrap(col.text, this.negatePadding(col), { hard: true }).split('\\n');\n }\n else {\n wrapped = col.text.split('\\n');\n }\n if (col.border) {\n wrapped.unshift('.' + '-'.repeat(this.negatePadding(col) + 2) + '.');\n wrapped.push(\"'\" + '-'.repeat(this.negatePadding(col) + 2) + \"'\");\n }\n // add top and bottom padding.\n if (col.padding) {\n wrapped.unshift(...new Array(col.padding[top] || 0).fill(''));\n wrapped.push(...new Array(col.padding[bottom] || 0).fill(''));\n }\n wrapped.forEach((str, r) => {\n if (!rrows[r]) {\n rrows.push([]);\n }\n const rrow = rrows[r];\n for (let i = 0; i < c; i++) {\n if (rrow[i] === undefined) {\n rrow.push('');\n }\n }\n rrow.push(str);\n });\n });\n return rrows;\n }\n negatePadding(col) {\n let wrapWidth = col.width || 0;\n if (col.padding) {\n wrapWidth -= (col.padding[left] || 0) + (col.padding[right] || 0);\n }\n if (col.border) {\n wrapWidth -= 4;\n }\n return wrapWidth;\n }\n columnWidths(row) {\n if (!this.wrap) {\n return row.map(col => {\n return col.width || mixin.stringWidth(col.text);\n });\n }\n let unset = row.length;\n let remainingWidth = this.width;\n // column widths can be set in config.\n const widths = row.map(col => {\n if (col.width) {\n unset--;\n remainingWidth -= col.width;\n return col.width;\n }\n return undefined;\n });\n // any unset widths should be calculated.\n const unsetWidth = unset ? Math.floor(remainingWidth / unset) : 0;\n return widths.map((w, i) => {\n if (w === undefined) {\n return Math.max(unsetWidth, _minWidth(row[i]));\n }\n return w;\n });\n }\n}\nfunction addBorder(col, ts, style) {\n if (col.border) {\n if (/[.']-+[.']/.test(ts)) {\n return '';\n }\n if (ts.trim().length !== 0) {\n return style;\n }\n return ' ';\n }\n return '';\n}\n// calculates the minimum width of\n// a column, based on padding preferences.\nfunction _minWidth(col) {\n const padding = col.padding || [];\n const minWidth = 1 + (padding[left] || 0) + (padding[right] || 0);\n if (col.border) {\n return minWidth + 4;\n }\n return minWidth;\n}\nfunction getWindowWidth() {\n /* istanbul ignore next: depends on terminal */\n if (typeof process === 'object' && process.stdout && process.stdout.columns) {\n return process.stdout.columns;\n }\n return 80;\n}\nfunction alignRight(str, width) {\n str = str.trim();\n const strWidth = mixin.stringWidth(str);\n if (strWidth < width) {\n return ' '.repeat(width - strWidth) + str;\n }\n return str;\n}\nfunction alignCenter(str, width) {\n str = str.trim();\n const strWidth = mixin.stringWidth(str);\n /* istanbul ignore next */\n if (strWidth >= width) {\n return str;\n }\n return ' '.repeat((width - strWidth) >> 1) + str;\n}\nlet mixin;\nexport function cliui(opts, _mixin) {\n mixin = _mixin;\n return new UI({\n width: (opts === null || opts === void 0 ? void 0 : opts.width) || getWindowWidth(),\n wrap: opts === null || opts === void 0 ? void 0 : opts.wrap\n });\n}\n","// Minimal replacement for ansi string helpers \"wrap-ansi\" and \"strip-ansi\".\n// to facilitate ESM and Deno modules.\n// TODO: look at porting https://www.npmjs.com/package/wrap-ansi to ESM.\n// The npm application\n// Copyright (c) npm, Inc. and Contributors\n// Licensed on the terms of The Artistic License 2.0\n// See: https://github.com/npm/cli/blob/4c65cd952bc8627811735bea76b9b110cc4fc80e/lib/utils/ansi-trim.js\nconst ansi = new RegExp('\\x1b(?:\\\\[(?:\\\\d+[ABCDEFGJKSTm]|\\\\d+;\\\\d+[Hfm]|' +\n '\\\\d+;\\\\d+;\\\\d+m|6n|s|u|\\\\?25[lh])|\\\\w)', 'g');\nexport function stripAnsi(str) {\n return str.replace(ansi, '');\n}\nexport function wrap(str, width) {\n const [start, end] = str.match(ansi) || ['', ''];\n str = stripAnsi(str);\n let wrapped = '';\n for (let i = 0; i < str.length; i++) {\n if (i !== 0 && (i % width) === 0) {\n wrapped += '\\n';\n }\n wrapped += str.charAt(i);\n }\n if (start && end) {\n wrapped = `${start}${wrapped}${end}`;\n }\n return wrapped;\n}\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 */\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","/**\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 */\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","function getProcessArgvBinIndex() {\n if (isBundledElectronApp())\n return 0;\n return 1;\n}\nfunction isBundledElectronApp() {\n return isElectronApp() && !process.defaultApp;\n}\nfunction isElectronApp() {\n return !!process.versions.electron;\n}\nexport function hideBin(argv) {\n return argv.slice(getProcessArgvBinIndex() + 1);\n}\nexport function getProcessArgvBin() {\n return process.argv[getProcessArgvBinIndex()];\n}\n","export class YError extends Error {\n constructor(msg) {\n super(msg || 'yargs error');\n this.name = 'YError';\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, YError);\n }\n }\n}\n","import { readFileSync, statSync, writeFile } from 'fs';\nimport { format } from 'util';\nimport { resolve } from 'path';\nexport default {\n fs: {\n readFileSync,\n writeFile\n },\n format,\n resolve,\n exists: (file) => {\n try {\n return statSync(file).isFile();\n }\n catch (err) {\n return false;\n }\n }\n};\n","let shim;\nclass Y18N {\n constructor(opts) {\n // configurable options.\n opts = opts || {};\n this.directory = opts.directory || './locales';\n this.updateFiles = typeof opts.updateFiles === 'boolean' ? opts.updateFiles : true;\n this.locale = opts.locale || 'en';\n this.fallbackToLanguage = typeof opts.fallbackToLanguage === 'boolean' ? opts.fallbackToLanguage : true;\n // internal stuff.\n this.cache = Object.create(null);\n this.writeQueue = [];\n }\n __(...args) {\n if (typeof arguments[0] !== 'string') {\n return this._taggedLiteral(arguments[0], ...arguments);\n }\n const str = args.shift();\n let cb = function () { }; // start with noop.\n if (typeof args[args.length - 1] === 'function')\n cb = args.pop();\n cb = cb || function () { }; // noop.\n if (!this.cache[this.locale])\n this._readLocaleFile();\n // we've observed a new string, update the language file.\n if (!this.cache[this.locale][str] && this.updateFiles) {\n this.cache[this.locale][str] = str;\n // include the current directory and locale,\n // since these values could change before the\n // write is performed.\n this._enqueueWrite({\n directory: this.directory,\n locale: this.locale,\n cb\n });\n }\n else {\n cb();\n }\n return shim.format.apply(shim.format, [this.cache[this.locale][str] || str].concat(args));\n }\n __n() {\n const args = Array.prototype.slice.call(arguments);\n const singular = args.shift();\n const plural = args.shift();\n const quantity = args.shift();\n let cb = function () { }; // start with noop.\n if (typeof args[args.length - 1] === 'function')\n cb = args.pop();\n if (!this.cache[this.locale])\n this._readLocaleFile();\n let str = quantity === 1 ? singular : plural;\n if (this.cache[this.locale][singular]) {\n const entry = this.cache[this.locale][singular];\n str = entry[quantity === 1 ? 'one' : 'other'];\n }\n // we've observed a new string, update the language file.\n if (!this.cache[this.locale][singular] && this.updateFiles) {\n this.cache[this.locale][singular] = {\n one: singular,\n other: plural\n };\n // include the current directory and locale,\n // since these values could change before the\n // write is performed.\n this._enqueueWrite({\n directory: this.directory,\n locale: this.locale,\n cb\n });\n }\n else {\n cb();\n }\n // if a %d placeholder is provided, add quantity\n // to the arguments expanded by util.format.\n const values = [str];\n if (~str.indexOf('%d'))\n values.push(quantity);\n return shim.format.apply(shim.format, values.concat(args));\n }\n setLocale(locale) {\n this.locale = locale;\n }\n getLocale() {\n return this.locale;\n }\n updateLocale(obj) {\n if (!this.cache[this.locale])\n this._readLocaleFile();\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n this.cache[this.locale][key] = obj[key];\n }\n }\n }\n _taggedLiteral(parts, ...args) {\n let str = '';\n parts.forEach(function (part, i) {\n const arg = args[i + 1];\n str += part;\n if (typeof arg !== 'undefined') {\n str += '%s';\n }\n });\n return this.__.apply(this, [str].concat([].slice.call(args, 1)));\n }\n _enqueueWrite(work) {\n this.writeQueue.push(work);\n if (this.writeQueue.length === 1)\n this._processWriteQueue();\n }\n _processWriteQueue() {\n const _this = this;\n const work = this.writeQueue[0];\n // destructure the enqueued work.\n const directory = work.directory;\n const locale = work.locale;\n const cb = work.cb;\n const languageFile = this._resolveLocaleFile(directory, locale);\n const serializedLocale = JSON.stringify(this.cache[locale], null, 2);\n shim.fs.writeFile(languageFile, serializedLocale, 'utf-8', function (err) {\n _this.writeQueue.shift();\n if (_this.writeQueue.length > 0)\n _this._processWriteQueue();\n cb(err);\n });\n }\n _readLocaleFile() {\n let localeLookup = {};\n const languageFile = this._resolveLocaleFile(this.directory, this.locale);\n try {\n // When using a bundler such as webpack, readFileSync may not be defined:\n if (shim.fs.readFileSync) {\n localeLookup = JSON.parse(shim.fs.readFileSync(languageFile, 'utf-8'));\n }\n }\n catch (err) {\n if (err instanceof SyntaxError) {\n err.message = 'syntax error in ' + languageFile;\n }\n if (err.code === 'ENOENT')\n localeLookup = {};\n else\n throw err;\n }\n this.cache[this.locale] = localeLookup;\n }\n _resolveLocaleFile(directory, locale) {\n let file = shim.resolve(directory, './', locale + '.json');\n if (this.fallbackToLanguage && !this._fileExistsSync(file) && ~locale.lastIndexOf('_')) {\n // attempt fallback to language only\n const languageFile = shim.resolve(directory, './', locale.split('_')[0] + '.json');\n if (this._fileExistsSync(languageFile))\n file = languageFile;\n }\n return file;\n }\n _fileExistsSync(file) {\n return shim.exists(file);\n }\n}\nexport function y18n(opts, _shim) {\n shim = _shim;\n const y18n = new Y18N(opts);\n return {\n __: y18n.__.bind(y18n),\n __n: y18n.__n.bind(y18n),\n setLocale: y18n.setLocale.bind(y18n),\n getLocale: y18n.getLocale.bind(y18n),\n updateLocale: y18n.updateLocale.bind(y18n),\n locale: y18n.locale\n };\n}\n","import shim from './build/lib/platform-shims/node.js'\nimport { y18n as _y18n } from './build/lib/index.js'\n\nconst y18n = (opts) => {\n return _y18n(opts, shim)\n}\n\nexport default y18n\n","'use strict'\n\nimport { notStrictEqual, strictEqual } from 'assert'\nimport cliui from 'cliui'\nimport escalade from 'escalade/sync'\nimport { inspect } from 'util'\nimport { readFileSync } from 'fs'\nimport { fileURLToPath } from 'url';\nimport Parser from 'yargs-parser'\nimport { basename, dirname, extname, relative, resolve } from 'path'\nimport { getProcessArgvBin } from '../../build/lib/utils/process-argv.js'\nimport { YError } from '../../build/lib/yerror.js'\nimport y18n from 'y18n'\n\nconst REQUIRE_ERROR = 'require is not supported by ESM'\nconst REQUIRE_DIRECTORY_ERROR = 'loading a directory of commands is not supported yet for ESM'\n\nlet __dirname;\ntry {\n __dirname = fileURLToPath(import.meta.url);\n} catch (e) {\n __dirname = process.cwd();\n}\nconst mainFilename = __dirname.substring(0, __dirname.lastIndexOf('node_modules'));\n\nexport default {\n assert: {\n notStrictEqual,\n strictEqual\n },\n cliui,\n findUp: escalade,\n getEnv: (key) => {\n return process.env[key]\n },\n inspect,\n getCallerFile: () => {\n throw new YError(REQUIRE_DIRECTORY_ERROR)\n },\n getProcessArgvBin,\n mainFilename: mainFilename || process.cwd(),\n Parser,\n path: {\n basename,\n dirname,\n extname,\n relative,\n resolve\n },\n process: {\n argv: () => process.argv,\n cwd: process.cwd,\n emitWarning: (warning, type) => process.emitWarning(warning, type),\n execPath: () => process.execPath,\n exit: process.exit,\n nextTick: process.nextTick,\n stdColumns: typeof process.stdout.columns !== 'undefined' ? process.stdout.columns : null\n },\n readFileSync,\n require: () => {\n throw new YError(REQUIRE_ERROR)\n },\n requireDirectory: () => {\n throw new YError(REQUIRE_DIRECTORY_ERROR)\n },\n stringWidth: (str) => {\n return [...str].length\n },\n y18n: y18n({\n directory: resolve(__dirname, '../../../locales'),\n updateFiles: false\n })\n}\n","// Bootstrap cliui with CommonJS dependencies:\nimport { cliui } from './build/lib/index.js'\nimport { wrap, stripAnsi } from './build/lib/string-utils.js'\n\nexport default function ui (opts) {\n return cliui(opts, {\n stringWidth: (str) => {\n return [...str].length\n },\n stripAnsi,\n wrap\n })\n}\n","import { dirname, resolve } from 'path';\nimport { readdirSync, statSync } from 'fs';\n\nexport default function (start, callback) {\n\tlet dir = resolve('.', start);\n\tlet tmp, stats = statSync(dir);\n\n\tif (!stats.isDirectory()) {\n\t\tdir = dirname(dir);\n\t}\n\n\twhile (true) {\n\t\ttmp = callback(dir, readdirSync(dir));\n\t\tif (tmp) return resolve(dir, tmp);\n\t\tdir = dirname(tmp = dir);\n\t\tif (tmp === dir) break;\n\t}\n}\n","export function assertNotStrictEqual(actual, expected, shim, message) {\n shim.assert.notStrictEqual(actual, expected, message);\n}\nexport function assertSingleKey(actual, shim) {\n shim.assert.strictEqual(typeof actual, 'string');\n}\nexport function objectKeys(object) {\n return Object.keys(object);\n}\n","export function isPromise(maybePromise) {\n return (!!maybePromise &&\n !!maybePromise.then &&\n typeof maybePromise.then === 'function');\n}\n","export function parseCommand(cmd) {\n const extraSpacesStrippedCommand = cmd.replace(/\\s{2,}/g, ' ');\n const splitCommand = extraSpacesStrippedCommand.split(/\\s+(?![^[]*]|[^<]*>)/);\n const bregex = /\\.*[\\][<>]/g;\n const firstCommand = splitCommand.shift();\n if (!firstCommand)\n throw new Error(`No command found in: ${cmd}`);\n const parsedCommand = {\n cmd: firstCommand.replace(bregex, ''),\n demanded: [],\n optional: [],\n };\n splitCommand.forEach((cmd, i) => {\n let variadic = false;\n cmd = cmd.replace(/\\s/g, '');\n if (/\\.+[\\]>]/.test(cmd) && i === splitCommand.length - 1)\n variadic = true;\n if (/^\\[/.test(cmd)) {\n parsedCommand.optional.push({\n cmd: cmd.replace(bregex, '').split('|'),\n variadic,\n });\n }\n else {\n parsedCommand.demanded.push({\n cmd: cmd.replace(bregex, '').split('|'),\n variadic,\n });\n }\n });\n return parsedCommand;\n}\n","import { YError } from './yerror.js';\nimport { parseCommand } from './parse-command.js';\nconst positionName = ['first', 'second', 'third', 'fourth', 'fifth', 'sixth'];\nexport function argsert(arg1, arg2, arg3) {\n function parseArgs() {\n return typeof arg1 === 'object'\n ? [{ demanded: [], optional: [] }, arg1, arg2]\n : [\n parseCommand(`cmd ${arg1}`),\n arg2,\n arg3,\n ];\n }\n try {\n let position = 0;\n const [parsed, callerArguments, _length] = parseArgs();\n const args = [].slice.call(callerArguments);\n while (args.length && args[args.length - 1] === undefined)\n args.pop();\n const length = _length || args.length;\n if (length < parsed.demanded.length) {\n throw new YError(`Not enough arguments provided. Expected ${parsed.demanded.length} but received ${args.length}.`);\n }\n const totalCommands = parsed.demanded.length + parsed.optional.length;\n if (length > totalCommands) {\n throw new YError(`Too many arguments provided. Expected max ${totalCommands} but received ${length}.`);\n }\n parsed.demanded.forEach(demanded => {\n const arg = args.shift();\n const observedType = guessType(arg);\n const matchingTypes = demanded.cmd.filter(type => type === observedType || type === '*');\n if (matchingTypes.length === 0)\n argumentTypeError(observedType, demanded.cmd, position);\n position += 1;\n });\n parsed.optional.forEach(optional => {\n if (args.length === 0)\n return;\n const arg = args.shift();\n const observedType = guessType(arg);\n const matchingTypes = optional.cmd.filter(type => type === observedType || type === '*');\n if (matchingTypes.length === 0)\n argumentTypeError(observedType, optional.cmd, position);\n position += 1;\n });\n }\n catch (err) {\n console.warn(err.stack);\n }\n}\nfunction guessType(arg) {\n if (Array.isArray(arg)) {\n return 'array';\n }\n else if (arg === null) {\n return 'null';\n }\n return typeof arg;\n}\nfunction argumentTypeError(observedType, allowedTypes, position) {\n throw new YError(`Invalid ${positionName[position] || 'manyith'} argument. Expected ${allowedTypes.join(' or ')} but received ${observedType}.`);\n}\n","import { argsert } from './argsert.js';\nimport { isPromise } from './utils/is-promise.js';\nexport class GlobalMiddleware {\n constructor(yargs) {\n this.globalMiddleware = [];\n this.frozens = [];\n this.yargs = yargs;\n }\n addMiddleware(callback, applyBeforeValidation, global = true, mutates = false) {\n argsert('<array|function> [boolean] [boolean] [boolean]', [callback, applyBeforeValidation, global], arguments.length);\n if (Array.isArray(callback)) {\n for (let i = 0; i < callback.length; i++) {\n if (typeof callback[i] !== 'function') {\n throw Error('middleware must be a function');\n }\n const m = callback[i];\n m.applyBeforeValidation = applyBeforeValidation;\n m.global = global;\n }\n Array.prototype.push.apply(this.globalMiddleware, callback);\n }\n else if (typeof callback === 'function') {\n const m = callback;\n m.applyBeforeValidation = applyBeforeValidation;\n m.global = global;\n m.mutates = mutates;\n this.globalMiddleware.push(callback);\n }\n return this.yargs;\n }\n addCoerceMiddleware(callback, option) {\n const aliases = this.yargs.getAliases();\n this.globalMiddleware = this.globalMiddleware.filter(m => {\n const toCheck = [...(aliases[option] || []), option];\n if (!m.option)\n return true;\n else\n return !toCheck.includes(m.option);\n });\n callback.option = option;\n return this.addMiddleware(callback, true, true, true);\n }\n getMiddleware() {\n return this.globalMiddleware;\n }\n freeze() {\n this.frozens.push([...this.globalMiddleware]);\n }\n unfreeze() {\n const frozen = this.frozens.pop();\n if (frozen !== undefined)\n this.globalMiddleware = frozen;\n }\n reset() {\n this.globalMiddleware = this.globalMiddleware.filter(m => m.global);\n }\n}\nexport function commandMiddlewareFactory(commandMiddleware) {\n if (!commandMiddleware)\n return [];\n return commandMiddleware.map(middleware => {\n middleware.applyBeforeValidation = false;\n return middleware;\n });\n}\nexport function applyMiddleware(argv, yargs, middlewares, beforeValidation) {\n return middlewares.reduce((acc, middleware) => {\n if (middleware.applyBeforeValidation !== beforeValidation) {\n return acc;\n }\n if (middleware.mutates) {\n if (middleware.applied)\n return acc;\n middleware.applied = true;\n }\n if (isPromise(acc)) {\n return acc\n .then(initialObj => Promise.all([initialObj, middleware(initialObj, yargs)]))\n .then(([initialObj, middlewareObj]) => Object.assign(initialObj, middlewareObj));\n }\n else {\n const result = middleware(acc, yargs);\n return isPromise(result)\n ? result.then(middlewareObj => Object.assign(acc, middlewareObj))\n : Object.assign(acc, result);\n }\n }, argv);\n}\n","import { isPromise } from './is-promise.js';\nexport function maybeAsyncResult(getResult, resultHandler, errorHandler = (err) => {\n throw err;\n}) {\n try {\n const result = isFunction(getResult) ? getResult() : getResult;\n return isPromise(result)\n ? result.then((result) => resultHandler(result))\n : resultHandler(result);\n }\n catch (err) {\n return errorHandler(err);\n }\n}\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\n","import { assertNotStrictEqual, } from './typings/common-types.js';\nimport { isPromise } from './utils/is-promise.js';\nimport { applyMiddleware, commandMiddlewareFactory, } from './middleware.js';\nimport { parseCommand } from './parse-command.js';\nimport { isYargsInstance, } from './yargs-factory.js';\nimport { maybeAsyncResult } from './utils/maybe-async-result.js';\nimport whichModule from './utils/which-module.js';\nconst DEFAULT_MARKER = /(^\\*)|(^\\$0)/;\nexport class CommandInstance {\n constructor(usage, validation, globalMiddleware, shim) {\n this.requireCache = new Set();\n this.handlers = {};\n this.aliasMap = {};\n this.frozens = [];\n this.shim = shim;\n this.usage = usage;\n this.globalMiddleware = globalMiddleware;\n this.validation = validation;\n }\n addDirectory(dir, req, callerFile, opts) {\n opts = opts || {};\n if (typeof opts.recurse !== 'boolean')\n opts.recurse = false;\n if (!Array.isArray(opts.extensions))\n opts.extensions = ['js'];\n const parentVisit = typeof opts.visit === 'function' ? opts.visit : (o) => o;\n opts.visit = (obj, joined, filename) => {\n const visited = parentVisit(obj, joined, filename);\n if (visited) {\n if (this.requireCache.has(joined))\n return visited;\n else\n this.requireCache.add(joined);\n this.addHandler(visited);\n }\n return visited;\n };\n this.shim.requireDirectory({ require: req, filename: callerFile }, dir, opts);\n }\n addHandler(cmd, description, builder, handler, commandMiddleware, deprecated) {\n let aliases = [];\n const middlewares = commandMiddlewareFactory(commandMiddleware);\n handler = handler || (() => { });\n if (Array.isArray(cmd)) {\n if (isCommandAndAliases(cmd)) {\n [cmd, ...aliases] = cmd;\n }\n else {\n for (const command of cmd) {\n this.addHandler(command);\n }\n }\n }\n else if (isCommandHandlerDefinition(cmd)) {\n let command = Array.isArray(cmd.command) || typeof cmd.command === 'string'\n ? cmd.command\n : this.moduleName(cmd);\n if (cmd.aliases)\n command = [].concat(command).concat(cmd.aliases);\n this.addHandler(command, this.extractDesc(cmd), cmd.builder, cmd.handler, cmd.middlewares, cmd.deprecated);\n return;\n }\n else if (isCommandBuilderDefinition(builder)) {\n this.addHandler([cmd].concat(aliases), description, builder.builder, builder.handler, builder.middlewares, builder.deprecated);\n return;\n }\n if (typeof cmd === 'string') {\n const parsedCommand = parseCommand(cmd);\n aliases = aliases.map(alias => parseCommand(alias).cmd);\n let isDefault = false;\n const parsedAliases = [parsedCommand.cmd].concat(aliases).filter(c => {\n if (DEFAULT_MARKER.test(c)) {\n isDefault = true;\n return false;\n }\n return true;\n });\n if (parsedAliases.length === 0 && isDefault)\n parsedAliases.push('$0');\n if (isDefault) {\n parsedCommand.cmd = parsedAliases[0];\n aliases = parsedAliases.slice(1);\n cmd = cmd.replace(DEFAULT_MARKER, parsedCommand.cmd);\n }\n aliases.forEach(alias => {\n this.aliasMap[alias] = parsedCommand.cmd;\n });\n if (description !== false) {\n this.usage.command(cmd, description, isDefault, aliases, deprecated);\n }\n this.handlers[parsedCommand.cmd] = {\n original: cmd,\n description,\n handler,\n builder: builder || {},\n middlewares,\n deprecated,\n demanded: parsedCommand.demanded,\n optional: parsedCommand.optional,\n };\n if (isDefault)\n this.defaultCommand = this.handlers[parsedCommand.cmd];\n }\n }\n getCommandHandlers() {\n return this.handlers;\n }\n getCommands() {\n return Object.keys(this.handlers).concat(Object.keys(this.aliasMap));\n }\n hasDefaultCommand() {\n return !!this.defaultCommand;\n }\n runCommand(command, yargs, parsed, commandIndex, helpOnly, helpOrVersionSet) {\n const commandHandler = this.handlers[command] ||\n this.handlers[this.aliasMap[command]] ||\n this.defaultCommand;\n const currentContext = yargs.getInternalMethods().getContext();\n const parentCommands = currentContext.commands.slice();\n const isDefaultCommand = !command;\n if (command) {\n currentContext.commands.push(command);\n currentContext.fullCommands.push(commandHandler.original);\n }\n const builderResult = this.applyBuilderUpdateUsageAndParse(isDefaultCommand, commandHandler, yargs, parsed.aliases, parentCommands, commandIndex, helpOnly, helpOrVersionSet);\n return isPromise(builderResult)\n ? builderResult.then(result => this.applyMiddlewareAndGetResult(isDefaultCommand, commandHandler, result.innerArgv, currentContext, helpOnly, result.aliases, yargs))\n : this.applyMiddlewareAndGetResult(isDefaultCommand, commandHandler, builderResult.innerArgv, currentContext, helpOnly, builderResult.aliases, yargs);\n }\n applyBuilderUpdateUsageAndParse(isDefaultCommand, commandHandler, yargs, aliases, parentCommands, commandIndex, helpOnly, helpOrVersionSet) {\n const builder = commandHandler.builder;\n let innerYargs = yargs;\n if (isCommandBuilderCallback(builder)) {\n yargs.getInternalMethods().getUsageInstance().freeze();\n const builderOutput = builder(yargs.getInternalMethods().reset(aliases), helpOrVersionSet);\n if (isPromise(builderOutput)) {\n return builderOutput.then(output => {\n innerYargs = isYargsInstance(output) ? output : yargs;\n return this.parseAndUpdateUsage(isDefaultCommand, commandHandler, innerYargs, parentCommands, commandIndex, helpOnly);\n });\n }\n }\n else if (isCommandBuilderOptionDefinitions(builder)) {\n yargs.getInternalMethods().getUsageInstance().freeze();\n innerYargs = yargs.getInternalMethods().reset(aliases);\n Object.keys(commandHandler.builder).forEach(key => {\n innerYargs.option(key, builder[key]);\n });\n }\n return this.parseAndUpdateUsage(isDefaultCommand, commandHandler, innerYargs, parentCommands, commandIndex, helpOnly);\n }\n parseAndUpdateUsage(isDefaultCommand, commandHandler, innerYargs, parentCommands, commandIndex, helpOnly) {\n if (isDefaultCommand)\n innerYargs.getInternalMethods().getUsageInstance().unfreeze(true);\n if (this.shouldUpdateUsage(innerYargs)) {\n innerYargs\n .getInternalMethods()\n .getUsageInstance()\n .usage(this.usageFromParentCommandsCommandHandler(parentCommands, commandHandler), commandHandler.description);\n }\n const innerArgv = innerYargs\n .getInternalMethods()\n .runYargsParserAndExecuteCommands(null, undefined, true, commandIndex, helpOnly);\n return isPromise(innerArgv)\n ? innerArgv.then(argv => ({\n aliases: innerYargs.parsed.aliases,\n innerArgv: argv,\n }))\n : {\n aliases: innerYargs.parsed.aliases,\n innerArgv: innerArgv,\n };\n }\n shouldUpdateUsage(yargs) {\n return (!yargs.getInternalMethods().getUsageInstance().getUsageDisabled() &&\n yargs.getInternalMethods().getUsageInstance().getUsage().length === 0);\n }\n usageFromParentCommandsCommandHandler(parentCommands, commandHandler) {\n const c = DEFAULT_MARKER.test(commandHandler.original)\n ? commandHandler.original.replace(DEFAULT_MARKER, '').trim()\n : commandHandler.original;\n const pc = parentCommands.filter(c => {\n return !DEFAULT_MARKER.test(c);\n });\n pc.push(c);\n return `$0 ${pc.join(' ')}`;\n }\n handleValidationAndGetResult(isDefaultCommand, commandHandler, innerArgv, currentContext, aliases, yargs, middlewares, positionalMap) {\n if (!yargs.getInternalMethods().getHasOutput()) {\n const validation = yargs\n .getInternalMethods()\n .runValidation(aliases, positionalMap, yargs.parsed.error, isDefaultCommand);\n innerArgv = maybeAsyncResult(innerArgv, result => {\n validation(result);\n return result;\n });\n }\n if (commandHandler.handler && !yargs.getInternalMethods().getHasOutput()) {\n yargs.getInternalMethods().setHasOutput();\n const populateDoubleDash = !!yargs.getOptions().configuration['populate--'];\n yargs\n .getInternalMethods()\n .postProcess(innerArgv, populateDoubleDash, false, false);\n innerArgv = applyMiddleware(innerArgv, yargs, middlewares, false);\n innerArgv = maybeAsyncResult(innerArgv, result => {\n const handlerResult = commandHandler.handler(result);\n return isPromise(handlerResult)\n ? handlerResult.then(() => result)\n : result;\n });\n if (!isDefaultCommand) {\n yargs.getInternalMethods().getUsageInstance().cacheHelpMessage();\n }\n if (isPromise(innerArgv) &&\n !yargs.getInternalMethods().hasParseCallback()) {\n innerArgv.catch(error => {\n try {\n yargs.getInternalMethods().getUsageInstance().fail(null, error);\n }\n catch (_err) {\n }\n });\n }\n }\n if (!isDefaultCommand) {\n currentContext.commands.pop();\n currentContext.fullCommands.pop();\n }\n return innerArgv;\n }\n applyMiddlewareAndGetResult(isDefaultCommand, commandHandler, innerArgv, currentContext, helpOnly, aliases, yargs) {\n let positionalMap = {};\n if (helpOnly)\n return innerArgv;\n if (!yargs.getInternalMethods().getHasOutput()) {\n positionalMap = this.populatePositionals(commandHandler, innerArgv, currentContext, yargs);\n }\n const middlewares = this.globalMiddleware\n .getMiddleware()\n .slice(0)\n .concat(commandHandler.middlewares);\n const maybePromiseArgv = applyMiddleware(innerArgv, yargs, middlewares, true);\n return isPromise(maybePromiseArgv)\n ? maybePromiseArgv.then(resolvedInnerArgv => this.handleValidationAndGetResult(isDefaultCommand, commandHandler, resolvedInnerArgv, currentContext, aliases, yargs, middlewares, positionalMap))\n : this.handleValidationAndGetResult(isDefaultCommand, commandHandler, maybePromiseArgv, currentContext, aliases, yargs, middlewares, positionalMap);\n }\n populatePositionals(commandHandler, argv, context, yargs) {\n argv._ = argv._.slice(context.commands.length);\n const demanded = commandHandler.demanded.slice(0);\n const optional = commandHandler.optional.slice(0);\n const positionalMap = {};\n this.validation.positionalCount(demanded.length, argv._.length);\n while (demanded.length) {\n const demand = demanded.shift();\n this.populatePositional(demand, argv, positionalMap);\n }\n while (optional.length) {\n const maybe = optional.shift();\n this.populatePositional(maybe, argv, positionalMap);\n }\n argv._ = context.commands.concat(argv._.map(a => '' + a));\n this.postProcessPositionals(argv, positionalMap, this.cmdToParseOptions(commandHandler.original), yargs);\n return positionalMap;\n }\n populatePositional(positional, argv, positionalMap) {\n const cmd = positional.cmd[0];\n if (positional.variadic) {\n positionalMap[cmd] = argv._.splice(0).map(String);\n }\n else {\n if (argv._.length)\n positionalMap[cmd] = [String(argv._.shift())];\n }\n }\n cmdToParseOptions(cmdString) {\n const parseOptions = {\n array: [],\n default: {},\n alias: {},\n demand: {},\n };\n const parsed = parseCommand(cmdString);\n parsed.demanded.forEach(d => {\n const [cmd, ...aliases] = d.cmd;\n if (d.variadic) {\n parseOptions.array.push(cmd);\n parseOptions.default[cmd] = [];\n }\n parseOptions.alias[cmd] = aliases;\n parseOptions.demand[cmd] = true;\n });\n parsed.optional.forEach(o => {\n const [cmd, ...aliases] = o.cmd;\n if (o.variadic) {\n parseOptions.array.push(cmd);\n parseOptions.default[cmd] = [];\n }\n parseOptions.alias[cmd] = aliases;\n });\n return parseOptions;\n }\n postProcessPositionals(argv, positionalMap, parseOptions, yargs) {\n const options = Object.assign({}, yargs.getOptions());\n options.default = Object.assign(parseOptions.default, options.default);\n for (const key of Object.keys(parseOptions.alias)) {\n options.alias[key] = (options.alias[key] || []).concat(parseOptions.alias[key]);\n }\n options.array = options.array.concat(parseOptions.array);\n options.config = {};\n const unparsed = [];\n Object.keys(positionalMap).forEach(key => {\n positionalMap[key].map(value => {\n if (options.configuration['unknown-options-as-args'])\n options.key[key] = true;\n unparsed.push(`--${key}`);\n unparsed.push(value);\n });\n });\n if (!unparsed.length)\n return;\n const config = Object.assign({}, options.configuration, {\n 'populate--': false,\n });\n const parsed = this.shim.Parser.detailed(unparsed, Object.assign({}, options, {\n configuration: config,\n }));\n if (parsed.error) {\n yargs\n .getInternalMethods()\n .getUsageInstance()\n .fail(parsed.error.message, parsed.error);\n }\n else {\n const positionalKeys = Object.keys(positionalMap);\n Object.keys(positionalMap).forEach(key => {\n positionalKeys.push(...parsed.aliases[key]);\n });\n Object.keys(parsed.argv).forEach(key => {\n if (positionalKeys.includes(key)) {\n if (!positionalMap[key])\n positionalMap[key] = parsed.argv[key];\n if (!this.isInConfigs(yargs, key) &&\n !this.isDefaulted(yargs, key) &&\n Object.prototype.hasOwnProperty.call(argv, key) &&\n Object.prototype.hasOwnProperty.call(parsed.argv, key) &&\n (Array.isArray(argv[key]) || Array.isArray(parsed.argv[key]))) {\n argv[key] = [].concat(argv[key], parsed.argv[key]);\n }\n else {\n argv[key] = parsed.argv[key];\n }\n }\n });\n }\n }\n isDefaulted(yargs, key) {\n const { default: defaults } = yargs.getOptions();\n return (Object.prototype.hasOwnProperty.call(defaults, key) ||\n Object.prototype.hasOwnProperty.call(defaults, this.shim.Parser.camelCase(key)));\n }\n isInConfigs(yargs, key) {\n const { configObjects } = yargs.getOptions();\n return (configObjects.some(c => Object.prototype.hasOwnProperty.call(c, key)) ||\n configObjects.some(c => Object.prototype.hasOwnProperty.call(c, this.shim.Parser.camelCase(key))));\n }\n runDefaultBuilderOn(yargs) {\n if (!this.defaultCommand)\n return;\n if (this.shouldUpdateUsage(yargs)) {\n const commandString = DEFAULT_MARKER.test(this.defaultCommand.original)\n ? this.defaultCommand.original\n : this.defaultCommand.original.replace(/^[^[\\]<>]*/, '$0 ');\n yargs\n .getInternalMethods()\n .getUsageInstance()\n .usage(commandString, this.defaultCommand.description);\n }\n const builder = this.defaultCommand.builder;\n if (isCommandBuilderCallback(builder)) {\n return builder(yargs, true);\n }\n else if (!isCommandBuilderDefinition(builder)) {\n Object.keys(builder).forEach(key => {\n yargs.option(key, builder[key]);\n });\n }\n return undefined;\n }\n moduleName(obj) {\n const mod = whichModule(obj);\n if (!mod)\n throw new Error(`No command name given for module: ${this.shim.inspect(obj)}`);\n return this.commandFromFilename(mod.filename);\n }\n commandFromFilename(filename) {\n return this.shim.path.basename(filename, this.shim.path.extname(filename));\n }\n extractDesc({ describe, description, desc }) {\n for (const test of [describe, description, desc]) {\n if (typeof test === 'string' || test === false)\n return test;\n assertNotStrictEqual(test, true, this.shim);\n }\n return false;\n }\n freeze() {\n this.frozens.push({\n handlers: this.handlers,\n aliasMap: this.aliasMap,\n defaultCommand: this.defaultCommand,\n });\n }\n unfreeze() {\n const frozen = this.frozens.pop();\n assertNotStrictEqual(frozen, undefined, this.shim);\n ({\n handlers: this.handlers,\n aliasMap: this.aliasMap,\n defaultCommand: this.defaultCommand,\n } = frozen);\n }\n reset() {\n this.handlers = {};\n this.aliasMap = {};\n this.defaultCommand = undefined;\n this.requireCache = new Set();\n return this;\n }\n}\nexport function command(usage, validation, globalMiddleware, shim) {\n return new CommandInstance(usage, validation, globalMiddleware, shim);\n}\nexport function isCommandBuilderDefinition(builder) {\n return (typeof builder === 'object' &&\n !!builder.builder &&\n typeof builder.handler === 'function');\n}\nfunction isCommandAndAliases(cmd) {\n return cmd.every(c => typeof c === 'string');\n}\nexport function isCommandBuilderCallback(builder) {\n return typeof builder === 'function';\n}\nfunction isCommandBuilderOptionDefinitions(builder) {\n return typeof builder === 'object';\n}\nexport function isCommandHandlerDefinition(cmd) {\n return typeof cmd === 'object' && !Array.isArray(cmd);\n}\n","var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _YargsInstance_command, _YargsInstance_cwd, _YargsInstance_context, _YargsInstance_completion, _YargsInstance_completionCommand, _YargsInstance_defaultShowHiddenOpt, _YargsInstance_exitError, _YargsInstance_detectLocale, _YargsInstance_emittedWarnings, _YargsInstance_exitProcess, _YargsInstance_frozens, _YargsInstance_globalMiddleware, _YargsInstance_groups, _YargsInstance_hasOutput, _YargsInstance_helpOpt, _YargsInstance_isGlobalContext, _YargsInstance_logger, _YargsInstance_output, _YargsInstance_options, _YargsInstance_parentRequire, _YargsInstance_parserConfig, _YargsInstance_parseFn, _YargsInstance_parseContext, _YargsInstance_pkgs, _YargsInstance_preservedGroups, _YargsInstance_processArgs, _YargsInstance_recommendCommands, _YargsInstance_shim, _YargsInstance_strict, _YargsInstance_strictCommands, _YargsInstance_strictOptions, _YargsInstance_usage, _YargsInstance_usageConfig, _YargsInstance_versionOpt, _YargsInstance_validation;\nimport { command as Command, } from './command.js';\nimport { assertNotStrictEqual, assertSingleKey, objectKeys, } from './typings/common-types.js';\nimport { YError } from './yerror.js';\nimport { usage as Usage } from './usage.js';\nimport { argsert } from './argsert.js';\nimport { completion as Completion, } from './completion.js';\nimport { validation as Validation, } from './validation.js';\nimport { objFilter } from './utils/obj-filter.js';\nimport { applyExtends } from './utils/apply-extends.js';\nimport { applyMiddleware, GlobalMiddleware, } from './middleware.js';\nimport { isPromise } from './utils/is-promise.js';\nimport { maybeAsyncResult } from './utils/maybe-async-result.js';\nimport setBlocking from './utils/set-blocking.js';\nexport function YargsFactory(_shim) {\n return (processArgs = [], cwd = _shim.process.cwd(), parentRequire) => {\n const yargs = new YargsInstance(processArgs, cwd, parentRequire, _shim);\n Object.defineProperty(yargs, 'argv', {\n get: () => {\n return yargs.parse();\n },\n enumerable: true,\n });\n yargs.help();\n yargs.version();\n return yargs;\n };\n}\nconst kCopyDoubleDash = Symbol('copyDoubleDash');\nconst kCreateLogger = Symbol('copyDoubleDash');\nconst kDeleteFromParserHintObject = Symbol('deleteFromParserHintObject');\nconst kEmitWarning = Symbol('emitWarning');\nconst kFreeze = Symbol('freeze');\nconst kGetDollarZero = Symbol('getDollarZero');\nconst kGetParserConfiguration = Symbol('getParserConfiguration');\nconst kGetUsageConfiguration = Symbol('getUsageConfiguration');\nconst kGuessLocale = Symbol('guessLocale');\nconst kGuessVersion = Symbol('guessVersion');\nconst kParsePositionalNumbers = Symbol('parsePositionalNumbers');\nconst kPkgUp = Symbol('pkgUp');\nconst kPopulateParserHintArray = Symbol('populateParserHintArray');\nconst kPopulateParserHintSingleValueDictionary = Symbol('populateParserHintSingleValueDictionary');\nconst kPopulateParserHintArrayDictionary = Symbol('populateParserHintArrayDictionary');\nconst kPopulateParserHintDictionary = Symbol('populateParserHintDictionary');\nconst kSanitizeKey = Symbol('sanitizeKey');\nconst kSetKey = Symbol('setKey');\nconst kUnfreeze = Symbol('unfreeze');\nconst kValidateAsync = Symbol('validateAsync');\nconst kGetCommandInstance = Symbol('getCommandInstance');\nconst kGetContext = Symbol('getContext');\nconst kGetHasOutput = Symbol('getHasOutput');\nconst kGetLoggerInstance = Symbol('getLoggerInstance');\nconst kGetParseContext = Symbol('getParseContext');\nconst kGetUsageInstance = Symbol('getUsageInstance');\nconst kGetValidationInstance = Symbol('getValidationInstance');\nconst kHasParseCallback = Symbol('hasParseCallback');\nconst kIsGlobalContext = Symbol('isGlobalContext');\nconst kPostProcess = Symbol('postProcess');\nconst kRebase = Symbol('rebase');\nconst kReset = Symbol('reset');\nconst kRunYargsParserAndExecuteCommands = Symbol('runYargsParserAndExecuteCommands');\nconst kRunValidation = Symbol('runValidation');\nconst kSetHasOutput = Symbol('setHasOutput');\nconst kTrackManuallySetKeys = Symbol('kTrackManuallySetKeys');\nexport class YargsInstance {\n constructor(processArgs = [], cwd, parentRequire, shim) {\n this.customScriptName = false;\n this.parsed = false;\n _YargsInstance_command.set(this, void 0);\n _YargsInstance_cwd.set(this, void 0);\n _YargsInstance_context.set(this, { commands: [], fullCommands: [] });\n _YargsInstance_completion.set(this, null);\n _YargsInstance_completionCommand.set(this, null);\n _YargsInstance_defaultShowHiddenOpt.set(this, 'show-hidden');\n _YargsInstance_exitError.set(this, null);\n _YargsInstance_detectLocale.set(this, true);\n _YargsInstance_emittedWarnings.set(this, {});\n _YargsInstance_exitProcess.set(this, true);\n _YargsInstance_frozens.set(this, []);\n _YargsInstance_globalMiddleware.set(this, void 0);\n _YargsInstance_groups.set(this, {});\n _YargsInstance_hasOutput.set(this, false);\n _YargsInstance_helpOpt.set(this, null);\n _YargsInstance_isGlobalContext.set(this, true);\n _YargsInstance_logger.set(this, void 0);\n _YargsInstance_output.set(this, '');\n _YargsInstance_options.set(this, void 0);\n _YargsInstance_parentRequire.set(this, void 0);\n _YargsInstance_parserConfig.set(this, {});\n _YargsInstance_parseFn.set(this, null);\n _YargsInstance_parseContext.set(this, null);\n _YargsInstance_pkgs.set(this, {});\n _YargsInstance_preservedGroups.set(this, {});\n _YargsInstance_processArgs.set(this, void 0);\n _YargsInstance_recommendCommands.set(this, false);\n _YargsInstance_shim.set(this, void 0);\n _YargsInstance_strict.set(this, false);\n _YargsInstance_strictCommands.set(this, false);\n _YargsInstance_strictOptions.set(this, false);\n _YargsInstance_usage.set(this, void 0);\n _YargsInstance_usageConfig.set(this, {});\n _YargsInstance_versionOpt.set(this, null);\n _YargsInstance_validation.set(this, void 0);\n __classPrivateFieldSet(this, _YargsInstance_shim, shim, \"f\");\n __classPrivateFieldSet(this, _YargsInstance_processArgs, processArgs, \"f\");\n __classPrivateFieldSet(this, _YargsInstance_cwd, cwd, \"f\");\n __classPrivateFieldSet(this, _YargsInstance_parentRequire, parentRequire, \"f\");\n __classPrivateFieldSet(this, _YargsInstance_globalMiddleware, new GlobalMiddleware(this), \"f\");\n this.$0 = this[kGetDollarZero]();\n this[kReset]();\n __classPrivateFieldSet(this, _YargsInstance_command, __classPrivateFieldGet(this, _YargsInstance_command, \"f\"), \"f\");\n __classPrivateFieldSet(this, _YargsInstance_usage, __classPrivateFieldGet(this, _YargsInstance_usage, \"f\"), \"f\");\n __classPrivateFieldSet(this, _YargsInstance_validation, __classPrivateFieldGet(this, _YargsInstance_validation, \"f\"), \"f\");\n __classPrivateFieldSet(this, _YargsInstance_options, __classPrivateFieldGet(this, _YargsInstance_options, \"f\"), \"f\");\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\").showHiddenOpt = __classPrivateFieldGet(this, _YargsInstance_defaultShowHiddenOpt, \"f\");\n __classPrivateFieldSet(this, _YargsInstance_logger, this[kCreateLogger](), \"f\");\n }\n addHelpOpt(opt, msg) {\n const defaultHelpOpt = 'help';\n argsert('[string|boolean] [string]', [opt, msg], arguments.length);\n if (__classPrivateFieldGet(this, _YargsInstance_helpOpt, \"f\")) {\n this[kDeleteFromParserHintObject](__classPrivateFieldGet(this, _YargsInstance_helpOpt, \"f\"));\n __classPrivateFieldSet(this, _YargsInstance_helpOpt, null, \"f\");\n }\n if (opt === false && msg === undefined)\n return this;\n __classPrivateFieldSet(this, _YargsInstance_helpOpt, typeof opt === 'string' ? opt : defaultHelpOpt, \"f\");\n this.boolean(__classPrivateFieldGet(this, _YargsInstance_helpOpt, \"f\"));\n this.describe(__classPrivateFieldGet(this, _YargsInstance_helpOpt, \"f\"), msg || __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").deferY18nLookup('Show help'));\n return this;\n }\n help(opt, msg) {\n return this.addHelpOpt(opt, msg);\n }\n addShowHiddenOpt(opt, msg) {\n argsert('[string|boolean] [string]', [opt, msg], arguments.length);\n if (opt === false && msg === undefined)\n return this;\n const showHiddenOpt = typeof opt === 'string' ? opt : __classPrivateFieldGet(this, _YargsInstance_defaultShowHiddenOpt, \"f\");\n this.boolean(showHiddenOpt);\n this.describe(showHiddenOpt, msg || __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").deferY18nLookup('Show hidden options'));\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\").showHiddenOpt = showHiddenOpt;\n return this;\n }\n showHidden(opt, msg) {\n return this.addShowHiddenOpt(opt, msg);\n }\n alias(key, value) {\n argsert('<object|string|array> [string|array]', [key, value], arguments.length);\n this[kPopulateParserHintArrayDictionary](this.alias.bind(this), 'alias', key, value);\n return this;\n }\n array(keys) {\n argsert('<array|string>', [keys], arguments.length);\n this[kPopulateParserHintArray]('array', keys);\n this[kTrackManuallySetKeys](keys);\n return this;\n }\n boolean(keys) {\n argsert('<array|string>', [keys], arguments.length);\n this[kPopulateParserHintArray]('boolean', keys);\n this[kTrackManuallySetKeys](keys);\n return this;\n }\n check(f, global) {\n argsert('<function> [boolean]', [f, global], arguments.length);\n this.middleware((argv, _yargs) => {\n return maybeAsyncResult(() => {\n return f(argv, _yargs.getOptions());\n }, (result) => {\n if (!result) {\n __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").fail(__classPrivateFieldGet(this, _YargsInstance_shim, \"f\").y18n.__('Argument check failed: %s', f.toString()));\n }\n else if (typeof result === 'string' || result instanceof Error) {\n __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").fail(result.toString(), result);\n }\n return argv;\n }, (err) => {\n __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").fail(err.message ? err.message : err.toString(), err);\n return argv;\n });\n }, false, global);\n return this;\n }\n choices(key, value) {\n argsert('<object|string|array> [string|array]', [key, value], arguments.length);\n this[kPopulateParserHintArrayDictionary](this.choices.bind(this), 'choices', key, value);\n return this;\n }\n coerce(keys, value) {\n argsert('<object|string|array> [function]', [keys, value], arguments.length);\n if (Array.isArray(keys)) {\n if (!value) {\n throw new YError('coerce callback must be provided');\n }\n for (const key of keys) {\n this.coerce(key, value);\n }\n return this;\n }\n else if (typeof keys === 'object') {\n for (const key of Object.keys(keys)) {\n this.coerce(key, keys[key]);\n }\n return this;\n }\n if (!value) {\n throw new YError('coerce callback must be provided');\n }\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\").key[keys] = true;\n __classPrivateFieldGet(this, _YargsInstance_globalMiddleware, \"f\").addCoerceMiddleware((argv, yargs) => {\n let aliases;\n const shouldCoerce = Object.prototype.hasOwnProperty.call(argv, keys);\n if (!shouldCoerce) {\n return argv;\n }\n return maybeAsyncResult(() => {\n aliases = yargs.getAliases();\n return value(argv[keys]);\n }, (result) => {\n argv[keys] = result;\n const stripAliased = yargs\n .getInternalMethods()\n .getParserConfiguration()['strip-aliased'];\n if (aliases[keys] && stripAliased !== true) {\n for (const alias of aliases[keys]) {\n argv[alias] = result;\n }\n }\n return argv;\n }, (err) => {\n throw new YError(err.message);\n });\n }, keys);\n return this;\n }\n conflicts(key1, key2) {\n argsert('<string|object> [string|array]', [key1, key2], arguments.length);\n __classPrivateFieldGet(this, _YargsInstance_validation, \"f\").conflicts(key1, key2);\n return this;\n }\n config(key = 'config', msg, parseFn) {\n argsert('[object|string] [string|function] [function]', [key, msg, parseFn], arguments.length);\n if (typeof key === 'object' && !Array.isArray(key)) {\n key = applyExtends(key, __classPrivateFieldGet(this, _YargsInstance_cwd, \"f\"), this[kGetParserConfiguration]()['deep-merge-config'] || false, __classPrivateFieldGet(this, _YargsInstance_shim, \"f\"));\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\").configObjects = (__classPrivateFieldGet(this, _YargsInstance_options, \"f\").configObjects || []).concat(key);\n return this;\n }\n if (typeof msg === 'function') {\n parseFn = msg;\n msg = undefined;\n }\n this.describe(key, msg || __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").deferY18nLookup('Path to JSON config file'));\n (Array.isArray(key) ? key : [key]).forEach(k => {\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\").config[k] = parseFn || true;\n });\n return this;\n }\n completion(cmd, desc, fn) {\n argsert('[string] [string|boolean|function] [function]', [cmd, desc, fn], arguments.length);\n if (typeof desc === 'function') {\n fn = desc;\n desc = undefined;\n }\n __classPrivateFieldSet(this, _YargsInstance_completionCommand, cmd || __classPrivateFieldGet(this, _YargsInstance_completionCommand, \"f\") || 'completion', \"f\");\n if (!desc && desc !== false) {\n desc = 'generate completion script';\n }\n this.command(__classPrivateFieldGet(this, _YargsInstance_completionCommand, \"f\"), desc);\n if (fn)\n __classPrivateFieldGet(this, _YargsInstance_completion, \"f\").registerFunction(fn);\n return this;\n }\n command(cmd, description, builder, handler, middlewares, deprecated) {\n argsert('<string|array|object> [string|boolean] [function|object] [function] [array] [boolean|string]', [cmd, description, builder, handler, middlewares, deprecated], arguments.length);\n __classPrivateFieldGet(this, _YargsInstance_command, \"f\").addHandler(cmd, description, builder, handler, middlewares, deprecated);\n return this;\n }\n commands(cmd, description, builder, handler, middlewares, deprecated) {\n return this.command(cmd, description, builder, handler, middlewares, deprecated);\n }\n commandDir(dir, opts) {\n argsert('<string> [object]', [dir, opts], arguments.length);\n const req = __classPrivateFieldGet(this, _YargsInstance_parentRequire, \"f\") || __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").require;\n __classPrivateFieldGet(this, _YargsInstance_command, \"f\").addDirectory(dir, req, __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").getCallerFile(), opts);\n return this;\n }\n count(keys) {\n argsert('<array|string>', [keys], arguments.length);\n this[kPopulateParserHintArray]('count', keys);\n this[kTrackManuallySetKeys](keys);\n return this;\n }\n default(key, value, defaultDescription) {\n argsert('<object|string|array> [*] [string]', [key, value, defaultDescription], arguments.length);\n if (defaultDescription) {\n assertSingleKey(key, __classPrivateFieldGet(this, _YargsInstance_shim, \"f\"));\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\").defaultDescription[key] = defaultDescription;\n }\n if (typeof value === 'function') {\n assertSingleKey(key, __classPrivateFieldGet(this, _YargsInstance_shim, \"f\"));\n if (!__classPrivateFieldGet(this, _YargsInstance_options, \"f\").defaultDescription[key])\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\").defaultDescription[key] =\n __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").functionDescription(value);\n value = value.call();\n }\n this[kPopulateParserHintSingleValueDictionary](this.default.bind(this), 'default', key, value);\n return this;\n }\n defaults(key, value, defaultDescription) {\n return this.default(key, value, defaultDescription);\n }\n demandCommand(min = 1, max, minMsg, maxMsg) {\n argsert('[number] [number|string] [string|null|undefined] [string|null|undefined]', [min, max, minMsg, maxMsg], arguments.length);\n if (typeof max !== 'number') {\n minMsg = max;\n max = Infinity;\n }\n this.global('_', false);\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\").demandedCommands._ = {\n min,\n max,\n minMsg,\n maxMsg,\n };\n return this;\n }\n demand(keys, max, msg) {\n if (Array.isArray(max)) {\n max.forEach(key => {\n assertNotStrictEqual(msg, true, __classPrivateFieldGet(this, _YargsInstance_shim, \"f\"));\n this.demandOption(key, msg);\n });\n max = Infinity;\n }\n else if (typeof max !== 'number') {\n msg = max;\n max = Infinity;\n }\n if (typeof keys === 'number') {\n assertNotStrictEqual(msg, true, __classPrivateFieldGet(this, _YargsInstance_shim, \"f\"));\n this.demandCommand(keys, max, msg, msg);\n }\n else if (Array.isArray(keys)) {\n keys.forEach(key => {\n assertNotStrictEqual(msg, true, __classPrivateFieldGet(this, _YargsInstance_shim, \"f\"));\n this.demandOption(key, msg);\n });\n }\n else {\n if (typeof msg === 'string') {\n this.demandOption(keys, msg);\n }\n else if (msg === true || typeof msg === 'undefined') {\n this.demandOption(keys);\n }\n }\n return this;\n }\n demandOption(keys, msg) {\n argsert('<object|string|array> [string]', [keys, msg], arguments.length);\n this[kPopulateParserHintSingleValueDictionary](this.demandOption.bind(this), 'demandedOptions', keys, msg);\n return this;\n }\n deprecateOption(option, message) {\n argsert('<string> [string|boolean]', [option, message], arguments.length);\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\").deprecatedOptions[option] = message;\n return this;\n }\n describe(keys, description) {\n argsert('<object|string|array> [string]', [keys, description], arguments.length);\n this[kSetKey](keys, true);\n __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").describe(keys, description);\n return this;\n }\n detectLocale(detect) {\n argsert('<boolean>', [detect], arguments.length);\n __classPrivateFieldSet(this, _YargsInstance_detectLocale, detect, \"f\");\n return this;\n }\n env(prefix) {\n argsert('[string|boolean]', [prefix], arguments.length);\n if (prefix === false)\n delete __classPrivateFieldGet(this, _YargsInstance_options, \"f\").envPrefix;\n else\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\").envPrefix = prefix || '';\n return this;\n }\n epilogue(msg) {\n argsert('<string>', [msg], arguments.length);\n __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").epilog(msg);\n return this;\n }\n epilog(msg) {\n return this.epilogue(msg);\n }\n example(cmd, description) {\n argsert('<string|array> [string]', [cmd, description], arguments.length);\n if (Array.isArray(cmd)) {\n cmd.forEach(exampleParams => this.example(...exampleParams));\n }\n else {\n __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").example(cmd, description);\n }\n return this;\n }\n exit(code, err) {\n __classPrivateFieldSet(this, _YargsInstance_hasOutput, true, \"f\");\n __classPrivateFieldSet(this, _YargsInstance_exitError, err, \"f\");\n if (__classPrivateFieldGet(this, _YargsInstance_exitProcess, \"f\"))\n __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").process.exit(code);\n }\n exitProcess(enabled = true) {\n argsert('[boolean]', [enabled], arguments.length);\n __classPrivateFieldSet(this, _YargsInstance_exitProcess, enabled, \"f\");\n return this;\n }\n fail(f) {\n argsert('<function|boolean>', [f], arguments.length);\n if (typeof f === 'boolean' && f !== false) {\n throw new YError(\"Invalid first argument. Expected function or boolean 'false'\");\n }\n __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").failFn(f);\n return this;\n }\n getAliases() {\n return this.parsed ? this.parsed.aliases : {};\n }\n async getCompletion(args, done) {\n argsert('<array> [function]', [args, done], arguments.length);\n if (!done) {\n return new Promise((resolve, reject) => {\n __classPrivateFieldGet(this, _YargsInstance_completion, \"f\").getCompletion(args, (err, completions) => {\n if (err)\n reject(err);\n else\n resolve(completions);\n });\n });\n }\n else {\n return __classPrivateFieldGet(this, _YargsInstance_completion, \"f\").getCompletion(args, done);\n }\n }\n getDemandedOptions() {\n argsert([], 0);\n return __classPrivateFieldGet(this, _YargsInstance_options, \"f\").demandedOptions;\n }\n getDemandedCommands() {\n argsert([], 0);\n return __classPrivateFieldGet(this, _YargsInstance_options, \"f\").demandedCommands;\n }\n getDeprecatedOptions() {\n argsert([], 0);\n return __classPrivateFieldGet(this, _YargsInstance_options, \"f\").deprecatedOptions;\n }\n getDetectLocale() {\n return __classPrivateFieldGet(this, _YargsInstance_detectLocale, \"f\");\n }\n getExitProcess() {\n return __classPrivateFieldGet(this, _YargsInstance_exitProcess, \"f\");\n }\n getGroups() {\n return Object.assign({}, __classPrivateFieldGet(this, _YargsInstance_groups, \"f\"), __classPrivateFieldGet(this, _YargsInstance_preservedGroups, \"f\"));\n }\n getHelp() {\n __classPrivateFieldSet(this, _YargsInstance_hasOutput, true, \"f\");\n if (!__classPrivateFieldGet(this, _YargsInstance_usage, \"f\").hasCachedHelpMessage()) {\n if (!this.parsed) {\n const parse = this[kRunYargsParserAndExecuteCommands](__classPrivateFieldGet(this, _YargsInstance_processArgs, \"f\"), undefined, undefined, 0, true);\n if (isPromise(parse)) {\n return parse.then(() => {\n return __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").help();\n });\n }\n }\n const builderResponse = __classPrivateFieldGet(this, _YargsInstance_command, \"f\").runDefaultBuilderOn(this);\n if (isPromise(builderResponse)) {\n return builderResponse.then(() => {\n return __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").help();\n });\n }\n }\n return Promise.resolve(__classPrivateFieldGet(this, _YargsInstance_usage, \"f\").help());\n }\n getOptions() {\n return __classPrivateFieldGet(this, _YargsInstance_options, \"f\");\n }\n getStrict() {\n return __classPrivateFieldGet(this, _YargsInstance_strict, \"f\");\n }\n getStrictCommands() {\n return __classPrivateFieldGet(this, _YargsInstance_strictCommands, \"f\");\n }\n getStrictOptions() {\n return __classPrivateFieldGet(this, _YargsInstance_strictOptions, \"f\");\n }\n global(globals, global) {\n argsert('<string|array> [boolean]', [globals, global], arguments.length);\n globals = [].concat(globals);\n if (global !== false) {\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\").local = __classPrivateFieldGet(this, _YargsInstance_options, \"f\").local.filter(l => globals.indexOf(l) === -1);\n }\n else {\n globals.forEach(g => {\n if (!__classPrivateFieldGet(this, _YargsInstance_options, \"f\").local.includes(g))\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\").local.push(g);\n });\n }\n return this;\n }\n group(opts, groupName) {\n argsert('<string|array> <string>', [opts, groupName], arguments.length);\n const existing = __classPrivateFieldGet(this, _YargsInstance_preservedGroups, \"f\")[groupName] || __classPrivateFieldGet(this, _YargsInstance_groups, \"f\")[groupName];\n if (__classPrivateFieldGet(this, _YargsInstance_preservedGroups, \"f\")[groupName]) {\n delete __classPrivateFieldGet(this, _YargsInstance_preservedGroups, \"f\")[groupName];\n }\n const seen = {};\n __classPrivateFieldGet(this, _YargsInstance_groups, \"f\")[groupName] = (existing || []).concat(opts).filter(key => {\n if (seen[key])\n return false;\n return (seen[key] = true);\n });\n return this;\n }\n hide(key) {\n argsert('<string>', [key], arguments.length);\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\").hiddenOptions.push(key);\n return this;\n }\n implies(key, value) {\n argsert('<string|object> [number|string|array]', [key, value], arguments.length);\n __classPrivateFieldGet(this, _YargsInstance_validation, \"f\").implies(key, value);\n return this;\n }\n locale(locale) {\n argsert('[string]', [locale], arguments.length);\n if (locale === undefined) {\n this[kGuessLocale]();\n return __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").y18n.getLocale();\n }\n __classPrivateFieldSet(this, _YargsInstance_detectLocale, false, \"f\");\n __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").y18n.setLocale(locale);\n return this;\n }\n middleware(callback, applyBeforeValidation, global) {\n return __classPrivateFieldGet(this, _YargsInstance_globalMiddleware, \"f\").addMiddleware(callback, !!applyBeforeValidation, global);\n }\n nargs(key, value) {\n argsert('<string|object|array> [number]', [key, value], arguments.length);\n this[kPopulateParserHintSingleValueDictionary](this.nargs.bind(this), 'narg', key, value);\n return this;\n }\n normalize(keys) {\n argsert('<array|string>', [keys], arguments.length);\n this[kPopulateParserHintArray]('normalize', keys);\n return this;\n }\n number(keys) {\n argsert('<array|string>', [keys], arguments.length);\n this[kPopulateParserHintArray]('number', keys);\n this[kTrackManuallySetKeys](keys);\n return this;\n }\n option(key, opt) {\n argsert('<string|object> [object]', [key, opt], arguments.length);\n if (typeof key === 'object') {\n Object.keys(key).forEach(k => {\n this.options(k, key[k]);\n });\n }\n else {\n if (typeof opt !== 'object') {\n opt = {};\n }\n this[kTrackManuallySetKeys](key);\n if (__classPrivateFieldGet(this, _YargsInstance_versionOpt, \"f\") && (key === 'version' || (opt === null || opt === void 0 ? void 0 : opt.alias) === 'version')) {\n this[kEmitWarning]([\n '\"version\" is a reserved word.',\n 'Please do one of the following:',\n '- Disable version with `yargs.version(false)` if using \"version\" as an option',\n '- Use the built-in `yargs.version` method instead (if applicable)',\n '- Use a different option key',\n 'https://yargs.js.org/docs/#api-reference-version',\n ].join('\\n'), undefined, 'versionWarning');\n }\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\").key[key] = true;\n if (opt.alias)\n this.alias(key, opt.alias);\n const deprecate = opt.deprecate || opt.deprecated;\n if (deprecate) {\n this.deprecateOption(key, deprecate);\n }\n const demand = opt.demand || opt.required || opt.require;\n if (demand) {\n this.demand(key, demand);\n }\n if (opt.demandOption) {\n this.demandOption(key, typeof opt.demandOption === 'string' ? opt.demandOption : undefined);\n }\n if (opt.conflicts) {\n this.conflicts(key, opt.conflicts);\n }\n if ('default' in opt) {\n this.default(key, opt.default);\n }\n if (opt.implies !== undefined) {\n this.implies(key, opt.implies);\n }\n if (opt.nargs !== undefined) {\n this.nargs(key, opt.nargs);\n }\n if (opt.config) {\n this.config(key, opt.configParser);\n }\n if (opt.normalize) {\n this.normalize(key);\n }\n if (opt.choices) {\n this.choices(key, opt.choices);\n }\n if (opt.coerce) {\n this.coerce(key, opt.coerce);\n }\n if (opt.group) {\n this.group(key, opt.group);\n }\n if (opt.boolean || opt.type === 'boolean') {\n this.boolean(key);\n if (opt.alias)\n this.boolean(opt.alias);\n }\n if (opt.array || opt.type === 'array') {\n this.array(key);\n if (opt.alias)\n this.array(opt.alias);\n }\n if (opt.number || opt.type === 'number') {\n this.number(key);\n if (opt.alias)\n this.number(opt.alias);\n }\n if (opt.string || opt.type === 'string') {\n this.string(key);\n if (opt.alias)\n this.string(opt.alias);\n }\n if (opt.count || opt.type === 'count') {\n this.count(key);\n }\n if (typeof opt.global === 'boolean') {\n this.global(key, opt.global);\n }\n if (opt.defaultDescription) {\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\").defaultDescription[key] = opt.defaultDescription;\n }\n if (opt.skipValidation) {\n this.skipValidation(key);\n }\n const desc = opt.describe || opt.description || opt.desc;\n const descriptions = __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").getDescriptions();\n if (!Object.prototype.hasOwnProperty.call(descriptions, key) ||\n typeof desc === 'string') {\n this.describe(key, desc);\n }\n if (opt.hidden) {\n this.hide(key);\n }\n if (opt.requiresArg) {\n this.requiresArg(key);\n }\n }\n return this;\n }\n options(key, opt) {\n return this.option(key, opt);\n }\n parse(args, shortCircuit, _parseFn) {\n argsert('[string|array] [function|boolean|object] [function]', [args, shortCircuit, _parseFn], arguments.length);\n this[kFreeze]();\n if (typeof args === 'undefined') {\n args = __classPrivateFieldGet(this, _YargsInstance_processArgs, \"f\");\n }\n if (typeof shortCircuit === 'object') {\n __classPrivateFieldSet(this, _YargsInstance_parseContext, shortCircuit, \"f\");\n shortCircuit = _parseFn;\n }\n if (typeof shortCircuit === 'function') {\n __classPrivateFieldSet(this, _YargsInstance_parseFn, shortCircuit, \"f\");\n shortCircuit = false;\n }\n if (!shortCircuit)\n __classPrivateFieldSet(this, _YargsInstance_processArgs, args, \"f\");\n if (__classPrivateFieldGet(this, _YargsInstance_parseFn, \"f\"))\n __classPrivateFieldSet(this, _YargsInstance_exitProcess, false, \"f\");\n const parsed = this[kRunYargsParserAndExecuteCommands](args, !!shortCircuit);\n const tmpParsed = this.parsed;\n __classPrivateFieldGet(this, _YargsInstance_completion, \"f\").setParsed(this.parsed);\n if (isPromise(parsed)) {\n return parsed\n .then(argv => {\n if (__classPrivateFieldGet(this, _YargsInstance_parseFn, \"f\"))\n __classPrivateFieldGet(this, _YargsInstance_parseFn, \"f\").call(this, __classPrivateFieldGet(this, _YargsInstance_exitError, \"f\"), argv, __classPrivateFieldGet(this, _YargsInstance_output, \"f\"));\n return argv;\n })\n .catch(err => {\n if (__classPrivateFieldGet(this, _YargsInstance_parseFn, \"f\")) {\n __classPrivateFieldGet(this, _YargsInstance_parseFn, \"f\")(err, this.parsed.argv, __classPrivateFieldGet(this, _YargsInstance_output, \"f\"));\n }\n throw err;\n })\n .finally(() => {\n this[kUnfreeze]();\n this.parsed = tmpParsed;\n });\n }\n else {\n if (__classPrivateFieldGet(this, _YargsInstance_parseFn, \"f\"))\n __classPrivateFieldGet(this, _YargsInstance_parseFn, \"f\").call(this, __classPrivateFieldGet(this, _YargsInstance_exitError, \"f\"), parsed, __classPrivateFieldGet(this, _YargsInstance_output, \"f\"));\n this[kUnfreeze]();\n this.parsed = tmpParsed;\n }\n return parsed;\n }\n parseAsync(args, shortCircuit, _parseFn) {\n const maybePromise = this.parse(args, shortCircuit, _parseFn);\n return !isPromise(maybePromise)\n ? Promise.resolve(maybePromise)\n : maybePromise;\n }\n parseSync(args, shortCircuit, _parseFn) {\n const maybePromise = this.parse(args, shortCircuit, _parseFn);\n if (isPromise(maybePromise)) {\n throw new YError('.parseSync() must not be used with asynchronous builders, handlers, or middleware');\n }\n return maybePromise;\n }\n parserConfiguration(config) {\n argsert('<object>', [config], arguments.length);\n __classPrivateFieldSet(this, _YargsInstance_parserConfig, config, \"f\");\n return this;\n }\n pkgConf(key, rootPath) {\n argsert('<string> [string]', [key, rootPath], arguments.length);\n let conf = null;\n const obj = this[kPkgUp](rootPath || __classPrivateFieldGet(this, _YargsInstance_cwd, \"f\"));\n if (obj[key] && typeof obj[key] === 'object') {\n conf = applyExtends(obj[key], rootPath || __classPrivateFieldGet(this, _YargsInstance_cwd, \"f\"), this[kGetParserConfiguration]()['deep-merge-config'] || false, __classPrivateFieldGet(this, _YargsInstance_shim, \"f\"));\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\").configObjects = (__classPrivateFieldGet(this, _YargsInstance_options, \"f\").configObjects || []).concat(conf);\n }\n return this;\n }\n positional(key, opts) {\n argsert('<string> <object>', [key, opts], arguments.length);\n const supportedOpts = [\n 'default',\n 'defaultDescription',\n 'implies',\n 'normalize',\n 'choices',\n 'conflicts',\n 'coerce',\n 'type',\n 'describe',\n 'desc',\n 'description',\n 'alias',\n ];\n opts = objFilter(opts, (k, v) => {\n if (k === 'type' && !['string', 'number', 'boolean'].includes(v))\n return false;\n return supportedOpts.includes(k);\n });\n const fullCommand = __classPrivateFieldGet(this, _YargsInstance_context, \"f\").fullCommands[__classPrivateFieldGet(this, _YargsInstance_context, \"f\").fullCommands.length - 1];\n const parseOptions = fullCommand\n ? __classPrivateFieldGet(this, _YargsInstance_command, \"f\").cmdToParseOptions(fullCommand)\n : {\n array: [],\n alias: {},\n default: {},\n demand: {},\n };\n objectKeys(parseOptions).forEach(pk => {\n const parseOption = parseOptions[pk];\n if (Array.isArray(parseOption)) {\n if (parseOption.indexOf(key) !== -1)\n opts[pk] = true;\n }\n else {\n if (parseOption[key] && !(pk in opts))\n opts[pk] = parseOption[key];\n }\n });\n this.group(key, __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").getPositionalGroupName());\n return this.option(key, opts);\n }\n recommendCommands(recommend = true) {\n argsert('[boolean]', [recommend], arguments.length);\n __classPrivateFieldSet(this, _YargsInstance_recommendCommands, recommend, \"f\");\n return this;\n }\n required(keys, max, msg) {\n return this.demand(keys, max, msg);\n }\n require(keys, max, msg) {\n return this.demand(keys, max, msg);\n }\n requiresArg(keys) {\n argsert('<array|string|object> [number]', [keys], arguments.length);\n if (typeof keys === 'string' && __classPrivateFieldGet(this, _YargsInstance_options, \"f\").narg[keys]) {\n return this;\n }\n else {\n this[kPopulateParserHintSingleValueDictionary](this.requiresArg.bind(this), 'narg', keys, NaN);\n }\n return this;\n }\n showCompletionScript($0, cmd) {\n argsert('[string] [string]', [$0, cmd], arguments.length);\n $0 = $0 || this.$0;\n __classPrivateFieldGet(this, _YargsInstance_logger, \"f\").log(__classPrivateFieldGet(this, _YargsInstance_completion, \"f\").generateCompletionScript($0, cmd || __classPrivateFieldGet(this, _YargsInstance_completionCommand, \"f\") || 'completion'));\n return this;\n }\n showHelp(level) {\n argsert('[string|function]', [level], arguments.length);\n __classPrivateFieldSet(this, _YargsInstance_hasOutput, true, \"f\");\n if (!__classPrivateFieldGet(this, _YargsInstance_usage, \"f\").hasCachedHelpMessage()) {\n if (!this.parsed) {\n const parse = this[kRunYargsParserAndExecuteCommands](__classPrivateFieldGet(this, _YargsInstance_processArgs, \"f\"), undefined, undefined, 0, true);\n if (isPromise(parse)) {\n parse.then(() => {\n __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").showHelp(level);\n });\n return this;\n }\n }\n const builderResponse = __classPrivateFieldGet(this, _YargsInstance_command, \"f\").runDefaultBuilderOn(this);\n if (isPromise(builderResponse)) {\n builderResponse.then(() => {\n __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").showHelp(level);\n });\n return this;\n }\n }\n __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").showHelp(level);\n return this;\n }\n scriptName(scriptName) {\n this.customScriptName = true;\n this.$0 = scriptName;\n return this;\n }\n showHelpOnFail(enabled, message) {\n argsert('[boolean|string] [string]', [enabled, message], arguments.length);\n __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").showHelpOnFail(enabled, message);\n return this;\n }\n showVersion(level) {\n argsert('[string|function]', [level], arguments.length);\n __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").showVersion(level);\n return this;\n }\n skipValidation(keys) {\n argsert('<array|string>', [keys], arguments.length);\n this[kPopulateParserHintArray]('skipValidation', keys);\n return this;\n }\n strict(enabled) {\n argsert('[boolean]', [enabled], arguments.length);\n __classPrivateFieldSet(this, _YargsInstance_strict, enabled !== false, \"f\");\n return this;\n }\n strictCommands(enabled) {\n argsert('[boolean]', [enabled], arguments.length);\n __classPrivateFieldSet(this, _YargsInstance_strictCommands, enabled !== false, \"f\");\n return this;\n }\n strictOptions(enabled) {\n argsert('[boolean]', [enabled], arguments.length);\n __classPrivateFieldSet(this, _YargsInstance_strictOptions, enabled !== false, \"f\");\n return this;\n }\n string(keys) {\n argsert('<array|string>', [keys], arguments.length);\n this[kPopulateParserHintArray]('string', keys);\n this[kTrackManuallySetKeys](keys);\n return this;\n }\n terminalWidth() {\n argsert([], 0);\n return __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").process.stdColumns;\n }\n updateLocale(obj) {\n return this.updateStrings(obj);\n }\n updateStrings(obj) {\n argsert('<object>', [obj], arguments.length);\n __classPrivateFieldSet(this, _YargsInstance_detectLocale, false, \"f\");\n __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").y18n.updateLocale(obj);\n return this;\n }\n usage(msg, description, builder, handler) {\n argsert('<string|null|undefined> [string|boolean] [function|object] [function]', [msg, description, builder, handler], arguments.length);\n if (description !== undefined) {\n assertNotStrictEqual(msg, null, __classPrivateFieldGet(this, _YargsInstance_shim, \"f\"));\n if ((msg || '').match(/^\\$0( |$)/)) {\n return this.command(msg, description, builder, handler);\n }\n else {\n throw new YError('.usage() description must start with $0 if being used as alias for .command()');\n }\n }\n else {\n __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").usage(msg);\n return this;\n }\n }\n usageConfiguration(config) {\n argsert('<object>', [config], arguments.length);\n __classPrivateFieldSet(this, _YargsInstance_usageConfig, config, \"f\");\n return this;\n }\n version(opt, msg, ver) {\n const defaultVersionOpt = 'version';\n argsert('[boolean|string] [string] [string]', [opt, msg, ver], arguments.length);\n if (__classPrivateFieldGet(this, _YargsInstance_versionOpt, \"f\")) {\n this[kDeleteFromParserHintObject](__classPrivateFieldGet(this, _YargsInstance_versionOpt, \"f\"));\n __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").version(undefined);\n __classPrivateFieldSet(this, _YargsInstance_versionOpt, null, \"f\");\n }\n if (arguments.length === 0) {\n ver = this[kGuessVersion]();\n opt = defaultVersionOpt;\n }\n else if (arguments.length === 1) {\n if (opt === false) {\n return this;\n }\n ver = opt;\n opt = defaultVersionOpt;\n }\n else if (arguments.length === 2) {\n ver = msg;\n msg = undefined;\n }\n __classPrivateFieldSet(this, _YargsInstance_versionOpt, typeof opt === 'string' ? opt : defaultVersionOpt, \"f\");\n msg = msg || __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").deferY18nLookup('Show version number');\n __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").version(ver || undefined);\n this.boolean(__classPrivateFieldGet(this, _YargsInstance_versionOpt, \"f\"));\n this.describe(__classPrivateFieldGet(this, _YargsInstance_versionOpt, \"f\"), msg);\n return this;\n }\n wrap(cols) {\n argsert('<number|null|undefined>', [cols], arguments.length);\n __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").wrap(cols);\n return this;\n }\n [(_YargsInstance_command = new WeakMap(), _YargsInstance_cwd = new WeakMap(), _YargsInstance_context = new WeakMap(), _YargsInstance_completion = new WeakMap(), _YargsInstance_completionCommand = new WeakMap(), _YargsInstance_defaultShowHiddenOpt = new WeakMap(), _YargsInstance_exitError = new WeakMap(), _YargsInstance_detectLocale = new WeakMap(), _YargsInstance_emittedWarnings = new WeakMap(), _YargsInstance_exitProcess = new WeakMap(), _YargsInstance_frozens = new WeakMap(), _YargsInstance_globalMiddleware = new WeakMap(), _YargsInstance_groups = new WeakMap(), _YargsInstance_hasOutput = new WeakMap(), _YargsInstance_helpOpt = new WeakMap(), _YargsInstance_isGlobalContext = new WeakMap(), _YargsInstance_logger = new WeakMap(), _YargsInstance_output = new WeakMap(), _YargsInstance_options = new WeakMap(), _YargsInstance_parentRequire = new WeakMap(), _YargsInstance_parserConfig = new WeakMap(), _YargsInstance_parseFn = new WeakMap(), _YargsInstance_parseContext = new WeakMap(), _YargsInstance_pkgs = new WeakMap(), _YargsInstance_preservedGroups = new WeakMap(), _YargsInstance_processArgs = new WeakMap(), _YargsInstance_recommendCommands = new WeakMap(), _YargsInstance_shim = new WeakMap(), _YargsInstance_strict = new WeakMap(), _YargsInstance_strictCommands = new WeakMap(), _YargsInstance_strictOptions = new WeakMap(), _YargsInstance_usage = new WeakMap(), _YargsInstance_usageConfig = new WeakMap(), _YargsInstance_versionOpt = new WeakMap(), _YargsInstance_validation = new WeakMap(), kCopyDoubleDash)](argv) {\n if (!argv._ || !argv['--'])\n return argv;\n argv._.push.apply(argv._, argv['--']);\n try {\n delete argv['--'];\n }\n catch (_err) { }\n return argv;\n }\n [kCreateLogger]() {\n return {\n log: (...args) => {\n if (!this[kHasParseCallback]())\n console.log(...args);\n __classPrivateFieldSet(this, _YargsInstance_hasOutput, true, \"f\");\n if (__classPrivateFieldGet(this, _YargsInstance_output, \"f\").length)\n __classPrivateFieldSet(this, _YargsInstance_output, __classPrivateFieldGet(this, _YargsInstance_output, \"f\") + '\\n', \"f\");\n __classPrivateFieldSet(this, _YargsInstance_output, __classPrivateFieldGet(this, _YargsInstance_output, \"f\") + args.join(' '), \"f\");\n },\n error: (...args) => {\n if (!this[kHasParseCallback]())\n console.error(...args);\n __classPrivateFieldSet(this, _YargsInstance_hasOutput, true, \"f\");\n if (__classPrivateFieldGet(this, _YargsInstance_output, \"f\").length)\n __classPrivateFieldSet(this, _YargsInstance_output, __classPrivateFieldGet(this, _YargsInstance_output, \"f\") + '\\n', \"f\");\n __classPrivateFieldSet(this, _YargsInstance_output, __classPrivateFieldGet(this, _YargsInstance_output, \"f\") + args.join(' '), \"f\");\n },\n };\n }\n [kDeleteFromParserHintObject](optionKey) {\n objectKeys(__classPrivateFieldGet(this, _YargsInstance_options, \"f\")).forEach((hintKey) => {\n if (((key) => key === 'configObjects')(hintKey))\n return;\n const hint = __classPrivateFieldGet(this, _YargsInstance_options, \"f\")[hintKey];\n if (Array.isArray(hint)) {\n if (hint.includes(optionKey))\n hint.splice(hint.indexOf(optionKey), 1);\n }\n else if (typeof hint === 'object') {\n delete hint[optionKey];\n }\n });\n delete __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").getDescriptions()[optionKey];\n }\n [kEmitWarning](warning, type, deduplicationId) {\n if (!__classPrivateFieldGet(this, _YargsInstance_emittedWarnings, \"f\")[deduplicationId]) {\n __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").process.emitWarning(warning, type);\n __classPrivateFieldGet(this, _YargsInstance_emittedWarnings, \"f\")[deduplicationId] = true;\n }\n }\n [kFreeze]() {\n __classPrivateFieldGet(this, _YargsInstance_frozens, \"f\").push({\n options: __classPrivateFieldGet(this, _YargsInstance_options, \"f\"),\n configObjects: __classPrivateFieldGet(this, _YargsInstance_options, \"f\").configObjects.slice(0),\n exitProcess: __classPrivateFieldGet(this, _YargsInstance_exitProcess, \"f\"),\n groups: __classPrivateFieldGet(this, _YargsInstance_groups, \"f\"),\n strict: __classPrivateFieldGet(this, _YargsInstance_strict, \"f\"),\n strictCommands: __classPrivateFieldGet(this, _YargsInstance_strictCommands, \"f\"),\n strictOptions: __classPrivateFieldGet(this, _YargsInstance_strictOptions, \"f\"),\n completionCommand: __classPrivateFieldGet(this, _YargsInstance_completionCommand, \"f\"),\n output: __classPrivateFieldGet(this, _YargsInstance_output, \"f\"),\n exitError: __classPrivateFieldGet(this, _YargsInstance_exitError, \"f\"),\n hasOutput: __classPrivateFieldGet(this, _YargsInstance_hasOutput, \"f\"),\n parsed: this.parsed,\n parseFn: __classPrivateFieldGet(this, _YargsInstance_parseFn, \"f\"),\n parseContext: __classPrivateFieldGet(this, _YargsInstance_parseContext, \"f\"),\n });\n __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").freeze();\n __classPrivateFieldGet(this, _YargsInstance_validation, \"f\").freeze();\n __classPrivateFieldGet(this, _YargsInstance_command, \"f\").freeze();\n __classPrivateFieldGet(this, _YargsInstance_globalMiddleware, \"f\").freeze();\n }\n [kGetDollarZero]() {\n let $0 = '';\n let default$0;\n if (/\\b(node|iojs|electron)(\\.exe)?$/.test(__classPrivateFieldGet(this, _YargsInstance_shim, \"f\").process.argv()[0])) {\n default$0 = __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").process.argv().slice(1, 2);\n }\n else {\n default$0 = __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").process.argv().slice(0, 1);\n }\n $0 = default$0\n .map(x => {\n const b = this[kRebase](__classPrivateFieldGet(this, _YargsInstance_cwd, \"f\"), x);\n return x.match(/^(\\/|([a-zA-Z]:)?\\\\)/) && b.length < x.length ? b : x;\n })\n .join(' ')\n .trim();\n if (__classPrivateFieldGet(this, _YargsInstance_shim, \"f\").getEnv('_') &&\n __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").getProcessArgvBin() === __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").getEnv('_')) {\n $0 = __classPrivateFieldGet(this, _YargsInstance_shim, \"f\")\n .getEnv('_')\n .replace(`${__classPrivateFieldGet(this, _YargsInstance_shim, \"f\").path.dirname(__classPrivateFieldGet(this, _YargsInstance_shim, \"f\").process.execPath())}/`, '');\n }\n return $0;\n }\n [kGetParserConfiguration]() {\n return __classPrivateFieldGet(this, _YargsInstance_parserConfig, \"f\");\n }\n [kGetUsageConfiguration]() {\n return __classPrivateFieldGet(this, _YargsInstance_usageConfig, \"f\");\n }\n [kGuessLocale]() {\n if (!__classPrivateFieldGet(this, _YargsInstance_detectLocale, \"f\"))\n return;\n const locale = __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").getEnv('LC_ALL') ||\n __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").getEnv('LC_MESSAGES') ||\n __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").getEnv('LANG') ||\n __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").getEnv('LANGUAGE') ||\n 'en_US';\n this.locale(locale.replace(/[.:].*/, ''));\n }\n [kGuessVersion]() {\n const obj = this[kPkgUp]();\n return obj.version || 'unknown';\n }\n [kParsePositionalNumbers](argv) {\n const args = argv['--'] ? argv['--'] : argv._;\n for (let i = 0, arg; (arg = args[i]) !== undefined; i++) {\n if (__classPrivateFieldGet(this, _YargsInstance_shim, \"f\").Parser.looksLikeNumber(arg) &&\n Number.isSafeInteger(Math.floor(parseFloat(`${arg}`)))) {\n args[i] = Number(arg);\n }\n }\n return argv;\n }\n [kPkgUp](rootPath) {\n const npath = rootPath || '*';\n if (__classPrivateFieldGet(this, _YargsInstance_pkgs, \"f\")[npath])\n return __classPrivateFieldGet(this, _YargsInstance_pkgs, \"f\")[npath];\n let obj = {};\n try {\n let startDir = rootPath || __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").mainFilename;\n if (!rootPath && __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").path.extname(startDir)) {\n startDir = __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").path.dirname(startDir);\n }\n const pkgJsonPath = __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").findUp(startDir, (dir, names) => {\n if (names.includes('package.json')) {\n return 'package.json';\n }\n else {\n return undefined;\n }\n });\n assertNotStrictEqual(pkgJsonPath, undefined, __classPrivateFieldGet(this, _YargsInstance_shim, \"f\"));\n obj = JSON.parse(__classPrivateFieldGet(this, _YargsInstance_shim, \"f\").readFileSync(pkgJsonPath, 'utf8'));\n }\n catch (_noop) { }\n __classPrivateFieldGet(this, _YargsInstance_pkgs, \"f\")[npath] = obj || {};\n return __classPrivateFieldGet(this, _YargsInstance_pkgs, \"f\")[npath];\n }\n [kPopulateParserHintArray](type, keys) {\n keys = [].concat(keys);\n keys.forEach(key => {\n key = this[kSanitizeKey](key);\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\")[type].push(key);\n });\n }\n [kPopulateParserHintSingleValueDictionary](builder, type, key, value) {\n this[kPopulateParserHintDictionary](builder, type, key, value, (type, key, value) => {\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\")[type][key] = value;\n });\n }\n [kPopulateParserHintArrayDictionary](builder, type, key, value) {\n this[kPopulateParserHintDictionary](builder, type, key, value, (type, key, value) => {\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\")[type][key] = (__classPrivateFieldGet(this, _YargsInstance_options, \"f\")[type][key] || []).concat(value);\n });\n }\n [kPopulateParserHintDictionary](builder, type, key, value, singleKeyHandler) {\n if (Array.isArray(key)) {\n key.forEach(k => {\n builder(k, value);\n });\n }\n else if (((key) => typeof key === 'object')(key)) {\n for (const k of objectKeys(key)) {\n builder(k, key[k]);\n }\n }\n else {\n singleKeyHandler(type, this[kSanitizeKey](key), value);\n }\n }\n [kSanitizeKey](key) {\n if (key === '__proto__')\n return '___proto___';\n return key;\n }\n [kSetKey](key, set) {\n this[kPopulateParserHintSingleValueDictionary](this[kSetKey].bind(this), 'key', key, set);\n return this;\n }\n [kUnfreeze]() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;\n const frozen = __classPrivateFieldGet(this, _YargsInstance_frozens, \"f\").pop();\n assertNotStrictEqual(frozen, undefined, __classPrivateFieldGet(this, _YargsInstance_shim, \"f\"));\n let configObjects;\n (_a = this, _b = this, _c = this, _d = this, _e = this, _f = this, _g = this, _h = this, _j = this, _k = this, _l = this, _m = this, {\n options: ({ set value(_o) { __classPrivateFieldSet(_a, _YargsInstance_options, _o, \"f\"); } }).value,\n configObjects,\n exitProcess: ({ set value(_o) { __classPrivateFieldSet(_b, _YargsInstance_exitProcess, _o, \"f\"); } }).value,\n groups: ({ set value(_o) { __classPrivateFieldSet(_c, _YargsInstance_groups, _o, \"f\"); } }).value,\n output: ({ set value(_o) { __classPrivateFieldSet(_d, _YargsInstance_output, _o, \"f\"); } }).value,\n exitError: ({ set value(_o) { __classPrivateFieldSet(_e, _YargsInstance_exitError, _o, \"f\"); } }).value,\n hasOutput: ({ set value(_o) { __classPrivateFieldSet(_f, _YargsInstance_hasOutput, _o, \"f\"); } }).value,\n parsed: this.parsed,\n strict: ({ set value(_o) { __classPrivateFieldSet(_g, _YargsInstance_strict, _o, \"f\"); } }).value,\n strictCommands: ({ set value(_o) { __classPrivateFieldSet(_h, _YargsInstance_strictCommands, _o, \"f\"); } }).value,\n strictOptions: ({ set value(_o) { __classPrivateFieldSet(_j, _YargsInstance_strictOptions, _o, \"f\"); } }).value,\n completionCommand: ({ set value(_o) { __classPrivateFieldSet(_k, _YargsInstance_completionCommand, _o, \"f\"); } }).value,\n parseFn: ({ set value(_o) { __classPrivateFieldSet(_l, _YargsInstance_parseFn, _o, \"f\"); } }).value,\n parseContext: ({ set value(_o) { __classPrivateFieldSet(_m, _YargsInstance_parseContext, _o, \"f\"); } }).value,\n } = frozen);\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\").configObjects = configObjects;\n __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").unfreeze();\n __classPrivateFieldGet(this, _YargsInstance_validation, \"f\").unfreeze();\n __classPrivateFieldGet(this, _YargsInstance_command, \"f\").unfreeze();\n __classPrivateFieldGet(this, _YargsInstance_globalMiddleware, \"f\").unfreeze();\n }\n [kValidateAsync](validation, argv) {\n return maybeAsyncResult(argv, result => {\n validation(result);\n return result;\n });\n }\n getInternalMethods() {\n return {\n getCommandInstance: this[kGetCommandInstance].bind(this),\n getContext: this[kGetContext].bind(this),\n getHasOutput: this[kGetHasOutput].bind(this),\n getLoggerInstance: this[kGetLoggerInstance].bind(this),\n getParseContext: this[kGetParseContext].bind(this),\n getParserConfiguration: this[kGetParserConfiguration].bind(this),\n getUsageConfiguration: this[kGetUsageConfiguration].bind(this),\n getUsageInstance: this[kGetUsageInstance].bind(this),\n getValidationInstance: this[kGetValidationInstance].bind(this),\n hasParseCallback: this[kHasParseCallback].bind(this),\n isGlobalContext: this[kIsGlobalContext].bind(this),\n postProcess: this[kPostProcess].bind(this),\n reset: this[kReset].bind(this),\n runValidation: this[kRunValidation].bind(this),\n runYargsParserAndExecuteCommands: this[kRunYargsParserAndExecuteCommands].bind(this),\n setHasOutput: this[kSetHasOutput].bind(this),\n };\n }\n [kGetCommandInstance]() {\n return __classPrivateFieldGet(this, _YargsInstance_command, \"f\");\n }\n [kGetContext]() {\n return __classPrivateFieldGet(this, _YargsInstance_context, \"f\");\n }\n [kGetHasOutput]() {\n return __classPrivateFieldGet(this, _YargsInstance_hasOutput, \"f\");\n }\n [kGetLoggerInstance]() {\n return __classPrivateFieldGet(this, _YargsInstance_logger, \"f\");\n }\n [kGetParseContext]() {\n return __classPrivateFieldGet(this, _YargsInstance_parseContext, \"f\") || {};\n }\n [kGetUsageInstance]() {\n return __classPrivateFieldGet(this, _YargsInstance_usage, \"f\");\n }\n [kGetValidationInstance]() {\n return __classPrivateFieldGet(this, _YargsInstance_validation, \"f\");\n }\n [kHasParseCallback]() {\n return !!__classPrivateFieldGet(this, _YargsInstance_parseFn, \"f\");\n }\n [kIsGlobalContext]() {\n return __classPrivateFieldGet(this, _YargsInstance_isGlobalContext, \"f\");\n }\n [kPostProcess](argv, populateDoubleDash, calledFromCommand, runGlobalMiddleware) {\n if (calledFromCommand)\n return argv;\n if (isPromise(argv))\n return argv;\n if (!populateDoubleDash) {\n argv = this[kCopyDoubleDash](argv);\n }\n const parsePositionalNumbers = this[kGetParserConfiguration]()['parse-positional-numbers'] ||\n this[kGetParserConfiguration]()['parse-positional-numbers'] === undefined;\n if (parsePositionalNumbers) {\n argv = this[kParsePositionalNumbers](argv);\n }\n if (runGlobalMiddleware) {\n argv = applyMiddleware(argv, this, __classPrivateFieldGet(this, _YargsInstance_globalMiddleware, \"f\").getMiddleware(), false);\n }\n return argv;\n }\n [kReset](aliases = {}) {\n __classPrivateFieldSet(this, _YargsInstance_options, __classPrivateFieldGet(this, _YargsInstance_options, \"f\") || {}, \"f\");\n const tmpOptions = {};\n tmpOptions.local = __classPrivateFieldGet(this, _YargsInstance_options, \"f\").local || [];\n tmpOptions.configObjects = __classPrivateFieldGet(this, _YargsInstance_options, \"f\").configObjects || [];\n const localLookup = {};\n tmpOptions.local.forEach(l => {\n localLookup[l] = true;\n (aliases[l] || []).forEach(a => {\n localLookup[a] = true;\n });\n });\n Object.assign(__classPrivateFieldGet(this, _YargsInstance_preservedGroups, \"f\"), Object.keys(__classPrivateFieldGet(this, _YargsInstance_groups, \"f\")).reduce((acc, groupName) => {\n const keys = __classPrivateFieldGet(this, _YargsInstance_groups, \"f\")[groupName].filter(key => !(key in localLookup));\n if (keys.length > 0) {\n acc[groupName] = keys;\n }\n return acc;\n }, {}));\n __classPrivateFieldSet(this, _YargsInstance_groups, {}, \"f\");\n const arrayOptions = [\n 'array',\n 'boolean',\n 'string',\n 'skipValidation',\n 'count',\n 'normalize',\n 'number',\n 'hiddenOptions',\n ];\n const objectOptions = [\n 'narg',\n 'key',\n 'alias',\n 'default',\n 'defaultDescription',\n 'config',\n 'choices',\n 'demandedOptions',\n 'demandedCommands',\n 'deprecatedOptions',\n ];\n arrayOptions.forEach(k => {\n tmpOptions[k] = (__classPrivateFieldGet(this, _YargsInstance_options, \"f\")[k] || []).filter((k) => !localLookup[k]);\n });\n objectOptions.forEach((k) => {\n tmpOptions[k] = objFilter(__classPrivateFieldGet(this, _YargsInstance_options, \"f\")[k], k => !localLookup[k]);\n });\n tmpOptions.envPrefix = __classPrivateFieldGet(this, _YargsInstance_options, \"f\").envPrefix;\n __classPrivateFieldSet(this, _YargsInstance_options, tmpOptions, \"f\");\n __classPrivateFieldSet(this, _YargsInstance_usage, __classPrivateFieldGet(this, _YargsInstance_usage, \"f\")\n ? __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").reset(localLookup)\n : Usage(this, __classPrivateFieldGet(this, _YargsInstance_shim, \"f\")), \"f\");\n __classPrivateFieldSet(this, _YargsInstance_validation, __classPrivateFieldGet(this, _YargsInstance_validation, \"f\")\n ? __classPrivateFieldGet(this, _YargsInstance_validation, \"f\").reset(localLookup)\n : Validation(this, __classPrivateFieldGet(this, _YargsInstance_usage, \"f\"), __classPrivateFieldGet(this, _YargsInstance_shim, \"f\")), \"f\");\n __classPrivateFieldSet(this, _YargsInstance_command, __classPrivateFieldGet(this, _YargsInstance_command, \"f\")\n ? __classPrivateFieldGet(this, _YargsInstance_command, \"f\").reset()\n : Command(__classPrivateFieldGet(this, _YargsInstance_usage, \"f\"), __classPrivateFieldGet(this, _YargsInstance_validation, \"f\"), __classPrivateFieldGet(this, _YargsInstance_globalMiddleware, \"f\"), __classPrivateFieldGet(this, _YargsInstance_shim, \"f\")), \"f\");\n if (!__classPrivateFieldGet(this, _YargsInstance_completion, \"f\"))\n __classPrivateFieldSet(this, _YargsInstance_completion, Completion(this, __classPrivateFieldGet(this, _YargsInstance_usage, \"f\"), __classPrivateFieldGet(this, _YargsInstance_command, \"f\"), __classPrivateFieldGet(this, _YargsInstance_shim, \"f\")), \"f\");\n __classPrivateFieldGet(this, _YargsInstance_globalMiddleware, \"f\").reset();\n __classPrivateFieldSet(this, _YargsInstance_completionCommand, null, \"f\");\n __classPrivateFieldSet(this, _YargsInstance_output, '', \"f\");\n __classPrivateFieldSet(this, _YargsInstance_exitError, null, \"f\");\n __classPrivateFieldSet(this, _YargsInstance_hasOutput, false, \"f\");\n this.parsed = false;\n return this;\n }\n [kRebase](base, dir) {\n return __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").path.relative(base, dir);\n }\n [kRunYargsParserAndExecuteCommands](args, shortCircuit, calledFromCommand, commandIndex = 0, helpOnly = false) {\n let skipValidation = !!calledFromCommand || helpOnly;\n args = args || __classPrivateFieldGet(this, _YargsInstance_processArgs, \"f\");\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\").__ = __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").y18n.__;\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\").configuration = this[kGetParserConfiguration]();\n const populateDoubleDash = !!__classPrivateFieldGet(this, _YargsInstance_options, \"f\").configuration['populate--'];\n const config = Object.assign({}, __classPrivateFieldGet(this, _YargsInstance_options, \"f\").configuration, {\n 'populate--': true,\n });\n const parsed = __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").Parser.detailed(args, Object.assign({}, __classPrivateFieldGet(this, _YargsInstance_options, \"f\"), {\n configuration: { 'parse-positional-numbers': false, ...config },\n }));\n const argv = Object.assign(parsed.argv, __classPrivateFieldGet(this, _YargsInstance_parseContext, \"f\"));\n let argvPromise = undefined;\n const aliases = parsed.aliases;\n let helpOptSet = false;\n let versionOptSet = false;\n Object.keys(argv).forEach(key => {\n if (key === __classPrivateFieldGet(this, _YargsInstance_helpOpt, \"f\") && argv[key]) {\n helpOptSet = true;\n }\n else if (key === __classPrivateFieldGet(this, _YargsInstance_versionOpt, \"f\") && argv[key]) {\n versionOptSet = true;\n }\n });\n argv.$0 = this.$0;\n this.parsed = parsed;\n if (commandIndex === 0) {\n __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").clearCachedHelpMessage();\n }\n try {\n this[kGuessLocale]();\n if (shortCircuit) {\n return this[kPostProcess](argv, populateDoubleDash, !!calledFromCommand, false);\n }\n if (__classPrivateFieldGet(this, _YargsInstance_helpOpt, \"f\")) {\n const helpCmds = [__classPrivateFieldGet(this, _YargsInstance_helpOpt, \"f\")]\n .concat(aliases[__classPrivateFieldGet(this, _YargsInstance_helpOpt, \"f\")] || [])\n .filter(k => k.length > 1);\n if (helpCmds.includes('' + argv._[argv._.length - 1])) {\n argv._.pop();\n helpOptSet = true;\n }\n }\n __classPrivateFieldSet(this, _YargsInstance_isGlobalContext, false, \"f\");\n const handlerKeys = __classPrivateFieldGet(this, _YargsInstance_command, \"f\").getCommands();\n const requestCompletions = __classPrivateFieldGet(this, _YargsInstance_completion, \"f\").completionKey in argv;\n const skipRecommendation = helpOptSet || requestCompletions || helpOnly;\n if (argv._.length) {\n if (handlerKeys.length) {\n let firstUnknownCommand;\n for (let i = commandIndex || 0, cmd; argv._[i] !== undefined; i++) {\n cmd = String(argv._[i]);\n if (handlerKeys.includes(cmd) && cmd !== __classPrivateFieldGet(this, _YargsInstance_completionCommand, \"f\")) {\n const innerArgv = __classPrivateFieldGet(this, _YargsInstance_command, \"f\").runCommand(cmd, this, parsed, i + 1, helpOnly, helpOptSet || versionOptSet || helpOnly);\n return this[kPostProcess](innerArgv, populateDoubleDash, !!calledFromCommand, false);\n }\n else if (!firstUnknownCommand &&\n cmd !== __classPrivateFieldGet(this, _YargsInstance_completionCommand, \"f\")) {\n firstUnknownCommand = cmd;\n break;\n }\n }\n if (!__classPrivateFieldGet(this, _YargsInstance_command, \"f\").hasDefaultCommand() &&\n __classPrivateFieldGet(this, _YargsInstance_recommendCommands, \"f\") &&\n firstUnknownCommand &&\n !skipRecommendation) {\n __classPrivateFieldGet(this, _YargsInstance_validation, \"f\").recommendCommands(firstUnknownCommand, handlerKeys);\n }\n }\n if (__classPrivateFieldGet(this, _YargsInstance_completionCommand, \"f\") &&\n argv._.includes(__classPrivateFieldGet(this, _YargsInstance_completionCommand, \"f\")) &&\n !requestCompletions) {\n if (__classPrivateFieldGet(this, _YargsInstance_exitProcess, \"f\"))\n setBlocking(true);\n this.showCompletionScript();\n this.exit(0);\n }\n }\n if (__classPrivateFieldGet(this, _YargsInstance_command, \"f\").hasDefaultCommand() && !skipRecommendation) {\n const innerArgv = __classPrivateFieldGet(this, _YargsInstance_command, \"f\").runCommand(null, this, parsed, 0, helpOnly, helpOptSet || versionOptSet || helpOnly);\n return this[kPostProcess](innerArgv, populateDoubleDash, !!calledFromCommand, false);\n }\n if (requestCompletions) {\n if (__classPrivateFieldGet(this, _YargsInstance_exitProcess, \"f\"))\n setBlocking(true);\n args = [].concat(args);\n const completionArgs = args.slice(args.indexOf(`--${__classPrivateFieldGet(this, _YargsInstance_completion, \"f\").completionKey}`) + 1);\n __classPrivateFieldGet(this, _YargsInstance_completion, \"f\").getCompletion(completionArgs, (err, completions) => {\n if (err)\n throw new YError(err.message);\n (completions || []).forEach(completion => {\n __classPrivateFieldGet(this, _YargsInstance_logger, \"f\").log(completion);\n });\n this.exit(0);\n });\n return this[kPostProcess](argv, !populateDoubleDash, !!calledFromCommand, false);\n }\n if (!__classPrivateFieldGet(this, _YargsInstance_hasOutput, \"f\")) {\n if (helpOptSet) {\n if (__classPrivateFieldGet(this, _YargsInstance_exitProcess, \"f\"))\n setBlocking(true);\n skipValidation = true;\n this.showHelp('log');\n this.exit(0);\n }\n else if (versionOptSet) {\n if (__classPrivateFieldGet(this, _YargsInstance_exitProcess, \"f\"))\n setBlocking(true);\n skipValidation = true;\n __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").showVersion('log');\n this.exit(0);\n }\n }\n if (!skipValidation && __classPrivateFieldGet(this, _YargsInstance_options, \"f\").skipValidation.length > 0) {\n skipValidation = Object.keys(argv).some(key => __classPrivateFieldGet(this, _YargsInstance_options, \"f\").skipValidation.indexOf(key) >= 0 && argv[key] === true);\n }\n if (!skipValidation) {\n if (parsed.error)\n throw new YError(parsed.error.message);\n if (!requestCompletions) {\n const validation = this[kRunValidation](aliases, {}, parsed.error);\n if (!calledFromCommand) {\n argvPromise = applyMiddleware(argv, this, __classPrivateFieldGet(this, _YargsInstance_globalMiddleware, \"f\").getMiddleware(), true);\n }\n argvPromise = this[kValidateAsync](validation, argvPromise !== null && argvPromise !== void 0 ? argvPromise : argv);\n if (isPromise(argvPromise) && !calledFromCommand) {\n argvPromise = argvPromise.then(() => {\n return applyMiddleware(argv, this, __classPrivateFieldGet(this, _YargsInstance_globalMiddleware, \"f\").getMiddleware(), false);\n });\n }\n }\n }\n }\n catch (err) {\n if (err instanceof YError)\n __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").fail(err.message, err);\n else\n throw err;\n }\n return this[kPostProcess](argvPromise !== null && argvPromise !== void 0 ? argvPromise : argv, populateDoubleDash, !!calledFromCommand, true);\n }\n [kRunValidation](aliases, positionalMap, parseErrors, isDefaultCommand) {\n const demandedOptions = { ...this.getDemandedOptions() };\n return (argv) => {\n if (parseErrors)\n throw new YError(parseErrors.message);\n __classPrivateFieldGet(this, _YargsInstance_validation, \"f\").nonOptionCount(argv);\n __classPrivateFieldGet(this, _YargsInstance_validation, \"f\").requiredArguments(argv, demandedOptions);\n let failedStrictCommands = false;\n if (__classPrivateFieldGet(this, _YargsInstance_strictCommands, \"f\")) {\n failedStrictCommands = __classPrivateFieldGet(this, _YargsInstance_validation, \"f\").unknownCommands(argv);\n }\n if (__classPrivateFieldGet(this, _YargsInstance_strict, \"f\") && !failedStrictCommands) {\n __classPrivateFieldGet(this, _YargsInstance_validation, \"f\").unknownArguments(argv, aliases, positionalMap, !!isDefaultCommand);\n }\n else if (__classPrivateFieldGet(this, _YargsInstance_strictOptions, \"f\")) {\n __classPrivateFieldGet(this, _YargsInstance_validation, \"f\").unknownArguments(argv, aliases, {}, false, false);\n }\n __classPrivateFieldGet(this, _YargsInstance_validation, \"f\").limitedChoices(argv);\n __classPrivateFieldGet(this, _YargsInstance_validation, \"f\").implications(argv);\n __classPrivateFieldGet(this, _YargsInstance_validation, \"f\").conflicting(argv);\n };\n }\n [kSetHasOutput]() {\n __classPrivateFieldSet(this, _YargsInstance_hasOutput, true, \"f\");\n }\n [kTrackManuallySetKeys](keys) {\n if (typeof keys === 'string') {\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\").key[keys] = true;\n }\n else {\n for (const k of keys) {\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\").key[k] = true;\n }\n }\n }\n}\nexport function isYargsInstance(y) {\n return !!y && typeof y.getInternalMethods === 'function';\n}\n","export default function whichModule(exported) {\n if (typeof require === 'undefined')\n return null;\n for (let i = 0, files = Object.keys(require.cache), mod; i < files.length; i++) {\n mod = require.cache[files[i]];\n if (mod.exports === exported)\n return mod;\n }\n return null;\n}\n","import { objectKeys } from '../typings/common-types.js';\nexport function objFilter(original = {}, filter = () => true) {\n const obj = {};\n objectKeys(original).forEach(key => {\n if (filter(key, original[key])) {\n obj[key] = original[key];\n }\n });\n return obj;\n}\n","export default function setBlocking(blocking) {\n if (typeof process === 'undefined')\n return;\n [process.stdout, process.stderr].forEach(_stream => {\n const stream = _stream;\n if (stream._handle &&\n stream.isTTY &&\n typeof stream._handle.setBlocking === 'function') {\n stream._handle.setBlocking(blocking);\n }\n });\n}\n","import { objFilter } from './utils/obj-filter.js';\nimport { YError } from './yerror.js';\nimport setBlocking from './utils/set-blocking.js';\nfunction isBoolean(fail) {\n return typeof fail === 'boolean';\n}\nexport function usage(yargs, shim) {\n const __ = shim.y18n.__;\n const self = {};\n const fails = [];\n self.failFn = function failFn(f) {\n fails.push(f);\n };\n let failMessage = null;\n let globalFailMessage = null;\n let showHelpOnFail = true;\n self.showHelpOnFail = function showHelpOnFailFn(arg1 = true, arg2) {\n const [enabled, message] = typeof arg1 === 'string' ? [true, arg1] : [arg1, arg2];\n if (yargs.getInternalMethods().isGlobalContext()) {\n globalFailMessage = message;\n }\n failMessage = message;\n showHelpOnFail = enabled;\n return self;\n };\n let failureOutput = false;\n self.fail = function fail(msg, err) {\n const logger = yargs.getInternalMethods().getLoggerInstance();\n if (fails.length) {\n for (let i = fails.length - 1; i >= 0; --i) {\n const fail = fails[i];\n if (isBoolean(fail)) {\n if (err)\n throw err;\n else if (msg)\n throw Error(msg);\n }\n else {\n fail(msg, err, self);\n }\n }\n }\n else {\n if (yargs.getExitProcess())\n setBlocking(true);\n if (!failureOutput) {\n failureOutput = true;\n if (showHelpOnFail) {\n yargs.showHelp('error');\n logger.error();\n }\n if (msg || err)\n logger.error(msg || err);\n const globalOrCommandFailMessage = failMessage || globalFailMessage;\n if (globalOrCommandFailMessage) {\n if (msg || err)\n logger.error('');\n logger.error(globalOrCommandFailMessage);\n }\n }\n err = err || new YError(msg);\n if (yargs.getExitProcess()) {\n return yargs.exit(1);\n }\n else if (yargs.getInternalMethods().hasParseCallback()) {\n return yargs.exit(1, err);\n }\n else {\n throw err;\n }\n }\n };\n let usages = [];\n let usageDisabled = false;\n self.usage = (msg, description) => {\n if (msg === null) {\n usageDisabled = true;\n usages = [];\n return self;\n }\n usageDisabled = false;\n usages.push([msg, description || '']);\n return self;\n };\n self.getUsage = () => {\n return usages;\n };\n self.getUsageDisabled = () => {\n return usageDisabled;\n };\n self.getPositionalGroupName = () => {\n return __('Positionals:');\n };\n let examples = [];\n self.example = (cmd, description) => {\n examples.push([cmd, description || '']);\n };\n let commands = [];\n self.command = function command(cmd, description, isDefault, aliases, deprecated = false) {\n if (isDefault) {\n commands = commands.map(cmdArray => {\n cmdArray[2] = false;\n return cmdArray;\n });\n }\n commands.push([cmd, description || '', isDefault, aliases, deprecated]);\n };\n self.getCommands = () => commands;\n let descriptions = {};\n self.describe = function describe(keyOrKeys, desc) {\n if (Array.isArray(keyOrKeys)) {\n keyOrKeys.forEach(k => {\n self.describe(k, desc);\n });\n }\n else if (typeof keyOrKeys === 'object') {\n Object.keys(keyOrKeys).forEach(k => {\n self.describe(k, keyOrKeys[k]);\n });\n }\n else {\n descriptions[keyOrKeys] = desc;\n }\n };\n self.getDescriptions = () => descriptions;\n let epilogs = [];\n self.epilog = msg => {\n epilogs.push(msg);\n };\n let wrapSet = false;\n let wrap;\n self.wrap = cols => {\n wrapSet = true;\n wrap = cols;\n };\n self.getWrap = () => {\n if (shim.getEnv('YARGS_DISABLE_WRAP')) {\n return null;\n }\n if (!wrapSet) {\n wrap = windowWidth();\n wrapSet = true;\n }\n return wrap;\n };\n const deferY18nLookupPrefix = '__yargsString__:';\n self.deferY18nLookup = str => deferY18nLookupPrefix + str;\n self.help = function help() {\n if (cachedHelpMessage)\n return cachedHelpMessage;\n normalizeAliases();\n const base$0 = yargs.customScriptName\n ? yargs.$0\n : shim.path.basename(yargs.$0);\n const demandedOptions = yargs.getDemandedOptions();\n const demandedCommands = yargs.getDemandedCommands();\n const deprecatedOptions = yargs.getDeprecatedOptions();\n const groups = yargs.getGroups();\n const options = yargs.getOptions();\n let keys = [];\n keys = keys.concat(Object.keys(descriptions));\n keys = keys.concat(Object.keys(demandedOptions));\n keys = keys.concat(Object.keys(demandedCommands));\n keys = keys.concat(Object.keys(options.default));\n keys = keys.filter(filterHiddenOptions);\n keys = Object.keys(keys.reduce((acc, key) => {\n if (key !== '_')\n acc[key] = true;\n return acc;\n }, {}));\n const theWrap = self.getWrap();\n const ui = shim.cliui({\n width: theWrap,\n wrap: !!theWrap,\n });\n if (!usageDisabled) {\n if (usages.length) {\n usages.forEach(usage => {\n ui.div({ text: `${usage[0].replace(/\\$0/g, base$0)}` });\n if (usage[1]) {\n ui.div({ text: `${usage[1]}`, padding: [1, 0, 0, 0] });\n }\n });\n ui.div();\n }\n else if (commands.length) {\n let u = null;\n if (demandedCommands._) {\n u = `${base$0} <${__('command')}>\\n`;\n }\n else {\n u = `${base$0} [${__('command')}]\\n`;\n }\n ui.div(`${u}`);\n }\n }\n if (commands.length > 1 || (commands.length === 1 && !commands[0][2])) {\n ui.div(__('Commands:'));\n const context = yargs.getInternalMethods().getContext();\n const parentCommands = context.commands.length\n ? `${context.commands.join(' ')} `\n : '';\n if (yargs.getInternalMethods().getParserConfiguration()['sort-commands'] ===\n true) {\n commands = commands.sort((a, b) => a[0].localeCompare(b[0]));\n }\n const prefix = base$0 ? `${base$0} ` : '';\n commands.forEach(command => {\n const commandString = `${prefix}${parentCommands}${command[0].replace(/^\\$0 ?/, '')}`;\n ui.span({\n text: commandString,\n padding: [0, 2, 0, 2],\n width: maxWidth(commands, theWrap, `${base$0}${parentCommands}`) + 4,\n }, { text: command[1] });\n const hints = [];\n if (command[2])\n hints.push(`[${__('default')}]`);\n if (command[3] && command[3].length) {\n hints.push(`[${__('aliases:')} ${command[3].join(', ')}]`);\n }\n if (command[4]) {\n if (typeof command[4] === 'string') {\n hints.push(`[${__('deprecated: %s', command[4])}]`);\n }\n else {\n hints.push(`[${__('deprecated')}]`);\n }\n }\n if (hints.length) {\n ui.div({\n text: hints.join(' '),\n padding: [0, 0, 0, 2],\n align: 'right',\n });\n }\n else {\n ui.div();\n }\n });\n ui.div();\n }\n const aliasKeys = (Object.keys(options.alias) || []).concat(Object.keys(yargs.parsed.newAliases) || []);\n keys = keys.filter(key => !yargs.parsed.newAliases[key] &&\n aliasKeys.every(alias => (options.alias[alias] || []).indexOf(key) === -1));\n const defaultGroup = __('Options:');\n if (!groups[defaultGroup])\n groups[defaultGroup] = [];\n addUngroupedKeys(keys, options.alias, groups, defaultGroup);\n const isLongSwitch = (sw) => /^--/.test(getText(sw));\n const displayedGroups = Object.keys(groups)\n .filter(groupName => groups[groupName].length > 0)\n .map(groupName => {\n const normalizedKeys = groups[groupName]\n .filter(filterHiddenOptions)\n .map(key => {\n if (aliasKeys.includes(key))\n return key;\n for (let i = 0, aliasKey; (aliasKey = aliasKeys[i]) !== undefined; i++) {\n if ((options.alias[aliasKey] || []).includes(key))\n return aliasKey;\n }\n return key;\n });\n return { groupName, normalizedKeys };\n })\n .filter(({ normalizedKeys }) => normalizedKeys.length > 0)\n .map(({ groupName, normalizedKeys }) => {\n const switches = normalizedKeys.reduce((acc, key) => {\n acc[key] = [key]\n .concat(options.alias[key] || [])\n .map(sw => {\n if (groupName === self.getPositionalGroupName())\n return sw;\n else {\n return ((/^[0-9]$/.test(sw)\n ? options.boolean.includes(key)\n ? '-'\n : '--'\n : sw.length > 1\n ? '--'\n : '-') + sw);\n }\n })\n .sort((sw1, sw2) => isLongSwitch(sw1) === isLongSwitch(sw2)\n ? 0\n : isLongSwitch(sw1)\n ? 1\n : -1)\n .join(', ');\n return acc;\n }, {});\n return { groupName, normalizedKeys, switches };\n });\n const shortSwitchesUsed = displayedGroups\n .filter(({ groupName }) => groupName !== self.getPositionalGroupName())\n .some(({ normalizedKeys, switches }) => !normalizedKeys.every(key => isLongSwitch(switches[key])));\n if (shortSwitchesUsed) {\n displayedGroups\n .filter(({ groupName }) => groupName !== self.getPositionalGroupName())\n .forEach(({ normalizedKeys, switches }) => {\n normalizedKeys.forEach(key => {\n if (isLongSwitch(switches[key])) {\n switches[key] = addIndentation(switches[key], '-x, '.length);\n }\n });\n });\n }\n displayedGroups.forEach(({ groupName, normalizedKeys, switches }) => {\n ui.div(groupName);\n normalizedKeys.forEach(key => {\n const kswitch = switches[key];\n let desc = descriptions[key] || '';\n let type = null;\n if (desc.includes(deferY18nLookupPrefix))\n desc = __(desc.substring(deferY18nLookupPrefix.length));\n if (options.boolean.includes(key))\n type = `[${__('boolean')}]`;\n if (options.count.includes(key))\n type = `[${__('count')}]`;\n if (options.string.includes(key))\n type = `[${__('string')}]`;\n if (options.normalize.includes(key))\n type = `[${__('string')}]`;\n if (options.array.includes(key))\n type = `[${__('array')}]`;\n if (options.number.includes(key))\n type = `[${__('number')}]`;\n const deprecatedExtra = (deprecated) => typeof deprecated === 'string'\n ? `[${__('deprecated: %s', deprecated)}]`\n : `[${__('deprecated')}]`;\n const extra = [\n key in deprecatedOptions\n ? deprecatedExtra(deprecatedOptions[key])\n : null,\n type,\n key in demandedOptions ? `[${__('required')}]` : null,\n options.choices && options.choices[key]\n ? `[${__('choices:')} ${self.stringifiedValues(options.choices[key])}]`\n : null,\n defaultString(options.default[key], options.defaultDescription[key]),\n ]\n .filter(Boolean)\n .join(' ');\n ui.span({\n text: getText(kswitch),\n padding: [0, 2, 0, 2 + getIndentation(kswitch)],\n width: maxWidth(switches, theWrap) + 4,\n }, desc);\n const shouldHideOptionExtras = yargs.getInternalMethods().getUsageConfiguration()['hide-types'] ===\n true;\n if (extra && !shouldHideOptionExtras)\n ui.div({ text: extra, padding: [0, 0, 0, 2], align: 'right' });\n else\n ui.div();\n });\n ui.div();\n });\n if (examples.length) {\n ui.div(__('Examples:'));\n examples.forEach(example => {\n example[0] = example[0].replace(/\\$0/g, base$0);\n });\n examples.forEach(example => {\n if (example[1] === '') {\n ui.div({\n text: example[0],\n padding: [0, 2, 0, 2],\n });\n }\n else {\n ui.div({\n text: example[0],\n padding: [0, 2, 0, 2],\n width: maxWidth(examples, theWrap) + 4,\n }, {\n text: example[1],\n });\n }\n });\n ui.div();\n }\n if (epilogs.length > 0) {\n const e = epilogs\n .map(epilog => epilog.replace(/\\$0/g, base$0))\n .join('\\n');\n ui.div(`${e}\\n`);\n }\n return ui.toString().replace(/\\s*$/, '');\n };\n function maxWidth(table, theWrap, modifier) {\n let width = 0;\n if (!Array.isArray(table)) {\n table = Object.values(table).map(v => [v]);\n }\n table.forEach(v => {\n width = Math.max(shim.stringWidth(modifier ? `${modifier} ${getText(v[0])}` : getText(v[0])) + getIndentation(v[0]), width);\n });\n if (theWrap)\n width = Math.min(width, parseInt((theWrap * 0.5).toString(), 10));\n return width;\n }\n function normalizeAliases() {\n const demandedOptions = yargs.getDemandedOptions();\n const options = yargs.getOptions();\n (Object.keys(options.alias) || []).forEach(key => {\n options.alias[key].forEach(alias => {\n if (descriptions[alias])\n self.describe(key, descriptions[alias]);\n if (alias in demandedOptions)\n yargs.demandOption(key, demandedOptions[alias]);\n if (options.boolean.includes(alias))\n yargs.boolean(key);\n if (options.count.includes(alias))\n yargs.count(key);\n if (options.string.includes(alias))\n yargs.string(key);\n if (options.normalize.includes(alias))\n yargs.normalize(key);\n if (options.array.includes(alias))\n yargs.array(key);\n if (options.number.includes(alias))\n yargs.number(key);\n });\n });\n }\n let cachedHelpMessage;\n self.cacheHelpMessage = function () {\n cachedHelpMessage = this.help();\n };\n self.clearCachedHelpMessage = function () {\n cachedHelpMessage = undefined;\n };\n self.hasCachedHelpMessage = function () {\n return !!cachedHelpMessage;\n };\n function addUngroupedKeys(keys, aliases, groups, defaultGroup) {\n let groupedKeys = [];\n let toCheck = null;\n Object.keys(groups).forEach(group => {\n groupedKeys = groupedKeys.concat(groups[group]);\n });\n keys.forEach(key => {\n toCheck = [key].concat(aliases[key]);\n if (!toCheck.some(k => groupedKeys.indexOf(k) !== -1)) {\n groups[defaultGroup].push(key);\n }\n });\n return groupedKeys;\n }\n function filterHiddenOptions(key) {\n return (yargs.getOptions().hiddenOptions.indexOf(key) < 0 ||\n yargs.parsed.argv[yargs.getOptions().showHiddenOpt]);\n }\n self.showHelp = (level) => {\n const logger = yargs.getInternalMethods().getLoggerInstance();\n if (!level)\n level = 'error';\n const emit = typeof level === 'function' ? level : logger[level];\n emit(self.help());\n };\n self.functionDescription = fn => {\n const description = fn.name\n ? shim.Parser.decamelize(fn.name, '-')\n : __('generated-value');\n return ['(', description, ')'].join('');\n };\n self.stringifiedValues = function stringifiedValues(values, separator) {\n let string = '';\n const sep = separator || ', ';\n const array = [].concat(values);\n if (!values || !array.length)\n return string;\n array.forEach(value => {\n if (string.length)\n string += sep;\n string += JSON.stringify(value);\n });\n return string;\n };\n function defaultString(value, defaultDescription) {\n let string = `[${__('default:')} `;\n if (value === undefined && !defaultDescription)\n return null;\n if (defaultDescription) {\n string += defaultDescription;\n }\n else {\n switch (typeof value) {\n case 'string':\n string += `\"${value}\"`;\n break;\n case 'object':\n string += JSON.stringify(value);\n break;\n default:\n string += value;\n }\n }\n return `${string}]`;\n }\n function windowWidth() {\n const maxWidth = 80;\n if (shim.process.stdColumns) {\n return Math.min(maxWidth, shim.process.stdColumns);\n }\n else {\n return maxWidth;\n }\n }\n let version = null;\n self.version = ver => {\n version = ver;\n };\n self.showVersion = level => {\n const logger = yargs.getInternalMethods().getLoggerInstance();\n if (!level)\n level = 'error';\n const emit = typeof level === 'function' ? level : logger[level];\n emit(version);\n };\n self.reset = function reset(localLookup) {\n failMessage = null;\n failureOutput = false;\n usages = [];\n usageDisabled = false;\n epilogs = [];\n examples = [];\n commands = [];\n descriptions = objFilter(descriptions, k => !localLookup[k]);\n return self;\n };\n const frozens = [];\n self.freeze = function freeze() {\n frozens.push({\n failMessage,\n failureOutput,\n usages,\n usageDisabled,\n epilogs,\n examples,\n commands,\n descriptions,\n });\n };\n self.unfreeze = function unfreeze(defaultCommand = false) {\n const frozen = frozens.pop();\n if (!frozen)\n return;\n if (defaultCommand) {\n descriptions = { ...frozen.descriptions, ...descriptions };\n commands = [...frozen.commands, ...commands];\n usages = [...frozen.usages, ...usages];\n examples = [...frozen.examples, ...examples];\n epilogs = [...frozen.epilogs, ...epilogs];\n }\n else {\n ({\n failMessage,\n failureOutput,\n usages,\n usageDisabled,\n epilogs,\n examples,\n commands,\n descriptions,\n } = frozen);\n }\n };\n return self;\n}\nfunction isIndentedText(text) {\n return typeof text === 'object';\n}\nfunction addIndentation(text, indent) {\n return isIndentedText(text)\n ? { text: text.text, indentation: text.indentation + indent }\n : { text, indentation: indent };\n}\nfunction getIndentation(text) {\n return isIndentedText(text) ? text.indentation : 0;\n}\nfunction getText(text) {\n return isIndentedText(text) ? text.text : text;\n}\n","import { isCommandBuilderCallback } from './command.js';\nimport { assertNotStrictEqual } from './typings/common-types.js';\nimport * as templates from './completion-templates.js';\nimport { isPromise } from './utils/is-promise.js';\nimport { parseCommand } from './parse-command.js';\nexport class Completion {\n constructor(yargs, usage, command, shim) {\n var _a, _b, _c;\n this.yargs = yargs;\n this.usage = usage;\n this.command = command;\n this.shim = shim;\n this.completionKey = 'get-yargs-completions';\n this.aliases = null;\n this.customCompletionFunction = null;\n this.indexAfterLastReset = 0;\n this.zshShell =\n (_c = (((_a = this.shim.getEnv('SHELL')) === null || _a === void 0 ? void 0 : _a.includes('zsh')) ||\n ((_b = this.shim.getEnv('ZSH_NAME')) === null || _b === void 0 ? void 0 : _b.includes('zsh')))) !== null && _c !== void 0 ? _c : false;\n }\n defaultCompletion(args, argv, current, done) {\n const handlers = this.command.getCommandHandlers();\n for (let i = 0, ii = args.length; i < ii; ++i) {\n if (handlers[args[i]] && handlers[args[i]].builder) {\n const builder = handlers[args[i]].builder;\n if (isCommandBuilderCallback(builder)) {\n this.indexAfterLastReset = i + 1;\n const y = this.yargs.getInternalMethods().reset();\n builder(y, true);\n return y.argv;\n }\n }\n }\n const completions = [];\n this.commandCompletions(completions, args, current);\n this.optionCompletions(completions, args, argv, current);\n this.choicesFromOptionsCompletions(completions, args, argv, current);\n this.choicesFromPositionalsCompletions(completions, args, argv, current);\n done(null, completions);\n }\n commandCompletions(completions, args, current) {\n const parentCommands = this.yargs\n .getInternalMethods()\n .getContext().commands;\n if (!current.match(/^-/) &&\n parentCommands[parentCommands.length - 1] !== current &&\n !this.previousArgHasChoices(args)) {\n this.usage.getCommands().forEach(usageCommand => {\n const commandName = parseCommand(usageCommand[0]).cmd;\n if (args.indexOf(commandName) === -1) {\n if (!this.zshShell) {\n completions.push(commandName);\n }\n else {\n const desc = usageCommand[1] || '';\n completions.push(commandName.replace(/:/g, '\\\\:') + ':' + desc);\n }\n }\n });\n }\n }\n optionCompletions(completions, args, argv, current) {\n if ((current.match(/^-/) || (current === '' && completions.length === 0)) &&\n !this.previousArgHasChoices(args)) {\n const options = this.yargs.getOptions();\n const positionalKeys = this.yargs.getGroups()[this.usage.getPositionalGroupName()] || [];\n Object.keys(options.key).forEach(key => {\n const negable = !!options.configuration['boolean-negation'] &&\n options.boolean.includes(key);\n const isPositionalKey = positionalKeys.includes(key);\n if (!isPositionalKey &&\n !options.hiddenOptions.includes(key) &&\n !this.argsContainKey(args, key, negable)) {\n this.completeOptionKey(key, completions, current, negable && !!options.default[key]);\n }\n });\n }\n }\n choicesFromOptionsCompletions(completions, args, argv, current) {\n if (this.previousArgHasChoices(args)) {\n const choices = this.getPreviousArgChoices(args);\n if (choices && choices.length > 0) {\n completions.push(...choices.map(c => c.replace(/:/g, '\\\\:')));\n }\n }\n }\n choicesFromPositionalsCompletions(completions, args, argv, current) {\n if (current === '' &&\n completions.length > 0 &&\n this.previousArgHasChoices(args)) {\n return;\n }\n const positionalKeys = this.yargs.getGroups()[this.usage.getPositionalGroupName()] || [];\n const offset = Math.max(this.indexAfterLastReset, this.yargs.getInternalMethods().getContext().commands.length +\n 1);\n const positionalKey = positionalKeys[argv._.length - offset - 1];\n if (!positionalKey) {\n return;\n }\n const choices = this.yargs.getOptions().choices[positionalKey] || [];\n for (const choice of choices) {\n if (choice.startsWith(current)) {\n completions.push(choice.replace(/:/g, '\\\\:'));\n }\n }\n }\n getPreviousArgChoices(args) {\n if (args.length < 1)\n return;\n let previousArg = args[args.length - 1];\n let filter = '';\n if (!previousArg.startsWith('-') && args.length > 1) {\n filter = previousArg;\n previousArg = args[args.length - 2];\n }\n if (!previousArg.startsWith('-'))\n return;\n const previousArgKey = previousArg.replace(/^-+/, '');\n const options = this.yargs.getOptions();\n const possibleAliases = [\n previousArgKey,\n ...(this.yargs.getAliases()[previousArgKey] || []),\n ];\n let choices;\n for (const possibleAlias of possibleAliases) {\n if (Object.prototype.hasOwnProperty.call(options.key, possibleAlias) &&\n Array.isArray(options.choices[possibleAlias])) {\n choices = options.choices[possibleAlias];\n break;\n }\n }\n if (choices) {\n return choices.filter(choice => !filter || choice.startsWith(filter));\n }\n }\n previousArgHasChoices(args) {\n const choices = this.getPreviousArgChoices(args);\n return choices !== undefined && choices.length > 0;\n }\n argsContainKey(args, key, negable) {\n const argsContains = (s) => args.indexOf((/^[^0-9]$/.test(s) ? '-' : '--') + s) !== -1;\n if (argsContains(key))\n return true;\n if (negable && argsContains(`no-${key}`))\n return true;\n if (this.aliases) {\n for (const alias of this.aliases[key]) {\n if (argsContains(alias))\n return true;\n }\n }\n return false;\n }\n completeOptionKey(key, completions, current, negable) {\n var _a, _b, _c, _d;\n let keyWithDesc = key;\n if (this.zshShell) {\n const descs = this.usage.getDescriptions();\n const aliasKey = (_b = (_a = this === null || this === void 0 ? void 0 : this.aliases) === null || _a === void 0 ? void 0 : _a[key]) === null || _b === void 0 ? void 0 : _b.find(alias => {\n const desc = descs[alias];\n return typeof desc === 'string' && desc.length > 0;\n });\n const descFromAlias = aliasKey ? descs[aliasKey] : undefined;\n const desc = (_d = (_c = descs[key]) !== null && _c !== void 0 ? _c : descFromAlias) !== null && _d !== void 0 ? _d : '';\n keyWithDesc = `${key.replace(/:/g, '\\\\:')}:${desc\n .replace('__yargsString__:', '')\n .replace(/(\\r\\n|\\n|\\r)/gm, ' ')}`;\n }\n const startsByTwoDashes = (s) => /^--/.test(s);\n const isShortOption = (s) => /^[^0-9]$/.test(s);\n const dashes = !startsByTwoDashes(current) && isShortOption(key) ? '-' : '--';\n completions.push(dashes + keyWithDesc);\n if (negable) {\n completions.push(dashes + 'no-' + keyWithDesc);\n }\n }\n customCompletion(args, argv, current, done) {\n assertNotStrictEqual(this.customCompletionFunction, null, this.shim);\n if (isSyncCompletionFunction(this.customCompletionFunction)) {\n const result = this.customCompletionFunction(current, argv);\n if (isPromise(result)) {\n return result\n .then(list => {\n this.shim.process.nextTick(() => {\n done(null, list);\n });\n })\n .catch(err => {\n this.shim.process.nextTick(() => {\n done(err, undefined);\n });\n });\n }\n return done(null, result);\n }\n else if (isFallbackCompletionFunction(this.customCompletionFunction)) {\n return this.customCompletionFunction(current, argv, (onCompleted = done) => this.defaultCompletion(args, argv, current, onCompleted), completions => {\n done(null, completions);\n });\n }\n else {\n return this.customCompletionFunction(current, argv, completions => {\n done(null, completions);\n });\n }\n }\n getCompletion(args, done) {\n const current = args.length ? args[args.length - 1] : '';\n const argv = this.yargs.parse(args, true);\n const completionFunction = this.customCompletionFunction\n ? (argv) => this.customCompletion(args, argv, current, done)\n : (argv) => this.defaultCompletion(args, argv, current, done);\n return isPromise(argv)\n ? argv.then(completionFunction)\n : completionFunction(argv);\n }\n generateCompletionScript($0, cmd) {\n let script = this.zshShell\n ? templates.completionZshTemplate\n : templates.completionShTemplate;\n const name = this.shim.path.basename($0);\n if ($0.match(/\\.js$/))\n $0 = `./${$0}`;\n script = script.replace(/{{app_name}}/g, name);\n script = script.replace(/{{completion_command}}/g, cmd);\n return script.replace(/{{app_path}}/g, $0);\n }\n registerFunction(fn) {\n this.customCompletionFunction = fn;\n }\n setParsed(parsed) {\n this.aliases = parsed.aliases;\n }\n}\nexport function completion(yargs, usage, command, shim) {\n return new Completion(yargs, usage, command, shim);\n}\nfunction isSyncCompletionFunction(completionFunction) {\n return completionFunction.length < 3;\n}\nfunction isFallbackCompletionFunction(completionFunction) {\n return completionFunction.length > 3;\n}\n","export const completionShTemplate = `###-begin-{{app_name}}-completions-###\n#\n# yargs command completion script\n#\n# Installation: {{app_path}} {{completion_command}} >> ~/.bashrc\n# or {{app_path}} {{completion_command}} >> ~/.bash_profile on OSX.\n#\n_{{app_name}}_yargs_completions()\n{\n local cur_word args type_list\n\n cur_word=\"\\${COMP_WORDS[COMP_CWORD]}\"\n args=(\"\\${COMP_WORDS[@]}\")\n\n # ask yargs to generate completions.\n type_list=$({{app_path}} --get-yargs-completions \"\\${args[@]}\")\n\n COMPREPLY=( $(compgen -W \"\\${type_list}\" -- \\${cur_word}) )\n\n # if no match was found, fall back to filename completion\n if [ \\${#COMPREPLY[@]} -eq 0 ]; then\n COMPREPLY=()\n fi\n\n return 0\n}\ncomplete -o bashdefault -o default -F _{{app_name}}_yargs_completions {{app_name}}\n###-end-{{app_name}}-completions-###\n`;\nexport const completionZshTemplate = `#compdef {{app_name}}\n###-begin-{{app_name}}-completions-###\n#\n# yargs command completion script\n#\n# Installation: {{app_path}} {{completion_command}} >> ~/.zshrc\n# or {{app_path}} {{completion_command}} >> ~/.zprofile on OSX.\n#\n_{{app_name}}_yargs_completions()\n{\n local reply\n local si=$IFS\n IFS=$'\\n' reply=($(COMP_CWORD=\"$((CURRENT-1))\" COMP_LINE=\"$BUFFER\" COMP_POINT=\"$CURSOR\" {{app_path}} --get-yargs-completions \"\\${words[@]}\"))\n IFS=$si\n _describe 'values' reply\n}\ncompdef _{{app_name}}_yargs_completions {{app_name}}\n###-end-{{app_name}}-completions-###\n`;\n","export function levenshtein(a, b) {\n if (a.length === 0)\n return b.length;\n if (b.length === 0)\n return a.length;\n const matrix = [];\n let i;\n for (i = 0; i <= b.length; i++) {\n matrix[i] = [i];\n }\n let j;\n for (j = 0; j <= a.length; j++) {\n matrix[0][j] = j;\n }\n for (i = 1; i <= b.length; i++) {\n for (j = 1; j <= a.length; j++) {\n if (b.charAt(i - 1) === a.charAt(j - 1)) {\n matrix[i][j] = matrix[i - 1][j - 1];\n }\n else {\n if (i > 1 &&\n j > 1 &&\n b.charAt(i - 2) === a.charAt(j - 1) &&\n b.charAt(i - 1) === a.charAt(j - 2)) {\n matrix[i][j] = matrix[i - 2][j - 2] + 1;\n }\n else {\n matrix[i][j] = Math.min(matrix[i - 1][j - 1] + 1, Math.min(matrix[i][j - 1] + 1, matrix[i - 1][j] + 1));\n }\n }\n }\n }\n return matrix[b.length][a.length];\n}\n","import { argsert } from './argsert.js';\nimport { assertNotStrictEqual, } from './typings/common-types.js';\nimport { levenshtein as distance } from './utils/levenshtein.js';\nimport { objFilter } from './utils/obj-filter.js';\nconst specialKeys = ['$0', '--', '_'];\nexport function validation(yargs, usage, shim) {\n const __ = shim.y18n.__;\n const __n = shim.y18n.__n;\n const self = {};\n self.nonOptionCount = function nonOptionCount(argv) {\n const demandedCommands = yargs.getDemandedCommands();\n const positionalCount = argv._.length + (argv['--'] ? argv['--'].length : 0);\n const _s = positionalCount - yargs.getInternalMethods().getContext().commands.length;\n if (demandedCommands._ &&\n (_s < demandedCommands._.min || _s > demandedCommands._.max)) {\n if (_s < demandedCommands._.min) {\n if (demandedCommands._.minMsg !== undefined) {\n usage.fail(demandedCommands._.minMsg\n ? demandedCommands._.minMsg\n .replace(/\\$0/g, _s.toString())\n .replace(/\\$1/, demandedCommands._.min.toString())\n : null);\n }\n else {\n usage.fail(__n('Not enough non-option arguments: got %s, need at least %s', 'Not enough non-option arguments: got %s, need at least %s', _s, _s.toString(), demandedCommands._.min.toString()));\n }\n }\n else if (_s > demandedCommands._.max) {\n if (demandedCommands._.maxMsg !== undefined) {\n usage.fail(demandedCommands._.maxMsg\n ? demandedCommands._.maxMsg\n .replace(/\\$0/g, _s.toString())\n .replace(/\\$1/, demandedCommands._.max.toString())\n : null);\n }\n else {\n usage.fail(__n('Too many non-option arguments: got %s, maximum of %s', 'Too many non-option arguments: got %s, maximum of %s', _s, _s.toString(), demandedCommands._.max.toString()));\n }\n }\n }\n };\n self.positionalCount = function positionalCount(required, observed) {\n if (observed < required) {\n usage.fail(__n('Not enough non-option arguments: got %s, need at least %s', 'Not enough non-option arguments: got %s, need at least %s', observed, observed + '', required + ''));\n }\n };\n self.requiredArguments = function requiredArguments(argv, demandedOptions) {\n let missing = null;\n for (const key of Object.keys(demandedOptions)) {\n if (!Object.prototype.hasOwnProperty.call(argv, key) ||\n typeof argv[key] === 'undefined') {\n missing = missing || {};\n missing[key] = demandedOptions[key];\n }\n }\n if (missing) {\n const customMsgs = [];\n for (const key of Object.keys(missing)) {\n const msg = missing[key];\n if (msg && customMsgs.indexOf(msg) < 0) {\n customMsgs.push(msg);\n }\n }\n const customMsg = customMsgs.length ? `\\n${customMsgs.join('\\n')}` : '';\n usage.fail(__n('Missing required argument: %s', 'Missing required arguments: %s', Object.keys(missing).length, Object.keys(missing).join(', ') + customMsg));\n }\n };\n self.unknownArguments = function unknownArguments(argv, aliases, positionalMap, isDefaultCommand, checkPositionals = true) {\n var _a;\n const commandKeys = yargs\n .getInternalMethods()\n .getCommandInstance()\n .getCommands();\n const unknown = [];\n const currentContext = yargs.getInternalMethods().getContext();\n Object.keys(argv).forEach(key => {\n if (!specialKeys.includes(key) &&\n !Object.prototype.hasOwnProperty.call(positionalMap, key) &&\n !Object.prototype.hasOwnProperty.call(yargs.getInternalMethods().getParseContext(), key) &&\n !self.isValidAndSomeAliasIsNotNew(key, aliases)) {\n unknown.push(key);\n }\n });\n if (checkPositionals &&\n (currentContext.commands.length > 0 ||\n commandKeys.length > 0 ||\n isDefaultCommand)) {\n argv._.slice(currentContext.commands.length).forEach(key => {\n if (!commandKeys.includes('' + key)) {\n unknown.push('' + key);\n }\n });\n }\n if (checkPositionals) {\n const demandedCommands = yargs.getDemandedCommands();\n const maxNonOptDemanded = ((_a = demandedCommands._) === null || _a === void 0 ? void 0 : _a.max) || 0;\n const expected = currentContext.commands.length + maxNonOptDemanded;\n if (expected < argv._.length) {\n argv._.slice(expected).forEach(key => {\n key = String(key);\n if (!currentContext.commands.includes(key) &&\n !unknown.includes(key)) {\n unknown.push(key);\n }\n });\n }\n }\n if (unknown.length) {\n usage.fail(__n('Unknown argument: %s', 'Unknown arguments: %s', unknown.length, unknown.map(s => (s.trim() ? s : `\"${s}\"`)).join(', ')));\n }\n };\n self.unknownCommands = function unknownCommands(argv) {\n const commandKeys = yargs\n .getInternalMethods()\n .getCommandInstance()\n .getCommands();\n const unknown = [];\n const currentContext = yargs.getInternalMethods().getContext();\n if (currentContext.commands.length > 0 || commandKeys.length > 0) {\n argv._.slice(currentContext.commands.length).forEach(key => {\n if (!commandKeys.includes('' + key)) {\n unknown.push('' + key);\n }\n });\n }\n if (unknown.length > 0) {\n usage.fail(__n('Unknown command: %s', 'Unknown commands: %s', unknown.length, unknown.join(', ')));\n return true;\n }\n else {\n return false;\n }\n };\n self.isValidAndSomeAliasIsNotNew = function isValidAndSomeAliasIsNotNew(key, aliases) {\n if (!Object.prototype.hasOwnProperty.call(aliases, key)) {\n return false;\n }\n const newAliases = yargs.parsed.newAliases;\n return [key, ...aliases[key]].some(a => !Object.prototype.hasOwnProperty.call(newAliases, a) || !newAliases[key]);\n };\n self.limitedChoices = function limitedChoices(argv) {\n const options = yargs.getOptions();\n const invalid = {};\n if (!Object.keys(options.choices).length)\n return;\n Object.keys(argv).forEach(key => {\n if (specialKeys.indexOf(key) === -1 &&\n Object.prototype.hasOwnProperty.call(options.choices, key)) {\n [].concat(argv[key]).forEach(value => {\n if (options.choices[key].indexOf(value) === -1 &&\n value !== undefined) {\n invalid[key] = (invalid[key] || []).concat(value);\n }\n });\n }\n });\n const invalidKeys = Object.keys(invalid);\n if (!invalidKeys.length)\n return;\n let msg = __('Invalid values:');\n invalidKeys.forEach(key => {\n msg += `\\n ${__('Argument: %s, Given: %s, Choices: %s', key, usage.stringifiedValues(invalid[key]), usage.stringifiedValues(options.choices[key]))}`;\n });\n usage.fail(msg);\n };\n let implied = {};\n self.implies = function implies(key, value) {\n argsert('<string|object> [array|number|string]', [key, value], arguments.length);\n if (typeof key === 'object') {\n Object.keys(key).forEach(k => {\n self.implies(k, key[k]);\n });\n }\n else {\n yargs.global(key);\n if (!implied[key]) {\n implied[key] = [];\n }\n if (Array.isArray(value)) {\n value.forEach(i => self.implies(key, i));\n }\n else {\n assertNotStrictEqual(value, undefined, shim);\n implied[key].push(value);\n }\n }\n };\n self.getImplied = function getImplied() {\n return implied;\n };\n function keyExists(argv, val) {\n const num = Number(val);\n val = isNaN(num) ? val : num;\n if (typeof val === 'number') {\n val = argv._.length >= val;\n }\n else if (val.match(/^--no-.+/)) {\n val = val.match(/^--no-(.+)/)[1];\n val = !Object.prototype.hasOwnProperty.call(argv, val);\n }\n else {\n val = Object.prototype.hasOwnProperty.call(argv, val);\n }\n return val;\n }\n self.implications = function implications(argv) {\n const implyFail = [];\n Object.keys(implied).forEach(key => {\n const origKey = key;\n (implied[key] || []).forEach(value => {\n let key = origKey;\n const origValue = value;\n key = keyExists(argv, key);\n value = keyExists(argv, value);\n if (key && !value) {\n implyFail.push(` ${origKey} -> ${origValue}`);\n }\n });\n });\n if (implyFail.length) {\n let msg = `${__('Implications failed:')}\\n`;\n implyFail.forEach(value => {\n msg += value;\n });\n usage.fail(msg);\n }\n };\n let conflicting = {};\n self.conflicts = function conflicts(key, value) {\n argsert('<string|object> [array|string]', [key, value], arguments.length);\n if (typeof key === 'object') {\n Object.keys(key).forEach(k => {\n self.conflicts(k, key[k]);\n });\n }\n else {\n yargs.global(key);\n if (!conflicting[key]) {\n conflicting[key] = [];\n }\n if (Array.isArray(value)) {\n value.forEach(i => self.conflicts(key, i));\n }\n else {\n conflicting[key].push(value);\n }\n }\n };\n self.getConflicting = () => conflicting;\n self.conflicting = function conflictingFn(argv) {\n Object.keys(argv).forEach(key => {\n if (conflicting[key]) {\n conflicting[key].forEach(value => {\n if (value && argv[key] !== undefined && argv[value] !== undefined) {\n usage.fail(__('Arguments %s and %s are mutually exclusive', key, value));\n }\n });\n }\n });\n if (yargs.getInternalMethods().getParserConfiguration()['strip-dashed']) {\n Object.keys(conflicting).forEach(key => {\n conflicting[key].forEach(value => {\n if (value &&\n argv[shim.Parser.camelCase(key)] !== undefined &&\n argv[shim.Parser.camelCase(value)] !== undefined) {\n usage.fail(__('Arguments %s and %s are mutually exclusive', key, value));\n }\n });\n });\n }\n };\n self.recommendCommands = function recommendCommands(cmd, potentialCommands) {\n const threshold = 3;\n potentialCommands = potentialCommands.sort((a, b) => b.length - a.length);\n let recommended = null;\n let bestDistance = Infinity;\n for (let i = 0, candidate; (candidate = potentialCommands[i]) !== undefined; i++) {\n const d = distance(cmd, candidate);\n if (d <= threshold && d < bestDistance) {\n bestDistance = d;\n recommended = candidate;\n }\n }\n if (recommended)\n usage.fail(__('Did you mean %s?', recommended));\n };\n self.reset = function reset(localLookup) {\n implied = objFilter(implied, k => !localLookup[k]);\n conflicting = objFilter(conflicting, k => !localLookup[k]);\n return self;\n };\n const frozens = [];\n self.freeze = function freeze() {\n frozens.push({\n implied,\n conflicting,\n });\n };\n self.unfreeze = function unfreeze() {\n const frozen = frozens.pop();\n assertNotStrictEqual(frozen, undefined, shim);\n ({ implied, conflicting } = frozen);\n };\n return self;\n}\n","import { YError } from '../yerror.js';\nlet previouslyVisitedConfigs = [];\nlet shim;\nexport function applyExtends(config, cwd, mergeExtends, _shim) {\n shim = _shim;\n let defaultConfig = {};\n if (Object.prototype.hasOwnProperty.call(config, 'extends')) {\n if (typeof config.extends !== 'string')\n return defaultConfig;\n const isPath = /\\.json|\\..*rc$/.test(config.extends);\n let pathToDefault = null;\n if (!isPath) {\n try {\n pathToDefault = require.resolve(config.extends);\n }\n catch (_err) {\n return config;\n }\n }\n else {\n pathToDefault = getPathToDefaultConfig(cwd, config.extends);\n }\n checkForCircularExtends(pathToDefault);\n previouslyVisitedConfigs.push(pathToDefault);\n defaultConfig = isPath\n ? JSON.parse(shim.readFileSync(pathToDefault, 'utf8'))\n : require(config.extends);\n delete config.extends;\n defaultConfig = applyExtends(defaultConfig, shim.path.dirname(pathToDefault), mergeExtends, shim);\n }\n previouslyVisitedConfigs = [];\n return mergeExtends\n ? mergeDeep(defaultConfig, config)\n : Object.assign({}, defaultConfig, config);\n}\nfunction checkForCircularExtends(cfgPath) {\n if (previouslyVisitedConfigs.indexOf(cfgPath) > -1) {\n throw new YError(`Circular extended configurations: '${cfgPath}'.`);\n }\n}\nfunction getPathToDefaultConfig(cwd, pathToExtend) {\n return shim.path.resolve(cwd, pathToExtend);\n}\nfunction mergeDeep(config1, config2) {\n const target = {};\n function isObject(obj) {\n return obj && typeof obj === 'object' && !Array.isArray(obj);\n }\n Object.assign(target, config1);\n for (const key of Object.keys(config2)) {\n if (isObject(config2[key]) && isObject(target[key])) {\n target[key] = mergeDeep(config1[key], config2[key]);\n }\n else {\n target[key] = config2[key];\n }\n }\n return target;\n}\n","'use strict';\n\n// Bootstraps yargs for ESM:\nimport esmPlatformShim from './lib/platform-shims/esm.mjs';\nimport {YargsFactory} from './build/lib/yargs-factory.js';\n\nconst Yargs = YargsFactory(esmPlatformShim);\nexport default Yargs;\n","import fs from 'node:fs';\nimport path from 'node:path';\n\nimport type { EnvReaderOptions } from '@willbooster/shared-lib-node/src';\nimport { readEnvironmentVariables } from '@willbooster/shared-lib-node/src';\nimport { memoizeFactory } from 'at-decorators';\nimport { globby } from 'globby';\nimport type { PackageJson } from 'type-fest';\n\nconst memoize = memoizeFactory({ maxCachedThisSize: Number.MAX_SAFE_INTEGER, maxCachedArgsSize: 1 });\n\nexport class Project {\n private readonly argv: EnvReaderOptions;\n private readonly loadEnv: boolean;\n private readonly pathByName = new Map<string, string>();\n\n private readonly _dirPath: string;\n\n constructor(dirPath: string, argv: EnvReaderOptions, loadEnv: boolean) {\n this._dirPath = path.resolve(dirPath);\n this.argv = argv;\n this.loadEnv = loadEnv;\n }\n\n @memoize\n get isBunProject(): boolean {\n return fs.existsSync(path.join(this.rootDirPath, 'bunfig.toml'));\n }\n\n @memoize\n get isBunAvailable(): boolean {\n try {\n return /(^|\\n)bun\\s/.test(fs.readFileSync(path.join(this.rootDirPath, '.tool-versions'), 'utf8'));\n } catch {\n return false;\n }\n }\n\n @memoize\n get buildCommand(): string {\n return this.packageJson.scripts?.build?.includes('buildIfNeeded')\n ? 'yarn build'\n : `YARN wb buildIfNeeded ${this.argv.verbose ? '--verbose' : ''}`;\n }\n\n get dirPath(): string {\n return this._dirPath;\n }\n\n @memoize\n get rootDirPath(): string {\n return fs.existsSync(path.join(this.dirPath, '..', '..', 'package.json'))\n ? path.resolve(this.dirPath, '..', '..')\n : this.dirPath;\n }\n\n @memoize\n get dockerfile(): string {\n return fs.readFileSync(this.findFile('Dockerfile'), 'utf8');\n }\n\n @memoize\n get hasDockerfile(): boolean {\n try {\n return !!this.findFile('Dockerfile');\n } catch {\n return false;\n }\n }\n\n @memoize\n get hasSourceCode(): boolean {\n return fs.existsSync(path.join(this.dirPath, 'src'));\n }\n\n @memoize\n get name(): string {\n return this.packageJson.name || 'unknown';\n }\n\n @memoize\n get dockerImageName(): string {\n const name = this.packageJson.name || 'unknown';\n return name.replaceAll('@', '').replaceAll('/', '-');\n }\n\n @memoize\n get env(): Record<string, string | undefined> {\n return this.loadEnv ? { ...readEnvironmentVariables(this.argv, this.dirPath), ...process.env } : process.env;\n }\n\n @memoize\n get packageJson(): PackageJson {\n return JSON.parse(fs.readFileSync(path.join(this.dirPath, 'package.json'), 'utf8'));\n }\n\n @memoize\n get hasPrisma(): boolean {\n return !!(this.packageJson.dependencies?.['prisma'] || this.packageJson.devDependencies?.['prisma']);\n }\n\n @memoize\n get dockerPackageJson(): PackageJson {\n return path.dirname(this.findFile('Dockerfile')) === this.dirPath\n ? this.packageJson\n : JSON.parse(fs.readFileSync(path.join(path.dirname(this.findFile('Dockerfile')), 'package.json'), 'utf8'));\n }\n\n @memoize\n get binExists(): boolean {\n let binFound = false;\n let currentPath = this.dirPath;\n for (;;) {\n const binPath = path.join(currentPath, 'node_modules', '.bin');\n if (fs.existsSync(binPath)) {\n this.env.PATH = `${binPath}:${this.env.PATH}`;\n binFound = true;\n }\n\n if (fs.existsSync(path.join(currentPath, '.git'))) {\n break;\n }\n const parentPath = path.dirname(currentPath);\n if (currentPath === parentPath) {\n break;\n }\n currentPath = parentPath;\n }\n return binFound;\n }\n\n findFile(fileName: string): string {\n let filePath = this.pathByName.get(fileName);\n if (filePath) return filePath;\n\n filePath = [fileName, path.join('..', '..', fileName)]\n .map((p) => path.resolve(this.dirPath, p))\n .find((p) => fs.existsSync(p));\n if (!filePath) {\n throw new Error(`File not found: ${fileName}`);\n }\n this.pathByName.set(fileName, filePath);\n return filePath;\n }\n}\n\nexport interface FoundProjects {\n root: Project;\n self: Project;\n all: Project[];\n}\n\nexport function findSelfProject(argv: EnvReaderOptions, loadEnv = true, dirPath?: string): Project | undefined {\n dirPath ??= process.cwd();\n if (!fs.existsSync(path.join(dirPath, 'package.json'))) return;\n\n return new Project(dirPath, argv, loadEnv);\n}\n\nexport async function findAllProjects(\n argv: EnvReaderOptions,\n loadEnv = true,\n dirPath?: string\n): Promise<FoundProjects | undefined> {\n const rootAndSelfProjects = findRootAndSelfProjects(argv, loadEnv, dirPath);\n if (!rootAndSelfProjects) return;\n\n return {\n ...rootAndSelfProjects,\n all:\n rootAndSelfProjects.root === rootAndSelfProjects.self\n ? await getAllProjects(argv, rootAndSelfProjects.root, loadEnv)\n : [rootAndSelfProjects.self],\n };\n}\n\nexport function findRootAndSelfProjects(\n argv: EnvReaderOptions,\n loadEnv = true,\n dirPath?: string\n): Omit<FoundProjects, 'all'> | undefined {\n dirPath ??= process.cwd();\n if (!fs.existsSync(path.join(dirPath, 'package.json'))) return;\n\n const thisProject = new Project(dirPath, argv, loadEnv);\n let rootProject = thisProject;\n if (!thisProject.packageJson.workspaces && path.dirname(dirPath).endsWith('/packages')) {\n const rootDirPath = path.resolve(dirPath, '..', '..');\n if (fs.existsSync(path.join(rootDirPath, 'package.json'))) {\n rootProject = new Project(rootDirPath, argv, loadEnv);\n }\n }\n return { root: rootProject, self: thisProject };\n}\n\nasync function getAllProjects(argv: EnvReaderOptions, rootProject: Project, loadEnv: boolean): Promise<Project[]> {\n const allProjects = [rootProject];\n\n const workspace = rootProject.packageJson.workspaces;\n if (!Array.isArray(workspace)) return allProjects;\n\n const globPattern: string[] = [];\n const packageDirs: string[] = [];\n for (const workspacePath of workspace.map((ws: string) => path.join(rootProject.dirPath, ws))) {\n if (fs.existsSync(workspacePath)) {\n packageDirs.push(workspacePath);\n } else {\n globPattern.push(workspacePath);\n }\n }\n packageDirs.push(...(await globby(globPattern, { dot: true, onlyDirectories: true })));\n for (const subPackageDirPath of packageDirs) {\n if (!fs.existsSync(path.join(subPackageDirPath, 'package.json'))) continue;\n\n allProjects.push(new Project(subPackageDirPath, argv, loadEnv));\n }\n return allProjects;\n}\n","import{cyrb64HashWithLength as e}from\"./hash.js\";const t=s();function s({cacheDuration:t=Number.POSITIVE_INFINITY,caches:s,calcKey:n=(t=>e(JSON.stringify(t))),maxCachedArgsSize:i=100,maxCachedThisSize:c=10}={}){return function(e,o){if(\"getter\"===o?.kind){const n=new Map;return s?.push(n),function(){const s=Date.now();if(n.has(this)){const[e,i]=n.get(this);if(s-i<=t)return e}const i=e.call(this);if(n.size>=c){const e=n.keys().next().value;n.delete(e)}return n.set(this,[i,s]),i}}{const r=new Map;return s?.push(r),function(...s){const a=n(s);let h=r.get(this);const u=Date.now();if(h){if(h.has(a)){const[e,s]=h.get(a);if(u-s<=t)return e}}else{if(h=new Map,r.size>=c){const e=r.keys().next().value;r.delete(e)}r.set(this,h)}const f=o?e.call(this,...s):e(...s);if(h.size>=i){const e=h.keys().next().value;h.delete(e)}return h.set(a,[f,u]),f}}}}export{t as memoize,s as memoizeFactory};\n//# sourceMappingURL=memoize.js.map\n","function t(t,n=0){const[i,r]=function(t,n=0){let i=3735928559^n,r=1103547991^n;for(let n,a=0;a<t.length;a++)n=t.codePointAt(a),i=Math.imul(i^n,2654435761),r=Math.imul(r^n,1597334677);return i=Math.imul(i^i>>>16,2246822507),i^=Math.imul(r^r>>>13,3266489909),r=Math.imul(r^r>>>16,2246822507),r^=Math.imul(i^i>>>13,3266489909),[r>>>0,i>>>0]}(t,n);return t.length.toString(36)+i.toString(36).padStart(7,\"0\")+r.toString(36).padStart(7,\"0\")}export{t as cyrb64HashWithLength};\n//# sourceMappingURL=hash.js.map\n","import child_process from 'node:child_process';\nimport type { Hash } from 'node:crypto';\nimport { createHash } from 'node:crypto';\nimport fs from 'node:fs';\nimport path from 'node:path';\n\nimport { ignoreEnoentAsync } from '@willbooster/shared-lib/src';\nimport chalk from 'chalk';\nimport type { ArgumentsCamelCase, CommandModule, InferredOptionTypes } from 'yargs';\n\nimport type { Project } from '../project.js';\nimport { findSelfProject } from '../project.js';\nimport type { sharedOptionsBuilder } from '../sharedOptionsBuilder.js';\n\nconst builder = {\n command: {\n description: 'A build command',\n type: 'string',\n default: 'yarn build',\n alias: 'c',\n },\n} as const;\n\nexport const buildIfNeededCommand: CommandModule<unknown, InferredOptionTypes<typeof builder>> = {\n command: 'buildIfNeeded',\n describe: 'Build code if changes are detected',\n builder,\n async handler(argv) {\n await buildIfNeeded(argv);\n },\n};\n\nfunction build(project: Project, argv: Partial<ArgumentsCamelCase<InferredOptionTypes<typeof builder>>>): boolean {\n console.info(chalk.green(`Run '${argv.command}'`));\n if (!argv.dryRun) {\n const ret = child_process.spawnSync(argv.command ?? '', {\n cwd: project.dirPath,\n env: project.env,\n shell: true,\n stdio: 'inherit',\n });\n if (ret.status !== 0) {\n process.exitCode = ret.status ?? 1;\n return false;\n }\n }\n return true;\n}\n\nexport async function buildIfNeeded(\n // Test code requires Partial<...>\n argv: Partial<ArgumentsCamelCase<InferredOptionTypes<typeof builder & typeof sharedOptionsBuilder>>>,\n projectPathForTesting?: string\n): Promise<boolean | undefined> {\n const project = await findSelfProject(argv, true, projectPathForTesting);\n if (!project) {\n console.error(chalk.red('No project found.'));\n return true;\n }\n\n if (!fs.existsSync(path.join(project.rootDirPath, '.git'))) {\n build(project, argv);\n return true;\n }\n\n const [canSkip, cacheFilePath, contentHash] = await canSkipBuild(project, argv);\n if (canSkip) {\n console.info(chalk.green(`Skip to run '${argv.command}' 💫`));\n return false;\n }\n\n if (!build(project, argv)) return;\n\n if (!argv.dryRun) {\n await fs.promises.writeFile(cacheFilePath, contentHash, 'utf8');\n }\n return true;\n}\n\nconst ignoringEnvVarNames = new Set(['CI', 'PWDEBUG', 'TMPDIR']);\n\nexport async function canSkipBuild(\n project: Project,\n argv: Partial<ArgumentsCamelCase<InferredOptionTypes<typeof builder>>>\n): Promise<[boolean, string, string]> {\n const cacheDirectoryPath = path.resolve(project.dirPath, 'node_modules', '.cache', 'build');\n const cacheFilePath = path.resolve(cacheDirectoryPath, 'last-build');\n await fs.promises.mkdir(cacheDirectoryPath, { recursive: true });\n\n const hash = createHash('sha256');\n\n const commitHash = child_process.execSync('git rev-parse HEAD', { cwd: project.dirPath }).toString().trim();\n hash.update(commitHash);\n\n const environmentJson = JSON.stringify(\n Object.entries(project.env)\n .filter(([key]) => !ignoringEnvVarNames.has(key))\n .sort(([key1], [key2]) => key1.localeCompare(key2))\n );\n hash.update(environmentJson);\n\n await updateHashWithDiffResult(project, argv, hash);\n const contentHash = hash.digest('hex');\n\n const cachedContentHash = await ignoreEnoentAsync(() => fs.promises.readFile(cacheFilePath, 'utf8'));\n return [cachedContentHash === contentHash, cacheFilePath, contentHash];\n}\n\nconst includePatterns = ['src/', 'public/'];\nconst includeSuffix = [\n '.js',\n '.cjs',\n '.mjs',\n '.jsx',\n '.ts',\n '.cts',\n '.mts',\n '.tsx',\n '.json',\n '.browserslistrc',\n // Because some build commands affected by changes in `package.json`\n 'package.json',\n 'yarn.lock',\n];\nconst excludePatterns = ['test/', 'tests/', '__tests__/', 'test-fixtures/'];\n\nasync function updateHashWithDiffResult(\n project: Project,\n argv: Partial<ArgumentsCamelCase<InferredOptionTypes<typeof builder>>>,\n hash: Hash\n): Promise<void> {\n return new Promise((resolve) => {\n const ret = child_process.spawnSync('git', ['diff', '--name-only'], {\n cwd: project.dirPath,\n env: project.env,\n stdio: 'pipe',\n encoding: 'utf8',\n });\n const filePaths = ret.stdout\n .trim()\n .split('\\n')\n .map((filePath) =>\n project.env.WB_ENV === 'test' ? filePath.replace(/packages\\/scripts\\/test-fixtures\\/[^/]+\\//, '') : filePath\n );\n const filteredFilePaths = filePaths.filter(\n (filePath) =>\n (includePatterns.some((pattern) => filePath.includes(pattern)) ||\n includeSuffix.some((suffix) => filePath.endsWith(suffix))) &&\n !excludePatterns.some((pattern) => filePath.includes(pattern))\n );\n if (argv.verbose) {\n console.info(`Changed files: ${filteredFilePaths.join(', ')}`);\n }\n\n // 'git diff --' works only on rootDirPath\n const proc = child_process.spawn('git', ['diff', '--', ...filteredFilePaths], { cwd: project.rootDirPath });\n proc.stdout?.on('data', (data) => {\n hash.update(data);\n if (argv.verbose) {\n console.info(data.toString());\n console.info('Hash:', hash.copy().digest('hex'));\n }\n });\n proc.on('close', () => {\n resolve();\n });\n });\n}\n","import { sleep } from './sleep.js';\n\n/**\n * Convert an object to an error.\n * @param obj The object to convert.\n */\nexport function errorify(obj: unknown): Error {\n if (obj instanceof Error) return obj;\n if (typeof obj === 'string') return new Error(obj);\n try {\n return new Error(JSON.stringify(obj));\n } catch {\n return new Error(String(obj));\n }\n}\n\nexport function ignoreError<T>(fn: () => T): T | undefined {\n try {\n return fn();\n } catch {\n // do nothing\n }\n}\n\nexport function ignoreEnoent<T>(fn: () => T): T | undefined {\n try {\n return fn();\n } catch (error) {\n if (typeof error === 'object' && error && 'code' in error && error.code === 'ENOENT') {\n return;\n }\n throw error;\n }\n}\n\nexport async function ignoreErrorAsync<T>(fn: () => Promise<T>): Promise<T | undefined> {\n try {\n return await fn();\n } catch {\n // do nothing\n }\n}\n\nexport async function ignoreEnoentAsync<T>(fn: () => Promise<T>): Promise<T | undefined> {\n try {\n return await fn();\n } catch (error) {\n if (typeof error === 'object' && error && 'code' in error && error.code === 'ENOENT') {\n return;\n }\n throw error;\n }\n}\n\nexport interface RetryOptions {\n beforeRetry?: (error: unknown) => Promise<void>;\n handleError?: (error: unknown) => Promise<void>;\n retryCount?: number;\n retryLogger?: (message: string) => void;\n sleepMilliseconds?: number;\n}\n\n/**\n * Retry the given function.\n * @param func The function to retry.\n * @param beforeRetry The function to call immediately before retrying.\n * @param handleError The function to call when an error occurs.\n * @param retryCount The maximum number of retries.\n * @param retryLogger The function to log retrying.\n * @param sleepMilliseconds The number of milliseconds to sleep before retrying.\n */\nexport async function withRetry<T>(\n func: (failedCount: number) => Promise<T>,\n { beforeRetry, handleError, retryCount = 3, retryLogger, sleepMilliseconds = 0 }: RetryOptions = {}\n): Promise<T> {\n let failedCount = 0;\n for (;;) {\n try {\n return await func(failedCount);\n } catch (error) {\n await handleError?.(error);\n failedCount++;\n if (failedCount >= retryCount) {\n throw error;\n }\n if (sleepMilliseconds > 0) {\n await sleep(sleepMilliseconds);\n }\n retryLogger?.(`Retry due to: ${error instanceof Error ? error.stack : error}`);\n await beforeRetry?.(error);\n }\n }\n}\n","import type { Project } from '../project.js';\n\nexport function* prepareForRunningCommand(commandName: string, projects: Project[]): Generator<Project, void, unknown> {\n for (const project of projects) {\n console.info(`Running \"${commandName}\" for ${project.name} ...`);\n\n yield project;\n }\n}\n","import child_process from 'node:child_process';\nimport fs from 'node:fs';\nimport path from 'node:path';\n\nimport chalk from 'chalk';\nimport type { PackageJson } from 'type-fest';\nimport type { CommandModule, InferredOptionTypes } from 'yargs';\n\nimport { findAllProjects } from '../project.js';\n\nimport { prepareForRunningCommand } from './commandUtils.js';\n\nconst builder = {\n outside: {\n description: 'Whether the optimization is executed outside a docker container or not',\n type: 'boolean',\n alias: 'o',\n },\n} as const;\n\nexport const optimizeForDockerBuildCommand: CommandModule<unknown, InferredOptionTypes<typeof builder>> = {\n command: 'optimizeForDockerBuild',\n describe: 'Optimize configuration when building a Docker image',\n builder,\n async handler(argv) {\n const projects = await findAllProjects(argv);\n if (!projects) {\n console.error(chalk.red('No project found.'));\n process.exit(1);\n }\n\n for (const project of prepareForRunningCommand('optimizeForDockerBuild', projects.all)) {\n const packageJson: PackageJson = project.packageJson;\n const keys = ['dependencies', 'devDependencies'] as const;\n for (const key of keys) {\n const deps = packageJson[key] || {};\n for (const [name, value] of Object.entries(deps)) {\n if (value?.startsWith('git@github.com:')) {\n deps[name] = `./${name}`;\n }\n }\n }\n\n optimizeDevDependencies(argv, packageJson);\n\n optimizeScripts(packageJson);\n\n optimizeRootProps(packageJson);\n\n if (argv.dryRun) continue;\n\n const distDirPath = argv.outside ? path.join(project.dirPath, 'dist') : project.dirPath;\n await fs.promises.mkdir(distDirPath, { recursive: true });\n await fs.promises.writeFile(path.join(distDirPath, 'package.json'), JSON.stringify(packageJson), 'utf8');\n }\n if (!argv.dryRun && !argv.outside) {\n child_process.spawnSync('yarn', {\n stdio: 'inherit',\n });\n }\n },\n};\n\nfunction optimizeDevDependencies(argv: InferredOptionTypes<typeof builder>, packageJson: PackageJson): void {\n if (!argv.outside) {\n delete packageJson.devDependencies;\n return;\n }\n\n const devDeps = packageJson.devDependencies || {};\n const nameWordsToBeRemoved = [\n 'artillery',\n 'concurrently',\n 'conventional-changelog-conventionalcommits',\n 'eslint',\n 'husky',\n 'imagemin',\n 'jest',\n 'kill-port',\n 'lint-staged',\n 'open-cli',\n 'playwright',\n 'prettier',\n 'pinst',\n 'sort-package-json',\n 'wait-on',\n 'semantic-release',\n 'vitest',\n ];\n for (const name of Object.keys(devDeps)) {\n if (\n nameWordsToBeRemoved.some((word) => name.includes(word)) ||\n (!argv.outside && name.includes('willbooster') && name.includes('config'))\n ) {\n delete devDeps[name];\n }\n }\n}\n\nfunction optimizeScripts(packageJson: PackageJson): void {\n const nameWordsOfUnnecessaryScripts = ['check', 'deploy', 'format', 'lint', 'start', 'test'];\n const contentWordsOfUnnecessaryScripts = ['pinst ', 'husky '];\n const scripts = (packageJson.scripts || {}) as Record<string, string>;\n for (const [name, content] of Object.entries(scripts)) {\n if (\n nameWordsOfUnnecessaryScripts.some((word) => name.includes(word)) ||\n // Support \"husky\" since husky v9 requires `\"postinstall\": \"husky\"`\n contentWordsOfUnnecessaryScripts.some((word) => content.includes(word) || content.trim() === word.trim())\n ) {\n delete scripts[name];\n }\n }\n}\n\nfunction optimizeRootProps(packageJson: PackageJson): void {\n delete packageJson.private;\n delete packageJson.publishConfig;\n delete packageJson.prettier;\n}\n","export const isRunningOnBun = process.argv[0].endsWith('/bun');\n\nexport const runtimeWithArgs = isRunningOnBun ? 'bun --bun' : 'node';\nexport const packageManagerWithArgs = isRunningOnBun ? 'bun --bun' : 'yarn';\n","import path from 'node:path';\n\nimport type { Project } from '../project.js';\nimport { runtimeWithArgs } from '../utils/runtime.js';\n\n/**\n * A collection of scripts for executing Prisma commands.\n * Note that `PRISMA` is replaced with `YARN prisma` or `YARN blitz prisma`\n * and `YARN zzz` is replaced with `yarn zzz` or `node_modules/.bin/zzz`.\n */\nclass PrismaScripts {\n deploy(_: Project): string {\n return 'PRISMA migrate deploy';\n }\n\n deployForce(project: Project, backupPath: string): string {\n const dirName = project.packageJson.dependencies?.['blitz'] ? 'db' : 'prisma';\n // Don't skip \"migrate deploy\" because restored database may be older than the current schema.\n return `rm -Rf ${dirName}/mount/prod.sqlite3*; PRISMA migrate reset --force && rm -Rf ${dirName}/mount/prod.sqlite3*\n && litestream restore -o ${dirName}/mount/prod.sqlite3 ${backupPath} && ALLOW_TO_SKIP_SEED=0 PRISMA migrate deploy`;\n }\n\n litestream(_: Project): string {\n return `${runtimeWithArgs} -e '\nconst { PrismaClient } = require(\"@prisma/client\");\nnew PrismaClient().$queryRaw\\`PRAGMA journal_mode = WAL;\\`\n .catch((error) => { console.log(\"Failed due to:\", error); process.exit(1); });\n'`;\n }\n\n migrate(project: Project): string {\n return `PRISMA migrate deploy && PRISMA generate && ${this.seed(project)}`;\n }\n\n migrateDev(_: Project): string {\n return `PRISMA migrate dev`;\n }\n\n reset(project: Project): string {\n // cf. https://www.prisma.io/docs/guides/database/seed-database#integrated-seeding-with-prisma-migrate\n // Blitz does not trigger seed automatically, so we need to run it manually.\n return `PRISMA migrate reset --force --skip-seed && ${this.seed(project)}`;\n // I'm not sure why we need to remove all sqlite files, so I commented out the following line.\n // return `true $(rm -Rf db/**/*.sqlite* 2> /dev/null) && true $(rm -Rf prisma/**/*.sqlite* 2> /dev/null) && PRISMA migrate reset --force --skip-seed && ${this.seed()}`;\n }\n\n restore(project: Project, backupPath: string, outputPath: string): string {\n const dirName = project.packageJson.dependencies?.['blitz'] ? 'db' : 'prisma';\n return `rm -Rf ${dirName}/restored.sqlite3; GOOGLE_APPLICATION_CREDENTIALS=gcp-sa-key.json litestream restore -o ${outputPath} ${backupPath}`;\n }\n\n seed(project: Project, scriptPath?: string): string {\n if (project.packageJson.dependencies?.['blitz'])\n return `YARN blitz db seed${scriptPath ? ` -f ${scriptPath}` : ''}`;\n if (scriptPath) return 'BUN build-ts run prisma/seeds.ts';\n if ((project.packageJson.prisma as Record<string, string> | undefined)?.['seed']) return `YARN prisma db seed`;\n return `if [ -e \"prisma/seeds.ts\" ]; then BUN build-ts run prisma/seeds.ts; fi`;\n }\n\n studio(_: Project, dbUrlOrPath?: string): string {\n let prefix = '';\n if (dbUrlOrPath) {\n try {\n new URL(dbUrlOrPath);\n prefix = `DATABASE_URL=${dbUrlOrPath} `;\n } catch {\n const absolutePath = path.resolve(dbUrlOrPath);\n console.info(dbUrlOrPath, absolutePath);\n prefix = `DATABASE_URL=file://${absolutePath} `;\n }\n }\n return `${prefix}PRISMA studio`;\n }\n}\n\nexport const prismaScripts = new PrismaScripts();\n","import { spawnSync } from 'node:child_process';\n\nimport killPortProcess from 'kill-port';\n\nimport type { Project } from '../project.js';\nimport { printFinishedAndExitIfNeeded, printStart } from '../scripts/run.js';\n\nconst killed = new Set<number | string>();\n\nexport async function killPortProcessImmediatelyAndOnExit(port: number): Promise<void> {\n await killPortProcessHandlingErrors(port);\n const killFunc = async (): Promise<void> => {\n if (killed.has(port)) return;\n\n killed.add(port);\n await killPortProcessHandlingErrors(port);\n };\n for (const signal of ['beforeExit', 'SIGINT', 'SIGTERM', 'SIGQUIT']) {\n process.on(signal, killFunc);\n }\n}\n\nasync function killPortProcessHandlingErrors(port: number): Promise<void> {\n try {\n await killPortProcess(port);\n } catch {\n // do nothing\n }\n}\n\nexport function spawnSyncOnExit(script: string, project: Project): void {\n const killFunc = async (): Promise<void> => {\n if (killed.has(script)) return;\n\n killed.add(script);\n printStart(script, project);\n const { status } = spawnSync(script, { cwd: project.dirPath, shell: true, stdio: 'inherit' });\n printFinishedAndExitIfNeeded(script, status, {});\n };\n for (const signal of ['beforeExit', 'SIGINT', 'SIGTERM', 'SIGQUIT']) {\n process.on(signal, killFunc);\n }\n}\n","import { PromisePool } from 'minimal-promise-pool';\n\nexport const promisePool = new PromisePool();\n","import { spawnAsync } from '@willbooster/shared-lib-node/src';\nimport chalk from 'chalk';\nimport type { ArgumentsCamelCase, InferredOptionTypes } from 'yargs';\n\nimport type { Project } from '../project.js';\nimport type { sharedOptionsBuilder } from '../sharedOptionsBuilder.js';\nimport { killPortProcessImmediatelyAndOnExit } from '../utils/process.js';\nimport { promisePool } from '../utils/promisePool.js';\nimport { isRunningOnBun, packageManagerWithArgs } from '../utils/runtime.js';\n\ninterface Options {\n exitIfFailed?: boolean;\n timeout?: number;\n}\n\nconst defaultOptions: Options = {\n exitIfFailed: true,\n};\n\nexport async function runWithSpawn(\n script: string,\n project: Project,\n argv: Partial<ArgumentsCamelCase<InferredOptionTypes<typeof sharedOptionsBuilder>>>,\n opts: Options = defaultOptions\n): Promise<number> {\n const [printableScript, runnableScript] = normalizeScript(script, project);\n printStart(printableScript, project);\n if (argv.verbose) {\n printStart(runnableScript, project, 'Start (raw)', true);\n }\n if (argv.dryRun) {\n printFinishedAndExitIfNeeded(printableScript, 0, opts);\n return 0;\n }\n\n const port = runnableScript.match(/http:\\/\\/127.0.0.1:(\\d+)/)?.[1];\n if (runnableScript.includes('wait-on') && port && !runnableScript.includes('docker run')) {\n await killPortProcessImmediatelyAndOnExit(Number(port));\n }\n const ret = await spawnAsync(runnableScript, undefined, {\n cwd: project.dirPath,\n env: project.env,\n shell: true,\n stdio: 'inherit',\n timeout: opts?.timeout,\n killOnExit: true,\n verbose: argv.verbose,\n });\n printFinishedAndExitIfNeeded(printableScript, ret.status, opts);\n return ret.status ?? 1;\n}\n\nexport function runWithSpawnInParallel(\n script: string,\n project: Project,\n argv: Partial<ArgumentsCamelCase<InferredOptionTypes<typeof sharedOptionsBuilder>>>,\n opts: Options = defaultOptions\n): Promise<void> {\n return promisePool.run(async () => {\n const [printableScript, runnableScript] = normalizeScript(script, project);\n printStart(printableScript, project, 'Start (parallel)', true);\n if (argv.dryRun) {\n printStart(printableScript, project, 'Started (log)');\n if (argv.verbose) {\n printStart(runnableScript, project, 'Started (raw)', true);\n }\n printFinishedAndExitIfNeeded(printableScript, 0, opts);\n return;\n }\n\n const ret = await spawnAsync(runnableScript, undefined, {\n cwd: project.dirPath,\n env: project.env,\n shell: true,\n stdio: 'pipe',\n timeout: opts?.timeout,\n mergeOutAndError: true,\n killOnExit: true,\n verbose: argv.verbose,\n });\n printStart(printableScript, project, 'Started (log)');\n if (argv.verbose) {\n printStart(runnableScript, project, 'Started (raw)', true);\n }\n const out = ret.stdout.trim();\n if (out) console.info(out);\n printFinishedAndExitIfNeeded(printableScript, ret.status, opts);\n });\n}\n\nfunction normalizeScript(script: string, project: Project): [string, string] {\n const newScript = script\n .replaceAll('\\n', '')\n .replaceAll(/\\s\\s+/g, ' ')\n .replaceAll('PRISMA ', project.packageJson.dependencies?.['blitz'] ? 'YARN blitz prisma ' : 'YARN prisma ')\n .replaceAll('BUN ', project.isBunAvailable ? 'bun --bun ' : 'YARN ')\n .trim();\n return [\n newScript.replaceAll('YARN ', `${packageManagerWithArgs} `),\n newScript.replaceAll('YARN ', !isRunningOnBun && project.binExists ? '' : `${packageManagerWithArgs} `),\n ];\n}\n\nexport function printStart(normalizedScript: string, project: Project, prefix = 'Start', weak = false): void {\n console.info(\n '\\n' +\n (weak ? chalk.gray : chalk.cyan)(chalk.bold(`${prefix}:`), normalizedScript) +\n chalk.gray(` at ${project.dirPath}`)\n );\n}\n\nexport function printFinishedAndExitIfNeeded(\n script: string,\n exitCode: number | null,\n opts: Omit<Options, 'timeout'>\n): void {\n if (exitCode === 0) {\n console.info(chalk.green(chalk.bold('Finished:'), script));\n } else {\n console.info(chalk.red(chalk.bold(`Failed (exit code ${exitCode}): `), script));\n if (opts.exitIfFailed !== false) {\n process.exit(exitCode ?? 1);\n }\n }\n}\n","import type { EnvReaderOptions } from '@willbooster/shared-lib-node/src';\nimport chalk from 'chalk';\nimport type { CommandModule, InferredOptionTypes } from 'yargs';\n\nimport type { Project } from '../project.js';\nimport { findAllProjects } from '../project.js';\nimport { prismaScripts } from '../scripts/prismaScripts.js';\nimport { runWithSpawn } from '../scripts/run.js';\n\nimport { prepareForRunningCommand } from './commandUtils.js';\n\nconst builder = {} as const;\n\nexport const prismaCommand: CommandModule = {\n command: 'prisma',\n describe: 'Run prisma commands',\n builder: (yargs) => {\n return yargs\n .command(deployCommand)\n .command(deployForceCommand)\n .command(litestreamCommand)\n .command(migrateCommand)\n .command(migrateDevCommand)\n .command(resetCommand)\n .command(restoreCommand)\n .command(seedCommand)\n .command(studioCommand)\n .command(defaultCommand)\n .demandCommand();\n },\n handler() {\n // Do nothing\n },\n};\n\nconst deployCommand: CommandModule<unknown, InferredOptionTypes<typeof builder>> = {\n command: 'deploy',\n describe: 'Apply migration to DB without initializing it',\n builder,\n async handler(argv) {\n const allProjects = await findPrismaProjects(argv);\n for (const project of prepareForRunningCommand('prisma deploy', allProjects)) {\n await runWithSpawn(prismaScripts.deploy(project), project, argv);\n }\n },\n};\n\nconst deployForceBuilder = {\n ...builder,\n 'backup-path': {\n description: 'Whether to skip actual command execution',\n demandOption: true,\n type: 'string',\n alias: 'b',\n },\n} as const;\n\nconst deployForceCommand: CommandModule<unknown, InferredOptionTypes<typeof deployForceBuilder>> = {\n command: 'deploy-force <backup-path>',\n describe: \"Force to apply migration to DB utilizing Litestream's backup without initializing it\",\n builder: deployForceBuilder,\n async handler(argv) {\n const allProjects = await findPrismaProjects(argv);\n for (const project of prepareForRunningCommand('prisma deploy-force', allProjects)) {\n await runWithSpawn(prismaScripts.deployForce(project, argv.backupPath), project, argv);\n }\n },\n};\n\nconst litestreamCommand: CommandModule<unknown, InferredOptionTypes<typeof builder>> = {\n command: 'litestream',\n describe: 'Setup DB for Litestream',\n builder,\n async handler(argv) {\n const allProjects = await findPrismaProjects(argv);\n for (const project of prepareForRunningCommand('prisma litestream', allProjects)) {\n await runWithSpawn(prismaScripts.litestream(project), project, argv);\n }\n },\n};\n\nconst migrateCommand: CommandModule<unknown, InferredOptionTypes<typeof builder>> = {\n command: 'migrate',\n describe: 'Apply migration to DB with initializing it',\n builder,\n async handler(argv) {\n const allProjects = await findPrismaProjects(argv);\n for (const project of prepareForRunningCommand('prisma migrate', allProjects)) {\n await runWithSpawn(prismaScripts.migrate(project), project, argv);\n }\n },\n};\n\nconst migrateDevCommand: CommandModule<unknown, InferredOptionTypes<typeof builder>> = {\n command: 'migrate-dev',\n describe: 'Create a migration file',\n builder,\n async handler(argv) {\n const allProjects = await findPrismaProjects(argv);\n for (const project of prepareForRunningCommand('prisma migrate-dev', allProjects)) {\n await runWithSpawn(prismaScripts.migrateDev(project), project, argv);\n }\n },\n};\n\nconst resetCommand: CommandModule<unknown, InferredOptionTypes<typeof builder>> = {\n command: 'reset',\n describe: 'Reset DB',\n builder,\n async handler(argv) {\n const allProjects = await findPrismaProjects(argv);\n for (const project of prepareForRunningCommand('prisma reset', allProjects)) {\n await runWithSpawn(prismaScripts.reset(project), project, argv);\n }\n },\n};\n\nconst restoreBuilder = {\n ...deployForceBuilder,\n output: {\n description: 'Output path of the restored database. Defaults to \"<db|prisma>/restored.sqlite3\".',\n type: 'string',\n },\n} as const;\n\nconst restoreCommand: CommandModule<unknown, InferredOptionTypes<typeof restoreBuilder>> = {\n command: 'restore <backup-path>',\n describe: \"Restore DB from Litestream's backup\",\n builder: restoreBuilder,\n async handler(argv) {\n const allProjects = await findPrismaProjects(argv);\n for (const project of prepareForRunningCommand('prisma restore', allProjects)) {\n const output =\n argv.output ||\n (project.packageJson.dependencies?.['blitz'] ? 'db/restored.sqlite3' : 'prisma/restored.sqlite3');\n await runWithSpawn(prismaScripts.restore(project, argv.backupPath, output), project, argv);\n }\n },\n};\n\nconst seedBuilder = {\n ...builder,\n file: {\n alias: 'f',\n description: 'Path of the seed script.',\n type: 'string',\n },\n} as const;\n\nconst seedCommand: CommandModule<unknown, InferredOptionTypes<typeof seedBuilder>> = {\n command: 'seed',\n describe: 'Populate DB with seed data',\n builder: seedBuilder,\n async handler(argv) {\n const allProjects = await findPrismaProjects(argv);\n for (const project of prepareForRunningCommand('prisma seed', allProjects)) {\n await runWithSpawn(prismaScripts.seed(project, argv.file), project, argv);\n }\n },\n};\n\nconst studioBuilder = {\n ...builder,\n 'db-url-or-path': {\n description: 'URL or path to the database',\n type: 'string',\n },\n restored: {\n description: 'Whether to open the default restored database (<db|prisma>/restored.sqlite3).',\n type: 'boolean',\n },\n} as const;\n\nconst studioCommand: CommandModule<unknown, InferredOptionTypes<typeof studioBuilder>> = {\n command: 'studio [db-url-or-path]',\n describe: 'Open Prisma Studio',\n builder: studioBuilder,\n async handler(argv) {\n if (argv.restored && argv.dbUrlOrPath) {\n throw new Error('You cannot specify both --restored and --db-url-or-path.');\n }\n\n const allProjects = await findPrismaProjects(argv);\n for (const project of prepareForRunningCommand('prisma studio', allProjects)) {\n const dbUrlOrPath = argv.restored\n ? project.packageJson.dependencies?.['blitz']\n ? 'db/restored.sqlite3'\n : 'prisma/restored.sqlite3'\n : argv.dbUrlOrPath?.toString();\n await runWithSpawn(prismaScripts.studio(project, dbUrlOrPath), project, argv);\n }\n },\n};\n\nconst defaultCommandBuilder = { args: { type: 'array' } } as const;\n\nconst defaultCommand: CommandModule<unknown, InferredOptionTypes<typeof defaultCommandBuilder>> = {\n command: '$0 [args..]',\n describe: 'Pass the command and arguments to prisma as is',\n builder: defaultCommandBuilder,\n async handler(argv) {\n const allProjects = await findPrismaProjects(argv);\n const script = `${argv.args?.join(' ') ?? ''}`.trimEnd();\n for (const project of prepareForRunningCommand(`prisma ${script}`, allProjects)) {\n await runWithSpawn(`PRISMA ${script}`, project, argv);\n }\n },\n};\n\nasync function findPrismaProjects(argv: EnvReaderOptions): Promise<Project[]> {\n const projects = await findAllProjects(argv);\n if (!projects) {\n console.error(chalk.red('No project found.'));\n process.exit(1);\n }\n\n const filtered = projects.all.filter(\n (project) => project.packageJson.dependencies?.['prisma'] || project.packageJson.devDependencies?.['prisma']\n );\n if (filtered.length === 0) {\n console.error(chalk.red('No prisma project found.'));\n process.exit(1);\n }\n return filtered;\n}\n","import chalk from 'chalk';\nimport type { CommandModule, InferredOptionTypes } from 'yargs';\n\nimport { findSelfProject } from '../project.js';\nimport { runWithSpawn } from '../scripts/run.js';\nimport type { sharedOptionsBuilder } from '../sharedOptionsBuilder.js';\n\nconst builder = {\n retry: {\n description: 'A maximum retry count',\n type: 'number',\n alias: 'r',\n default: 3,\n },\n} as const;\n\nconst argumentsBuilder = {\n command: {\n description: 'A command to retry',\n type: 'string',\n },\n args: {\n description: 'Arguments for the command',\n type: 'array',\n },\n} as const;\n\nexport const retryCommand: CommandModule<\n unknown,\n InferredOptionTypes<typeof builder & typeof sharedOptionsBuilder & typeof argumentsBuilder>\n> = {\n command: 'retry [command] [args...]',\n describe: 'Retry the given command until it succeeds',\n builder,\n async handler(argv) {\n const project = findSelfProject(argv);\n if (!project) {\n console.error(chalk.red('No project found.'));\n process.exit(1);\n }\n\n const cmdAndArgs = [argv.command, ...(argv.args ?? []), ...argv._.slice(1)].filter(Boolean);\n let lastStatus = 0;\n for (let i = 0; i < argv.retry; i++) {\n if (i > 0) {\n console.info(`\\n${chalk.yellow(`#${i} Retrying: ${cmdAndArgs.join(' ')}`)}`);\n }\n // TODO: should we add single quotes around each argument?\n lastStatus = await runWithSpawn(cmdAndArgs.join(' '), project, argv, {\n exitIfFailed: false,\n });\n if (lastStatus === 0) return;\n }\n process.exit(lastStatus);\n },\n};\n","import child_process from 'node:child_process';\nimport fs from 'node:fs/promises';\nimport os from 'node:os';\n\nimport chalk from 'chalk';\nimport type { ArgumentsCamelCase, CommandModule, InferredOptionTypes } from 'yargs';\n\nimport { findAllProjects } from '../project.js';\nimport { runWithSpawn, runWithSpawnInParallel } from '../scripts/run.js';\nimport { promisePool } from '../utils/promisePool.js';\n\nimport { prepareForRunningCommand } from './commandUtils.js';\n\nconst builder = {} as const;\n\nexport const setupCommand: CommandModule<unknown, InferredOptionTypes<typeof builder>> = {\n command: 'setup',\n describe: 'Setup development environment. .env files are ignored.',\n builder,\n async handler(argv) {\n await setup(argv);\n },\n};\n\n// Test code requires Partial<...>\nexport async function setup(\n argv: Partial<ArgumentsCamelCase<InferredOptionTypes<typeof builder>>>,\n projectPathForTesting?: string\n): Promise<void> {\n const projects = await findAllProjects(argv, false, projectPathForTesting);\n if (!projects) {\n console.error(chalk.red('No project found.'));\n process.exit(1);\n }\n\n for (const project of prepareForRunningCommand('setup', projects.all)) {\n const dirents = await fs.readdir(project.dirPath, { withFileTypes: true });\n if (project === projects.root) {\n if (os.platform() === 'darwin') {\n const packages = ['pstree'];\n if (project.hasDockerfile) {\n packages.push('expect');\n }\n await runWithSpawnInParallel(`brew install ${packages.join(' ')}`, project, argv);\n }\n\n if (dirents.some((d) => d.isFile() && d.name.includes('-version'))) {\n await runWithSpawn('asdf install', project, argv);\n }\n }\n\n if (dirents.some((d) => d.isFile() && d.name === 'pyproject.toml')) {\n await runWithSpawnInParallel('poetry config virtualenvs.in-project true', project, argv);\n await runWithSpawnInParallel('poetry config virtualenvs.prefer-active-python true', project, argv);\n const [, version] = child_process.execSync('asdf current python').toString().trim().split(/\\s+/);\n await runWithSpawnInParallel(`poetry env use ${version}`, project, argv);\n await promisePool.promiseAll();\n await runWithSpawn('poetry run pip install --upgrade pip', project, argv);\n await runWithSpawn('poetry install --ansi', project, argv);\n }\n\n const deps = project.packageJson.dependencies ?? {};\n const devDeps = project.packageJson.devDependencies || {};\n const scripts = project.packageJson.scripts ?? {};\n const newDeps: string[] = [];\n const newDevDeps: string[] = [];\n if (deps['blitz'] || deps['next']) {\n newDeps.push('pm2');\n newDevDeps.push('concurrently', 'open-cli', 'vitest', 'wait-on');\n } else if (devDeps['@remix-run/dev']) {\n newDeps.push('pm2');\n newDevDeps.push('concurrently', 'open-cli', 'vitest', 'wait-on');\n } else if (deps['express'] || deps['fastify']) {\n newDeps.push('pm2');\n newDevDeps.push('concurrently', 'vitest', 'wait-on');\n }\n if (newDeps.length > 0) {\n await runWithSpawn(`yarn add ${newDeps.join(' ')}`, project, argv);\n }\n if (newDevDeps.length > 0) {\n await runWithSpawn(`yarn add -D ${newDevDeps.join(' ')}`, project, argv);\n }\n if (scripts['gen-code']) {\n await runWithSpawn('yarn gen-code', project, argv);\n }\n }\n}\n","import path from 'node:path';\n\nimport type { Project } from '../project.js';\nimport { spawnSyncOnExit } from '../utils/process.js';\n\n/**\n * A collection of scripts for executing Docker commands.\n * Note that `YARN zzz` is replaced with `yarn zzz` or `node_modules/.bin/zzz`.\n */\nclass DockerScripts {\n buildDevImage(project: Project, version: string): string {\n // e.g. coding-booster uses `\"docker/build/prepare\": \"touch drill-users.csv\",`\n const prefix = project.dockerPackageJson.scripts?.['docker/build/prepare']\n ? 'yarn run docker/build/prepare && '\n : '';\n return `cd ${path.dirname(project.findFile('Dockerfile'))}\n && ${prefix}YARN wb optimizeForDockerBuild --outside\n && YARN wb retry -- docker build -t ${project.dockerImageName}\n --build-arg ARCH=$([ $(uname -m) = 'arm64' ] && echo arm64 || echo amd64)\n --build-arg WB_ENV=${project.env.WB_ENV}\n --build-arg WB_VERSION=${version} .`;\n }\n stopAndStart(project: Project, unbuffer = false, additionalOptions = '', additionalArgs = ''): string {\n return `${this.stop(project)} && ${unbuffer ? 'unbuffer ' : ''}${this.start(\n project,\n additionalOptions,\n additionalArgs\n )}`;\n }\n start(project: Project, additionalOptions = '', additionalArgs = ''): string {\n spawnSyncOnExit(this.stop(project), project);\n return `docker run --rm -it -p 8080:8080 --name ${project.dockerImageName} ${additionalOptions} ${project.dockerImageName} ${additionalArgs}`;\n }\n\n stop(project: Project): string {\n return `true $(docker rm -f $(docker container ls -q -f name=${project.dockerImageName}) 2> /dev/null)`;\n }\n\n stopAll(): string {\n return `true $(docker rm -f $(docker ps -q) 2> /dev/null)`;\n }\n}\n\nexport const dockerScripts = new DockerScripts();\n","import type { TestArgv } from '../../commands/test.js';\nimport type { Project } from '../../project.js';\nimport type { ScriptArgv } from '../builder.js';\nimport { dockerScripts } from '../dockerScripts.js';\n\nexport interface TestE2EDevOptions {\n // '--e2e generate' calls 'codegen http://localhost:8080'\n playwrightArgs?: string;\n startCommand?: string;\n}\n\nexport interface TestE2EOptions extends TestE2EDevOptions {\n prismaDirectory?: string;\n}\n\n/**\n * A collection of scripts for executing an app.\n * Note that YARN zzz` is replaced with `yarn zzz` or `node_modules/.bin/zzz`.\n */\nexport abstract class BaseExecutionScripts {\n protected constructor(private readonly defaultPort = Number(process.env.PORT) || 3000) {}\n\n buildDocker(project: Project, version = 'development'): string {\n return dockerScripts.buildDevImage(project, version);\n }\n\n abstract start(project: Project, argv: ScriptArgv): string;\n\n abstract startProduction(project: Project, argv: ScriptArgv, port: number): string;\n\n startDocker(project: Project, argv: ScriptArgv): string {\n return `${this.buildDocker(project)}\n && YARN concurrently --raw --kill-others-on-fail\n \"${dockerScripts.stopAndStart(\n project,\n false,\n argv.normalizedDockerOptionsText ?? '',\n argv.normalizedArgsText ?? ''\n )}\"\n \"${this.waitAndOpenApp(project, argv, 8080)}\"`;\n }\n\n testE2E(\n project: Project,\n argv: TestArgv,\n { playwrightArgs = 'test tests/e2e', prismaDirectory, startCommand }: TestE2EOptions\n ): string {\n // Basically, `playwright` (not `yarn playwright`) should work,\n // but it doesn't work on a project depending on `artillery-engine-playwright`.\n // So we use `yarn playwright` instead of `playwright` here.\n const env = project.env.WB_ENV;\n return `WB_ENV=${env} NEXT_PUBLIC_WB_ENV=${env} APP_ENV=${env} PORT=8080 YARN concurrently --kill-others --raw --success first\n \"rm -Rf ${prismaDirectory}/mount && ${startCommand} && exit 1\"\n \"concurrently --kill-others-on-fail --raw 'wait-on -t 600000 -i 2000 http://127.0.0.1:8080' 'BUN playwright install --with-deps'\n && BUN playwright ${playwrightArgs.replace('tests/e2e', argv.target || 'tests/e2e')}\"`;\n }\n\n testE2EDev(\n project: Project,\n argv: TestArgv,\n { playwrightArgs = 'test tests/e2e', startCommand }: TestE2EDevOptions\n ): string {\n const env = project.env.WB_ENV;\n return `WB_ENV=${env} NEXT_PUBLIC_WB_ENV=${env} APP_ENV=${env} PORT=8080 YARN concurrently --kill-others --raw --success first\n \"${startCommand} && exit 1\"\n \"concurrently --kill-others-on-fail --raw 'wait-on -t 600000 -i 2000 http://127.0.0.1:8080' 'BUN playwright install --with-deps'\n && BUN playwright ${playwrightArgs.replace('tests/e2e', argv.target || 'tests/e2e')}\"`;\n }\n\n abstract testStart(project: Project, argv: ScriptArgv): string;\n\n testUnit(project: Project, argv: TestArgv): string {\n // Since this command is referred from other commands, we have to use \"vitest run\" (non-interactive mode).\n return `WB_ENV=${project.env.WB_ENV} YARN vitest run ${argv.target || 'tests/unit'} --color --passWithNoTests --allowOnly`;\n }\n\n protected waitApp(project: Project, argv: ScriptArgv, port = this.defaultPort): string {\n return `wait-on -t 10000 http://127.0.0.1:${port} 2> /dev/null\n || wait-on -t 10000 -i 500 http://127.0.0.1:${port} 2> /dev/null\n || wait-on -t 10000 -i 1000 http://127.0.0.1:${port} 2> /dev/null\n || wait-on -t 10000 -i 2000 http://127.0.0.1:${port} 2> /dev/null\n || wait-on -t 20000 -i 4000 http://127.0.0.1:${port} 2> /dev/null\n || wait-on -t 60000 -i 5000 http://127.0.0.1:${port}`;\n }\n\n protected waitAndOpenApp(project: Project, argv: ScriptArgv, port = this.defaultPort): string {\n return `${this.waitApp(\n project,\n argv,\n port\n )} || wait-on http://127.0.0.1:${port} && open-cli \"http://\\${HOST:-localhost}:${port}\"`;\n }\n}\n","import type { TestArgv } from '../../commands/test.js';\nimport type { Project } from '../../project.js';\nimport type { ScriptArgv } from '../builder.js';\nimport { prismaScripts } from '../prismaScripts.js';\n\nimport type { TestE2EDevOptions, TestE2EOptions } from './baseExecutionScripts.js';\nimport { BaseExecutionScripts } from './baseExecutionScripts.js';\n\n/**\n * A collection of scripts for executing Blitz.js commands.\n * Note that `YARN zzz` is replaced with `yarn zzz` or `node_modules/.bin/zzz`.\n */\nclass BlitzScripts extends BaseExecutionScripts {\n constructor() {\n super();\n }\n\n override start(project: Project, argv: ScriptArgv): string {\n const appEnv = project.env.WB_ENV ? `APP_ENV=${project.env.WB_ENV} ` : '';\n return `${appEnv}YARN concurrently --raw --kill-others-on-fail\n \"blitz dev ${argv.normalizedArgsText ?? ''}\"\n \"${this.waitAndOpenApp(project, argv)}\"`;\n }\n\n override startProduction(project: Project, argv: ScriptArgv, port: number): string {\n const appEnv = project.env.WB_ENV ? `APP_ENV=${project.env.WB_ENV} ` : '';\n return `${appEnv}NODE_ENV=production YARN concurrently --raw --kill-others-on-fail\n \"${prismaScripts.reset(project)} && ${project.buildCommand} && PORT=${port} pm2-runtime start ${project.findFile(\n 'ecosystem.config.cjs'\n )} ${argv.normalizedArgsText ?? ''}\"\n \"${this.waitAndOpenApp(project, argv, port)}\"`;\n }\n\n override testE2E(\n project: Project,\n argv: TestArgv,\n {\n playwrightArgs,\n startCommand = `${prismaScripts.reset(project)} && ${\n project.buildCommand\n } && pm2-runtime start ${project.findFile('ecosystem.config.cjs')}`,\n }: TestE2EOptions\n ): string {\n return super.testE2E(project, argv, {\n playwrightArgs,\n prismaDirectory: 'db',\n startCommand,\n });\n }\n\n override testE2EDev(\n project: Project,\n argv: TestArgv,\n { playwrightArgs, startCommand = 'blitz dev -p 8080' }: TestE2EDevOptions\n ): string {\n return super.testE2EDev(project, argv, { playwrightArgs, startCommand });\n }\n\n override testStart(project: Project, argv: ScriptArgv): string {\n return `YARN concurrently --kill-others --raw --success first \"blitz dev\" \"${this.waitApp(project, argv)}\"`;\n }\n}\n\nexport const blitzScripts = new BlitzScripts();\n","import type { TestArgv } from '../../commands/test.js';\nimport type { Project } from '../../project.js';\nimport { runtimeWithArgs } from '../../utils/runtime.js';\nimport type { ScriptArgv } from '../builder.js';\nimport { dockerScripts } from '../dockerScripts.js';\n\nimport type { TestE2EDevOptions, TestE2EOptions } from './baseExecutionScripts.js';\nimport { BaseExecutionScripts } from './baseExecutionScripts.js';\n\n/**\n * A collection of scripts for executing an app that utilizes an HTTP server like express.\n * Note that `YARN zzz` is replaced with `yarn zzz` or `node_modules/.bin/zzz`.\n */\nclass HttpServerScripts extends BaseExecutionScripts {\n constructor() {\n super();\n }\n\n override start(project: Project, argv: ScriptArgv): string {\n return `BUN build-ts run src/index.ts ${argv.watch ? '--watch' : ''} -- ${argv.normalizedArgsText ?? ''}`;\n }\n\n override startDocker(project: Project, argv: ScriptArgv): string {\n return `${this.buildDocker(project)} && ${dockerScripts.stopAndStart(\n project,\n false,\n argv.normalizedDockerOptionsText ?? '',\n argv.normalizedArgsText ?? ''\n )}`;\n }\n\n override startProduction(project: Project, argv: ScriptArgv, port = 8080): string {\n return `NODE_ENV=production ${\n project.buildCommand\n } && NODE_ENV=production PORT=\\${PORT:-${port}} ${runtimeWithArgs} dist/index.js ${argv.normalizedArgsText ?? ''}`;\n }\n\n override testE2E(\n project: Project,\n argv: TestArgv,\n {\n startCommand = `if [ -e \"prisma\" ]; then prisma migrate reset --force --skip-generate; fi && (${this.startProduction(\n project,\n argv\n )})`,\n }: TestE2EOptions\n ): string {\n return `NODE_ENV=production WB_ENV=${project.env.WB_ENV} PORT=8080 YARN concurrently --kill-others --raw --success first\n \"${startCommand} && exit 1\"\n \"wait-on -t 600000 -i 2000 http://127.0.0.1:8080 && vitest run ${argv.target || 'tests/e2e'} --color --passWithNoTests --allowOnly\"`;\n }\n\n override testE2EDev(project: Project, argv: TestArgv, { startCommand }: TestE2EDevOptions): string {\n return `NODE_ENV=production WB_ENV=${\n project.env.WB_ENV\n } PORT=8080 YARN concurrently --kill-others --raw --success first\n \"${startCommand || this.start(project, argv)} && exit 1\"\n \"wait-on -t 600000 -i 2000 http://127.0.0.1:8080 && vitest run ${argv.target || 'tests/e2e'} --color --passWithNoTests --allowOnly\"`;\n }\n\n override testStart(project: Project, argv: ScriptArgv): string {\n return `YARN concurrently --kill-others --raw --success first \"${this.start(project, argv)}\" \"${this.waitApp(\n project,\n argv\n )}\"`;\n }\n}\n\nexport const httpServerScripts = new HttpServerScripts();\n","import type { TestArgv } from '../../commands/test.js';\nimport type { Project } from '../../project.js';\nimport type { ScriptArgv } from '../builder.js';\nimport { prismaScripts } from '../prismaScripts.js';\n\nimport type { TestE2EDevOptions, TestE2EOptions } from './baseExecutionScripts.js';\nimport { BaseExecutionScripts } from './baseExecutionScripts.js';\n\n/**\n * A collection of scripts for executing Next.js commands.\n * Note that `YARN zzz` is replaced with `yarn zzz` or `node_modules/.bin/zzz`.\n */\nclass NextScripts extends BaseExecutionScripts {\n constructor() {\n super();\n }\n\n override start(project: Project, argv: ScriptArgv): string {\n return `YARN concurrently --raw --kill-others-on-fail\n \"next dev --turbo ${argv.normalizedArgsText ?? ''}\"\n \"${this.waitAndOpenApp(project, argv)}\"`;\n }\n\n override startProduction(project: Project, argv: ScriptArgv, port: number): string {\n return `NODE_ENV=production YARN concurrently --raw --kill-others-on-fail\n \"${[\n ...(project.hasPrisma ? [prismaScripts.reset(project)] : []),\n project.buildCommand,\n `PORT=${port} pm2-runtime start ${project.findFile('ecosystem.config.cjs')} ${argv.normalizedArgsText ?? ''}`,\n ].join(' && ')}\"\n \"${this.waitAndOpenApp(project, argv, port)}\"`;\n }\n\n override testE2E(project: Project, argv: TestArgv, options: TestE2EOptions): string {\n return super.testE2E(project, argv, {\n playwrightArgs: options.playwrightArgs,\n prismaDirectory: 'db',\n startCommand:\n options.startCommand ??\n [\n ...(project.hasPrisma ? [prismaScripts.reset(project)] : []),\n project.buildCommand,\n `pm2-runtime start ${project.findFile('ecosystem.config.cjs')}`,\n ].join(' && '),\n });\n }\n\n override testE2EDev(\n project: Project,\n argv: TestArgv,\n { startCommand = 'next dev --turbo -p 8080' }: TestE2EDevOptions\n ): string {\n return super.testE2EDev(project, argv, { startCommand });\n }\n\n override testStart(project: Project, argv: ScriptArgv): string {\n return `YARN concurrently --kill-others --raw --success first \"next dev --turbo\" \"${this.waitApp(project, argv)}\"`;\n }\n}\n\nexport const nextScripts = new NextScripts();\n","import type { Project } from '../../project.js';\nimport { runtimeWithArgs } from '../../utils/runtime.js';\nimport type { ScriptArgv } from '../builder.js';\nimport { dockerScripts } from '../dockerScripts.js';\n\nimport { BaseExecutionScripts } from './baseExecutionScripts.js';\n\n/**\n * A collection of scripts for executing an app that utilizes an HTTP server like express.\n * Note that `YARN zzz` is replaced with `yarn zzz` or `node_modules/.bin/zzz`.\n */\nclass PlainAppScripts extends BaseExecutionScripts {\n constructor() {\n super();\n }\n\n override start(project: Project, argv: ScriptArgv): string {\n return `BUN build-ts run src/index.ts ${argv.watch ? '--watch' : ''} -- ${argv.normalizedArgsText ?? ''}`;\n }\n\n override startDocker(project: Project, argv: ScriptArgv): string {\n return `${this.buildDocker(project)} && ${dockerScripts.stopAndStart(\n project,\n false,\n argv.normalizedDockerOptionsText ?? '',\n argv.normalizedArgsText ?? ''\n )}`;\n }\n\n override startProduction(project: Project, argv: ScriptArgv): string {\n return `NODE_ENV=production ${project.buildCommand} && NODE_ENV=production ${runtimeWithArgs} dist/index.js ${\n argv.normalizedArgsText ?? ''\n }`;\n }\n\n override testE2E(): string {\n return `echo 'do nothing.'`;\n }\n\n override testE2EDev(): string {\n return `echo 'do nothing.'`;\n }\n\n override testStart(): string {\n return `echo 'do nothing.'`;\n }\n}\n\nexport const plainAppScripts = new PlainAppScripts();\n","import type { TestArgv } from '../../commands/test.js';\nimport type { Project } from '../../project.js';\nimport type { ScriptArgv } from '../builder.js';\nimport { prismaScripts } from '../prismaScripts.js';\n\nimport type { TestE2EDevOptions, TestE2EOptions } from './baseExecutionScripts.js';\nimport { BaseExecutionScripts } from './baseExecutionScripts.js';\n\n/**\n * A collection of scripts for executing Remix commands.\n * Note that `YARN zzz` is replaced with `yarn zzz` or `node_modules/.bin/zzz`.\n */\nclass RemixScripts extends BaseExecutionScripts {\n constructor() {\n super();\n }\n\n override start(project: Project, argv: ScriptArgv): string {\n return `YARN concurrently --raw --kill-others-on-fail\n \"remix dev ${argv.normalizedArgsText ?? ''}\"\n \"${this.waitAndOpenApp(project, argv)}\"`;\n }\n\n override startProduction(project: Project, argv: ScriptArgv, port: number): string {\n return `NODE_ENV=production YARN concurrently --raw --kill-others-on-fail\n \"${prismaScripts.reset(project)} && ${project.buildCommand} && PORT=${port} pm2-runtime start ${project.findFile(\n 'ecosystem.config.cjs'\n )} ${argv.normalizedArgsText ?? ''}\"\n \"${this.waitAndOpenApp(project, argv, port)}\"`;\n }\n\n override testE2E(\n project: Project,\n argv: TestArgv,\n {\n playwrightArgs,\n startCommand = `${prismaScripts.reset(project)} && ${\n project.buildCommand\n } && pm2-runtime start ${project.findFile('ecosystem.config.cjs')}`,\n }: TestE2EOptions\n ): string {\n return super.testE2E(project, argv, { playwrightArgs, prismaDirectory: 'prisma', startCommand });\n }\n\n override testE2EDev(\n project: Project,\n argv: TestArgv,\n { playwrightArgs, startCommand = 'remix dev' }: TestE2EDevOptions\n ): string {\n return super.testE2EDev(project, argv, { playwrightArgs, startCommand });\n }\n\n override testStart(project: Project, argv: ScriptArgv): string {\n return `YARN concurrently --kill-others --raw --success first \"remix dev\" \"${this.waitApp(project, argv)}\"`;\n }\n}\n\nexport const remixScripts = new RemixScripts();\n","import chalk from 'chalk';\nimport type { CommandModule, InferredOptionTypes } from 'yargs';\n\nimport { findAllProjects } from '../project.js';\nimport { normalizeArgs, scriptOptionsBuilder } from '../scripts/builder.js';\nimport type { BaseExecutionScripts } from '../scripts/execution/baseExecutionScripts.js';\nimport { blitzScripts } from '../scripts/execution/blitzScripts.js';\nimport { httpServerScripts } from '../scripts/execution/httpServerScripts.js';\nimport { nextScripts } from '../scripts/execution/nextScripts.js';\nimport { plainAppScripts } from '../scripts/execution/plainAppScripts.js';\nimport { remixScripts } from '../scripts/execution/remixScripts.js';\nimport { runWithSpawn } from '../scripts/run.js';\nimport type { sharedOptionsBuilder } from '../sharedOptionsBuilder.js';\n\nconst builder = {\n ...scriptOptionsBuilder,\n mode: {\n description: 'Start mode: dev[elopment] (default) | staging | docker | docker-debug',\n type: 'string',\n alias: 'm',\n },\n} as const;\n\nexport const startCommand: CommandModule<unknown, InferredOptionTypes<typeof builder & typeof sharedOptionsBuilder>> = {\n command: 'start [args..]',\n describe: 'Start app',\n builder,\n async handler(argv) {\n normalizeArgs(argv);\n\n const projects = await findAllProjects(argv);\n if (!projects) {\n console.error(chalk.red('No project found.'));\n process.exit(1);\n }\n\n for (const project of projects.all) {\n const deps = project.packageJson.dependencies || {};\n const devDeps = project.packageJson.devDependencies || {};\n let scripts: BaseExecutionScripts;\n if (deps['blitz']) {\n scripts = blitzScripts;\n } else if (deps['next']) {\n scripts = nextScripts;\n } else if (devDeps['@remix-run/dev']) {\n scripts = remixScripts;\n } else if (\n ((deps['express'] || deps['fastify']) && !deps['firebase-functions']) ||\n (project.hasDockerfile && /EXPOSE\\s+8080/.test(project.dockerfile))\n ) {\n scripts = httpServerScripts;\n } else if (deps['build-ts'] || devDeps['build-ts']) {\n scripts = plainAppScripts;\n } else {\n continue;\n }\n console.info(`Running \"start\" for ${project.name} ...`);\n\n switch (argv.mode || 'dev') {\n case 'dev':\n case 'development': {\n const prefix = configureEnvironmentVariables(deps, 'development');\n await runWithSpawn(`${prefix}${scripts.start(project, argv)}`, project, argv);\n break;\n }\n case 'staging': {\n const prefix = configureEnvironmentVariables(deps, 'staging');\n await runWithSpawn(`${prefix}${scripts.startProduction(project, argv, 8080)}`, project, argv);\n break;\n }\n case 'docker': {\n const prefix = configureEnvironmentVariables(deps, 'staging');\n await runWithSpawn(`${prefix}${scripts.startDocker(project, argv)}`, project, argv);\n break;\n }\n case 'docker-debug': {\n const prefix = configureEnvironmentVariables(deps, 'staging');\n argv.normalizedArgsText = `'/bin/bash'`;\n await runWithSpawn(`${prefix}${scripts.startDocker(project, argv)}`, project, argv);\n break;\n }\n default: {\n throw new Error(`Unknown start mode: ${argv.mode}`);\n }\n }\n }\n },\n};\n\nfunction configureEnvironmentVariables(deps: Partial<Record<string, string>>, wbEnv: string): string {\n process.env.WB_ENV ||= wbEnv;\n let prefix = `WB_ENV=${process.env.WB_ENV} `;\n if (deps['next']) {\n process.env.NEXT_PUBLIC_WB_ENV = process.env.WB_ENV;\n prefix += `NEXT_PUBLIC_WB_ENV=${process.env.WB_ENV} `;\n }\n return prefix;\n}\n","import type { ArgumentsCamelCase, InferredOptionTypes } from 'yargs';\n\nexport const scriptOptionsBuilder = {\n watch: {\n description: 'Whether to watch files',\n type: 'boolean',\n },\n args: {\n description: 'Arguments for core command',\n type: 'array',\n alias: 'a',\n default: [],\n },\n 'docker-options': {\n description: 'Arguments for \"docker run\"',\n type: 'array',\n default: [],\n },\n} as const;\n\nexport type ScriptArgv = Partial<ArgumentsCamelCase<InferredOptionTypes<typeof scriptOptionsBuilder>>> & {\n normalizedArgsText?: string;\n normalizedDockerOptionsText?: string;\n};\n\nexport function normalizeArgs(\n argv: Partial<ArgumentsCamelCase<InferredOptionTypes<typeof scriptOptionsBuilder>>>\n): void {\n (argv as ScriptArgv).normalizedArgsText = [...(argv.args ?? []), ...(argv._?.slice(1) ?? [])]\n .map((arg) => `'${arg}'`)\n .join(' ');\n (argv as ScriptArgv).normalizedDockerOptionsText = (argv.dockerOptions ?? []).map((arg) => `'${arg}'`).join(' ');\n}\n","import path from 'node:path';\n\nimport { existsAsync } from '@willbooster/shared-lib-node/src';\nimport chalk from 'chalk';\nimport type { ArgumentsCamelCase, CommandModule, InferredOptionTypes } from 'yargs';\n\nimport type { Project } from '../project.js';\nimport { findAllProjects } from '../project.js';\nimport type { scriptOptionsBuilder } from '../scripts/builder.js';\nimport { dockerScripts } from '../scripts/dockerScripts.js';\nimport type { BaseExecutionScripts } from '../scripts/execution/baseExecutionScripts.js';\nimport { blitzScripts } from '../scripts/execution/blitzScripts.js';\nimport { httpServerScripts } from '../scripts/execution/httpServerScripts.js';\nimport { nextScripts } from '../scripts/execution/nextScripts.js';\nimport { plainAppScripts } from '../scripts/execution/plainAppScripts.js';\nimport { remixScripts } from '../scripts/execution/remixScripts.js';\nimport { runWithSpawn, runWithSpawnInParallel } from '../scripts/run.js';\nimport type { sharedOptionsBuilder } from '../sharedOptionsBuilder.js';\nimport { promisePool } from '../utils/promisePool.js';\n\nconst builder = {\n ci: {\n description: 'Whether to run tests on CI',\n type: 'boolean',\n },\n e2e: {\n description:\n 'Whether to run e2e tests. You may pass mode as argument: none | headless (default) | headless-dev | headed | headed-dev | docker | docker-debug | debug | generate | trace',\n type: 'string',\n },\n start: {\n description: 'Whether to run start tests',\n type: 'boolean',\n },\n unit: {\n description: 'Whether to run unit tests',\n type: 'boolean',\n },\n 'unit-timeout': {\n description: 'Timeout for unit tests',\n type: 'number',\n },\n target: {\n description: 'Test target',\n type: 'string',\n alias: 't',\n },\n} as const;\n\nexport type TestArgv = Partial<ArgumentsCamelCase<InferredOptionTypes<typeof builder & typeof scriptOptionsBuilder>>>;\n\nexport const testCommand: CommandModule<unknown, InferredOptionTypes<typeof builder & typeof sharedOptionsBuilder>> = {\n command: 'test',\n describe: 'Test project',\n builder,\n async handler(argv) {\n await test(argv);\n },\n};\n\nexport async function test(\n argv: ArgumentsCamelCase<InferredOptionTypes<typeof builder & typeof sharedOptionsBuilder>>\n): Promise<void> {\n const projects = await findAllProjects(argv);\n if (!projects) {\n console.error(chalk.red('No project found.'));\n process.exit(1);\n }\n\n if (projects.all.length > 1) {\n // Disable interactive mode\n process.env.CI = '1';\n }\n process.env.FORCE_COLOR ||= '3';\n process.env.WB_ENV ||= 'test';\n\n for (const project of projects.all) {\n const deps = project.packageJson.dependencies || {};\n const devDeps = project.packageJson.devDependencies || {};\n let scripts: BaseExecutionScripts;\n if (deps['blitz']) {\n scripts = blitzScripts;\n } else if (deps['next']) {\n scripts = nextScripts;\n } else if (devDeps['@remix-run/dev']) {\n scripts = remixScripts;\n } else if ((deps['express'] || deps['fastify']) && !deps['firebase-functions']) {\n scripts = httpServerScripts;\n } else {\n scripts = plainAppScripts;\n }\n\n console.info(`Running \"test\" for ${project.name} ...`);\n\n const promises: Promise<unknown>[] = [];\n if (argv.ci) {\n const unitTestsExistPromise = existsAsync(path.join(project.dirPath, 'tests', 'unit'));\n const e2eTestsExistPromise = existsAsync(path.join(project.dirPath, 'tests', 'e2e'));\n\n await runWithSpawnInParallel(dockerScripts.stopAll(), project, argv);\n if (argv.unit !== false && (await unitTestsExistPromise)) {\n await runWithSpawnInParallel(scripts.testUnit(project, argv).replaceAll(' --allowOnly', ''), project, argv, {\n timeout: argv.unitTimeout,\n });\n }\n if (argv.start !== false) {\n await runWithSpawnInParallel(scripts.testStart(project, argv), project, argv);\n }\n await promisePool.promiseAll();\n // Check playwright installation because --ci includes --e2e implicitly\n if (argv.e2e !== 'none' && (await e2eTestsExistPromise)) {\n if (project.hasDockerfile) {\n await runWithSpawn(`${scripts.buildDocker(project, 'test')}`, project, argv);\n }\n const options = project.hasDockerfile\n ? {\n startCommand: dockerScripts.stopAndStart(project, true),\n }\n : {};\n process.exitCode = await runWithSpawn(\n scripts.testE2E(project, argv, options).replaceAll(' --allowOnly', ''),\n project,\n argv,\n {\n exitIfFailed: false,\n }\n );\n await runWithSpawn(dockerScripts.stop(project), project, argv);\n }\n continue;\n }\n\n if (argv.unit || (!argv.start && argv.e2e === undefined)) {\n promises.push(runWithSpawn(scripts.testUnit(project, argv), project, argv, { timeout: argv.unitTimeout }));\n }\n if (argv.start) {\n promises.push(runWithSpawn(scripts.testStart(project, argv), project, argv));\n }\n await Promise.all(promises);\n // Don't check playwright installation because --e2e is set explicitly\n switch (argv.e2e) {\n case undefined:\n case 'none': {\n continue;\n }\n case '':\n case 'headless': {\n await runWithSpawn(scripts.testE2E(project, argv, {}), project, argv);\n continue;\n }\n case 'headless-dev': {\n await runWithSpawn(scripts.testE2EDev(project, argv, {}), project, argv);\n continue;\n }\n case 'docker': {\n await testOnDocker(project, argv, scripts);\n continue;\n }\n case 'docker-debug': {\n await testOnDocker(project, argv, scripts, `test ${argv.target || 'tests/e2e'} --debug`);\n continue;\n }\n }\n if (deps['blitz'] || deps['next'] || devDeps['@remix-run/dev']) {\n switch (argv.e2e) {\n case 'headed': {\n await runWithSpawn(\n scripts.testE2E(project, argv, { playwrightArgs: `test ${argv.target || 'tests/e2e'} --headed` }),\n project,\n argv\n );\n continue;\n }\n case 'headed-dev': {\n await runWithSpawn(\n scripts.testE2EDev(project, argv, { playwrightArgs: `test ${argv.target || 'tests/e2e'} --headed` }),\n project,\n argv\n );\n continue;\n }\n case 'debug': {\n await runWithSpawn(\n scripts.testE2E(project, argv, { playwrightArgs: `test ${argv.target || 'tests/e2e'} --debug` }),\n project,\n argv\n );\n continue;\n }\n case 'generate': {\n await runWithSpawn(\n scripts.testE2E(project, argv, { playwrightArgs: 'codegen http://localhost:8080' }),\n project,\n argv\n );\n continue;\n }\n case 'trace': {\n await runWithSpawn(`BUN playwright show-trace`, project, argv);\n continue;\n }\n }\n }\n throw new Error(`Unknown e2e mode: ${argv.e2e}`);\n }\n}\n\nasync function testOnDocker(\n project: Project,\n argv: ArgumentsCamelCase<InferredOptionTypes<typeof builder>>,\n scripts: BaseExecutionScripts,\n playwrightArgs?: string\n): Promise<void> {\n await runWithSpawn(`${scripts.buildDocker(project, 'test')}`, project, argv);\n process.exitCode = await runWithSpawn(\n `${scripts.testE2E(project, argv, {\n playwrightArgs,\n startCommand: dockerScripts.stopAndStart(project, true),\n })}`,\n project,\n argv,\n { exitIfFailed: false }\n );\n await runWithSpawn(dockerScripts.stop(project), project, argv);\n}\n","import fs from 'node:fs/promises';\n\nimport chalk from 'chalk';\nimport type { PackageJson } from 'type-fest';\nimport type { CommandModule, InferredOptionTypes } from 'yargs';\n\nimport { findAllProjects } from '../project.js';\nimport { runWithSpawn } from '../scripts/run.js';\nimport type { sharedOptionsBuilder } from '../sharedOptionsBuilder.js';\n\nconst builder = {} as const;\n\nexport const typeCheckCommand: CommandModule<\n unknown,\n InferredOptionTypes<typeof builder & typeof sharedOptionsBuilder>\n> = {\n command: 'typecheck',\n describe: 'Run type checking. .env files are ignored.',\n builder,\n async handler(argv) {\n const projects = await findAllProjects(argv, false);\n if (!projects) {\n console.error(chalk.red('No project found.'));\n process.exit(1);\n }\n\n for (const project of projects.all) {\n const commands: string[] = [];\n if (!project.packageJson.workspaces) {\n if (project.packageJson.dependencies?.typescript || project.packageJson.devDependencies?.typescript) {\n commands.push('BUN tsc --noEmit --Pretty');\n }\n if (project.packageJson.devDependencies?.pyright) {\n commands.push('YARN pyright');\n }\n } else if (\n project.hasSourceCode &&\n (project.packageJson.dependencies?.typescript || project.packageJson.devDependencies?.typescript)\n ) {\n commands.push('BUN tsc --noEmit --Pretty');\n }\n if (commands.length === 0) continue;\n\n console.info(`Running \"typecheck\" for ${project.name} ...`);\n\n if (projects.all.length > 1) {\n // Disable interactive mode\n project.env['CI'] = '1';\n }\n project.env['FORCE_COLOR'] ||= '3';\n\n const exitCode = await runWithSpawn(commands.join(' && '), project, argv);\n if (exitCode !== 0) {\n const packageJson = JSON.parse(await fs.readFile('package.json', 'utf8')) as PackageJson;\n const deps = packageJson.dependencies || {};\n if (deps['blitz']) {\n console.info(chalk.yellow('Please try \"yarn gen-code\" if you face unknown type errors.'));\n }\n }\n }\n },\n};\n\nexport const tcCommand: CommandModule<unknown, InferredOptionTypes<typeof builder & typeof sharedOptionsBuilder>> = {\n ...typeCheckCommand,\n command: 'tc',\n};\n","import { yargsOptionsBuilderForEnv } from '@willbooster/shared-lib-node/src';\n\nexport const sharedOptionsBuilder = {\n ...yargsOptionsBuilderForEnv,\n // This option is for debugging mainly.\n 'working-dir': {\n description: 'A working directory',\n type: 'string',\n alias: 'w',\n },\n 'dry-run': {\n description: 'Whether to skip actual command execution',\n type: 'boolean',\n alias: 'd',\n },\n} as const;\n","import path from 'node:path';\n\nimport { removeNpmAndYarnEnvironmentVariables } from '@willbooster/shared-lib-node/src';\nimport yargs from 'yargs';\nimport { hideBin } from 'yargs/helpers';\n\nimport { buildIfNeededCommand } from './commands/buildIfNeeded.js';\nimport { optimizeForDockerBuildCommand } from './commands/optimizeForDockerBuild.js';\nimport { prismaCommand } from './commands/prisma.js';\nimport { retryCommand } from './commands/retry.js';\nimport { setupCommand } from './commands/setup.js';\nimport { startCommand } from './commands/start.js';\nimport { testCommand } from './commands/test.js';\nimport { tcCommand, typeCheckCommand } from './commands/typecheck.js';\nimport { sharedOptionsBuilder } from './sharedOptionsBuilder.js';\n\nawait yargs(hideBin(process.argv))\n .scriptName('wb')\n .options(sharedOptionsBuilder)\n .middleware((argv) => {\n const workingDir = argv['working-dir'];\n if (workingDir) {\n const dirPath = path.resolve(workingDir);\n process.chdir(dirPath);\n }\n\n removeNpmAndYarnEnvironmentVariables(process.env);\n })\n .command(buildIfNeededCommand)\n .command(optimizeForDockerBuildCommand)\n .command(prismaCommand)\n .command(retryCommand)\n .command(setupCommand)\n .command(startCommand)\n .command(testCommand)\n .command(typeCheckCommand)\n .command(tcCommand)\n .demandCommand()\n .strict()\n .help().argv;\n\nfor (const signal of ['SIGINT', 'SIGTERM', 'SIGQUIT']) {\n process.on(signal, () => process.exit());\n}\n"],"names":["readEnvironmentVariables","argv","cwd","cacheEnabled","envPaths","env","map","envPath","path","resolve","toString","cascade","cascadeEnv","cascadeNodeEnv","process","NODE_ENV","autoCascadeEnv","WB_ENV","undefined","length","push","join","includeRootEnv","rootPath","fs","existsSync","flatMap","relative","verbose","console","info","envVars","orgEnvVars","readEnvFile","count","key","value","Object","entries","checkEnv","missingKeys","keys","filter","Error","cachedEnvVars","Map","filePath","cached","get","parsed","config","processEnv","set","existsAsync","Promise","access","constants","F_OK","err","async","spawnAsync","command","args","options","reject","proc","spawn","stdout","setEncoding","stderr","input","stdin","write","end","on","data","mergeOutAndError","stopped","stopProcess","pid","treeKill","killOnExit","error","removeListener","removeAllListeners","code","signal","status","align","right","str","width","trim","strWidth","mixin","stringWidth","repeat","center","UI","constructor","opts","_a","this","wrap","rows","span","div","resetOutput","shouldApplyLayoutDSL","applyLayoutDSL","cols","arg","colFromString","test","split","row","leftColumnWidth","forEach","columns","Math","min","floor","r","i","text","padding","measurePadding","noAnsi","stripAnsi","match","lines","rowToString","line","hidden","rasterize","rrow","col","c","wrapWidth","negatePadding","ts","fn","addBorder","renderInline","replace","source","previousLine","leadingWhitespace","target","targetTextWidth","trimRight","trimLeft","rrows","widths","columnWidths","wrapped","hard","border","unshift","Array","fill","unset","remainingWidth","unsetWidth","w","max","minWidth","_minWidth","style","ansi","RegExp","start","charAt","camelCase","toLowerCase","toUpperCase","indexOf","camelcase","nextChrUpper","leadingHyphens","chr","decamelize","joinString","lowercase","notCamelcase","chrLower","chrString","looksLikeNumber","x","DefaultValuesForTypeKey","increment","orig","sanitizeKey","_b","_c","minNodeVersion","YARGS_MIN_NODE_VERSION","Number","nodeVersion","versions","node","version","slice","parser","_mixin","parse","argsInput","assign","alias","array","boolean","configObjects","configuration","coerce","default","envPrefix","narg","normalize","string","number","__","argString","isArray","e","prevC","opening","ii","tokenizeArgString","inputIsString","aliases","aliasArrays","combined","create","change","concat","v","splice","aliasArray","lastAlias","self","pop","combineAliases","defaults","notFlagsOption","notFlagsArgv","newAliases","defaulted","format","flags","arrays","bools","strings","numbers","counts","configs","nargs","coercions","negative","negatedBoolean","Boolean","opt","assignment","obj","y","extendAliases","find","checkAllAliases","notFlags","_","argvReturn","truncatedArg","broken","letters","m","next","isUnknownOptionAsArg","pushPositional","eatArray","eatNargs","setArg","defaultValue","j","maybeCoercedNumber","maybeCoerceNumber","argAfterEqualSign","toEat","isNaN","isUndefined","available","consumed","argsToSet","nargsCount","defVal","processValue","val","shouldStripQuotes","prop","addNewAlias","splitKey","setKey","keyProperties","a","shift","includes","defineProperty","enumerable","substring","stripQuotes","isSafeInteger","parseFloat","setConfigObject","prev","fullKey","hasKey","applyEnvVars","configOnly","prefix","envVar","lastIndexOf","applyDefaultsAndAliases","canLog","o","isTypeArray","isValueArray","duplicate","flag","toCheck","setAlias","hasAnyFlag","flagsKeys","k","some","hasAllFlags","hasAllShortFlags","patterns","pattern","hasFlagsMatching","isUnknownOption","type","BOOLEAN","STRING","NUMBER","ARRAY","guessType","num","configLookup","configKey","configPath","resolvedConfigPath","resolveConfig","require","ex","name","setConfig","configObject","applied","Set","has","ali","add","applyCoercions","setPlaceholderKeys","JSON","readFileSync","yargsParser","getProcessArgvBinIndex","electron","defaultApp","detailed","YError","msg","super","captureStackTrace","shim$3","writeFile","exists","file","statSync","isFile","shim","Y18N","directory","updateFiles","locale","fallbackToLanguage","cache","writeQueue","arguments","_taggedLiteral","cb","_readLocaleFile","_enqueueWrite","apply","__n","prototype","call","singular","plural","quantity","one","other","values","setLocale","getLocale","updateLocale","hasOwnProperty","parts","part","work","_processWriteQueue","_this","languageFile","_resolveLocaleFile","serializedLocale","stringify","localeLookup","SyntaxError","message","_fileExistsSync","REQUIRE_DIRECTORY_ERROR","__dirname","fileURLToPath","url","shim$1","assert","notStrictEqual","strictEqual","cliui","findUp","callback","tmp","dir","isDirectory","dirname","readdirSync","getEnv","inspect","getCallerFile","getProcessArgvBin","mainFilename","Parser","basename","extname","emitWarning","warning","execPath","exit","nextTick","stdColumns","requireDirectory","y18n","_shim","bind","_y18n","assertNotStrictEqual","actual","expected","assertSingleKey","objectKeys","object","isPromise","maybePromise","then","parseCommand","cmd","splitCommand","bregex","firstCommand","parsedCommand","demanded","optional","variadic","positionName","argsert","arg1","arg2","arg3","position","callerArguments","_length","totalCommands","observedType","argumentTypeError","warn","stack","allowedTypes","GlobalMiddleware","yargs","globalMiddleware","frozens","addMiddleware","applyBeforeValidation","global","mutates","addCoerceMiddleware","option","getAliases","getMiddleware","freeze","unfreeze","frozen","reset","applyMiddleware","middlewares","beforeValidation","reduce","acc","middleware","initialObj","all","middlewareObj","result","maybeAsyncResult","getResult","resultHandler","errorHandler","DEFAULT_MARKER","CommandInstance","usage","validation","requireCache","handlers","aliasMap","addDirectory","req","callerFile","recurse","extensions","parentVisit","visit","joined","filename","visited","addHandler","description","builder","handler","commandMiddleware","deprecated","commandMiddlewareFactory","every","isCommandAndAliases","isCommandHandlerDefinition","moduleName","extractDesc","isCommandBuilderDefinition","isDefault","parsedAliases","original","defaultCommand","getCommandHandlers","getCommands","hasDefaultCommand","runCommand","commandIndex","helpOnly","helpOrVersionSet","commandHandler","currentContext","getInternalMethods","getContext","parentCommands","commands","isDefaultCommand","fullCommands","builderResult","applyBuilderUpdateUsageAndParse","applyMiddlewareAndGetResult","innerArgv","innerYargs","isCommandBuilderCallback","getUsageInstance","builderOutput","output","parseAndUpdateUsage","isCommandBuilderOptionDefinitions","shouldUpdateUsage","usageFromParentCommandsCommandHandler","runYargsParserAndExecuteCommands","getUsageDisabled","getUsage","pc","handleValidationAndGetResult","positionalMap","getHasOutput","runValidation","setHasOutput","populateDoubleDash","getOptions","postProcess","handlerResult","cacheHelpMessage","hasParseCallback","catch","fail","_err","populatePositionals","maybePromiseArgv","resolvedInnerArgv","context","positionalCount","demand","populatePositional","maybe","postProcessPositionals","cmdToParseOptions","positional","String","cmdString","parseOptions","d","unparsed","positionalKeys","isInConfigs","isDefaulted","runDefaultBuilderOn","commandString","mod","exported","files","exports","whichModule","commandFromFilename","describe","desc","objFilter","setBlocking","blocking","_stream","stream","_handle","isTTY","isBoolean","fails","failFn","f","failMessage","globalFailMessage","showHelpOnFail","enabled","isGlobalContext","failureOutput","logger","getLoggerInstance","getExitProcess","showHelp","globalOrCommandFailMessage","usages","usageDisabled","getPositionalGroupName","examples","example","cmdArray","descriptions","keyOrKeys","getDescriptions","epilogs","epilog","wrapSet","getWrap","maxWidth","windowWidth","deferY18nLookupPrefix","table","theWrap","modifier","getText","getIndentation","parseInt","cachedHelpMessage","filterHiddenOptions","hiddenOptions","showHiddenOpt","defaultString","defaultDescription","deferY18nLookup","help","demandedOptions","getDemandedOptions","demandOption","normalizeAliases","base$0","customScriptName","$0","demandedCommands","getDemandedCommands","deprecatedOptions","getDeprecatedOptions","groups","getGroups","ui","u","getParserConfiguration","sort","b","localeCompare","hints","aliasKeys","defaultGroup","groupedKeys","group","addUngroupedKeys","isLongSwitch","sw","displayedGroups","groupName","normalizedKeys","aliasKey","switches","sw1","sw2","indent","isIndentedText","indentation","kswitch","extra","choices","stringifiedValues","shouldHideOptionExtras","getUsageConfiguration","clearCachedHelpMessage","hasCachedHelpMessage","level","functionDescription","separator","sep","ver","showVersion","localLookup","Completion","completionKey","customCompletionFunction","indexAfterLastReset","zshShell","defaultCompletion","current","done","completions","commandCompletions","optionCompletions","choicesFromOptionsCompletions","choicesFromPositionalsCompletions","previousArgHasChoices","usageCommand","commandName","negable","argsContainKey","completeOptionKey","getPreviousArgChoices","offset","positionalKey","choice","startsWith","previousArg","previousArgKey","possibleAliases","possibleAlias","argsContains","s","_d","keyWithDesc","descs","descFromAlias","dashes","startsByTwoDashes","isShortOption","customCompletion","list","completionFunction","isFallbackCompletionFunction","onCompleted","getCompletion","generateCompletionScript","script","registerFunction","setParsed","levenshtein","matrix","specialKeys","previouslyVisitedConfigs","applyExtends","mergeExtends","defaultConfig","extends","isPath","pathToDefault","pathToExtend","getPathToDefaultConfig","cfgPath","checkForCircularExtends","mergeDeep","config1","config2","isObject","_YargsInstance_command","_YargsInstance_cwd","_YargsInstance_context","_YargsInstance_completion","_YargsInstance_completionCommand","_YargsInstance_defaultShowHiddenOpt","_YargsInstance_exitError","_YargsInstance_detectLocale","_YargsInstance_emittedWarnings","_YargsInstance_exitProcess","_YargsInstance_frozens","_YargsInstance_globalMiddleware","_YargsInstance_groups","_YargsInstance_hasOutput","_YargsInstance_helpOpt","_YargsInstance_isGlobalContext","_YargsInstance_logger","_YargsInstance_output","_YargsInstance_options","_YargsInstance_parentRequire","_YargsInstance_parserConfig","_YargsInstance_parseFn","_YargsInstance_parseContext","_YargsInstance_pkgs","_YargsInstance_preservedGroups","_YargsInstance_processArgs","_YargsInstance_recommendCommands","_YargsInstance_shim","_YargsInstance_strict","_YargsInstance_strictCommands","_YargsInstance_strictOptions","_YargsInstance_usage","_YargsInstance_usageConfig","_YargsInstance_versionOpt","_YargsInstance_validation","__classPrivateFieldSet","receiver","state","kind","TypeError","__classPrivateFieldGet","kCopyDoubleDash","Symbol","kCreateLogger","kDeleteFromParserHintObject","kEmitWarning","kFreeze","kGetDollarZero","kGetParserConfiguration","kGetUsageConfiguration","kGuessLocale","kGuessVersion","kParsePositionalNumbers","kPkgUp","kPopulateParserHintArray","kPopulateParserHintSingleValueDictionary","kPopulateParserHintArrayDictionary","kPopulateParserHintDictionary","kSanitizeKey","kSetKey","kUnfreeze","kValidateAsync","kGetCommandInstance","kGetContext","kGetHasOutput","kGetLoggerInstance","kGetParseContext","kGetUsageInstance","kGetValidationInstance","kHasParseCallback","kIsGlobalContext","kPostProcess","kRebase","kReset","kRunYargsParserAndExecuteCommands","kRunValidation","kSetHasOutput","kTrackManuallySetKeys","YargsInstance","processArgs","parentRequire","addHelpOpt","addShowHiddenOpt","showHidden","check","_yargs","stripAliased","conflicts","key1","key2","parseFn","completion","commandDir","demandCommand","minMsg","maxMsg","Infinity","deprecateOption","detectLocale","detect","epilogue","exampleParams","exitProcess","getDetectLocale","getHelp","builderResponse","getStrict","getStrictCommands","getStrictOptions","globals","local","l","g","existing","seen","hide","implies","deprecate","required","configParser","skipValidation","requiresArg","shortCircuit","_parseFn","tmpParsed","finally","parseAsync","parseSync","parserConfiguration","pkgConf","conf","supportedOpts","fullCommand","pk","parseOption","recommendCommands","recommend","NaN","showCompletionScript","log","scriptName","strict","strictCommands","strictOptions","terminalWidth","updateStrings","usageConfiguration","defaultVersionOpt","WeakMap","optionKey","hintKey","hint","deduplicationId","completionCommand","exitError","hasOutput","parseContext","default$0","npath","startDir","pkgJsonPath","names","_noop","singleKeyHandler","_e","_f","_g","_h","_j","_k","_l","_m","_o","getCommandInstance","getParseContext","getValidationInstance","calledFromCommand","runGlobalMiddleware","tmpOptions","Usage","_s","observed","missing","customMsgs","customMsg","checkPositionals","commandKeys","unknown","isValidAndSomeAliasIsNotNew","maxNonOptDemanded","invalid","invalidKeys","implied","keyExists","getImplied","implications","implyFail","origKey","origValue","conflicting","getConflicting","potentialCommands","recommended","bestDistance","candidate","distance","Validation","Command","base","argvPromise","helpOptSet","versionOptSet","handlerKeys","requestCompletions","skipRecommendation","firstUnknownCommand","completionArgs","parseErrors","nonOptionCount","requiredArguments","failedStrictCommands","unknownCommands","unknownArguments","limitedChoices","Yargs","esmPlatformShim","memoize","cacheDuration","t","POSITIVE_INFINITY","caches","calcKey","n","codePointAt","imul","padStart","maxCachedArgsSize","maxCachedThisSize","Date","now","size","delete","h","memoizeFactory","MAX_SAFE_INTEGER","Project","_initProto","_applyDecs","pathByName","dirPath","loadEnv","_dirPath","isBunProject","rootDirPath","isBunAvailable","buildCommand","packageJson","scripts","build","dockerfile","findFile","hasDockerfile","hasSourceCode","dockerImageName","replaceAll","hasPrisma","dependencies","devDependencies","dockerPackageJson","binExists","binFound","currentPath","binPath","PATH","parentPath","fileName","p","findSelfProject","findAllProjects","rootAndSelfProjects","thisProject","rootProject","workspaces","endsWith","root","findRootAndSelfProjects","getAllProjects","allProjects","workspace","globPattern","packageDirs","workspacePath","ws","globby","dot","onlyDirectories","subPackageDirPath","buildIfNeededCommand","projectPathForTesting","project","chalk","red","canSkip","cacheFilePath","contentHash","cacheDirectoryPath","promises","mkdir","recursive","hash","createHash","commitHash","child_process","execSync","update","environmentJson","ignoringEnvVarNames","filteredFilePaths","spawnSync","stdio","encoding","includePatterns","includeSuffix","suffix","excludePatterns","copy","digest","updateHashWithDiffResult","cachedContentHash","ignoreEnoentAsync","readFile","canSkipBuild","green","dryRun","buildIfNeeded","ret","shell","exitCode","prepareForRunningCommand","projects","optimizeForDockerBuildCommand","outside","deps","optimizeDevDependencies","optimizeScripts","optimizeRootProps","distDirPath","devDeps","nameWordsToBeRemoved","word","nameWordsOfUnnecessaryScripts","contentWordsOfUnnecessaryScripts","content","private","publishConfig","prettier","isRunningOnBun","runtimeWithArgs","packageManagerWithArgs","prismaScripts","deploy","deployForce","backupPath","dirName","litestream","migrate","seed","migrateDev","restore","outputPath","scriptPath","prisma","studio","dbUrlOrPath","URL","absolutePath","killed","killPortProcessHandlingErrors","port","killPortProcess","promisePool","PromisePool","defaultOptions","exitIfFailed","runWithSpawn","printableScript","runnableScript","normalizeScript","printStart","printFinishedAndExitIfNeeded","killFunc","killPortProcessImmediatelyAndOnExit","timeout","runWithSpawnInParallel","run","out","newScript","normalizedScript","weak","gray","cyan","bold","prismaCommand","deployCommand","deployForceCommand","litestreamCommand","migrateCommand","migrateDevCommand","resetCommand","restoreCommand","seedCommand","studioCommand","findPrismaProjects","deployForceBuilder","restored","trimEnd","filtered","retryCommand","retry","cmdAndArgs","lastStatus","yellow","setupCommand","dirents","readdir","withFileTypes","os","platform","packages","promiseAll","newDeps","newDevDeps","setup","dockerScripts","buildDevImage","stopAndStart","unbuffer","additionalOptions","additionalArgs","stop","spawnSyncOnExit","stopAll","BaseExecutionScripts","defaultPort","PORT","buildDocker","startDocker","normalizedDockerOptionsText","normalizedArgsText","waitAndOpenApp","testE2E","playwrightArgs","prismaDirectory","startCommand","testE2EDev","testUnit","waitApp","blitzScripts","startProduction","testStart","httpServerScripts","watch","nextScripts","plainAppScripts","remixScripts","mode","dockerOptions","normalizeArgs","configureEnvironmentVariables","wbEnv","NEXT_PUBLIC_WB_ENV","testCommand","ci","e2e","unit","CI","FORCE_COLOR","unitTimeout","testOnDocker","unitTestsExistPromise","e2eTestsExistPromise","typeCheckCommand","typescript","pyright","tcCommand","sharedOptionsBuilder","workingDir","chdir","BERRY_BIN_FOLDER","upperKey","removeNpmAndYarnEnvironmentVariables"],"mappings":"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","x_google_ignoreList":[3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,37,38]}
|