@contember/cli-common 2.1.0-alpha.3 → 2.1.0-alpha.35
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/package.json +11 -6
- package/src/application/Application.ts +6 -4
- package/src/index.ts +1 -1
- package/src/npm/CommandRunner.ts +0 -1
- package/src/npm/PackageWorkspace.ts +0 -2
- package/src/npm/packageManagers/PackageManagerHelpers.ts +3 -1
- package/src/npm/packageManagers/Yarn.ts +2 -1
- package/dist/development/index.cjs +0 -32
- package/dist/development/index.cjs.map +0 -1
- package/dist/development/index.js +0 -32
- package/dist/development/index.js.map +0 -1
- package/dist/development/src/application/Application.cjs +0 -82
- package/dist/development/src/application/Application.cjs.map +0 -1
- package/dist/development/src/application/Application.js +0 -82
- package/dist/development/src/application/Application.js.map +0 -1
- package/dist/development/src/application/Argument.cjs +0 -25
- package/dist/development/src/application/Argument.cjs.map +0 -1
- package/dist/development/src/application/Argument.js +0 -25
- package/dist/development/src/application/Argument.js.map +0 -1
- package/dist/development/src/application/Command.cjs +0 -28
- package/dist/development/src/application/Command.cjs.map +0 -1
- package/dist/development/src/application/Command.js +0 -28
- package/dist/development/src/application/Command.js.map +0 -1
- package/dist/development/src/application/CommandConfiguration.cjs +0 -44
- package/dist/development/src/application/CommandConfiguration.cjs.map +0 -1
- package/dist/development/src/application/CommandConfiguration.js +0 -44
- package/dist/development/src/application/CommandConfiguration.js.map +0 -1
- package/dist/development/src/application/CommandManager.cjs +0 -37
- package/dist/development/src/application/CommandManager.cjs.map +0 -1
- package/dist/development/src/application/CommandManager.js +0 -37
- package/dist/development/src/application/CommandManager.js.map +0 -1
- package/dist/development/src/application/Input.cjs +0 -16
- package/dist/development/src/application/Input.cjs.map +0 -1
- package/dist/development/src/application/Input.js +0 -16
- package/dist/development/src/application/Input.js.map +0 -1
- package/dist/development/src/application/InputParser.cjs +0 -117
- package/dist/development/src/application/InputParser.cjs.map +0 -1
- package/dist/development/src/application/InputParser.js +0 -117
- package/dist/development/src/application/InputParser.js.map +0 -1
- package/dist/development/src/application/Option.cjs +0 -49
- package/dist/development/src/application/Option.cjs.map +0 -1
- package/dist/development/src/application/Option.js +0 -49
- package/dist/development/src/application/Option.js.map +0 -1
- package/dist/development/src/application/UsageFormatter.cjs +0 -61
- package/dist/development/src/application/UsageFormatter.cjs.map +0 -1
- package/dist/development/src/application/UsageFormatter.js +0 -61
- package/dist/development/src/application/UsageFormatter.js.map +0 -1
- package/dist/development/src/application/assertNever.cjs +0 -7
- package/dist/development/src/application/assertNever.cjs.map +0 -1
- package/dist/development/src/application/assertNever.js +0 -7
- package/dist/development/src/application/assertNever.js.map +0 -1
- package/dist/development/src/npm/CommandRunner.cjs +0 -59
- package/dist/development/src/npm/CommandRunner.cjs.map +0 -1
- package/dist/development/src/npm/CommandRunner.js +0 -59
- package/dist/development/src/npm/CommandRunner.js.map +0 -1
- package/dist/development/src/npm/Package.cjs +0 -11
- package/dist/development/src/npm/Package.cjs.map +0 -1
- package/dist/development/src/npm/Package.js +0 -11
- package/dist/development/src/npm/Package.js.map +0 -1
- package/dist/development/src/npm/PackageWorkspace.cjs +0 -79
- package/dist/development/src/npm/PackageWorkspace.cjs.map +0 -1
- package/dist/development/src/npm/PackageWorkspace.js +0 -79
- package/dist/development/src/npm/PackageWorkspace.js.map +0 -1
- package/dist/development/src/npm/PackageWorkspaceResolver.cjs +0 -48
- package/dist/development/src/npm/PackageWorkspaceResolver.cjs.map +0 -1
- package/dist/development/src/npm/PackageWorkspaceResolver.js +0 -48
- package/dist/development/src/npm/PackageWorkspaceResolver.js.map +0 -1
- package/dist/development/src/npm/packageManagers/Bun.cjs +0 -34
- package/dist/development/src/npm/packageManagers/Bun.cjs.map +0 -1
- package/dist/development/src/npm/packageManagers/Bun.js +0 -34
- package/dist/development/src/npm/packageManagers/Bun.js.map +0 -1
- package/dist/development/src/npm/packageManagers/Npm.cjs +0 -34
- package/dist/development/src/npm/packageManagers/Npm.cjs.map +0 -1
- package/dist/development/src/npm/packageManagers/Npm.js +0 -34
- package/dist/development/src/npm/packageManagers/Npm.js.map +0 -1
- package/dist/development/src/npm/packageManagers/PackageManagerHelpers.cjs +0 -32
- package/dist/development/src/npm/packageManagers/PackageManagerHelpers.cjs.map +0 -1
- package/dist/development/src/npm/packageManagers/PackageManagerHelpers.js +0 -32
- package/dist/development/src/npm/packageManagers/PackageManagerHelpers.js.map +0 -1
- package/dist/development/src/npm/packageManagers/Pnpm.cjs +0 -39
- package/dist/development/src/npm/packageManagers/Pnpm.cjs.map +0 -1
- package/dist/development/src/npm/packageManagers/Pnpm.js +0 -39
- package/dist/development/src/npm/packageManagers/Pnpm.js.map +0 -1
- package/dist/development/src/npm/packageManagers/Yarn.cjs +0 -34
- package/dist/development/src/npm/packageManagers/Yarn.cjs.map +0 -1
- package/dist/development/src/npm/packageManagers/Yarn.js +0 -34
- package/dist/development/src/npm/packageManagers/Yarn.js.map +0 -1
- package/dist/development/src/npm/packageManagers/YarnClassic.cjs +0 -35
- package/dist/development/src/npm/packageManagers/YarnClassic.cjs.map +0 -1
- package/dist/development/src/npm/packageManagers/YarnClassic.js +0 -35
- package/dist/development/src/npm/packageManagers/YarnClassic.js.map +0 -1
- package/dist/development/src/utils/findPackageRoot.cjs +0 -20
- package/dist/development/src/utils/findPackageRoot.cjs.map +0 -1
- package/dist/development/src/utils/findPackageRoot.js +0 -20
- package/dist/development/src/utils/findPackageRoot.js.map +0 -1
- package/dist/production/index.cjs +0 -32
- package/dist/production/index.cjs.map +0 -1
- package/dist/production/index.js +0 -32
- package/dist/production/index.js.map +0 -1
- package/dist/production/src/application/Application.cjs +0 -82
- package/dist/production/src/application/Application.cjs.map +0 -1
- package/dist/production/src/application/Application.js +0 -82
- package/dist/production/src/application/Application.js.map +0 -1
- package/dist/production/src/application/Argument.cjs +0 -25
- package/dist/production/src/application/Argument.cjs.map +0 -1
- package/dist/production/src/application/Argument.js +0 -25
- package/dist/production/src/application/Argument.js.map +0 -1
- package/dist/production/src/application/Command.cjs +0 -28
- package/dist/production/src/application/Command.cjs.map +0 -1
- package/dist/production/src/application/Command.js +0 -28
- package/dist/production/src/application/Command.js.map +0 -1
- package/dist/production/src/application/CommandConfiguration.cjs +0 -44
- package/dist/production/src/application/CommandConfiguration.cjs.map +0 -1
- package/dist/production/src/application/CommandConfiguration.js +0 -44
- package/dist/production/src/application/CommandConfiguration.js.map +0 -1
- package/dist/production/src/application/CommandManager.cjs +0 -37
- package/dist/production/src/application/CommandManager.cjs.map +0 -1
- package/dist/production/src/application/CommandManager.js +0 -37
- package/dist/production/src/application/CommandManager.js.map +0 -1
- package/dist/production/src/application/Input.cjs +0 -16
- package/dist/production/src/application/Input.cjs.map +0 -1
- package/dist/production/src/application/Input.js +0 -16
- package/dist/production/src/application/Input.js.map +0 -1
- package/dist/production/src/application/InputParser.cjs +0 -117
- package/dist/production/src/application/InputParser.cjs.map +0 -1
- package/dist/production/src/application/InputParser.js +0 -117
- package/dist/production/src/application/InputParser.js.map +0 -1
- package/dist/production/src/application/Option.cjs +0 -49
- package/dist/production/src/application/Option.cjs.map +0 -1
- package/dist/production/src/application/Option.js +0 -49
- package/dist/production/src/application/Option.js.map +0 -1
- package/dist/production/src/application/UsageFormatter.cjs +0 -61
- package/dist/production/src/application/UsageFormatter.cjs.map +0 -1
- package/dist/production/src/application/UsageFormatter.js +0 -61
- package/dist/production/src/application/UsageFormatter.js.map +0 -1
- package/dist/production/src/application/assertNever.cjs +0 -7
- package/dist/production/src/application/assertNever.cjs.map +0 -1
- package/dist/production/src/application/assertNever.js +0 -7
- package/dist/production/src/application/assertNever.js.map +0 -1
- package/dist/production/src/npm/CommandRunner.cjs +0 -59
- package/dist/production/src/npm/CommandRunner.cjs.map +0 -1
- package/dist/production/src/npm/CommandRunner.js +0 -59
- package/dist/production/src/npm/CommandRunner.js.map +0 -1
- package/dist/production/src/npm/Package.cjs +0 -11
- package/dist/production/src/npm/Package.cjs.map +0 -1
- package/dist/production/src/npm/Package.js +0 -11
- package/dist/production/src/npm/Package.js.map +0 -1
- package/dist/production/src/npm/PackageWorkspace.cjs +0 -79
- package/dist/production/src/npm/PackageWorkspace.cjs.map +0 -1
- package/dist/production/src/npm/PackageWorkspace.js +0 -79
- package/dist/production/src/npm/PackageWorkspace.js.map +0 -1
- package/dist/production/src/npm/PackageWorkspaceResolver.cjs +0 -48
- package/dist/production/src/npm/PackageWorkspaceResolver.cjs.map +0 -1
- package/dist/production/src/npm/PackageWorkspaceResolver.js +0 -48
- package/dist/production/src/npm/PackageWorkspaceResolver.js.map +0 -1
- package/dist/production/src/npm/packageManagers/Bun.cjs +0 -34
- package/dist/production/src/npm/packageManagers/Bun.cjs.map +0 -1
- package/dist/production/src/npm/packageManagers/Bun.js +0 -34
- package/dist/production/src/npm/packageManagers/Bun.js.map +0 -1
- package/dist/production/src/npm/packageManagers/Npm.cjs +0 -34
- package/dist/production/src/npm/packageManagers/Npm.cjs.map +0 -1
- package/dist/production/src/npm/packageManagers/Npm.js +0 -34
- package/dist/production/src/npm/packageManagers/Npm.js.map +0 -1
- package/dist/production/src/npm/packageManagers/PackageManagerHelpers.cjs +0 -32
- package/dist/production/src/npm/packageManagers/PackageManagerHelpers.cjs.map +0 -1
- package/dist/production/src/npm/packageManagers/PackageManagerHelpers.js +0 -32
- package/dist/production/src/npm/packageManagers/PackageManagerHelpers.js.map +0 -1
- package/dist/production/src/npm/packageManagers/Pnpm.cjs +0 -39
- package/dist/production/src/npm/packageManagers/Pnpm.cjs.map +0 -1
- package/dist/production/src/npm/packageManagers/Pnpm.js +0 -39
- package/dist/production/src/npm/packageManagers/Pnpm.js.map +0 -1
- package/dist/production/src/npm/packageManagers/Yarn.cjs +0 -34
- package/dist/production/src/npm/packageManagers/Yarn.cjs.map +0 -1
- package/dist/production/src/npm/packageManagers/Yarn.js +0 -34
- package/dist/production/src/npm/packageManagers/Yarn.js.map +0 -1
- package/dist/production/src/npm/packageManagers/YarnClassic.cjs +0 -35
- package/dist/production/src/npm/packageManagers/YarnClassic.cjs.map +0 -1
- package/dist/production/src/npm/packageManagers/YarnClassic.js +0 -35
- package/dist/production/src/npm/packageManagers/YarnClassic.js.map +0 -1
- package/dist/production/src/utils/findPackageRoot.cjs +0 -20
- package/dist/production/src/utils/findPackageRoot.cjs.map +0 -1
- package/dist/production/src/utils/findPackageRoot.js +0 -20
- package/dist/production/src/utils/findPackageRoot.js.map +0 -1
- package/dist/types/application/Application.d.ts +0 -18
- package/dist/types/application/Application.d.ts.map +0 -1
- package/dist/types/application/Argument.d.ts +0 -16
- package/dist/types/application/Argument.d.ts.map +0 -1
- package/dist/types/application/Command.d.ts +0 -10
- package/dist/types/application/Command.d.ts.map +0 -1
- package/dist/types/application/CommandConfiguration.d.ts +0 -23
- package/dist/types/application/CommandConfiguration.d.ts.map +0 -1
- package/dist/types/application/CommandManager.d.ts +0 -11
- package/dist/types/application/CommandManager.d.ts.map +0 -1
- package/dist/types/application/Input.d.ts +0 -10
- package/dist/types/application/Input.d.ts.map +0 -1
- package/dist/types/application/InputParser.d.ts +0 -13
- package/dist/types/application/InputParser.d.ts.map +0 -1
- package/dist/types/application/Option.d.ts +0 -27
- package/dist/types/application/Option.d.ts.map +0 -1
- package/dist/types/application/UsageFormatter.d.ts +0 -11
- package/dist/types/application/UsageFormatter.d.ts.map +0 -1
- package/dist/types/application/assertNever.d.ts +0 -2
- package/dist/types/application/assertNever.d.ts.map +0 -1
- package/dist/types/application/index.d.ts +0 -11
- package/dist/types/application/index.d.ts.map +0 -1
- package/dist/types/index.d.ts +0 -5
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/npm/CommandRunner.d.ts +0 -22
- package/dist/types/npm/CommandRunner.d.ts.map +0 -1
- package/dist/types/npm/FileSystem.d.ts +0 -7
- package/dist/types/npm/FileSystem.d.ts.map +0 -1
- package/dist/types/npm/Package.d.ts +0 -8
- package/dist/types/npm/Package.d.ts.map +0 -1
- package/dist/types/npm/PackageJson.d.ts +0 -13
- package/dist/types/npm/PackageJson.d.ts.map +0 -1
- package/dist/types/npm/PackageWorkspace.d.ts +0 -25
- package/dist/types/npm/PackageWorkspace.d.ts.map +0 -1
- package/dist/types/npm/PackageWorkspaceResolver.d.ts +0 -13
- package/dist/types/npm/PackageWorkspaceResolver.d.ts.map +0 -1
- package/dist/types/npm/index.d.ts +0 -9
- package/dist/types/npm/index.d.ts.map +0 -1
- package/dist/types/npm/packageManagers/Bun.d.ts +0 -24
- package/dist/types/npm/packageManagers/Bun.d.ts.map +0 -1
- package/dist/types/npm/packageManagers/Npm.d.ts +0 -24
- package/dist/types/npm/packageManagers/Npm.d.ts.map +0 -1
- package/dist/types/npm/packageManagers/PackageManager.d.ts +0 -18
- package/dist/types/npm/packageManagers/PackageManager.d.ts.map +0 -1
- package/dist/types/npm/packageManagers/PackageManagerHelpers.d.ts +0 -15
- package/dist/types/npm/packageManagers/PackageManagerHelpers.d.ts.map +0 -1
- package/dist/types/npm/packageManagers/Pnpm.d.ts +0 -24
- package/dist/types/npm/packageManagers/Pnpm.d.ts.map +0 -1
- package/dist/types/npm/packageManagers/Yarn.d.ts +0 -24
- package/dist/types/npm/packageManagers/Yarn.d.ts.map +0 -1
- package/dist/types/npm/packageManagers/YarnClassic.d.ts +0 -24
- package/dist/types/npm/packageManagers/YarnClassic.d.ts.map +0 -1
- package/dist/types/tsconfig.tsbuildinfo +0 -1
- package/dist/types/utils/findPackageRoot.d.ts +0 -2
- package/dist/types/utils/findPackageRoot.d.ts.map +0 -1
- package/dist/types/utils/index.d.ts +0 -2
- package/dist/types/utils/index.d.ts.map +0 -1
- package/src/.eslintrc.cjs +0 -5
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
import { OptionMode } from "./Option.js";
|
|
2
|
-
import { Input } from "./Input.js";
|
|
3
|
-
class InputParser {
|
|
4
|
-
constructor(_arguments, options) {
|
|
5
|
-
this._arguments = _arguments;
|
|
6
|
-
this.options = options;
|
|
7
|
-
}
|
|
8
|
-
parse(args) {
|
|
9
|
-
args = args.reduce((acc, arg) => [...acc, ...arg.startsWith("-") ? arg.split("=", 2) : [arg]], []);
|
|
10
|
-
let options = {};
|
|
11
|
-
let argumentValues = {};
|
|
12
|
-
let i = 0;
|
|
13
|
-
let argumentNumber = 0;
|
|
14
|
-
const variadicArg = this._arguments[this._arguments.length - 1]?.variadic ? this._arguments[this._arguments.length - 1] : void 0;
|
|
15
|
-
for (; i < args.length; i++) {
|
|
16
|
-
const value = this.tryParseValue(args[i]);
|
|
17
|
-
if (value === void 0) {
|
|
18
|
-
break;
|
|
19
|
-
}
|
|
20
|
-
const argument = this._arguments[argumentNumber] || variadicArg;
|
|
21
|
-
if (!argument) {
|
|
22
|
-
throw new InvalidInputError(`Unresolved argument for value "${value}"`);
|
|
23
|
-
}
|
|
24
|
-
if (argument.validator && !argument.validator(value)) {
|
|
25
|
-
throw new InvalidInputError(`Invalid value "${value}" for argument ${argument.name}`);
|
|
26
|
-
}
|
|
27
|
-
if (argument.variadic) {
|
|
28
|
-
argumentValues[argument.name] = argumentValues[argument.name] || [];
|
|
29
|
-
argumentValues[argument.name].push(value);
|
|
30
|
-
} else {
|
|
31
|
-
argumentValues[argument.name] = value;
|
|
32
|
-
}
|
|
33
|
-
argumentNumber++;
|
|
34
|
-
}
|
|
35
|
-
for (; argumentNumber < this._arguments.length; argumentNumber++) {
|
|
36
|
-
if (!this._arguments[argumentNumber].optional) {
|
|
37
|
-
throw new InvalidInputError(`Argument ${this._arguments[argumentNumber].name} is required`);
|
|
38
|
-
} else {
|
|
39
|
-
argumentValues[this._arguments[argumentNumber].name] = void 0;
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
for (; i < args.length; i++) {
|
|
43
|
-
let option;
|
|
44
|
-
if (args[i].startsWith("--")) {
|
|
45
|
-
option = this.options.find((it) => it.name === args[i].slice(2));
|
|
46
|
-
if (!option) {
|
|
47
|
-
throw new InvalidInputError(`Undefined option ${args[i]}`);
|
|
48
|
-
}
|
|
49
|
-
} else if (args[i].startsWith("-")) {
|
|
50
|
-
option = this.options.find((it) => it.shortcut === args[i].slice(1));
|
|
51
|
-
if (!option) {
|
|
52
|
-
throw new InvalidInputError(`Undefined option ${args[i]}`);
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
if (!option) {
|
|
56
|
-
throw new InvalidInputError(`Unexpected value "${args[i]}"`);
|
|
57
|
-
}
|
|
58
|
-
if (option) {
|
|
59
|
-
if (option.deprecated) {
|
|
60
|
-
console.warn(`Option ${option.name} is deprecated.`);
|
|
61
|
-
}
|
|
62
|
-
if (option.mode === OptionMode.VALUE_NONE) {
|
|
63
|
-
options[option.name] = true;
|
|
64
|
-
continue;
|
|
65
|
-
}
|
|
66
|
-
const value = this.tryParseValue(args[i + 1]);
|
|
67
|
-
if (value !== void 0) {
|
|
68
|
-
i++;
|
|
69
|
-
}
|
|
70
|
-
if (option.mode === OptionMode.VALUE_ARRAY) {
|
|
71
|
-
if (value === void 0) {
|
|
72
|
-
throw new InvalidInputError(`Undefined value for option --${option.name}`);
|
|
73
|
-
}
|
|
74
|
-
options[option.name] = options[option.name] || [];
|
|
75
|
-
options[option.name].push(value);
|
|
76
|
-
} else if (option.mode === OptionMode.VALUE_REQUIRED) {
|
|
77
|
-
if (value === void 0) {
|
|
78
|
-
throw new InvalidInputError(`Undefined value for option --${option.name}`);
|
|
79
|
-
}
|
|
80
|
-
options[option.name] = value;
|
|
81
|
-
} else if (option.mode === OptionMode.VALUE_OPTIONAL) {
|
|
82
|
-
options[option.name] = value === void 0 ? true : value;
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
for (let option of this.options) {
|
|
87
|
-
if (options[option.name] !== void 0) {
|
|
88
|
-
continue;
|
|
89
|
-
}
|
|
90
|
-
if (option.required) {
|
|
91
|
-
throw new InvalidInputError(`Option --${option.name} is required`);
|
|
92
|
-
} else {
|
|
93
|
-
options[option.name] = void 0;
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
return new Input(argumentValues, options);
|
|
97
|
-
}
|
|
98
|
-
tryParseValue(arg) {
|
|
99
|
-
if (arg === void 0) {
|
|
100
|
-
return void 0;
|
|
101
|
-
}
|
|
102
|
-
if (arg.startsWith("-")) {
|
|
103
|
-
return void 0;
|
|
104
|
-
}
|
|
105
|
-
if (arg.startsWith("\\-")) {
|
|
106
|
-
return "-" + arg.slice(1);
|
|
107
|
-
}
|
|
108
|
-
return arg;
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
class InvalidInputError extends Error {
|
|
112
|
-
}
|
|
113
|
-
export {
|
|
114
|
-
InputParser,
|
|
115
|
-
InvalidInputError
|
|
116
|
-
};
|
|
117
|
-
//# sourceMappingURL=InputParser.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"InputParser.js","sources":["../../../../../packages/cli-common/src/application/InputParser.ts"],"sourcesContent":["import { Argument } from './Argument'\nimport { Option, OptionMode } from './Option'\nimport { Arguments, Input, Options } from './Input'\n\nexport class InputParser {\n\tconstructor(private _arguments: Argument[], private options: Option[]) {}\n\n\tparse<Args extends Arguments, Opts extends Options>(args: string[]): Input<Args, Opts> {\n\t\targs = args.reduce<string[]>((acc, arg) => [...acc, ...(arg.startsWith('-') ? arg.split('=', 2) : [arg])], [])\n\t\tlet options: Options = {}\n\t\tlet argumentValues: Arguments = {}\n\n\t\tlet i = 0\n\t\tlet argumentNumber = 0\n\t\tconst variadicArg = this._arguments[this._arguments.length - 1]?.variadic\n\t\t\t? this._arguments[this._arguments.length - 1]\n\t\t\t: undefined\n\t\tfor (; i < args.length; i++) {\n\t\t\tconst value = this.tryParseValue(args[i])\n\t\t\tif (value === undefined) {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tconst argument = this._arguments[argumentNumber] || variadicArg\n\t\t\tif (!argument) {\n\t\t\t\tthrow new InvalidInputError(`Unresolved argument for value \"${value}\"`)\n\t\t\t}\n\t\t\tif (argument.validator && !argument.validator(value)) {\n\t\t\t\tthrow new InvalidInputError(`Invalid value \"${value}\" for argument ${argument.name}`)\n\t\t\t}\n\t\t\tif (argument.variadic) {\n\t\t\t\targumentValues[argument.name] = argumentValues[argument.name] || []\n\t\t\t\t;(argumentValues[argument.name] as Array<string>).push(value)\n\t\t\t} else {\n\t\t\t\targumentValues[argument.name] = value\n\t\t\t}\n\t\t\targumentNumber++\n\t\t}\n\t\tfor (; argumentNumber < this._arguments.length; argumentNumber++) {\n\t\t\tif (!this._arguments[argumentNumber].optional) {\n\t\t\t\tthrow new InvalidInputError(`Argument ${this._arguments[argumentNumber].name} is required`)\n\t\t\t} else {\n\t\t\t\targumentValues[this._arguments[argumentNumber].name] = undefined\n\t\t\t}\n\t\t}\n\n\t\tfor (; i < args.length; i++) {\n\t\t\tlet option: Option | undefined\n\t\t\tif (args[i].startsWith('--')) {\n\t\t\t\toption = this.options.find(it => it.name === args[i].slice(2))\n\t\t\t\tif (!option) {\n\t\t\t\t\tthrow new InvalidInputError(`Undefined option ${args[i]}`)\n\t\t\t\t}\n\t\t\t} else if (args[i].startsWith('-')) {\n\t\t\t\toption = this.options.find(it => it.shortcut === args[i].slice(1))\n\t\t\t\tif (!option) {\n\t\t\t\t\tthrow new InvalidInputError(`Undefined option ${args[i]}`)\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!option) {\n\t\t\t\tthrow new InvalidInputError(`Unexpected value \"${args[i]}\"`)\n\t\t\t}\n\t\t\tif (option) {\n\t\t\t\tif (option.deprecated) {\n\t\t\t\t\tconsole.warn(`Option ${option.name} is deprecated.`)\n\t\t\t\t}\n\t\t\t\tif (option.mode === OptionMode.VALUE_NONE) {\n\t\t\t\t\toptions[option.name] = true\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tconst value = this.tryParseValue(args[i + 1])\n\t\t\t\tif (value !== undefined) {\n\t\t\t\t\ti++\n\t\t\t\t}\n\t\t\t\tif (option.mode === OptionMode.VALUE_ARRAY) {\n\t\t\t\t\tif (value === undefined) {\n\t\t\t\t\t\tthrow new InvalidInputError(`Undefined value for option --${option.name}`)\n\t\t\t\t\t}\n\t\t\t\t\toptions[option.name] = options[option.name] || []\n\t\t\t\t\t;(options[option.name] as Array<string>).push(value)\n\t\t\t\t} else if (option.mode === OptionMode.VALUE_REQUIRED) {\n\t\t\t\t\tif (value === undefined) {\n\t\t\t\t\t\tthrow new InvalidInputError(`Undefined value for option --${option.name}`)\n\t\t\t\t\t}\n\t\t\t\t\toptions[option.name] = value\n\t\t\t\t} else if (option.mode === OptionMode.VALUE_OPTIONAL) {\n\t\t\t\t\toptions[option.name] = value === undefined ? true : value\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfor (let option of this.options) {\n\t\t\tif (options[option.name] !== undefined) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif (option.required) {\n\t\t\t\tthrow new InvalidInputError(`Option --${option.name} is required`)\n\t\t\t} else {\n\t\t\t\toptions[option.name] = undefined\n\t\t\t}\n\t\t}\n\n\t\treturn new Input<Args, Opts>(argumentValues as Args, options as Opts)\n\t}\n\n\tprivate tryParseValue(arg: string | undefined): string | undefined {\n\t\tif (arg === undefined) {\n\t\t\treturn undefined\n\t\t}\n\t\tif (arg.startsWith('-')) {\n\t\t\treturn undefined\n\t\t}\n\t\tif (arg.startsWith('\\\\-')) {\n\t\t\treturn '-' + arg.slice(1)\n\t\t}\n\t\treturn arg\n\t}\n}\n\nexport class InvalidInputError extends Error {}\n"],"names":[],"mappings":"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"}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
var OptionMode = /* @__PURE__ */ ((OptionMode2) => {
|
|
4
|
-
OptionMode2["VALUE_NONE"] = "value_none";
|
|
5
|
-
OptionMode2["VALUE_OPTIONAL"] = "value_optional";
|
|
6
|
-
OptionMode2["VALUE_REQUIRED"] = "value_required";
|
|
7
|
-
OptionMode2["VALUE_ARRAY"] = "value_array";
|
|
8
|
-
return OptionMode2;
|
|
9
|
-
})(OptionMode || {});
|
|
10
|
-
class OptionConfiguration {
|
|
11
|
-
constructor(option) {
|
|
12
|
-
this.option = option;
|
|
13
|
-
}
|
|
14
|
-
shortcut(shortcut) {
|
|
15
|
-
this.option.shortcut = shortcut;
|
|
16
|
-
return this;
|
|
17
|
-
}
|
|
18
|
-
description(description) {
|
|
19
|
-
this.option.description = description;
|
|
20
|
-
return this;
|
|
21
|
-
}
|
|
22
|
-
required(required = true) {
|
|
23
|
-
this.option.required = required;
|
|
24
|
-
return this;
|
|
25
|
-
}
|
|
26
|
-
valueRequired() {
|
|
27
|
-
this.option.mode = "value_required";
|
|
28
|
-
return this;
|
|
29
|
-
}
|
|
30
|
-
valueNone() {
|
|
31
|
-
this.option.mode = "value_none";
|
|
32
|
-
return this;
|
|
33
|
-
}
|
|
34
|
-
valueOptional() {
|
|
35
|
-
this.option.mode = "value_optional";
|
|
36
|
-
return this;
|
|
37
|
-
}
|
|
38
|
-
valueArray() {
|
|
39
|
-
this.option.mode = "value_array";
|
|
40
|
-
return this;
|
|
41
|
-
}
|
|
42
|
-
deprecated() {
|
|
43
|
-
this.option.deprecated = true;
|
|
44
|
-
return this;
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
exports.OptionConfiguration = OptionConfiguration;
|
|
48
|
-
exports.OptionMode = OptionMode;
|
|
49
|
-
//# sourceMappingURL=Option.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Option.cjs","sources":["../../../../../packages/cli-common/src/application/Option.ts"],"sourcesContent":["export type Option = {\n\tname: string\n\tdescription?: string\n\tshortcut?: string\n\trequired: boolean\n\tdeprecated: boolean\n\tmode: OptionMode\n}\n\nexport enum OptionMode {\n\tVALUE_NONE = 'value_none',\n\tVALUE_OPTIONAL = 'value_optional',\n\tVALUE_REQUIRED = 'value_required',\n\tVALUE_ARRAY = 'value_array',\n}\n\nexport class OptionConfiguration {\n\tconstructor(private readonly option: Option) {}\n\n\tpublic shortcut(shortcut: string) {\n\t\tthis.option.shortcut = shortcut\n\t\treturn this\n\t}\n\n\tpublic description(description: string) {\n\t\tthis.option.description = description\n\t\treturn this\n\t}\n\n\tpublic required(required: boolean = true) {\n\t\tthis.option.required = required\n\t\treturn this\n\t}\n\n\tpublic valueRequired() {\n\t\tthis.option.mode = OptionMode.VALUE_REQUIRED\n\t\treturn this\n\t}\n\n\tpublic valueNone() {\n\t\tthis.option.mode = OptionMode.VALUE_NONE\n\t\treturn this\n\t}\n\n\tpublic valueOptional() {\n\t\tthis.option.mode = OptionMode.VALUE_OPTIONAL\n\t\treturn this\n\t}\n\n\tpublic valueArray() {\n\t\tthis.option.mode = OptionMode.VALUE_ARRAY\n\t\treturn this\n\t}\n\n\tpublic deprecated() {\n\t\tthis.option.deprecated = true\n\t\treturn this\n\t}\n}\n"],"names":["OptionMode"],"mappings":";;AASY,IAAA,+BAAAA,gBAAL;AACNA,cAAA,YAAa,IAAA;AACbA,cAAA,gBAAiB,IAAA;AACjBA,cAAA,gBAAiB,IAAA;AACjBA,cAAA,aAAc,IAAA;AAJHA,SAAAA;AAAA,GAAA,cAAA,CAAA,CAAA;AAOL,MAAM,oBAAoB;AAAA,EAChC,YAA6B,QAAgB;AAAhB,SAAA,SAAA;AAAA,EAAA;AAAA,EAEtB,SAAS,UAAkB;AACjC,SAAK,OAAO,WAAW;AAChB,WAAA;AAAA,EAAA;AAAA,EAGD,YAAY,aAAqB;AACvC,SAAK,OAAO,cAAc;AACnB,WAAA;AAAA,EAAA;AAAA,EAGD,SAAS,WAAoB,MAAM;AACzC,SAAK,OAAO,WAAW;AAChB,WAAA;AAAA,EAAA;AAAA,EAGD,gBAAgB;AACtB,SAAK,OAAO,OAAO;AACZ,WAAA;AAAA,EAAA;AAAA,EAGD,YAAY;AAClB,SAAK,OAAO,OAAO;AACZ,WAAA;AAAA,EAAA;AAAA,EAGD,gBAAgB;AACtB,SAAK,OAAO,OAAO;AACZ,WAAA;AAAA,EAAA;AAAA,EAGD,aAAa;AACnB,SAAK,OAAO,OAAO;AACZ,WAAA;AAAA,EAAA;AAAA,EAGD,aAAa;AACnB,SAAK,OAAO,aAAa;AAClB,WAAA;AAAA,EAAA;AAET;;;"}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
var OptionMode = /* @__PURE__ */ ((OptionMode2) => {
|
|
2
|
-
OptionMode2["VALUE_NONE"] = "value_none";
|
|
3
|
-
OptionMode2["VALUE_OPTIONAL"] = "value_optional";
|
|
4
|
-
OptionMode2["VALUE_REQUIRED"] = "value_required";
|
|
5
|
-
OptionMode2["VALUE_ARRAY"] = "value_array";
|
|
6
|
-
return OptionMode2;
|
|
7
|
-
})(OptionMode || {});
|
|
8
|
-
class OptionConfiguration {
|
|
9
|
-
constructor(option) {
|
|
10
|
-
this.option = option;
|
|
11
|
-
}
|
|
12
|
-
shortcut(shortcut) {
|
|
13
|
-
this.option.shortcut = shortcut;
|
|
14
|
-
return this;
|
|
15
|
-
}
|
|
16
|
-
description(description) {
|
|
17
|
-
this.option.description = description;
|
|
18
|
-
return this;
|
|
19
|
-
}
|
|
20
|
-
required(required = true) {
|
|
21
|
-
this.option.required = required;
|
|
22
|
-
return this;
|
|
23
|
-
}
|
|
24
|
-
valueRequired() {
|
|
25
|
-
this.option.mode = "value_required";
|
|
26
|
-
return this;
|
|
27
|
-
}
|
|
28
|
-
valueNone() {
|
|
29
|
-
this.option.mode = "value_none";
|
|
30
|
-
return this;
|
|
31
|
-
}
|
|
32
|
-
valueOptional() {
|
|
33
|
-
this.option.mode = "value_optional";
|
|
34
|
-
return this;
|
|
35
|
-
}
|
|
36
|
-
valueArray() {
|
|
37
|
-
this.option.mode = "value_array";
|
|
38
|
-
return this;
|
|
39
|
-
}
|
|
40
|
-
deprecated() {
|
|
41
|
-
this.option.deprecated = true;
|
|
42
|
-
return this;
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
export {
|
|
46
|
-
OptionConfiguration,
|
|
47
|
-
OptionMode
|
|
48
|
-
};
|
|
49
|
-
//# sourceMappingURL=Option.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Option.js","sources":["../../../../../packages/cli-common/src/application/Option.ts"],"sourcesContent":["export type Option = {\n\tname: string\n\tdescription?: string\n\tshortcut?: string\n\trequired: boolean\n\tdeprecated: boolean\n\tmode: OptionMode\n}\n\nexport enum OptionMode {\n\tVALUE_NONE = 'value_none',\n\tVALUE_OPTIONAL = 'value_optional',\n\tVALUE_REQUIRED = 'value_required',\n\tVALUE_ARRAY = 'value_array',\n}\n\nexport class OptionConfiguration {\n\tconstructor(private readonly option: Option) {}\n\n\tpublic shortcut(shortcut: string) {\n\t\tthis.option.shortcut = shortcut\n\t\treturn this\n\t}\n\n\tpublic description(description: string) {\n\t\tthis.option.description = description\n\t\treturn this\n\t}\n\n\tpublic required(required: boolean = true) {\n\t\tthis.option.required = required\n\t\treturn this\n\t}\n\n\tpublic valueRequired() {\n\t\tthis.option.mode = OptionMode.VALUE_REQUIRED\n\t\treturn this\n\t}\n\n\tpublic valueNone() {\n\t\tthis.option.mode = OptionMode.VALUE_NONE\n\t\treturn this\n\t}\n\n\tpublic valueOptional() {\n\t\tthis.option.mode = OptionMode.VALUE_OPTIONAL\n\t\treturn this\n\t}\n\n\tpublic valueArray() {\n\t\tthis.option.mode = OptionMode.VALUE_ARRAY\n\t\treturn this\n\t}\n\n\tpublic deprecated() {\n\t\tthis.option.deprecated = true\n\t\treturn this\n\t}\n}\n"],"names":["OptionMode"],"mappings":"AASY,IAAA,+BAAAA,gBAAL;AACNA,cAAA,YAAa,IAAA;AACbA,cAAA,gBAAiB,IAAA;AACjBA,cAAA,gBAAiB,IAAA;AACjBA,cAAA,aAAc,IAAA;AAJHA,SAAAA;AAAA,GAAA,cAAA,CAAA,CAAA;AAOL,MAAM,oBAAoB;AAAA,EAChC,YAA6B,QAAgB;AAAhB,SAAA,SAAA;AAAA,EAAA;AAAA,EAEtB,SAAS,UAAkB;AACjC,SAAK,OAAO,WAAW;AAChB,WAAA;AAAA,EAAA;AAAA,EAGD,YAAY,aAAqB;AACvC,SAAK,OAAO,cAAc;AACnB,WAAA;AAAA,EAAA;AAAA,EAGD,SAAS,WAAoB,MAAM;AACzC,SAAK,OAAO,WAAW;AAChB,WAAA;AAAA,EAAA;AAAA,EAGD,gBAAgB;AACtB,SAAK,OAAO,OAAO;AACZ,WAAA;AAAA,EAAA;AAAA,EAGD,YAAY;AAClB,SAAK,OAAO,OAAO;AACZ,WAAA;AAAA,EAAA;AAAA,EAGD,gBAAgB;AACtB,SAAK,OAAO,OAAO;AACZ,WAAA;AAAA,EAAA;AAAA,EAGD,aAAa;AACnB,SAAK,OAAO,OAAO;AACZ,WAAA;AAAA,EAAA;AAAA,EAGD,aAAa;AACnB,SAAK,OAAO,aAAa;AAClB,WAAA;AAAA,EAAA;AAET;"}
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const Option = require("./Option.cjs");
|
|
4
|
-
const assertNever = require("./assertNever.cjs");
|
|
5
|
-
class UsageFormatter {
|
|
6
|
-
static format(args, options, { format, indent }) {
|
|
7
|
-
let parts = [];
|
|
8
|
-
format ?? (format = "short");
|
|
9
|
-
indent ?? (indent = " ");
|
|
10
|
-
const isShort = format === "short";
|
|
11
|
-
for (let arg of args) {
|
|
12
|
-
const name = arg.name;
|
|
13
|
-
const argDescription = !isShort && arg.description ? ` (${arg.description})` : "";
|
|
14
|
-
if (arg.variadic) {
|
|
15
|
-
parts.push(`[...${name}${argDescription}]`);
|
|
16
|
-
} else if (arg.optional) {
|
|
17
|
-
parts.push(`[${name}${argDescription}]`);
|
|
18
|
-
} else {
|
|
19
|
-
parts.push(`<${name}${argDescription}>`);
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
for (let opt of options) {
|
|
23
|
-
if (opt.deprecated) {
|
|
24
|
-
continue;
|
|
25
|
-
}
|
|
26
|
-
const name = `--${opt.name}` + (!isShort && opt.shortcut ? `|-${opt.shortcut}` : "");
|
|
27
|
-
let valueDescription;
|
|
28
|
-
switch (opt.mode) {
|
|
29
|
-
case Option.OptionMode.VALUE_ARRAY:
|
|
30
|
-
case Option.OptionMode.VALUE_REQUIRED:
|
|
31
|
-
valueDescription = " <value>";
|
|
32
|
-
break;
|
|
33
|
-
case Option.OptionMode.VALUE_OPTIONAL:
|
|
34
|
-
valueDescription = " [value]";
|
|
35
|
-
break;
|
|
36
|
-
case Option.OptionMode.VALUE_NONE:
|
|
37
|
-
valueDescription = "";
|
|
38
|
-
break;
|
|
39
|
-
default:
|
|
40
|
-
assertNever.assertNever(opt.mode);
|
|
41
|
-
}
|
|
42
|
-
let optionDescription = `${name}${valueDescription}`;
|
|
43
|
-
if (opt.mode === Option.OptionMode.VALUE_ARRAY) {
|
|
44
|
-
optionDescription = `${optionDescription} [... ${optionDescription}]`;
|
|
45
|
-
}
|
|
46
|
-
if (!isShort && opt.description) {
|
|
47
|
-
optionDescription += ` (${opt.description})`;
|
|
48
|
-
}
|
|
49
|
-
if (!opt.required) {
|
|
50
|
-
optionDescription = `[${optionDescription}]`;
|
|
51
|
-
}
|
|
52
|
-
parts.push(optionDescription);
|
|
53
|
-
}
|
|
54
|
-
if (format === "multiline") {
|
|
55
|
-
return parts.map((it) => `${indent}${it}`).join("\n");
|
|
56
|
-
}
|
|
57
|
-
return parts.join(" ");
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
exports.UsageFormatter = UsageFormatter;
|
|
61
|
-
//# sourceMappingURL=UsageFormatter.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"UsageFormatter.cjs","sources":["../../../../../packages/cli-common/src/application/UsageFormatter.ts"],"sourcesContent":["import { Argument } from './Argument'\nimport { Option, OptionMode } from './Option'\nimport { assertNever } from './assertNever'\n\nexport type UsageFormat = 'line' | 'short' | 'multiline'\nexport type UsageFormatOptions = { format?: UsageFormat; indent?: string }\n\nexport class UsageFormatter {\n\tpublic static format(args: Argument[], options: Option[], { format, indent }: UsageFormatOptions): string {\n\t\tlet parts = []\n\t\tformat ??= 'short'\n\t\tindent ??= ' '\n\t\tconst isShort = format === 'short'\n\t\tfor (let arg of args) {\n\t\t\tconst name = arg.name\n\t\t\tconst argDescription = !isShort && arg.description ? ` (${arg.description})` : ''\n\t\t\tif (arg.variadic) {\n\t\t\t\tparts.push(`[...${name}${argDescription}]`)\n\t\t\t} else if (arg.optional) {\n\t\t\t\tparts.push(`[${name}${argDescription}]`)\n\t\t\t} else {\n\t\t\t\tparts.push(`<${name}${argDescription}>`)\n\t\t\t}\n\t\t}\n\t\tfor (let opt of options) {\n\t\t\tif (opt.deprecated) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tconst name = `--${opt.name}` + (!isShort && opt.shortcut ? `|-${opt.shortcut}` : '')\n\t\t\tlet valueDescription\n\t\t\tswitch (opt.mode) {\n\t\t\t\tcase OptionMode.VALUE_ARRAY:\n\t\t\t\tcase OptionMode.VALUE_REQUIRED:\n\t\t\t\t\tvalueDescription = ' <value>'\n\t\t\t\t\tbreak\n\t\t\t\tcase OptionMode.VALUE_OPTIONAL:\n\t\t\t\t\tvalueDescription = ' [value]'\n\t\t\t\t\tbreak\n\t\t\t\tcase OptionMode.VALUE_NONE:\n\t\t\t\t\tvalueDescription = ''\n\t\t\t\t\tbreak\n\t\t\t\tdefault:\n\t\t\t\t\tassertNever(opt.mode)\n\t\t\t}\n\t\t\tlet optionDescription = `${name}${valueDescription}`\n\t\t\tif (opt.mode === OptionMode.VALUE_ARRAY) {\n\t\t\t\toptionDescription = `${optionDescription} [... ${optionDescription}]`\n\t\t\t}\n\t\t\tif (!isShort && opt.description) {\n\t\t\t\toptionDescription += ` (${opt.description})`\n\t\t\t}\n\t\t\tif (!opt.required) {\n\t\t\t\toptionDescription = `[${optionDescription}]`\n\t\t\t}\n\t\t\tparts.push(optionDescription)\n\t\t}\n\t\tif (format === 'multiline') {\n\t\t\treturn parts.map(it => `${indent}${it}`).join('\\n')\n\t\t}\n\t\treturn parts.join(' ')\n\t}\n}\n"],"names":["OptionMode","assertNever"],"mappings":";;;;AAOO,MAAM,eAAe;AAAA,EAC3B,OAAc,OAAO,MAAkB,SAAmB,EAAE,QAAQ,UAAsC;AACzG,QAAI,QAAQ,CAAC;AACF,eAAA,SAAA;AACA,eAAA,SAAA;AACX,UAAM,UAAU,WAAW;AAC3B,aAAS,OAAO,MAAM;AACrB,YAAM,OAAO,IAAI;AACX,YAAA,iBAAiB,CAAC,WAAW,IAAI,cAAc,KAAK,IAAI,WAAW,MAAM;AAC/E,UAAI,IAAI,UAAU;AACjB,cAAM,KAAK,OAAO,IAAI,GAAG,cAAc,GAAG;AAAA,MAAA,WAChC,IAAI,UAAU;AACxB,cAAM,KAAK,IAAI,IAAI,GAAG,cAAc,GAAG;AAAA,MAAA,OACjC;AACN,cAAM,KAAK,IAAI,IAAI,GAAG,cAAc,GAAG;AAAA,MAAA;AAAA,IACxC;AAED,aAAS,OAAO,SAAS;AACxB,UAAI,IAAI,YAAY;AACnB;AAAA,MAAA;AAED,YAAM,OAAO,KAAK,IAAI,IAAI,MAAM,CAAC,WAAW,IAAI,WAAW,KAAK,IAAI,QAAQ,KAAK;AAC7E,UAAA;AACJ,cAAQ,IAAI,MAAM;AAAA,QACjB,KAAKA,OAAW,WAAA;AAAA,QAChB,KAAKA,OAAW,WAAA;AACI,6BAAA;AACnB;AAAA,QACD,KAAKA,OAAW,WAAA;AACI,6BAAA;AACnB;AAAA,QACD,KAAKA,OAAW,WAAA;AACI,6BAAA;AACnB;AAAA,QACD;AACCC,sBAAA,YAAY,IAAI,IAAI;AAAA,MAAA;AAEtB,UAAI,oBAAoB,GAAG,IAAI,GAAG,gBAAgB;AAC9C,UAAA,IAAI,SAASD,OAAA,WAAW,aAAa;AACpB,4BAAA,GAAG,iBAAiB,SAAS,iBAAiB;AAAA,MAAA;AAE/D,UAAA,CAAC,WAAW,IAAI,aAAa;AACX,6BAAA,KAAK,IAAI,WAAW;AAAA,MAAA;AAEtC,UAAA,CAAC,IAAI,UAAU;AAClB,4BAAoB,IAAI,iBAAiB;AAAA,MAAA;AAE1C,YAAM,KAAK,iBAAiB;AAAA,IAAA;AAE7B,QAAI,WAAW,aAAa;AACpB,aAAA,MAAM,IAAI,CAAA,OAAM,GAAG,MAAM,GAAG,EAAE,EAAE,EAAE,KAAK,IAAI;AAAA,IAAA;AAE5C,WAAA,MAAM,KAAK,GAAG;AAAA,EAAA;AAEvB;;"}
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
import { OptionMode } from "./Option.js";
|
|
2
|
-
import { assertNever } from "./assertNever.js";
|
|
3
|
-
class UsageFormatter {
|
|
4
|
-
static format(args, options, { format, indent }) {
|
|
5
|
-
let parts = [];
|
|
6
|
-
format ?? (format = "short");
|
|
7
|
-
indent ?? (indent = " ");
|
|
8
|
-
const isShort = format === "short";
|
|
9
|
-
for (let arg of args) {
|
|
10
|
-
const name = arg.name;
|
|
11
|
-
const argDescription = !isShort && arg.description ? ` (${arg.description})` : "";
|
|
12
|
-
if (arg.variadic) {
|
|
13
|
-
parts.push(`[...${name}${argDescription}]`);
|
|
14
|
-
} else if (arg.optional) {
|
|
15
|
-
parts.push(`[${name}${argDescription}]`);
|
|
16
|
-
} else {
|
|
17
|
-
parts.push(`<${name}${argDescription}>`);
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
for (let opt of options) {
|
|
21
|
-
if (opt.deprecated) {
|
|
22
|
-
continue;
|
|
23
|
-
}
|
|
24
|
-
const name = `--${opt.name}` + (!isShort && opt.shortcut ? `|-${opt.shortcut}` : "");
|
|
25
|
-
let valueDescription;
|
|
26
|
-
switch (opt.mode) {
|
|
27
|
-
case OptionMode.VALUE_ARRAY:
|
|
28
|
-
case OptionMode.VALUE_REQUIRED:
|
|
29
|
-
valueDescription = " <value>";
|
|
30
|
-
break;
|
|
31
|
-
case OptionMode.VALUE_OPTIONAL:
|
|
32
|
-
valueDescription = " [value]";
|
|
33
|
-
break;
|
|
34
|
-
case OptionMode.VALUE_NONE:
|
|
35
|
-
valueDescription = "";
|
|
36
|
-
break;
|
|
37
|
-
default:
|
|
38
|
-
assertNever(opt.mode);
|
|
39
|
-
}
|
|
40
|
-
let optionDescription = `${name}${valueDescription}`;
|
|
41
|
-
if (opt.mode === OptionMode.VALUE_ARRAY) {
|
|
42
|
-
optionDescription = `${optionDescription} [... ${optionDescription}]`;
|
|
43
|
-
}
|
|
44
|
-
if (!isShort && opt.description) {
|
|
45
|
-
optionDescription += ` (${opt.description})`;
|
|
46
|
-
}
|
|
47
|
-
if (!opt.required) {
|
|
48
|
-
optionDescription = `[${optionDescription}]`;
|
|
49
|
-
}
|
|
50
|
-
parts.push(optionDescription);
|
|
51
|
-
}
|
|
52
|
-
if (format === "multiline") {
|
|
53
|
-
return parts.map((it) => `${indent}${it}`).join("\n");
|
|
54
|
-
}
|
|
55
|
-
return parts.join(" ");
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
export {
|
|
59
|
-
UsageFormatter
|
|
60
|
-
};
|
|
61
|
-
//# sourceMappingURL=UsageFormatter.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"UsageFormatter.js","sources":["../../../../../packages/cli-common/src/application/UsageFormatter.ts"],"sourcesContent":["import { Argument } from './Argument'\nimport { Option, OptionMode } from './Option'\nimport { assertNever } from './assertNever'\n\nexport type UsageFormat = 'line' | 'short' | 'multiline'\nexport type UsageFormatOptions = { format?: UsageFormat; indent?: string }\n\nexport class UsageFormatter {\n\tpublic static format(args: Argument[], options: Option[], { format, indent }: UsageFormatOptions): string {\n\t\tlet parts = []\n\t\tformat ??= 'short'\n\t\tindent ??= ' '\n\t\tconst isShort = format === 'short'\n\t\tfor (let arg of args) {\n\t\t\tconst name = arg.name\n\t\t\tconst argDescription = !isShort && arg.description ? ` (${arg.description})` : ''\n\t\t\tif (arg.variadic) {\n\t\t\t\tparts.push(`[...${name}${argDescription}]`)\n\t\t\t} else if (arg.optional) {\n\t\t\t\tparts.push(`[${name}${argDescription}]`)\n\t\t\t} else {\n\t\t\t\tparts.push(`<${name}${argDescription}>`)\n\t\t\t}\n\t\t}\n\t\tfor (let opt of options) {\n\t\t\tif (opt.deprecated) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tconst name = `--${opt.name}` + (!isShort && opt.shortcut ? `|-${opt.shortcut}` : '')\n\t\t\tlet valueDescription\n\t\t\tswitch (opt.mode) {\n\t\t\t\tcase OptionMode.VALUE_ARRAY:\n\t\t\t\tcase OptionMode.VALUE_REQUIRED:\n\t\t\t\t\tvalueDescription = ' <value>'\n\t\t\t\t\tbreak\n\t\t\t\tcase OptionMode.VALUE_OPTIONAL:\n\t\t\t\t\tvalueDescription = ' [value]'\n\t\t\t\t\tbreak\n\t\t\t\tcase OptionMode.VALUE_NONE:\n\t\t\t\t\tvalueDescription = ''\n\t\t\t\t\tbreak\n\t\t\t\tdefault:\n\t\t\t\t\tassertNever(opt.mode)\n\t\t\t}\n\t\t\tlet optionDescription = `${name}${valueDescription}`\n\t\t\tif (opt.mode === OptionMode.VALUE_ARRAY) {\n\t\t\t\toptionDescription = `${optionDescription} [... ${optionDescription}]`\n\t\t\t}\n\t\t\tif (!isShort && opt.description) {\n\t\t\t\toptionDescription += ` (${opt.description})`\n\t\t\t}\n\t\t\tif (!opt.required) {\n\t\t\t\toptionDescription = `[${optionDescription}]`\n\t\t\t}\n\t\t\tparts.push(optionDescription)\n\t\t}\n\t\tif (format === 'multiline') {\n\t\t\treturn parts.map(it => `${indent}${it}`).join('\\n')\n\t\t}\n\t\treturn parts.join(' ')\n\t}\n}\n"],"names":[],"mappings":";;AAOO,MAAM,eAAe;AAAA,EAC3B,OAAc,OAAO,MAAkB,SAAmB,EAAE,QAAQ,UAAsC;AACzG,QAAI,QAAQ,CAAC;AACF,eAAA,SAAA;AACA,eAAA,SAAA;AACX,UAAM,UAAU,WAAW;AAC3B,aAAS,OAAO,MAAM;AACrB,YAAM,OAAO,IAAI;AACX,YAAA,iBAAiB,CAAC,WAAW,IAAI,cAAc,KAAK,IAAI,WAAW,MAAM;AAC/E,UAAI,IAAI,UAAU;AACjB,cAAM,KAAK,OAAO,IAAI,GAAG,cAAc,GAAG;AAAA,MAAA,WAChC,IAAI,UAAU;AACxB,cAAM,KAAK,IAAI,IAAI,GAAG,cAAc,GAAG;AAAA,MAAA,OACjC;AACN,cAAM,KAAK,IAAI,IAAI,GAAG,cAAc,GAAG;AAAA,MAAA;AAAA,IACxC;AAED,aAAS,OAAO,SAAS;AACxB,UAAI,IAAI,YAAY;AACnB;AAAA,MAAA;AAED,YAAM,OAAO,KAAK,IAAI,IAAI,MAAM,CAAC,WAAW,IAAI,WAAW,KAAK,IAAI,QAAQ,KAAK;AAC7E,UAAA;AACJ,cAAQ,IAAI,MAAM;AAAA,QACjB,KAAK,WAAW;AAAA,QAChB,KAAK,WAAW;AACI,6BAAA;AACnB;AAAA,QACD,KAAK,WAAW;AACI,6BAAA;AACnB;AAAA,QACD,KAAK,WAAW;AACI,6BAAA;AACnB;AAAA,QACD;AACC,sBAAY,IAAI,IAAI;AAAA,MAAA;AAEtB,UAAI,oBAAoB,GAAG,IAAI,GAAG,gBAAgB;AAC9C,UAAA,IAAI,SAAS,WAAW,aAAa;AACpB,4BAAA,GAAG,iBAAiB,SAAS,iBAAiB;AAAA,MAAA;AAE/D,UAAA,CAAC,WAAW,IAAI,aAAa;AACX,6BAAA,KAAK,IAAI,WAAW;AAAA,MAAA;AAEtC,UAAA,CAAC,IAAI,UAAU;AAClB,4BAAoB,IAAI,iBAAiB;AAAA,MAAA;AAE1C,YAAM,KAAK,iBAAiB;AAAA,IAAA;AAE7B,QAAI,WAAW,aAAa;AACpB,aAAA,MAAM,IAAI,CAAA,OAAM,GAAG,MAAM,GAAG,EAAE,EAAE,EAAE,KAAK,IAAI;AAAA,IAAA;AAE5C,WAAA,MAAM,KAAK,GAAG;AAAA,EAAA;AAEvB;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"assertNever.cjs","sources":["../../../../../packages/cli-common/src/application/assertNever.ts"],"sourcesContent":["export function assertNever(_: never): never {\n\tthrow new Error()\n}\n"],"names":[],"mappings":";;AAAO,SAAS,YAAY,GAAiB;AAC5C,QAAM,IAAI,MAAM;AACjB;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"assertNever.js","sources":["../../../../../packages/cli-common/src/application/assertNever.ts"],"sourcesContent":["export function assertNever(_: never): never {\n\tthrow new Error()\n}\n"],"names":[],"mappings":"AAAO,SAAS,YAAY,GAAiB;AAC5C,QAAM,IAAI,MAAM;AACjB;"}
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const node_child_process = require("node:child_process");
|
|
4
|
-
const chalk = require("chalk");
|
|
5
|
-
var __defProp = Object.defineProperty;
|
|
6
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
7
|
-
var __publicField = (obj, key, value) => __defNormalProp(obj, key + "", value);
|
|
8
|
-
class CommandRunner {
|
|
9
|
-
constructor() {
|
|
10
|
-
__publicField(this, "runCommand", (command, args, options) => {
|
|
11
|
-
const args2 = args.filter((it) => it !== void 0);
|
|
12
|
-
if (!process.env.DISABLE_COMMAND_PRINTING) {
|
|
13
|
-
console.error(chalk.gray(`$ ${command} ${args2.map((it) => `'${it.replace(/'/g, `'\\''`)}'`).join(" ")}`));
|
|
14
|
-
}
|
|
15
|
-
const child = node_child_process.spawn(command, args2, {
|
|
16
|
-
cwd: options.cwd,
|
|
17
|
-
env: { ...process.env, ...options.env || {} },
|
|
18
|
-
detached: options.detached
|
|
19
|
-
});
|
|
20
|
-
if (options.stdin) {
|
|
21
|
-
options.stdin.pipe(child.stdin);
|
|
22
|
-
}
|
|
23
|
-
let stdout = "";
|
|
24
|
-
let stderr = "";
|
|
25
|
-
child.stdout.on("data", (chunk) => {
|
|
26
|
-
stdout += chunk.toString();
|
|
27
|
-
});
|
|
28
|
-
child.stderr.on("data", (chunk) => {
|
|
29
|
-
stderr += chunk.toString();
|
|
30
|
-
});
|
|
31
|
-
if (options.stdout) {
|
|
32
|
-
child.stdout.pipe(options.stdout);
|
|
33
|
-
}
|
|
34
|
-
if (options.stderr) {
|
|
35
|
-
child.stderr.pipe(options.stderr);
|
|
36
|
-
}
|
|
37
|
-
const output = new Promise((resolve, reject) => {
|
|
38
|
-
child.on("exit", (exitCode) => {
|
|
39
|
-
if (exitCode === 0) {
|
|
40
|
-
resolve(stdout);
|
|
41
|
-
} else {
|
|
42
|
-
reject(new ChildProcessError(exitCode, stderr));
|
|
43
|
-
}
|
|
44
|
-
});
|
|
45
|
-
});
|
|
46
|
-
return { output, child };
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
class ChildProcessError extends Error {
|
|
51
|
-
constructor(exitCode, stderr) {
|
|
52
|
-
super(`Command has failed(${exitCode}): ${stderr} `);
|
|
53
|
-
this.exitCode = exitCode;
|
|
54
|
-
this.stderr = stderr;
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
exports.ChildProcessError = ChildProcessError;
|
|
58
|
-
exports.CommandRunner = CommandRunner;
|
|
59
|
-
//# sourceMappingURL=CommandRunner.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CommandRunner.cjs","sources":["../../../../../packages/cli-common/src/npm/CommandRunner.ts"],"sourcesContent":["import { ChildProcessWithoutNullStreams, spawn } from 'node:child_process'\nimport { Readable, Writable } from 'node:stream'\nimport chalk from 'chalk'\n\nexport type RunningCommand = { child: ChildProcessWithoutNullStreams; output: Promise<string> }\n\nexport class CommandRunner {\n\trunCommand = (\n\t\tcommand: string,\n\t\targs: (string | undefined)[],\n\t\toptions: {\n\t\t\tcwd: string\n\t\t\tstdin?: Readable\n\t\t\tstdout?: Writable\n\t\t\tstderr?: Writable\n\t\t\tenv?: NodeJS.ProcessEnv\n\t\t\tdetached?: boolean\n\t\t},\n\t): RunningCommand => {\n\t\tconst args2 = args.filter((it): it is string => it !== undefined)\n\t\tif (!process.env.DISABLE_COMMAND_PRINTING) {\n\t\t\tconsole.error(chalk.gray(`$ ${command} ${args2.map(it => `'${it.replace(/'/g, `'\\\\''`)}'`).join(' ')}`))\n\t\t}\n\t\tconst child = spawn(command, args2, {\n\t\t\tcwd: options.cwd,\n\t\t\tenv: { ...process.env, ...(options.env || {}) },\n\t\t\tdetached: options.detached,\n\t\t})\n\t\tif (options.stdin) {\n\t\t\toptions.stdin.pipe(child.stdin)\n\t\t}\n\n\t\tlet stdout = ''\n\t\tlet stderr = ''\n\n\t\tchild.stdout.on('data', (chunk): void => {\n\t\t\tstdout += chunk.toString()\n\t\t})\n\n\t\tchild.stderr.on('data', (chunk): void => {\n\t\t\tstderr += chunk.toString()\n\t\t})\n\t\tif (options.stdout) {\n\t\t\tchild.stdout.pipe(options.stdout)\n\t\t}\n\t\tif (options.stderr) {\n\t\t\tchild.stderr.pipe(options.stderr)\n\t\t}\n\n\t\tconst output = new Promise<string>((resolve, reject) => {\n\t\t\tchild.on('exit', (exitCode): void => {\n\t\t\t\tif (exitCode === 0) {\n\t\t\t\t\tresolve(stdout)\n\t\t\t\t} else {\n\t\t\t\t\treject(new ChildProcessError(exitCode, stderr))\n\t\t\t\t}\n\t\t\t})\n\t\t})\n\n\t\treturn { output, child }\n\t}\n}\n\n\nexport class ChildProcessError extends Error {\n\tconstructor(public readonly exitCode: number | null, public readonly stderr: string) {\n\t\tsuper(`Command has failed(${exitCode}): ${stderr} `)\n\t}\n}\n"],"names":["spawn"],"mappings":";;;;;;;AAMO,MAAM,cAAc;AAAA,EAApB,cAAA;AACO,kBAAA,MAAA,cAAA,CACZ,SACA,MACA,YAQoB;AACpB,YAAM,QAAQ,KAAK,OAAO,CAAC,OAAqB,OAAO,MAAS;AAC5D,UAAA,CAAC,QAAQ,IAAI,0BAA0B;AAClC,gBAAA,MAAM,MAAM,KAAK,KAAK,OAAO,IAAI,MAAM,IAAI,CAAM,OAAA,IAAI,GAAG,QAAQ,MAAM,OAAO,CAAC,GAAG,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC;AAAA,MAAA;AAElG,YAAA,QAAQA,mBAAAA,MAAM,SAAS,OAAO;AAAA,QACnC,KAAK,QAAQ;AAAA,QACb,KAAK,EAAE,GAAG,QAAQ,KAAK,GAAI,QAAQ,OAAO,GAAI;AAAA,QAC9C,UAAU,QAAQ;AAAA,MAAA,CAClB;AACD,UAAI,QAAQ,OAAO;AACV,gBAAA,MAAM,KAAK,MAAM,KAAK;AAAA,MAAA;AAG/B,UAAI,SAAS;AACb,UAAI,SAAS;AAEb,YAAM,OAAO,GAAG,QAAQ,CAAC,UAAgB;AACxC,kBAAU,MAAM,SAAS;AAAA,MAAA,CACzB;AAED,YAAM,OAAO,GAAG,QAAQ,CAAC,UAAgB;AACxC,kBAAU,MAAM,SAAS;AAAA,MAAA,CACzB;AACD,UAAI,QAAQ,QAAQ;AACb,cAAA,OAAO,KAAK,QAAQ,MAAM;AAAA,MAAA;AAEjC,UAAI,QAAQ,QAAQ;AACb,cAAA,OAAO,KAAK,QAAQ,MAAM;AAAA,MAAA;AAGjC,YAAM,SAAS,IAAI,QAAgB,CAAC,SAAS,WAAW;AACjD,cAAA,GAAG,QAAQ,CAAC,aAAmB;AACpC,cAAI,aAAa,GAAG;AACnB,oBAAQ,MAAM;AAAA,UAAA,OACR;AACN,mBAAO,IAAI,kBAAkB,UAAU,MAAM,CAAC;AAAA,UAAA;AAAA,QAC/C,CACA;AAAA,MAAA,CACD;AAEM,aAAA,EAAE,QAAQ,MAAM;AAAA,IAAA,CACxB;AAAA,EAAA;AACD;AAGO,MAAM,0BAA0B,MAAM;AAAA,EAC5C,YAA4B,UAAyC,QAAgB;AACpF,UAAM,sBAAsB,QAAQ,MAAM,MAAM,GAAG;AADxB,SAAA,WAAA;AAAyC,SAAA,SAAA;AAAA,EAAA;AAGtE;;;"}
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import { spawn } from "node:child_process";
|
|
2
|
-
import chalk from "chalk";
|
|
3
|
-
var __defProp = Object.defineProperty;
|
|
4
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
5
|
-
var __publicField = (obj, key, value) => __defNormalProp(obj, key + "", value);
|
|
6
|
-
class CommandRunner {
|
|
7
|
-
constructor() {
|
|
8
|
-
__publicField(this, "runCommand", (command, args, options) => {
|
|
9
|
-
const args2 = args.filter((it) => it !== void 0);
|
|
10
|
-
if (!process.env.DISABLE_COMMAND_PRINTING) {
|
|
11
|
-
console.error(chalk.gray(`$ ${command} ${args2.map((it) => `'${it.replace(/'/g, `'\\''`)}'`).join(" ")}`));
|
|
12
|
-
}
|
|
13
|
-
const child = spawn(command, args2, {
|
|
14
|
-
cwd: options.cwd,
|
|
15
|
-
env: { ...process.env, ...options.env || {} },
|
|
16
|
-
detached: options.detached
|
|
17
|
-
});
|
|
18
|
-
if (options.stdin) {
|
|
19
|
-
options.stdin.pipe(child.stdin);
|
|
20
|
-
}
|
|
21
|
-
let stdout = "";
|
|
22
|
-
let stderr = "";
|
|
23
|
-
child.stdout.on("data", (chunk) => {
|
|
24
|
-
stdout += chunk.toString();
|
|
25
|
-
});
|
|
26
|
-
child.stderr.on("data", (chunk) => {
|
|
27
|
-
stderr += chunk.toString();
|
|
28
|
-
});
|
|
29
|
-
if (options.stdout) {
|
|
30
|
-
child.stdout.pipe(options.stdout);
|
|
31
|
-
}
|
|
32
|
-
if (options.stderr) {
|
|
33
|
-
child.stderr.pipe(options.stderr);
|
|
34
|
-
}
|
|
35
|
-
const output = new Promise((resolve, reject) => {
|
|
36
|
-
child.on("exit", (exitCode) => {
|
|
37
|
-
if (exitCode === 0) {
|
|
38
|
-
resolve(stdout);
|
|
39
|
-
} else {
|
|
40
|
-
reject(new ChildProcessError(exitCode, stderr));
|
|
41
|
-
}
|
|
42
|
-
});
|
|
43
|
-
});
|
|
44
|
-
return { output, child };
|
|
45
|
-
});
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
class ChildProcessError extends Error {
|
|
49
|
-
constructor(exitCode, stderr) {
|
|
50
|
-
super(`Command has failed(${exitCode}): ${stderr} `);
|
|
51
|
-
this.exitCode = exitCode;
|
|
52
|
-
this.stderr = stderr;
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
export {
|
|
56
|
-
ChildProcessError,
|
|
57
|
-
CommandRunner
|
|
58
|
-
};
|
|
59
|
-
//# sourceMappingURL=CommandRunner.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CommandRunner.js","sources":["../../../../../packages/cli-common/src/npm/CommandRunner.ts"],"sourcesContent":["import { ChildProcessWithoutNullStreams, spawn } from 'node:child_process'\nimport { Readable, Writable } from 'node:stream'\nimport chalk from 'chalk'\n\nexport type RunningCommand = { child: ChildProcessWithoutNullStreams; output: Promise<string> }\n\nexport class CommandRunner {\n\trunCommand = (\n\t\tcommand: string,\n\t\targs: (string | undefined)[],\n\t\toptions: {\n\t\t\tcwd: string\n\t\t\tstdin?: Readable\n\t\t\tstdout?: Writable\n\t\t\tstderr?: Writable\n\t\t\tenv?: NodeJS.ProcessEnv\n\t\t\tdetached?: boolean\n\t\t},\n\t): RunningCommand => {\n\t\tconst args2 = args.filter((it): it is string => it !== undefined)\n\t\tif (!process.env.DISABLE_COMMAND_PRINTING) {\n\t\t\tconsole.error(chalk.gray(`$ ${command} ${args2.map(it => `'${it.replace(/'/g, `'\\\\''`)}'`).join(' ')}`))\n\t\t}\n\t\tconst child = spawn(command, args2, {\n\t\t\tcwd: options.cwd,\n\t\t\tenv: { ...process.env, ...(options.env || {}) },\n\t\t\tdetached: options.detached,\n\t\t})\n\t\tif (options.stdin) {\n\t\t\toptions.stdin.pipe(child.stdin)\n\t\t}\n\n\t\tlet stdout = ''\n\t\tlet stderr = ''\n\n\t\tchild.stdout.on('data', (chunk): void => {\n\t\t\tstdout += chunk.toString()\n\t\t})\n\n\t\tchild.stderr.on('data', (chunk): void => {\n\t\t\tstderr += chunk.toString()\n\t\t})\n\t\tif (options.stdout) {\n\t\t\tchild.stdout.pipe(options.stdout)\n\t\t}\n\t\tif (options.stderr) {\n\t\t\tchild.stderr.pipe(options.stderr)\n\t\t}\n\n\t\tconst output = new Promise<string>((resolve, reject) => {\n\t\t\tchild.on('exit', (exitCode): void => {\n\t\t\t\tif (exitCode === 0) {\n\t\t\t\t\tresolve(stdout)\n\t\t\t\t} else {\n\t\t\t\t\treject(new ChildProcessError(exitCode, stderr))\n\t\t\t\t}\n\t\t\t})\n\t\t})\n\n\t\treturn { output, child }\n\t}\n}\n\n\nexport class ChildProcessError extends Error {\n\tconstructor(public readonly exitCode: number | null, public readonly stderr: string) {\n\t\tsuper(`Command has failed(${exitCode}): ${stderr} `)\n\t}\n}\n"],"names":[],"mappings":";;;;;AAMO,MAAM,cAAc;AAAA,EAApB,cAAA;AACO,kBAAA,MAAA,cAAA,CACZ,SACA,MACA,YAQoB;AACpB,YAAM,QAAQ,KAAK,OAAO,CAAC,OAAqB,OAAO,MAAS;AAC5D,UAAA,CAAC,QAAQ,IAAI,0BAA0B;AAClC,gBAAA,MAAM,MAAM,KAAK,KAAK,OAAO,IAAI,MAAM,IAAI,CAAM,OAAA,IAAI,GAAG,QAAQ,MAAM,OAAO,CAAC,GAAG,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC;AAAA,MAAA;AAElG,YAAA,QAAQ,MAAM,SAAS,OAAO;AAAA,QACnC,KAAK,QAAQ;AAAA,QACb,KAAK,EAAE,GAAG,QAAQ,KAAK,GAAI,QAAQ,OAAO,GAAI;AAAA,QAC9C,UAAU,QAAQ;AAAA,MAAA,CAClB;AACD,UAAI,QAAQ,OAAO;AACV,gBAAA,MAAM,KAAK,MAAM,KAAK;AAAA,MAAA;AAG/B,UAAI,SAAS;AACb,UAAI,SAAS;AAEb,YAAM,OAAO,GAAG,QAAQ,CAAC,UAAgB;AACxC,kBAAU,MAAM,SAAS;AAAA,MAAA,CACzB;AAED,YAAM,OAAO,GAAG,QAAQ,CAAC,UAAgB;AACxC,kBAAU,MAAM,SAAS;AAAA,MAAA,CACzB;AACD,UAAI,QAAQ,QAAQ;AACb,cAAA,OAAO,KAAK,QAAQ,MAAM;AAAA,MAAA;AAEjC,UAAI,QAAQ,QAAQ;AACb,cAAA,OAAO,KAAK,QAAQ,MAAM;AAAA,MAAA;AAGjC,YAAM,SAAS,IAAI,QAAgB,CAAC,SAAS,WAAW;AACjD,cAAA,GAAG,QAAQ,CAAC,aAAmB;AACpC,cAAI,aAAa,GAAG;AACnB,oBAAQ,MAAM;AAAA,UAAA,OACR;AACN,mBAAO,IAAI,kBAAkB,UAAU,MAAM,CAAC;AAAA,UAAA;AAAA,QAC/C,CACA;AAAA,MAAA,CACD;AAEM,aAAA,EAAE,QAAQ,MAAM;AAAA,IAAA,CACxB;AAAA,EAAA;AACD;AAGO,MAAM,0BAA0B,MAAM;AAAA,EAC5C,YAA4B,UAAyC,QAAgB;AACpF,UAAM,sBAAsB,QAAQ,MAAM,MAAM,GAAG;AADxB,SAAA,WAAA;AAAyC,SAAA,SAAA;AAAA,EAAA;AAGtE;"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
class Package {
|
|
4
|
-
constructor(dir, isRoot, packageJson) {
|
|
5
|
-
this.dir = dir;
|
|
6
|
-
this.isRoot = isRoot;
|
|
7
|
-
this.packageJson = packageJson;
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
exports.Package = Package;
|
|
11
|
-
//# sourceMappingURL=Package.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Package.cjs","sources":["../../../../../packages/cli-common/src/npm/Package.ts"],"sourcesContent":["import { PackageJson } from './PackageJson'\n\nexport class Package {\n\tconstructor(\n\t\tpublic readonly dir: string,\n\t\tpublic readonly isRoot: boolean,\n\t\tpublic readonly packageJson: PackageJson,\n\t) {\n\t}\n}\n"],"names":[],"mappings":";;AAEO,MAAM,QAAQ;AAAA,EACpB,YACiB,KACA,QACA,aACf;AAHe,SAAA,MAAA;AACA,SAAA,SAAA;AACA,SAAA,cAAA;AAAA,EAAA;AAGlB;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Package.js","sources":["../../../../../packages/cli-common/src/npm/Package.ts"],"sourcesContent":["import { PackageJson } from './PackageJson'\n\nexport class Package {\n\tconstructor(\n\t\tpublic readonly dir: string,\n\t\tpublic readonly isRoot: boolean,\n\t\tpublic readonly packageJson: PackageJson,\n\t) {\n\t}\n}\n"],"names":[],"mappings":"AAEO,MAAM,QAAQ;AAAA,EACpB,YACiB,KACA,QACA,aACf;AAHe,SAAA,MAAA;AACA,SAAA,SAAA;AACA,SAAA,cAAA;AAAA,EAAA;AAGlB;"}
|