npm-check-updates
Version:
Find newer versions of dependencies than what your package.json allows
1,203 lines • 220 kB
JavaScript
#!/usr/bin/env node
import { a as e, i as t, n, o as r, r as i, t as a } from "./chunks/rolldown-runtime-CJfroGDQ.js";
import o, { _ as s, a as c, c as l, d as u, f as d, g as f, h as p, i as m, m as h, o as g, p as _, r as v, s as y } from "./index.js";
import b from "node:path";
import x from "node:os";
import S from "os";
import C, { env as w } from "node:process";
import ee from "node:tty";
import { fileURLToPath as T } from "node:url";
import { format as E, promisify as D, stripVTControlCharacters as te } from "node:util";
import ne from "path";
import re, { spawn as ie } from "node:child_process";
import O from "node:fs";
import { EventEmitter as ae } from "node:events";
//#region node_modules/commander/lib/error.js
var oe = class extends Error {
constructor(e, t, n) {
super(n), Error.captureStackTrace(this, this.constructor), this.name = this.constructor.name, this.code = t, this.exitCode = e, this.nestedError = void 0;
}
}, se = class extends oe {
constructor(e) {
super(1, "commander.invalidArgument", e), Error.captureStackTrace(this, this.constructor), this.name = this.constructor.name;
}
}, ce = class {
constructor(e, t) {
switch (this.description = t || "", this.variadic = !1, this.parseArg = void 0, this.defaultValue = void 0, this.defaultValueDescription = void 0, this.argChoices = void 0, e[0]) {
case "<":
this.required = !0, this._name = e.slice(1, -1);
break;
case "[":
this.required = !1, this._name = e.slice(1, -1);
break;
default: this.required = !0, this._name = e;
}
this._name.endsWith("...") && (this.variadic = !0, this._name = this._name.slice(0, -3));
}
name() {
return this._name;
}
_collectValue(e, t) {
return t === this.defaultValue || !Array.isArray(t) ? [e] : (t.push(e), t);
}
default(e, t) {
return this.defaultValue = e, this.defaultValueDescription = t, this;
}
argParser(e) {
return this.parseArg = e, this;
}
choices(e) {
return this.argChoices = e.slice(), this.parseArg = (e, t) => {
if (!this.argChoices.includes(e)) throw new se(`Allowed choices are ${this.argChoices.join(", ")}.`);
return this.variadic ? this._collectValue(e, t) : e;
}, this;
}
argRequired() {
return this.required = !0, this;
}
argOptional() {
return this.required = !1, this;
}
};
function le(e) {
let t = e.name() + (e.variadic === !0 ? "..." : "");
return e.required ? "<" + t + ">" : "[" + t + "]";
}
//#endregion
//#region node_modules/commander/lib/help.js
var ue = class {
constructor() {
this.helpWidth = void 0, this.minWidthToWrap = 40, this.sortSubcommands = !1, this.sortOptions = !1, this.showGlobalOptions = !1;
}
prepareContext(e) {
this.helpWidth = this.helpWidth ?? e.helpWidth ?? 80;
}
visibleCommands(e) {
let t = e.commands.filter((e) => !e._hidden), n = e._getHelpCommand();
return n && !n._hidden && t.push(n), this.sortSubcommands && t.sort((e, t) => e.name().localeCompare(t.name())), t;
}
compareOptions(e, t) {
let n = (e) => e.short ? e.short.replace(/^-/, "") : e.long.replace(/^--/, "");
return n(e).localeCompare(n(t));
}
visibleOptions(e) {
let t = e.options.filter((e) => !e.hidden), n = e._getHelpOption();
if (n && !n.hidden) {
let r = n.short && e._findOption(n.short), i = n.long && e._findOption(n.long);
!r && !i ? t.push(n) : n.long && !i ? t.push(e.createOption(n.long, n.description)) : n.short && !r && t.push(e.createOption(n.short, n.description));
}
return this.sortOptions && t.sort(this.compareOptions), t;
}
visibleGlobalOptions(e) {
if (!this.showGlobalOptions) return [];
let t = [];
for (let n = e.parent; n; n = n.parent) {
let e = n.options.filter((e) => !e.hidden);
t.push(...e);
}
return this.sortOptions && t.sort(this.compareOptions), t;
}
visibleArguments(e) {
return e._argsDescription && e.registeredArguments.forEach((t) => {
t.description = t.description || e._argsDescription[t.name()] || "";
}), e.registeredArguments.find((e) => e.description) ? e.registeredArguments : [];
}
subcommandTerm(e) {
let t = e.registeredArguments.map((e) => le(e)).join(" ");
return e._name + (e._aliases[0] ? "|" + e._aliases[0] : "") + (e.options.length ? " [options]" : "") + (t ? " " + t : "");
}
optionTerm(e) {
return e.flags;
}
argumentTerm(e) {
return e.name();
}
longestSubcommandTermLength(e, t) {
return t.visibleCommands(e).reduce((e, n) => Math.max(e, this.displayWidth(t.styleSubcommandTerm(t.subcommandTerm(n)))), 0);
}
longestOptionTermLength(e, t) {
return t.visibleOptions(e).reduce((e, n) => Math.max(e, this.displayWidth(t.styleOptionTerm(t.optionTerm(n)))), 0);
}
longestGlobalOptionTermLength(e, t) {
return t.visibleGlobalOptions(e).reduce((e, n) => Math.max(e, this.displayWidth(t.styleOptionTerm(t.optionTerm(n)))), 0);
}
longestArgumentTermLength(e, t) {
return t.visibleArguments(e).reduce((e, n) => Math.max(e, this.displayWidth(t.styleArgumentTerm(t.argumentTerm(n)))), 0);
}
commandUsage(e) {
let t = e._name;
e._aliases[0] && (t = t + "|" + e._aliases[0]);
let n = "";
for (let t = e.parent; t; t = t.parent) n = t.name() + " " + n;
return n + t + " " + e.usage();
}
commandDescription(e) {
return e.description();
}
subcommandDescription(e) {
return e.summary() || e.description();
}
optionDescription(e) {
let t = [];
if (e.argChoices && t.push(`choices: ${e.argChoices.map((e) => JSON.stringify(e)).join(", ")}`), e.defaultValue !== void 0 && (e.required || e.optional || e.isBoolean() && typeof e.defaultValue == "boolean") && t.push(`default: ${e.defaultValueDescription || JSON.stringify(e.defaultValue)}`), e.presetArg !== void 0 && e.optional && t.push(`preset: ${JSON.stringify(e.presetArg)}`), e.envVar !== void 0 && t.push(`env: ${e.envVar}`), t.length > 0) {
let n = `(${t.join(", ")})`;
return e.description ? `${e.description} ${n}` : n;
}
return e.description;
}
argumentDescription(e) {
let t = [];
if (e.argChoices && t.push(`choices: ${e.argChoices.map((e) => JSON.stringify(e)).join(", ")}`), e.defaultValue !== void 0 && t.push(`default: ${e.defaultValueDescription || JSON.stringify(e.defaultValue)}`), t.length > 0) {
let n = `(${t.join(", ")})`;
return e.description ? `${e.description} ${n}` : n;
}
return e.description;
}
formatItemList(e, t, n) {
return t.length === 0 ? [] : [
n.styleTitle(e),
...t,
""
];
}
groupItems(e, t, n) {
let r = /* @__PURE__ */ new Map();
return e.forEach((e) => {
let t = n(e);
r.has(t) || r.set(t, []);
}), t.forEach((e) => {
let t = n(e);
r.has(t) || r.set(t, []), r.get(t).push(e);
}), r;
}
formatHelp(e, t) {
let n = t.padWidth(e, t), r = t.helpWidth ?? 80;
function i(e, r) {
return t.formatItem(e, n, r, t);
}
let a = [`${t.styleTitle("Usage:")} ${t.styleUsage(t.commandUsage(e))}`, ""], o = t.commandDescription(e);
o.length > 0 && (a = a.concat([t.boxWrap(t.styleCommandDescription(o), r), ""]));
let s = t.visibleArguments(e).map((e) => i(t.styleArgumentTerm(t.argumentTerm(e)), t.styleArgumentDescription(t.argumentDescription(e))));
if (a = a.concat(this.formatItemList("Arguments:", s, t)), this.groupItems(e.options, t.visibleOptions(e), (e) => e.helpGroupHeading ?? "Options:").forEach((e, n) => {
let r = e.map((e) => i(t.styleOptionTerm(t.optionTerm(e)), t.styleOptionDescription(t.optionDescription(e))));
a = a.concat(this.formatItemList(n, r, t));
}), t.showGlobalOptions) {
let n = t.visibleGlobalOptions(e).map((e) => i(t.styleOptionTerm(t.optionTerm(e)), t.styleOptionDescription(t.optionDescription(e))));
a = a.concat(this.formatItemList("Global Options:", n, t));
}
return this.groupItems(e.commands, t.visibleCommands(e), (e) => e.helpGroup() || "Commands:").forEach((e, n) => {
let r = e.map((e) => i(t.styleSubcommandTerm(t.subcommandTerm(e)), t.styleSubcommandDescription(t.subcommandDescription(e))));
a = a.concat(this.formatItemList(n, r, t));
}), a.join("\n");
}
displayWidth(e) {
return te(e).length;
}
styleTitle(e) {
return e;
}
styleUsage(e) {
return e.split(" ").map((e) => e === "[options]" ? this.styleOptionText(e) : e === "[command]" ? this.styleSubcommandText(e) : e[0] === "[" || e[0] === "<" ? this.styleArgumentText(e) : this.styleCommandText(e)).join(" ");
}
styleCommandDescription(e) {
return this.styleDescriptionText(e);
}
styleOptionDescription(e) {
return this.styleDescriptionText(e);
}
styleSubcommandDescription(e) {
return this.styleDescriptionText(e);
}
styleArgumentDescription(e) {
return this.styleDescriptionText(e);
}
styleDescriptionText(e) {
return e;
}
styleOptionTerm(e) {
return this.styleOptionText(e);
}
styleSubcommandTerm(e) {
return e.split(" ").map((e) => e === "[options]" ? this.styleOptionText(e) : e[0] === "[" || e[0] === "<" ? this.styleArgumentText(e) : this.styleSubcommandText(e)).join(" ");
}
styleArgumentTerm(e) {
return this.styleArgumentText(e);
}
styleOptionText(e) {
return e;
}
styleArgumentText(e) {
return e;
}
styleSubcommandText(e) {
return e;
}
styleCommandText(e) {
return e;
}
padWidth(e, t) {
return Math.max(t.longestOptionTermLength(e, t), t.longestGlobalOptionTermLength(e, t), t.longestSubcommandTermLength(e, t), t.longestArgumentTermLength(e, t));
}
preformatted(e) {
return /\n[^\S\r\n]/.test(e);
}
formatItem(e, t, n, r) {
let i = " ".repeat(2);
if (!n) return i + e;
let a = e.padEnd(t + e.length - r.displayWidth(e)), o = (this.helpWidth ?? 80) - t - 2 - 2, s;
return s = o < this.minWidthToWrap || r.preformatted(n) ? n : r.boxWrap(n, o).replace(/\n/g, "\n" + " ".repeat(t + 2)), i + a + " ".repeat(2) + s.replace(/\n/g, `\n${i}`);
}
boxWrap(e, t) {
if (t < this.minWidthToWrap) return e;
let n = e.split(/\r\n|\n/), r = /[\s]*[^\s]+/g, i = [];
return n.forEach((e) => {
let n = e.match(r);
if (n === null) {
i.push("");
return;
}
let a = [n.shift()], o = this.displayWidth(a[0]);
n.forEach((e) => {
let n = this.displayWidth(e);
if (o + n <= t) {
a.push(e), o += n;
return;
}
i.push(a.join(""));
let r = e.trimStart();
a = [r], o = this.displayWidth(r);
}), i.push(a.join(""));
}), i.join("\n");
}
}, de = class {
constructor(e, t) {
this.flags = e, this.description = t || "", this.required = e.includes("<"), this.optional = e.includes("["), this.variadic = /\w\.\.\.[>\]]$/.test(e), this.mandatory = !1;
let n = me(e);
this.short = n.shortFlag, this.long = n.longFlag, this.negate = !1, this.long && (this.negate = this.long.startsWith("--no-")), this.defaultValue = void 0, this.defaultValueDescription = void 0, this.presetArg = void 0, this.envVar = void 0, this.parseArg = void 0, this.hidden = !1, this.argChoices = void 0, this.conflictsWith = [], this.implied = void 0, this.helpGroupHeading = void 0;
}
default(e, t) {
return this.defaultValue = e, this.defaultValueDescription = t, this;
}
preset(e) {
return this.presetArg = e, this;
}
conflicts(e) {
return this.conflictsWith = this.conflictsWith.concat(e), this;
}
implies(e) {
let t = e;
return typeof e == "string" && (t = { [e]: !0 }), this.implied = Object.assign(this.implied || {}, t), this;
}
env(e) {
return this.envVar = e, this;
}
argParser(e) {
return this.parseArg = e, this;
}
makeOptionMandatory(e = !0) {
return this.mandatory = !!e, this;
}
hideHelp(e = !0) {
return this.hidden = !!e, this;
}
_collectValue(e, t) {
return t === this.defaultValue || !Array.isArray(t) ? [e] : (t.push(e), t);
}
choices(e) {
return this.argChoices = e.slice(), this.parseArg = (e, t) => {
if (!this.argChoices.includes(e)) throw new se(`Allowed choices are ${this.argChoices.join(", ")}.`);
return this.variadic ? this._collectValue(e, t) : e;
}, this;
}
name() {
return this.long ? this.long.replace(/^--/, "") : this.short.replace(/^-/, "");
}
attributeName() {
return this.negate ? pe(this.name().replace(/^no-/, "")) : pe(this.name());
}
helpGroup(e) {
return this.helpGroupHeading = e, this;
}
is(e) {
return this.short === e || this.long === e;
}
isBoolean() {
return !this.required && !this.optional && !this.negate;
}
}, fe = class {
constructor(e) {
this.positiveOptions = /* @__PURE__ */ new Map(), this.negativeOptions = /* @__PURE__ */ new Map(), this.dualOptions = /* @__PURE__ */ new Set(), e.forEach((e) => {
e.negate ? this.negativeOptions.set(e.attributeName(), e) : this.positiveOptions.set(e.attributeName(), e);
}), this.negativeOptions.forEach((e, t) => {
this.positiveOptions.has(t) && this.dualOptions.add(t);
});
}
valueFromOption(e, t) {
let n = t.attributeName();
if (!this.dualOptions.has(n)) return !0;
let r = this.negativeOptions.get(n).presetArg, i = r !== void 0 && r;
return t.negate === (i === e);
}
};
function pe(e) {
return e.split("-").reduce((e, t) => e + t[0].toUpperCase() + t.slice(1));
}
function me(e) {
let t, n, r = /^-[^-]$/, i = /^--[^-]/, a = e.split(/[ |,]+/).concat("guard");
if (r.test(a[0]) && (t = a.shift()), i.test(a[0]) && (n = a.shift()), !t && r.test(a[0]) && (t = a.shift()), !t && i.test(a[0]) && (t = n, n = a.shift()), a[0].startsWith("-")) {
let t = a[0], n = `option creation failed due to '${t}' in option flags '${e}'`;
throw /^-[^-][^-]/.test(t) ? Error(`${n}
- a short flag is a single dash and a single character
- either use a single dash and a single character (for a short flag)
- or use a double dash for a long option (and can have two, like '--ws, --workspace')`) : r.test(t) ? Error(`${n}
- too many short flags`) : i.test(t) ? Error(`${n}
- too many long flags`) : Error(`${n}
- unrecognised flag format`);
}
if (t === void 0 && n === void 0) throw Error(`option creation failed due to no flags found in '${e}'.`);
return {
shortFlag: t,
longFlag: n
};
}
//#endregion
//#region node_modules/commander/lib/suggestSimilar.js
var he = 3;
function ge(e, t) {
if (Math.abs(e.length - t.length) > he) return Math.max(e.length, t.length);
let n = [];
for (let t = 0; t <= e.length; t++) n[t] = [t];
for (let e = 0; e <= t.length; e++) n[0][e] = e;
for (let r = 1; r <= t.length; r++) for (let i = 1; i <= e.length; i++) {
let a;
a = e[i - 1] === t[r - 1] ? 0 : 1, n[i][r] = Math.min(n[i - 1][r] + 1, n[i][r - 1] + 1, n[i - 1][r - 1] + a), i > 1 && r > 1 && e[i - 1] === t[r - 2] && e[i - 2] === t[r - 1] && (n[i][r] = Math.min(n[i][r], n[i - 2][r - 2] + 1));
}
return n[e.length][t.length];
}
function _e(e, t) {
if (!t || t.length === 0) return "";
t = Array.from(new Set(t));
let n = e.startsWith("--");
n && (e = e.slice(2), t = t.map((e) => e.slice(2)));
let r = [], i = he;
return t.forEach((t) => {
if (t.length <= 1) return;
let n = ge(e, t), a = Math.max(e.length, t.length);
(a - n) / a > .4 && (n < i ? (i = n, r = [t]) : n === i && r.push(t));
}), r.sort((e, t) => e.localeCompare(t)), n && (r = r.map((e) => `--${e}`)), r.length > 1 ? `\n(Did you mean one of ${r.join(", ")}?)` : r.length === 1 ? `\n(Did you mean ${r[0]}?)` : "";
}
//#endregion
//#region node_modules/commander/lib/command.js
var ve = class e extends ae {
constructor(e) {
super(), this.commands = [], this.options = [], this.parent = null, this._allowUnknownOption = !1, this._allowExcessArguments = !1, this.registeredArguments = [], this._args = this.registeredArguments, this.args = [], this.rawArgs = [], this.processedArgs = [], this._scriptPath = null, this._name = e || "", this._optionValues = {}, this._optionValueSources = {}, this._storeOptionsAsProperties = !1, this._actionHandler = null, this._executableHandler = !1, this._executableFile = null, this._executableDir = null, this._defaultCommandName = null, this._exitCallback = null, this._aliases = [], this._combineFlagAndOptionalValue = !0, this._description = "", this._summary = "", this._argsDescription = void 0, this._enablePositionalOptions = !1, this._passThroughOptions = !1, this._lifeCycleHooks = {}, this._showHelpAfterError = !1, this._showSuggestionAfterError = !0, this._savedState = null, this._outputConfiguration = {
writeOut: (e) => C.stdout.write(e),
writeErr: (e) => C.stderr.write(e),
outputError: (e, t) => t(e),
getOutHelpWidth: () => C.stdout.isTTY ? C.stdout.columns : void 0,
getErrHelpWidth: () => C.stderr.isTTY ? C.stderr.columns : void 0,
getOutHasColors: () => be() ?? (C.stdout.isTTY && C.stdout.hasColors?.()),
getErrHasColors: () => be() ?? (C.stderr.isTTY && C.stderr.hasColors?.()),
stripColor: (e) => te(e)
}, this._hidden = !1, this._helpOption = void 0, this._addImplicitHelpCommand = void 0, this._helpCommand = void 0, this._helpConfiguration = {}, this._helpGroupHeading = void 0, this._defaultCommandGroup = void 0, this._defaultOptionGroup = void 0;
}
copyInheritedSettings(e) {
return this._outputConfiguration = e._outputConfiguration, this._helpOption = e._helpOption, this._helpCommand = e._helpCommand, this._helpConfiguration = e._helpConfiguration, this._exitCallback = e._exitCallback, this._storeOptionsAsProperties = e._storeOptionsAsProperties, this._combineFlagAndOptionalValue = e._combineFlagAndOptionalValue, this._allowExcessArguments = e._allowExcessArguments, this._enablePositionalOptions = e._enablePositionalOptions, this._showHelpAfterError = e._showHelpAfterError, this._showSuggestionAfterError = e._showSuggestionAfterError, this;
}
_getCommandAndAncestors() {
let e = [];
for (let t = this; t; t = t.parent) e.push(t);
return e;
}
command(e, t, n) {
let r = t, i = n;
typeof r == "object" && r && (i = r, r = null), i ||= {};
let [, a, o] = e.match(/([^ ]+) *(.*)/), s = this.createCommand(a);
return r && (s.description(r), s._executableHandler = !0), i.isDefault && (this._defaultCommandName = s._name), s._hidden = !!(i.noHelp || i.hidden), s._executableFile = i.executableFile || null, o && s.arguments(o), this._registerCommand(s), s.parent = this, s.copyInheritedSettings(this), r ? this : s;
}
createCommand(t) {
return new e(t);
}
createHelp() {
return Object.assign(new ue(), this.configureHelp());
}
configureHelp(e) {
return e === void 0 ? this._helpConfiguration : (this._helpConfiguration = e, this);
}
configureOutput(e) {
return e === void 0 ? this._outputConfiguration : (this._outputConfiguration = {
...this._outputConfiguration,
...e
}, this);
}
showHelpAfterError(e = !0) {
return typeof e != "string" && (e = !!e), this._showHelpAfterError = e, this;
}
showSuggestionAfterError(e = !0) {
return this._showSuggestionAfterError = !!e, this;
}
addCommand(e, t) {
if (!e._name) throw Error("Command passed to .addCommand() must have a name\n- specify the name in Command constructor or using .name()");
return t ||= {}, t.isDefault && (this._defaultCommandName = e._name), (t.noHelp || t.hidden) && (e._hidden = !0), this._registerCommand(e), e.parent = this, e._checkForBrokenPassThrough(), this;
}
createArgument(e, t) {
return new ce(e, t);
}
argument(e, t, n, r) {
let i = this.createArgument(e, t);
return typeof n == "function" ? i.default(r).argParser(n) : i.default(n), this.addArgument(i), this;
}
arguments(e) {
return e.trim().split(/ +/).forEach((e) => {
this.argument(e);
}), this;
}
addArgument(e) {
let t = this.registeredArguments.slice(-1)[0];
if (t?.variadic) throw Error(`only the last argument can be variadic '${t.name()}'`);
if (e.required && e.defaultValue !== void 0 && e.parseArg === void 0) throw Error(`a default value for a required argument is never used: '${e.name()}'`);
return this.registeredArguments.push(e), this;
}
helpCommand(e, t) {
if (typeof e == "boolean") return this._addImplicitHelpCommand = e, e && this._defaultCommandGroup && this._initCommandGroup(this._getHelpCommand()), this;
let [, n, r] = (e ?? "help [command]").match(/([^ ]+) *(.*)/), i = t ?? "display help for command", a = this.createCommand(n);
return a.helpOption(!1), r && a.arguments(r), i && a.description(i), this._addImplicitHelpCommand = !0, this._helpCommand = a, (e || t) && this._initCommandGroup(a), this;
}
addHelpCommand(e, t) {
return typeof e == "object" ? (this._addImplicitHelpCommand = !0, this._helpCommand = e, this._initCommandGroup(e), this) : (this.helpCommand(e, t), this);
}
_getHelpCommand() {
return this._addImplicitHelpCommand ?? (this.commands.length && !this._actionHandler && !this._findCommand("help")) ? (this._helpCommand === void 0 && this.helpCommand(void 0, void 0), this._helpCommand) : null;
}
hook(e, t) {
let n = [
"preSubcommand",
"preAction",
"postAction"
];
if (!n.includes(e)) throw Error(`Unexpected value for event passed to hook : '${e}'.
Expecting one of '${n.join("', '")}'`);
return this._lifeCycleHooks[e] ? this._lifeCycleHooks[e].push(t) : this._lifeCycleHooks[e] = [t], this;
}
exitOverride(e) {
return this._exitCallback = e || ((e) => {
if (e.code !== "commander.executeSubCommandAsync") throw e;
}), this;
}
_exit(e, t, n) {
this._exitCallback && this._exitCallback(new oe(e, t, n)), C.exit(e);
}
action(e) {
let t = (t) => {
let n = this.registeredArguments.length, r = t.slice(0, n);
return r[n] = this._storeOptionsAsProperties ? this : this.opts(), r.push(this), e.apply(this, r);
};
return this._actionHandler = t, this;
}
createOption(e, t) {
return new de(e, t);
}
_callParseArg(e, t, n, r) {
try {
return e.parseArg(t, n);
} catch (e) {
if (e.code === "commander.invalidArgument") {
let t = `${r} ${e.message}`;
this.error(t, {
exitCode: e.exitCode,
code: e.code
});
}
throw e;
}
}
_registerOption(e) {
let t = e.short && this._findOption(e.short) || e.long && this._findOption(e.long);
if (t) {
let n = e.long && this._findOption(e.long) ? e.long : e.short;
throw Error(`Cannot add option '${e.flags}'${this._name && ` to command '${this._name}'`} due to conflicting flag '${n}'
- already used by option '${t.flags}'`);
}
this._initOptionGroup(e), this.options.push(e);
}
_registerCommand(e) {
let t = (e) => [e.name()].concat(e.aliases()), n = t(e).find((e) => this._findCommand(e));
if (n) {
let r = t(this._findCommand(n)).join("|"), i = t(e).join("|");
throw Error(`cannot add command '${i}' as already have command '${r}'`);
}
this._initCommandGroup(e), this.commands.push(e);
}
addOption(e) {
this._registerOption(e);
let t = e.name(), n = e.attributeName();
e.defaultValue !== void 0 && this.setOptionValueWithSource(n, e.defaultValue, "default");
let r = (t, r, i) => {
t == null && e.presetArg !== void 0 && (t = e.presetArg);
let a = this.getOptionValue(n);
t !== null && e.parseArg ? t = this._callParseArg(e, t, a, r) : t !== null && e.variadic && (t = e._collectValue(t, a)), t ??= e.negate ? !1 : e.isBoolean() || e.optional ? !0 : "", this.setOptionValueWithSource(n, t, i);
};
return this.on("option:" + t, (t) => {
let n = `error: option '${e.flags}' argument '${t}' is invalid.`;
r(t, n, "cli");
}), e.envVar && this.on("optionEnv:" + t, (t) => {
let n = `error: option '${e.flags}' value '${t}' from env '${e.envVar}' is invalid.`;
r(t, n, "env");
}), this;
}
_optionEx(e, t, n, r, i) {
if (typeof t == "object" && t instanceof de) throw Error("To add an Option object use addOption() instead of option() or requiredOption()");
let a = this.createOption(t, n);
if (a.makeOptionMandatory(!!e.mandatory), typeof r == "function") a.default(i).argParser(r);
else if (r instanceof RegExp) {
let e = r;
r = (t, n) => {
let r = e.exec(t);
return r ? r[0] : n;
}, a.default(i).argParser(r);
} else a.default(r);
return this.addOption(a);
}
option(e, t, n, r) {
return this._optionEx({}, e, t, n, r);
}
requiredOption(e, t, n, r) {
return this._optionEx({ mandatory: !0 }, e, t, n, r);
}
combineFlagAndOptionalValue(e = !0) {
return this._combineFlagAndOptionalValue = !!e, this;
}
allowUnknownOption(e = !0) {
return this._allowUnknownOption = !!e, this;
}
allowExcessArguments(e = !0) {
return this._allowExcessArguments = !!e, this;
}
enablePositionalOptions(e = !0) {
return this._enablePositionalOptions = !!e, this;
}
passThroughOptions(e = !0) {
return this._passThroughOptions = !!e, this._checkForBrokenPassThrough(), this;
}
_checkForBrokenPassThrough() {
if (this.parent && this._passThroughOptions && !this.parent._enablePositionalOptions) throw Error(`passThroughOptions cannot be used for '${this._name}' without turning on enablePositionalOptions for parent command(s)`);
}
storeOptionsAsProperties(e = !0) {
if (this.options.length) throw Error("call .storeOptionsAsProperties() before adding options");
if (Object.keys(this._optionValues).length) throw Error("call .storeOptionsAsProperties() before setting option values");
return this._storeOptionsAsProperties = !!e, this;
}
getOptionValue(e) {
return this._storeOptionsAsProperties ? this[e] : this._optionValues[e];
}
setOptionValue(e, t) {
return this.setOptionValueWithSource(e, t, void 0);
}
setOptionValueWithSource(e, t, n) {
return this._storeOptionsAsProperties ? this[e] = t : this._optionValues[e] = t, this._optionValueSources[e] = n, this;
}
getOptionValueSource(e) {
return this._optionValueSources[e];
}
getOptionValueSourceWithGlobals(e) {
let t;
return this._getCommandAndAncestors().forEach((n) => {
n.getOptionValueSource(e) !== void 0 && (t = n.getOptionValueSource(e));
}), t;
}
_prepareUserArgs(e, t) {
if (e !== void 0 && !Array.isArray(e)) throw Error("first parameter to parse must be array or undefined");
if (t ||= {}, e === void 0 && t.from === void 0) {
C.versions?.electron && (t.from = "electron");
let e = C.execArgv ?? [];
(e.includes("-e") || e.includes("--eval") || e.includes("-p") || e.includes("--print")) && (t.from = "eval");
}
e === void 0 && (e = C.argv), this.rawArgs = e.slice();
let n;
switch (t.from) {
case void 0:
case "node":
this._scriptPath = e[1], n = e.slice(2);
break;
case "electron":
C.defaultApp ? (this._scriptPath = e[1], n = e.slice(2)) : n = e.slice(1);
break;
case "user":
n = e.slice(0);
break;
case "eval":
n = e.slice(1);
break;
default: throw Error(`unexpected parse option { from: '${t.from}' }`);
}
return !this._name && this._scriptPath && this.nameFromFilename(this._scriptPath), this._name = this._name || "program", n;
}
parse(e, t) {
this._prepareForParse();
let n = this._prepareUserArgs(e, t);
return this._parseCommand([], n), this;
}
async parseAsync(e, t) {
this._prepareForParse();
let n = this._prepareUserArgs(e, t);
return await this._parseCommand([], n), this;
}
_prepareForParse() {
this._savedState === null ? (this.options.filter((e) => e.negate && e.defaultValue === void 0 && this.getOptionValue(e.attributeName()) === void 0).forEach((e) => {
let t = e.long.replace(/^--no-/, "--");
this._findOption(t) || this.setOptionValueWithSource(e.attributeName(), !0, "default");
}), this.saveStateBeforeParse()) : this.restoreStateBeforeParse();
}
saveStateBeforeParse() {
this._savedState = {
_name: this._name,
_optionValues: { ...this._optionValues },
_optionValueSources: { ...this._optionValueSources }
};
}
restoreStateBeforeParse() {
if (this._storeOptionsAsProperties) throw Error("Can not call parse again when storeOptionsAsProperties is true.\n- either make a new Command for each call to parse, or stop storing options as properties");
this._name = this._savedState._name, this._scriptPath = null, this.rawArgs = [], this._optionValues = { ...this._savedState._optionValues }, this._optionValueSources = { ...this._savedState._optionValueSources }, this.args = [], this.processedArgs = [];
}
_checkForMissingExecutable(e, t, n) {
if (O.existsSync(e)) return;
let r = `'${e}' does not exist
- if '${n}' is not meant to be an executable command, remove description parameter from '.command()' and use '.description()' instead
- if the default executable name is not suitable, use the executableFile option to supply a custom name or path
- ${t ? `searched for local subcommand relative to directory '${t}'` : "no directory for search for local subcommand, use .executableDir() to supply a custom directory"}`;
throw Error(r);
}
_executeSubCommand(e, t) {
t = t.slice();
let n = [
".js",
".ts",
".tsx",
".mjs",
".cjs"
];
function r(e, t) {
let r = b.resolve(e, t);
if (O.existsSync(r)) return r;
if (n.includes(b.extname(t))) return;
let i = n.find((e) => O.existsSync(`${r}${e}`));
if (i) return `${r}${i}`;
}
this._checkForMissingMandatoryOptions(), this._checkForConflictingOptions();
let i = e._executableFile || `${this._name}-${e._name}`, a = this._executableDir || "";
if (this._scriptPath) {
let e;
try {
e = O.realpathSync(this._scriptPath);
} catch {
e = this._scriptPath;
}
a = b.resolve(b.dirname(e), a);
}
if (a) {
let t = r(a, i);
if (!t && !e._executableFile && this._scriptPath) {
let n = b.basename(this._scriptPath, b.extname(this._scriptPath));
n !== this._name && (t = r(a, `${n}-${e._name}`));
}
i = t || i;
}
let o = n.includes(b.extname(i)), s;
C.platform === "win32" ? (this._checkForMissingExecutable(i, a, e._name), t.unshift(i), t = ye(C.execArgv).concat(t), s = re.spawn(C.execPath, t, { stdio: "inherit" })) : o ? (t.unshift(i), t = ye(C.execArgv).concat(t), s = re.spawn(C.argv[0], t, { stdio: "inherit" })) : s = re.spawn(i, t, { stdio: "inherit" }), s.killed || [
"SIGUSR1",
"SIGUSR2",
"SIGTERM",
"SIGINT",
"SIGHUP"
].forEach((e) => {
C.on(e, () => {
s.killed === !1 && s.exitCode === null && s.kill(e);
});
});
let c = this._exitCallback;
s.on("close", (e) => {
e ??= 1, c ? c(new oe(e, "commander.executeSubCommandAsync", "(close)")) : C.exit(e);
}), s.on("error", (t) => {
if (t.code === "ENOENT") this._checkForMissingExecutable(i, a, e._name);
else if (t.code === "EACCES") throw Error(`'${i}' not executable`);
if (!c) C.exit(1);
else {
let e = new oe(1, "commander.executeSubCommandAsync", "(error)");
e.nestedError = t, c(e);
}
}), this.runningCommand = s;
}
_dispatchSubcommand(e, t, n) {
let r = this._findCommand(e);
r || this.help({ error: !0 }), r._prepareForParse();
let i;
return i = this._chainOrCallSubCommandHook(i, r, "preSubcommand"), i = this._chainOrCall(i, () => {
if (r._executableHandler) this._executeSubCommand(r, t.concat(n));
else return r._parseCommand(t, n);
}), i;
}
_dispatchHelpCommand(e) {
e || this.help();
let t = this._findCommand(e);
return t && !t._executableHandler && t.help(), this._dispatchSubcommand(e, [], [this._getHelpOption()?.long ?? this._getHelpOption()?.short ?? "--help"]);
}
_checkNumberOfArguments() {
this.registeredArguments.forEach((e, t) => {
e.required && this.args[t] == null && this.missingArgument(e.name());
}), !(this.registeredArguments.length > 0 && this.registeredArguments[this.registeredArguments.length - 1].variadic) && this.args.length > this.registeredArguments.length && this._excessArguments(this.args);
}
_processArguments() {
let e = (e, t, n) => {
let r = t;
if (t !== null && e.parseArg) {
let i = `error: command-argument value '${t}' is invalid for argument '${e.name()}'.`;
r = this._callParseArg(e, t, n, i);
}
return r;
};
this._checkNumberOfArguments();
let t = [];
this.registeredArguments.forEach((n, r) => {
let i = n.defaultValue;
n.variadic ? r < this.args.length ? (i = this.args.slice(r), n.parseArg && (i = i.reduce((t, r) => e(n, r, t), n.defaultValue))) : i === void 0 && (i = []) : r < this.args.length && (i = this.args[r], n.parseArg && (i = e(n, i, n.defaultValue))), t[r] = i;
}), this.processedArgs = t;
}
_chainOrCall(e, t) {
return e?.then && typeof e.then == "function" ? e.then(() => t()) : t();
}
_chainOrCallHooks(e, t) {
let n = e, r = [];
return this._getCommandAndAncestors().reverse().filter((e) => e._lifeCycleHooks[t] !== void 0).forEach((e) => {
e._lifeCycleHooks[t].forEach((t) => {
r.push({
hookedCommand: e,
callback: t
});
});
}), t === "postAction" && r.reverse(), r.forEach((e) => {
n = this._chainOrCall(n, () => e.callback(e.hookedCommand, this));
}), n;
}
_chainOrCallSubCommandHook(e, t, n) {
let r = e;
return this._lifeCycleHooks[n] !== void 0 && this._lifeCycleHooks[n].forEach((e) => {
r = this._chainOrCall(r, () => e(this, t));
}), r;
}
_parseCommand(e, t) {
let n = this.parseOptions(t);
if (this._parseOptionsEnv(), this._parseOptionsImplied(), e = e.concat(n.operands), t = n.unknown, this.args = e.concat(t), e && this._findCommand(e[0])) return this._dispatchSubcommand(e[0], e.slice(1), t);
if (this._getHelpCommand() && e[0] === this._getHelpCommand().name()) return this._dispatchHelpCommand(e[1]);
if (this._defaultCommandName) return this._outputHelpIfRequested(t), this._dispatchSubcommand(this._defaultCommandName, e, t);
this.commands.length && this.args.length === 0 && !this._actionHandler && !this._defaultCommandName && this.help({ error: !0 }), this._outputHelpIfRequested(n.unknown), this._checkForMissingMandatoryOptions(), this._checkForConflictingOptions();
let r = () => {
n.unknown.length > 0 && this.unknownOption(n.unknown[0]);
}, i = `command:${this.name()}`;
if (this._actionHandler) {
r(), this._processArguments();
let n;
return n = this._chainOrCallHooks(n, "preAction"), n = this._chainOrCall(n, () => this._actionHandler(this.processedArgs)), this.parent && (n = this._chainOrCall(n, () => {
this.parent.emit(i, e, t);
})), n = this._chainOrCallHooks(n, "postAction"), n;
}
if (this.parent?.listenerCount(i)) r(), this._processArguments(), this.parent.emit(i, e, t);
else if (e.length) {
if (this._findCommand("*")) return this._dispatchSubcommand("*", e, t);
this.listenerCount("command:*") ? this.emit("command:*", e, t) : this.commands.length ? this.unknownCommand() : (r(), this._processArguments());
} else this.commands.length ? (r(), this.help({ error: !0 })) : (r(), this._processArguments());
}
_findCommand(e) {
if (e) return this.commands.find((t) => t._name === e || t._aliases.includes(e));
}
_findOption(e) {
return this.options.find((t) => t.is(e));
}
_checkForMissingMandatoryOptions() {
this._getCommandAndAncestors().forEach((e) => {
e.options.forEach((t) => {
t.mandatory && e.getOptionValue(t.attributeName()) === void 0 && e.missingMandatoryOptionValue(t);
});
});
}
_checkForConflictingLocalOptions() {
let e = this.options.filter((e) => {
let t = e.attributeName();
return this.getOptionValue(t) !== void 0 && this.getOptionValueSource(t) !== "default";
});
e.filter((e) => e.conflictsWith.length > 0).forEach((t) => {
let n = e.find((e) => t.conflictsWith.includes(e.attributeName()));
n && this._conflictingOption(t, n);
});
}
_checkForConflictingOptions() {
this._getCommandAndAncestors().forEach((e) => {
e._checkForConflictingLocalOptions();
});
}
parseOptions(e) {
let t = [], n = [], r = t;
function i(e) {
return e.length > 1 && e[0] === "-";
}
let a = (e) => /^-(\d+|\d*\.\d+)(e[+-]?\d+)?$/.test(e) ? !this._getCommandAndAncestors().some((e) => e.options.map((e) => e.short).some((e) => /^-\d$/.test(e))) : !1, o = null, s = null, c = 0;
for (; c < e.length || s;) {
let l = s ?? e[c++];
if (s = null, l === "--") {
r === n && r.push(l), r.push(...e.slice(c));
break;
}
if (o && (!i(l) || a(l))) {
this.emit(`option:${o.name()}`, l);
continue;
}
if (o = null, i(l)) {
let t = this._findOption(l);
if (t) {
if (t.required) {
let n = e[c++];
n === void 0 && this.optionMissingArgument(t), this.emit(`option:${t.name()}`, n);
} else if (t.optional) {
let n = null;
c < e.length && (!i(e[c]) || a(e[c])) && (n = e[c++]), this.emit(`option:${t.name()}`, n);
} else this.emit(`option:${t.name()}`);
o = t.variadic ? t : null;
continue;
}
}
if (l.length > 2 && l[0] === "-" && l[1] !== "-") {
let e = this._findOption(`-${l[1]}`);
if (e) {
e.required || e.optional && this._combineFlagAndOptionalValue ? this.emit(`option:${e.name()}`, l.slice(2)) : (this.emit(`option:${e.name()}`), s = `-${l.slice(2)}`);
continue;
}
}
if (/^--[^=]+=/.test(l)) {
let e = l.indexOf("="), t = this._findOption(l.slice(0, e));
if (t && (t.required || t.optional)) {
this.emit(`option:${t.name()}`, l.slice(e + 1));
continue;
}
}
if (r === t && i(l) && !(this.commands.length === 0 && a(l)) && (r = n), (this._enablePositionalOptions || this._passThroughOptions) && t.length === 0 && n.length === 0) {
if (this._findCommand(l)) {
t.push(l), n.push(...e.slice(c));
break;
}
if (this._getHelpCommand() && l === this._getHelpCommand().name()) {
t.push(l, ...e.slice(c));
break;
}
if (this._defaultCommandName) {
n.push(l, ...e.slice(c));
break;
}
}
if (this._passThroughOptions) {
r.push(l, ...e.slice(c));
break;
}
r.push(l);
}
return {
operands: t,
unknown: n
};
}
opts() {
if (this._storeOptionsAsProperties) {
let e = {}, t = this.options.length;
for (let n = 0; n < t; n++) {
let t = this.options[n].attributeName();
e[t] = t === this._versionOptionName ? this._version : this[t];
}
return e;
}
return this._optionValues;
}
optsWithGlobals() {
return this._getCommandAndAncestors().reduce((e, t) => Object.assign(e, t.opts()), {});
}
error(e, t) {
this._outputConfiguration.outputError(`${e}\n`, this._outputConfiguration.writeErr), typeof this._showHelpAfterError == "string" ? this._outputConfiguration.writeErr(`${this._showHelpAfterError}\n`) : this._showHelpAfterError && (this._outputConfiguration.writeErr("\n"), this.outputHelp({ error: !0 }));
let n = t || {}, r = n.exitCode || 1, i = n.code || "commander.error";
this._exit(r, i, e);
}
_parseOptionsEnv() {
this.options.forEach((e) => {
if (e.envVar && e.envVar in C.env) {
let t = e.attributeName();
(this.getOptionValue(t) === void 0 || [
"default",
"config",
"env"
].includes(this.getOptionValueSource(t))) && (e.required || e.optional ? this.emit(`optionEnv:${e.name()}`, C.env[e.envVar]) : this.emit(`optionEnv:${e.name()}`));
}
});
}
_parseOptionsImplied() {
let e = new fe(this.options), t = (e) => this.getOptionValue(e) !== void 0 && !["default", "implied"].includes(this.getOptionValueSource(e));
this.options.filter((n) => n.implied !== void 0 && t(n.attributeName()) && e.valueFromOption(this.getOptionValue(n.attributeName()), n)).forEach((e) => {
Object.keys(e.implied).filter((e) => !t(e)).forEach((t) => {
this.setOptionValueWithSource(t, e.implied[t], "implied");
});
});
}
missingArgument(e) {
let t = `error: missing required argument '${e}'`;
this.error(t, { code: "commander.missingArgument" });
}
optionMissingArgument(e) {
let t = `error: option '${e.flags}' argument missing`;
this.error(t, { code: "commander.optionMissingArgument" });
}
missingMandatoryOptionValue(e) {
let t = `error: required option '${e.flags}' not specified`;
this.error(t, { code: "commander.missingMandatoryOptionValue" });
}
_conflictingOption(e, t) {
let n = (e) => {
let t = e.attributeName(), n = this.getOptionValue(t), r = this.options.find((e) => e.negate && t === e.attributeName()), i = this.options.find((e) => !e.negate && t === e.attributeName());
return r && (r.presetArg === void 0 && n === !1 || r.presetArg !== void 0 && n === r.presetArg) ? r : i || e;
}, r = (e) => {
let t = n(e), r = t.attributeName();
return this.getOptionValueSource(r) === "env" ? `environment variable '${t.envVar}'` : `option '${t.flags}'`;
}, i = `error: ${r(e)} cannot be used with ${r(t)}`;
this.error(i, { code: "commander.conflictingOption" });
}
unknownOption(e) {
if (this._allowUnknownOption) return;
let t = "";
if (e.startsWith("--") && this._showSuggestionAfterError) {
let n = [], r = this;
do {
let e = r.createHelp().visibleOptions(r).filter((e) => e.long).map((e) => e.long);
n = n.concat(e), r = r.parent;
} while (r && !r._enablePositionalOptions);
t = _e(e, n);
}
let n = `error: unknown option '${e}'${t}`;
this.error(n, { code: "commander.unknownOption" });
}
_excessArguments(e) {
if (this._allowExcessArguments) return;
let t = this.registeredArguments.length, n = t === 1 ? "" : "s", r = e.length, i = `error: too many arguments${this.parent ? ` for '${this.name()}'` : ""}. Expected ${t} argument${n} but got ${r}: ${e.join(", ")}.`;
this.error(i, { code: "commander.excessArguments" });
}
unknownCommand() {
let e = this.args[0], t = "";
if (this._showSuggestionAfterError) {
let n = [];
this.createHelp().visibleCommands(this).forEach((e) => {
n.push(e.name()), e.alias() && n.push(e.alias());
}), t = _e(e, n);
}
let n = `error: unknown command '${e}'${t}`;
this.error(n, { code: "commander.unknownCommand" });
}
version(e, t, n) {
if (e === void 0) return this._version;
this._version = e, t ||= "-V, --version", n ||= "output the version number";
let r = this.createOption(t, n);
return this._versionOptionName = r.attributeName(), this._registerOption(r), this.on("option:" + r.name(), () => {
this._outputConfiguration.writeOut(`${e}\n`), this._exit(0, "commander.version", e);
}), this;
}
description(e, t) {
return e === void 0 && t === void 0 ? this._description : (this._description = e, t && (this._argsDescription = t), this);
}
summary(e) {
return e === void 0 ? this._summary : (this._summary = e, this);
}
alias(e) {
if (e === void 0) return this._aliases[0];
let t = this;
if (this.commands.length !== 0 && this.commands[this.commands.length - 1]._executableHandler && (t = this.commands[this.commands.length - 1]), e === t._name) throw Error("Command alias can't be the same as its name");
let n = this.parent?._findCommand(e);
if (n) {
let t = [n.name()].concat(n.aliases()).join("|");
throw Error(`cannot add alias '${e}' to command '${this.name()}' as already have command '${t}'`);
}
return t._aliases.push(e), this;
}
aliases(e) {
return e === void 0 ? this._aliases : (e.forEach((e) => this.alias(e)), this);
}
usage(e) {
if (e === void 0) {
if (this._usage) return this._usage;
let e = this.registeredArguments.map((e) => le(e));
return [].concat(this.options.length || this._helpOption !== null ? "[options]" : [], this.commands.length ? "[command]" : [], this.registeredArguments.length ? e : []).join(" ");
}
return this._usage = e, this;
}
name(e) {
return e === void 0 ? this._name : (this._name = e, this);
}
helpGroup(e) {
return e === void 0 ? this._helpGroupHeading ?? "" : (this._helpGroupHeading = e, this);
}
commandsGroup(e) {
return e === void 0 ? this._defaultCommandGroup ?? "" : (this._defaultCommandGroup = e, this);
}
optionsGroup(e) {
return e === void 0 ? this._defaultOptionGroup ?? "" : (this._defaultOptionGroup = e, this);
}
_initOptionGroup(e) {
this._defaultOptionGroup && !e.helpGroupHeading && e.helpGroup(this._defaultOptionGroup);
}
_initCommandGroup(e) {
this._defaultCommandGroup && !e.helpGroup() && e.helpGroup(this._defaultCommandGroup);
}
nameFromFilename(e) {
return this._name = b.basename(e, b.extname(e)), this;
}
executableDir(e) {
return e === void 0 ? this._executableDir : (this._executableDir = e, this);
}
helpInformation(e) {
let t = this.createHelp(), n = this._getOutputContext(e);
t.prepareContext({
error: n.error,
helpWidth: n.helpWidth,
outputHasColors: n.hasColors
});
let r = t.formatHelp(this, t);
return n.hasColors ? r : this._outputConfiguration.stripColor(r);
}
_getOutputContext(e) {
e ||= {};
let t = !!e.error, n, r, i;
return t ? (n = (e) => this._outputConfiguration.writeErr(e), r = this._outputConfiguration.getErrHasColors(), i = this._outputConfiguration.getErrHelpWidth()) : (n = (e) => this._outputConfiguration.writeOut(e), r = this._outputConfiguration.getOutHasColors(), i = this._outputConfiguration.getOutHelpWidth()), {
error: t,
write: (e) => (r || (e = this._outputConfiguration.stripColor(e)), n(e)),
hasColors: r,
helpWidth: i
};
}
outputHelp(e) {
let t;
typeof e == "function" && (t = e, e = void 0);
let n = this._getOutputContext(e), r = {
error: n.error,
write: n.write,
command: this
};
this._getCommandAndAncestors().reverse().forEach((e) => e.emit("beforeAllHelp", r)), this.emit("beforeHelp", r);
let i = this.helpInformation({ error: n.error });
if (t && (i = t(i), typeof i != "string" && !Buffer.isBuffer(i))) throw Error("outputHelp callback must return a string or a Buffer");
n.write(i), this._getHelpOption()?.long && this.emit(this._getHelpOption().long), this.emit("afterHelp", r), this._getCommandAndAncestors().forEach((e) => e.emit("afterAllHelp", r));
}
helpOption(e, t) {
return typeof e == "boolean" ? (e ? (this._helpOption === null && (this._helpOption = void 0), this._defaultOptionGroup && this._initOptionGroup(this._getHelpOption())) : this._helpOption = null, this) : (this._helpOption = this.createOption(e ?? "-h, --help", t ?? "display help for command"), (e || t) && this._initOptionGroup(this._helpOption), this);
}
_getHelpOption() {
return this._helpOption === void 0 && this.helpOption(void 0, void 0), this._helpOption;
}
addHelpOption(e) {
return this._helpOption = e, this._initOptionGroup(e), this;
}
help(e) {
this.outputHelp(e);
let t = Number(C.exitCode ?? 0);
t === 0 && e && typeof e != "function" && e.error && (t = 1), this._exit(t, "commander.help", "(outputHelp)");
}
addHelpText(e, t) {
let n = [
"beforeAll",
"before",
"after",
"afterAll"
];
if (!n.includes(e)) throw Error(`Unexpected value for position to addHelpText.
Expecting one of '${n.join("', '")}'`);
let r = `${e}Help`;
return this.on(r, (e) => {
let n;
n = typeof t == "function" ? t({
error: e.error,
command: e.command
}) : t, n && e.write(`${n}\n`);
}), this;
}
_outputHelpIfRequested(e) {
let t = this._getHelpOption();
t && e.find((e) => t.is(e)) && (this.outputHelp(), this._exit(0, "commander.helpDisplayed", "(outputHelp)"));
}
};
function ye(e) {
return e.map((e) => {
if (!e.startsWith("--inspect")) return e;
let t, n = "127.0.0.1", r = "9229", i;
return (i = e.match(/^(--inspect(-brk)?)$/)) === null ? (i = e.match(/^(--inspect(-brk|-port)?)=([^:]+)$/)) === null ? (i = e.match(/^(--inspect(-brk|-port)?)=([^:]+):(\d+)$/)) !== null && (t = i[1], n = i[3], r = i[4]) : (t = i[1], /^\d+$/.test(i[3]) ? r = i[3] : n = i[3]) : t = i[1], t && r !== "0" ? `${t}=${n}:${parseInt(r) + 1}` : e;
});
}
function be() {
if (C.env.NO_COLOR || C.env.FORCE_COLOR === "0" || C.env.FORCE_COLOR === "false") return !1;
if (C.env.FORCE_COLOR || C.env.CLICOLOR_FORCE !== void 0) return !0;
}
//#endregion
//#region node_modules/commander/index.js
var k = new ve(), xe = /* @__PURE__ */ a(((e, n) => {
var r = t("constants"), i = process.cwd, a = null, o = process.env.GRACEFUL_FS_PLATFORM || process.platform;
process.cwd = function() {
return a ||= i.call(process), a;
};
try {
process.cwd();
} catch {}
if (typeof process.chdir == "function") {
var s = process.chdir;
process.chdir = function(e) {
a = null, s.call(process, e);
}, Object.setPrototypeOf && Object.setPrototypeOf(process.chdir, s);
}
n.exports = c;
function c(e) {
r.hasOwnProperty("O_SYMLINK") && process.version.match(/^v0\.6\.[0-2]|^v0\.5\./) && t(e), e.lutimes || n(e), e.chown = s(e.chown), e.fchown = s(e.fchown), e.lchown = s(e.lchown), e.chmod = i(e.chmod), e.fchmod = i(e.fchmod), e.lchmod = i(e.lchmod), e.chownSync = c(e.chownSync), e.fchownSync = c(e.fchownSync), e.lchownSync = c(e.lchownSync), e.chmodSync = a(e.chmodSync), e.fchmodSync = a(e.fchmodSync), e.lchmodSync = a(e.lchmodSync), e.stat = l(e.stat), e.fstat = l(e.fstat), e.lstat = l(e.lstat), e.statSync = u(e.statSync), e.fstatSync = u(e.fstatSync), e.lstatSync = u(e.lstatSync), e.chmod && !e.lchmod && (e.lchmod = function(e, t, n) {
n && process.nextTick(n);
}, e.lchmodSync = function() {}), e.chown && !e.lchown && (e.lchown = function(e, t, n, r) {
r && process.nextTick(r);
}, e.lchownSync = function() {}), o === "win32" && (e.rename = typeof e.rename == "function" ? (function(t) {
function n(n, r, i) {
var a = Date.now(), o = 0;
t(n, r, function s(c) {
if (c && (c.code === "EACCES" || c.code === "EPERM" || c.code === "EBUSY") && Date.now() - a < 6e4) {
setTimeout(function() {
e.stat(r, function(e, a) {
e && e.code === "ENOENT" ? t(n, r, s) : i(c);
});
}, o), o < 100 && (o += 10);
return;
}
i && i(c);
});
}
return Object.setPrototypeOf && Object.setPrototypeOf(n, t), n;
})(e.rename) : e.rename), e.read = typeof e.read == "function" ? (function(t) {
function n(n, r, i, a, o, s) {
var c;
if (s && typeof s == "function") {
var l = 0;
c = function(u, d, f) {
if (u && u.code === "EAGAIN" && l < 10) return l++, t.call(e, n, r, i, a, o, c);
s.apply(this, arguments);
};
}
return t.call(e, n, r, i, a, o, c);
}
return Object.setPrototypeOf && Object.setPrototypeOf(n, t), n;
})(e.read) : e.read, e.readSync = typeof e.readSync == "function" ? (function(t) {
return function(n, r, i, a, o) {
for (var s = 0;;) try {
return t.call(e, n, r, i, a, o);
} catch (e) {
if (e.code === "EAGAIN" && s < 10) {
s++;
continue;
}
throw e;
}
};
})(e.readSync) : e.readSync;
function t(e) {
e.lchmod = function