@contember/cli-common 1.4.0-rc.8 → 2.0.0-alpha.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/development/index.cjs +28 -0
- package/dist/development/index.cjs.map +1 -0
- package/dist/development/index.js +28 -0
- package/dist/development/index.js.map +1 -0
- package/dist/development/src/application/Application.cjs +82 -0
- package/dist/development/src/application/Application.cjs.map +1 -0
- package/dist/development/src/application/Application.js +82 -0
- package/dist/development/src/application/Application.js.map +1 -0
- package/dist/development/src/application/Argument.cjs +25 -0
- package/dist/development/src/application/Argument.cjs.map +1 -0
- package/dist/development/src/application/Argument.js +25 -0
- package/dist/development/src/application/Argument.js.map +1 -0
- package/dist/development/src/application/Command.cjs +28 -0
- package/dist/development/src/application/Command.cjs.map +1 -0
- package/dist/development/src/application/Command.js +28 -0
- package/dist/development/src/application/Command.js.map +1 -0
- package/dist/development/src/application/CommandConfiguration.cjs +44 -0
- package/dist/development/src/application/CommandConfiguration.cjs.map +1 -0
- package/dist/development/src/application/CommandConfiguration.js +44 -0
- package/dist/development/src/application/CommandConfiguration.js.map +1 -0
- package/dist/development/src/application/CommandManager.cjs +37 -0
- package/dist/development/src/application/CommandManager.cjs.map +1 -0
- package/dist/development/src/application/CommandManager.js +37 -0
- package/dist/development/src/application/CommandManager.js.map +1 -0
- package/dist/development/src/application/Input.cjs +16 -0
- package/dist/development/src/application/Input.cjs.map +1 -0
- package/dist/development/src/application/Input.js +16 -0
- package/dist/development/src/application/Input.js.map +1 -0
- package/dist/development/src/application/InputParser.cjs +117 -0
- package/dist/development/src/application/InputParser.cjs.map +1 -0
- package/dist/development/src/application/InputParser.js +117 -0
- package/dist/development/src/application/InputParser.js.map +1 -0
- package/dist/development/src/application/Option.cjs +49 -0
- package/dist/development/src/application/Option.cjs.map +1 -0
- package/dist/development/src/application/Option.js +49 -0
- package/dist/development/src/application/Option.js.map +1 -0
- package/dist/development/src/application/UsageFormatter.cjs +61 -0
- package/dist/development/src/application/UsageFormatter.cjs.map +1 -0
- package/dist/development/src/application/UsageFormatter.js +61 -0
- package/dist/development/src/application/UsageFormatter.js.map +1 -0
- package/dist/development/src/application/assertNever.cjs +7 -0
- package/dist/development/src/application/assertNever.cjs.map +1 -0
- package/dist/development/src/application/assertNever.js +7 -0
- package/dist/development/src/application/assertNever.js.map +1 -0
- package/dist/development/src/npm/CommandRunner.cjs +59 -0
- package/dist/development/src/npm/CommandRunner.cjs.map +1 -0
- package/dist/development/src/npm/CommandRunner.js +59 -0
- package/dist/development/src/npm/CommandRunner.js.map +1 -0
- package/dist/development/src/npm/Package.cjs +11 -0
- package/dist/development/src/npm/Package.cjs.map +1 -0
- package/dist/development/src/npm/Package.js +11 -0
- package/dist/development/src/npm/Package.js.map +1 -0
- package/dist/development/src/npm/PackageWorkspace.cjs +79 -0
- package/dist/development/src/npm/PackageWorkspace.cjs.map +1 -0
- package/dist/development/src/npm/PackageWorkspace.js +79 -0
- package/dist/development/src/npm/PackageWorkspace.js.map +1 -0
- package/dist/development/src/npm/PackageWorkspaceResolver.cjs +48 -0
- package/dist/development/src/npm/PackageWorkspaceResolver.cjs.map +1 -0
- package/dist/development/src/npm/PackageWorkspaceResolver.js +48 -0
- package/dist/development/src/npm/PackageWorkspaceResolver.js.map +1 -0
- package/dist/development/src/npm/packageManagers/Npm.cjs +34 -0
- package/dist/development/src/npm/packageManagers/Npm.cjs.map +1 -0
- package/dist/development/src/npm/packageManagers/Npm.js +34 -0
- package/dist/development/src/npm/packageManagers/Npm.js.map +1 -0
- package/dist/development/src/npm/packageManagers/PackageManagerHelpers.cjs +32 -0
- package/dist/development/src/npm/packageManagers/PackageManagerHelpers.cjs.map +1 -0
- package/dist/development/src/npm/packageManagers/PackageManagerHelpers.js +32 -0
- package/dist/development/src/npm/packageManagers/PackageManagerHelpers.js.map +1 -0
- package/dist/development/src/npm/packageManagers/Pnpm.cjs +39 -0
- package/dist/development/src/npm/packageManagers/Pnpm.cjs.map +1 -0
- package/dist/development/src/npm/packageManagers/Pnpm.js +39 -0
- package/dist/development/src/npm/packageManagers/Pnpm.js.map +1 -0
- package/dist/development/src/npm/packageManagers/Yarn.cjs +34 -0
- package/dist/development/src/npm/packageManagers/Yarn.cjs.map +1 -0
- package/dist/development/src/npm/packageManagers/Yarn.js +34 -0
- package/dist/development/src/npm/packageManagers/Yarn.js.map +1 -0
- package/dist/development/src/npm/packageManagers/YarnClassic.cjs +35 -0
- package/dist/development/src/npm/packageManagers/YarnClassic.cjs.map +1 -0
- package/dist/development/src/npm/packageManagers/YarnClassic.js +35 -0
- package/dist/development/src/npm/packageManagers/YarnClassic.js.map +1 -0
- package/dist/production/index.cjs +28 -0
- package/dist/production/index.cjs.map +1 -0
- package/dist/production/index.js +28 -0
- package/dist/production/index.js.map +1 -0
- package/dist/production/src/application/Application.cjs +82 -0
- package/dist/production/src/application/Application.cjs.map +1 -0
- package/dist/production/src/application/Application.js +82 -0
- package/dist/production/src/application/Application.js.map +1 -0
- package/dist/production/src/application/Argument.cjs +25 -0
- package/dist/production/src/application/Argument.cjs.map +1 -0
- package/dist/production/src/application/Argument.js +25 -0
- package/dist/production/src/application/Argument.js.map +1 -0
- package/dist/production/src/application/Command.cjs +28 -0
- package/dist/production/src/application/Command.cjs.map +1 -0
- package/dist/production/src/application/Command.js +28 -0
- package/dist/production/src/application/Command.js.map +1 -0
- package/dist/production/src/application/CommandConfiguration.cjs +44 -0
- package/dist/production/src/application/CommandConfiguration.cjs.map +1 -0
- package/dist/production/src/application/CommandConfiguration.js +44 -0
- package/dist/production/src/application/CommandConfiguration.js.map +1 -0
- package/dist/production/src/application/CommandManager.cjs +37 -0
- package/dist/production/src/application/CommandManager.cjs.map +1 -0
- package/dist/production/src/application/CommandManager.js +37 -0
- package/dist/production/src/application/CommandManager.js.map +1 -0
- package/dist/production/src/application/Input.cjs +16 -0
- package/dist/production/src/application/Input.cjs.map +1 -0
- package/dist/production/src/application/Input.js +16 -0
- package/dist/production/src/application/Input.js.map +1 -0
- package/dist/production/src/application/InputParser.cjs +117 -0
- package/dist/production/src/application/InputParser.cjs.map +1 -0
- package/dist/production/src/application/InputParser.js +117 -0
- package/dist/production/src/application/InputParser.js.map +1 -0
- package/dist/production/src/application/Option.cjs +49 -0
- package/dist/production/src/application/Option.cjs.map +1 -0
- package/dist/production/src/application/Option.js +49 -0
- package/dist/production/src/application/Option.js.map +1 -0
- package/dist/production/src/application/UsageFormatter.cjs +61 -0
- package/dist/production/src/application/UsageFormatter.cjs.map +1 -0
- package/dist/production/src/application/UsageFormatter.js +61 -0
- package/dist/production/src/application/UsageFormatter.js.map +1 -0
- package/dist/production/src/application/assertNever.cjs +7 -0
- package/dist/production/src/application/assertNever.cjs.map +1 -0
- package/dist/production/src/application/assertNever.js +7 -0
- package/dist/production/src/application/assertNever.js.map +1 -0
- package/dist/production/src/npm/CommandRunner.cjs +59 -0
- package/dist/production/src/npm/CommandRunner.cjs.map +1 -0
- package/dist/production/src/npm/CommandRunner.js +59 -0
- package/dist/production/src/npm/CommandRunner.js.map +1 -0
- package/dist/production/src/npm/Package.cjs +11 -0
- package/dist/production/src/npm/Package.cjs.map +1 -0
- package/dist/production/src/npm/Package.js +11 -0
- package/dist/production/src/npm/Package.js.map +1 -0
- package/dist/production/src/npm/PackageWorkspace.cjs +79 -0
- package/dist/production/src/npm/PackageWorkspace.cjs.map +1 -0
- package/dist/production/src/npm/PackageWorkspace.js +79 -0
- package/dist/production/src/npm/PackageWorkspace.js.map +1 -0
- package/dist/production/src/npm/PackageWorkspaceResolver.cjs +48 -0
- package/dist/production/src/npm/PackageWorkspaceResolver.cjs.map +1 -0
- package/dist/production/src/npm/PackageWorkspaceResolver.js +48 -0
- package/dist/production/src/npm/PackageWorkspaceResolver.js.map +1 -0
- package/dist/production/src/npm/packageManagers/Npm.cjs +34 -0
- package/dist/production/src/npm/packageManagers/Npm.cjs.map +1 -0
- package/dist/production/src/npm/packageManagers/Npm.js +34 -0
- package/dist/production/src/npm/packageManagers/Npm.js.map +1 -0
- package/dist/production/src/npm/packageManagers/PackageManagerHelpers.cjs +32 -0
- package/dist/production/src/npm/packageManagers/PackageManagerHelpers.cjs.map +1 -0
- package/dist/production/src/npm/packageManagers/PackageManagerHelpers.js +32 -0
- package/dist/production/src/npm/packageManagers/PackageManagerHelpers.js.map +1 -0
- package/dist/production/src/npm/packageManagers/Pnpm.cjs +39 -0
- package/dist/production/src/npm/packageManagers/Pnpm.cjs.map +1 -0
- package/dist/production/src/npm/packageManagers/Pnpm.js +39 -0
- package/dist/production/src/npm/packageManagers/Pnpm.js.map +1 -0
- package/dist/production/src/npm/packageManagers/Yarn.cjs +34 -0
- package/dist/production/src/npm/packageManagers/Yarn.cjs.map +1 -0
- package/dist/production/src/npm/packageManagers/Yarn.js +34 -0
- package/dist/production/src/npm/packageManagers/Yarn.js.map +1 -0
- package/dist/production/src/npm/packageManagers/YarnClassic.cjs +35 -0
- package/dist/production/src/npm/packageManagers/YarnClassic.cjs.map +1 -0
- package/dist/production/src/npm/packageManagers/YarnClassic.js +35 -0
- package/dist/production/src/npm/packageManagers/YarnClassic.js.map +1 -0
- package/dist/{src → types}/application/index.d.ts +0 -1
- package/dist/{src → types}/application/index.d.ts.map +1 -1
- package/dist/types/index.d.ts +4 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/{src/utils/commands.d.ts → types/npm/CommandRunner.d.ts} +11 -10
- package/dist/types/npm/CommandRunner.d.ts.map +1 -0
- package/dist/types/npm/FileSystem.d.ts +7 -0
- package/dist/types/npm/FileSystem.d.ts.map +1 -0
- package/dist/{src → types}/npm/PackageWorkspace.d.ts +3 -10
- package/dist/types/npm/PackageWorkspace.d.ts.map +1 -0
- package/dist/types/npm/PackageWorkspaceResolver.d.ts +13 -0
- package/dist/types/npm/PackageWorkspaceResolver.d.ts.map +1 -0
- package/dist/types/npm/index.d.ts +8 -0
- package/dist/types/npm/index.d.ts.map +1 -0
- package/dist/{src → types}/npm/packageManagers/Npm.d.ts +5 -3
- package/dist/types/npm/packageManagers/Npm.d.ts.map +1 -0
- package/dist/{src → types}/npm/packageManagers/PackageManagerHelpers.d.ts +3 -3
- package/dist/types/npm/packageManagers/PackageManagerHelpers.d.ts.map +1 -0
- package/dist/{src → types}/npm/packageManagers/Pnpm.d.ts +5 -3
- package/dist/types/npm/packageManagers/Pnpm.d.ts.map +1 -0
- package/dist/{src → types}/npm/packageManagers/Yarn.d.ts +5 -3
- package/dist/types/npm/packageManagers/Yarn.d.ts.map +1 -0
- package/dist/{src → types}/npm/packageManagers/YarnClassic.d.ts +5 -3
- package/dist/types/npm/packageManagers/YarnClassic.d.ts.map +1 -0
- package/dist/types/tsconfig.tsbuildinfo +1 -0
- package/package.json +22 -12
- package/src/application/index.ts +0 -1
- package/src/index.ts +2 -2
- package/src/npm/CommandRunner.ts +69 -0
- package/src/npm/FileSystem.ts +7 -0
- package/src/npm/PackageWorkspace.ts +4 -48
- package/src/npm/PackageWorkspaceResolver.ts +60 -0
- package/src/npm/index.ts +6 -0
- package/src/npm/packageManagers/Npm.ts +7 -6
- package/src/npm/packageManagers/PackageManagerHelpers.ts +10 -6
- package/src/npm/packageManagers/Pnpm.ts +11 -7
- package/src/npm/packageManagers/Yarn.ts +7 -6
- package/src/npm/packageManagers/YarnClassic.ts +7 -6
- package/src/tsconfig.json +1 -1
- package/tsconfig.settings.json +1 -1
- package/dist/src/application/Application.js +0 -89
- package/dist/src/application/Application.js.map +0 -1
- package/dist/src/application/Argument.js +0 -26
- package/dist/src/application/Argument.js.map +0 -1
- package/dist/src/application/Command.js +0 -23
- package/dist/src/application/Command.js.map +0 -1
- package/dist/src/application/CommandConfiguration.js +0 -53
- package/dist/src/application/CommandConfiguration.js.map +0 -1
- package/dist/src/application/CommandManager.js +0 -40
- package/dist/src/application/CommandManager.js.map +0 -1
- package/dist/src/application/Input.js +0 -17
- package/dist/src/application/Input.js.map +0 -1
- package/dist/src/application/InputParser.js +0 -127
- package/dist/src/application/InputParser.js.map +0 -1
- package/dist/src/application/Option.js +0 -49
- package/dist/src/application/Option.js.map +0 -1
- package/dist/src/application/UsageFormatter.js +0 -64
- package/dist/src/application/UsageFormatter.js.map +0 -1
- package/dist/src/application/assertNever.js +0 -8
- package/dist/src/application/assertNever.js.map +0 -1
- package/dist/src/application/env.d.ts +0 -8
- package/dist/src/application/env.d.ts.map +0 -1
- package/dist/src/application/env.js +0 -14
- package/dist/src/application/env.js.map +0 -1
- package/dist/src/application/index.js +0 -28
- package/dist/src/application/index.js.map +0 -1
- package/dist/src/index.d.ts +0 -4
- package/dist/src/index.d.ts.map +0 -1
- package/dist/src/index.js +0 -26
- package/dist/src/index.js.map +0 -1
- package/dist/src/npm/FsManager.d.ts +0 -9
- package/dist/src/npm/FsManager.d.ts.map +0 -1
- package/dist/src/npm/FsManager.js +0 -41
- package/dist/src/npm/FsManager.js.map +0 -1
- package/dist/src/npm/Package.js +0 -12
- package/dist/src/npm/Package.js.map +0 -1
- package/dist/src/npm/PackageJson.js +0 -3
- package/dist/src/npm/PackageJson.js.map +0 -1
- package/dist/src/npm/PackageWorkspace.d.ts.map +0 -1
- package/dist/src/npm/PackageWorkspace.js +0 -124
- package/dist/src/npm/PackageWorkspace.js.map +0 -1
- package/dist/src/npm/index.d.ts +0 -2
- package/dist/src/npm/index.d.ts.map +0 -1
- package/dist/src/npm/index.js +0 -18
- package/dist/src/npm/index.js.map +0 -1
- package/dist/src/npm/packageManagers/Npm.d.ts.map +0 -1
- package/dist/src/npm/packageManagers/Npm.js +0 -35
- package/dist/src/npm/packageManagers/Npm.js.map +0 -1
- package/dist/src/npm/packageManagers/PackageManager.js +0 -3
- package/dist/src/npm/packageManagers/PackageManager.js.map +0 -1
- package/dist/src/npm/packageManagers/PackageManagerHelpers.d.ts.map +0 -1
- package/dist/src/npm/packageManagers/PackageManagerHelpers.js +0 -30
- package/dist/src/npm/packageManagers/PackageManagerHelpers.js.map +0 -1
- package/dist/src/npm/packageManagers/Pnpm.d.ts.map +0 -1
- package/dist/src/npm/packageManagers/Pnpm.js +0 -37
- package/dist/src/npm/packageManagers/Pnpm.js.map +0 -1
- package/dist/src/npm/packageManagers/Yarn.d.ts.map +0 -1
- package/dist/src/npm/packageManagers/Yarn.js +0 -36
- package/dist/src/npm/packageManagers/Yarn.js.map +0 -1
- package/dist/src/npm/packageManagers/YarnClassic.d.ts.map +0 -1
- package/dist/src/npm/packageManagers/YarnClassic.js +0 -36
- package/dist/src/npm/packageManagers/YarnClassic.js.map +0 -1
- package/dist/src/pathUtils.d.ts +0 -3
- package/dist/src/pathUtils.d.ts.map +0 -1
- package/dist/src/pathUtils.js +0 -7
- package/dist/src/pathUtils.js.map +0 -1
- package/dist/src/tsconfig.tsbuildinfo +0 -1
- package/dist/src/utils/PathMapping.d.ts +0 -5
- package/dist/src/utils/PathMapping.d.ts.map +0 -1
- package/dist/src/utils/PathMapping.js +0 -35
- package/dist/src/utils/PathMapping.js.map +0 -1
- package/dist/src/utils/Project.d.ts +0 -12
- package/dist/src/utils/Project.d.ts.map +0 -1
- package/dist/src/utils/Project.js +0 -51
- package/dist/src/utils/Project.js.map +0 -1
- package/dist/src/utils/ProjectManager.d.ts +0 -16
- package/dist/src/utils/ProjectManager.d.ts.map +0 -1
- package/dist/src/utils/ProjectManager.js +0 -71
- package/dist/src/utils/ProjectManager.js.map +0 -1
- package/dist/src/utils/Workspace.d.ts +0 -24
- package/dist/src/utils/Workspace.d.ts.map +0 -1
- package/dist/src/utils/Workspace.js +0 -59
- package/dist/src/utils/Workspace.js.map +0 -1
- package/dist/src/utils/commands.d.ts.map +0 -1
- package/dist/src/utils/commands.js +0 -57
- package/dist/src/utils/commands.js.map +0 -1
- package/dist/src/utils/fs.d.ts +0 -5
- package/dist/src/utils/fs.d.ts.map +0 -1
- package/dist/src/utils/fs.js +0 -73
- package/dist/src/utils/fs.js.map +0 -1
- package/dist/src/utils/index.d.ts +0 -6
- package/dist/src/utils/index.d.ts.map +0 -1
- package/dist/src/utils/index.js +0 -22
- package/dist/src/utils/index.js.map +0 -1
- package/dist/src/utils/json.d.ts +0 -7
- package/dist/src/utils/json.d.ts.map +0 -1
- package/dist/src/utils/json.js +0 -3
- package/dist/src/utils/json.js.map +0 -1
- package/dist/src/utils/tuple.d.ts +0 -2
- package/dist/src/utils/tuple.d.ts.map +0 -1
- package/dist/src/utils/tuple.js +0 -6
- package/dist/src/utils/tuple.js.map +0 -1
- package/dist/src/utils/version.d.ts +0 -2
- package/dist/src/utils/version.d.ts.map +0 -1
- package/dist/src/utils/version.js +0 -11
- package/dist/src/utils/version.js.map +0 -1
- package/dist/src/utils/yaml.d.ts +0 -3
- package/dist/src/utils/yaml.d.ts.map +0 -1
- package/dist/src/utils/yaml.js +0 -14
- package/dist/src/utils/yaml.js.map +0 -1
- package/src/application/.eslintrc.js +0 -5
- package/src/application/env.ts +0 -14
- package/src/npm/FsManager.ts +0 -38
- package/src/pathUtils.ts +0 -4
- package/src/utils/PathMapping.ts +0 -38
- package/src/utils/Project.ts +0 -28
- package/src/utils/ProjectManager.ts +0 -76
- package/src/utils/Workspace.ts +0 -72
- package/src/utils/commands.ts +0 -65
- package/src/utils/fs.ts +0 -43
- package/src/utils/index.ts +0 -5
- package/src/utils/json.ts +0 -4
- package/src/utils/tuple.ts +0 -1
- package/src/utils/version.ts +0 -7
- package/src/utils/yaml.ts +0 -9
- /package/dist/{src → types}/application/Application.d.ts +0 -0
- /package/dist/{src → types}/application/Application.d.ts.map +0 -0
- /package/dist/{src → types}/application/Argument.d.ts +0 -0
- /package/dist/{src → types}/application/Argument.d.ts.map +0 -0
- /package/dist/{src → types}/application/Command.d.ts +0 -0
- /package/dist/{src → types}/application/Command.d.ts.map +0 -0
- /package/dist/{src → types}/application/CommandConfiguration.d.ts +0 -0
- /package/dist/{src → types}/application/CommandConfiguration.d.ts.map +0 -0
- /package/dist/{src → types}/application/CommandManager.d.ts +0 -0
- /package/dist/{src → types}/application/CommandManager.d.ts.map +0 -0
- /package/dist/{src → types}/application/Input.d.ts +0 -0
- /package/dist/{src → types}/application/Input.d.ts.map +0 -0
- /package/dist/{src → types}/application/InputParser.d.ts +0 -0
- /package/dist/{src → types}/application/InputParser.d.ts.map +0 -0
- /package/dist/{src → types}/application/Option.d.ts +0 -0
- /package/dist/{src → types}/application/Option.d.ts.map +0 -0
- /package/dist/{src → types}/application/UsageFormatter.d.ts +0 -0
- /package/dist/{src → types}/application/UsageFormatter.d.ts.map +0 -0
- /package/dist/{src → types}/application/assertNever.d.ts +0 -0
- /package/dist/{src → types}/application/assertNever.d.ts.map +0 -0
- /package/dist/{src → types}/npm/Package.d.ts +0 -0
- /package/dist/{src → types}/npm/Package.d.ts.map +0 -0
- /package/dist/{src → types}/npm/PackageJson.d.ts +0 -0
- /package/dist/{src → types}/npm/PackageJson.d.ts.map +0 -0
- /package/dist/{src → types}/npm/packageManagers/PackageManager.d.ts +0 -0
- /package/dist/{src → types}/npm/packageManagers/PackageManager.d.ts.map +0 -0
- /package/src/{.eslintrc.js → .eslintrc.cjs} +0 -0
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { join } from "node:path";
|
|
2
|
+
import { PackageManagerHelpers } from "./PackageManagerHelpers.js";
|
|
3
|
+
class Pnpm {
|
|
4
|
+
constructor(fs, commandRunner) {
|
|
5
|
+
this.fs = fs;
|
|
6
|
+
this.commandRunner = commandRunner;
|
|
7
|
+
}
|
|
8
|
+
async install({ pckg, dependencies, isDev }) {
|
|
9
|
+
const { output } = this.commandRunner.runCommand("pnpm", [
|
|
10
|
+
"add",
|
|
11
|
+
isDev ? "--save-dev" : "--save",
|
|
12
|
+
pckg.isRoot ? "--ignore-workspace-root-check" : void 0,
|
|
13
|
+
...PackageManagerHelpers.formatPackagesToInstall(dependencies)
|
|
14
|
+
], {
|
|
15
|
+
cwd: pckg.dir,
|
|
16
|
+
stderr: process.stderr,
|
|
17
|
+
stdout: process.stdout
|
|
18
|
+
});
|
|
19
|
+
await output;
|
|
20
|
+
}
|
|
21
|
+
async isActive({ dir, packageJson }) {
|
|
22
|
+
return await this.fs.pathExists(join(dir, "pnpm-lock.yaml"));
|
|
23
|
+
}
|
|
24
|
+
async readWorkspacePackages({ dir, packageJson }) {
|
|
25
|
+
let pnpmWorkspaces;
|
|
26
|
+
if (await this.fs.pathExists(join(dir, "pnpm-workspace.yaml"))) {
|
|
27
|
+
pnpmWorkspaces = JSON.parse(await this.fs.readFile(join(dir, "pnpm-workspace.yaml"), "utf-8"));
|
|
28
|
+
}
|
|
29
|
+
return await PackageManagerHelpers.readWorkspacePackages({
|
|
30
|
+
fs: this.fs,
|
|
31
|
+
dir,
|
|
32
|
+
workspaces: pnpmWorkspaces.packages
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
export {
|
|
37
|
+
Pnpm
|
|
38
|
+
};
|
|
39
|
+
//# sourceMappingURL=Pnpm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Pnpm.js","sources":["../../../../../../packages/cli-common/src/npm/packageManagers/Pnpm.ts"],"sourcesContent":["import { FileSystem } from '../FileSystem'\nimport { join } from 'node:path'\n\nimport { PackageJson } from '../PackageJson'\nimport { PackageManager } from './PackageManager'\nimport { Package } from '../Package'\nimport { PackageManagerHelpers } from './PackageManagerHelpers'\nimport { CommandRunner } from '../CommandRunner'\n\nexport class Pnpm implements PackageManager {\n\tconstructor(\n\t\tprivate readonly fs: FileSystem,\n\t\tprivate readonly commandRunner: CommandRunner,\n\t) {\n\t}\n\n\tasync install({ pckg, dependencies, isDev }: { pckg: Package; isDev: boolean; dependencies: Record<string, string> }): Promise<void> {\n\t\tconst { output } = this.commandRunner.runCommand('pnpm', [\n\t\t\t'add',\n\t\t\tisDev ? '--save-dev' : '--save',\n\t\t\tpckg.isRoot ? '--ignore-workspace-root-check' : undefined,\n\t\t\t...PackageManagerHelpers.formatPackagesToInstall(dependencies),\n\t\t], {\n\t\t\tcwd: pckg.dir,\n\t\t\tstderr: process.stderr,\n\t\t\tstdout: process.stdout,\n\t\t})\n\t\tawait output\n\t}\n\n\tasync isActive({ dir, packageJson }: { dir: string; packageJson: PackageJson }): Promise<boolean> {\n\t\treturn await this.fs.pathExists(join(dir, 'pnpm-lock.yaml'))\n\t}\n\n\tasync readWorkspacePackages({ dir, packageJson }: { dir: string; packageJson: PackageJson }): Promise<Package[]> {\n\t\tlet pnpmWorkspaces: any\n\t\tif (await this.fs.pathExists(join(dir, 'pnpm-workspace.yaml'))) {\n\t\t\tpnpmWorkspaces = JSON.parse(await this.fs.readFile(join(dir, 'pnpm-workspace.yaml'), 'utf-8'))\n\t\t}\n\t\treturn await PackageManagerHelpers.readWorkspacePackages({\n\t\t\tfs: this.fs,\n\t\t\tdir,\n\t\t\tworkspaces: pnpmWorkspaces.packages,\n\t\t})\n\t}\n}\n"],"names":[],"mappings":";;AASO,MAAM,KAA+B;AAAA,EAC3C,YACkB,IACA,eAChB;AAFgB,SAAA,KAAA;AACA,SAAA,gBAAA;AAAA,EAElB;AAAA,EAEA,MAAM,QAAQ,EAAE,MAAM,cAAc,SAAiG;AACpI,UAAM,EAAE,OAAO,IAAI,KAAK,cAAc,WAAW,QAAQ;AAAA,MACxD;AAAA,MACA,QAAQ,eAAe;AAAA,MACvB,KAAK,SAAS,kCAAkC;AAAA,MAChD,GAAG,sBAAsB,wBAAwB,YAAY;AAAA,IAAA,GAC3D;AAAA,MACF,KAAK,KAAK;AAAA,MACV,QAAQ,QAAQ;AAAA,MAChB,QAAQ,QAAQ;AAAA,IAAA,CAChB;AACK,UAAA;AAAA,EACP;AAAA,EAEA,MAAM,SAAS,EAAE,KAAK,eAA4E;AACjG,WAAO,MAAM,KAAK,GAAG,WAAW,KAAK,KAAK,gBAAgB,CAAC;AAAA,EAC5D;AAAA,EAEA,MAAM,sBAAsB,EAAE,KAAK,eAA8E;AAC5G,QAAA;AACA,QAAA,MAAM,KAAK,GAAG,WAAW,KAAK,KAAK,qBAAqB,CAAC,GAAG;AAC9C,uBAAA,KAAK,MAAM,MAAM,KAAK,GAAG,SAAS,KAAK,KAAK,qBAAqB,GAAG,OAAO,CAAC;AAAA,IAC9F;AACO,WAAA,MAAM,sBAAsB,sBAAsB;AAAA,MACxD,IAAI,KAAK;AAAA,MACT;AAAA,MACA,YAAY,eAAe;AAAA,IAAA,CAC3B;AAAA,EACF;AACD;"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const node_path = require("node:path");
|
|
4
|
+
const PackageManagerHelpers = require("./PackageManagerHelpers.cjs");
|
|
5
|
+
class Yarn {
|
|
6
|
+
constructor(fs, commandRunner) {
|
|
7
|
+
this.fs = fs;
|
|
8
|
+
this.commandRunner = commandRunner;
|
|
9
|
+
}
|
|
10
|
+
async install({ pckg, dependencies, isDev }) {
|
|
11
|
+
const { output } = this.commandRunner.runCommand("yarn", [
|
|
12
|
+
"add",
|
|
13
|
+
isDev ? "--dev" : void 0,
|
|
14
|
+
...PackageManagerHelpers.PackageManagerHelpers.formatPackagesToInstall(dependencies)
|
|
15
|
+
], {
|
|
16
|
+
cwd: pckg.dir,
|
|
17
|
+
stderr: process.stderr,
|
|
18
|
+
stdout: process.stdout
|
|
19
|
+
});
|
|
20
|
+
await output;
|
|
21
|
+
}
|
|
22
|
+
async isActive({ dir, packageJson }) {
|
|
23
|
+
return await this.fs.pathExists(node_path.join(dir, "yarn.lock")) && (!packageJson.packageManager || packageJson.packageManager.startsWith("yarn@4") || packageJson.packageManager.startsWith("yarn@3") || packageJson.packageManager.startsWith("yarn@2"));
|
|
24
|
+
}
|
|
25
|
+
async readWorkspacePackages({ dir, packageJson }) {
|
|
26
|
+
return await PackageManagerHelpers.PackageManagerHelpers.readWorkspacePackages({
|
|
27
|
+
fs: this.fs,
|
|
28
|
+
dir,
|
|
29
|
+
workspaces: PackageManagerHelpers.PackageManagerHelpers.getWorkspacesFromPackageJson({ packageJson })
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
exports.Yarn = Yarn;
|
|
34
|
+
//# sourceMappingURL=Yarn.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Yarn.cjs","sources":["../../../../../../packages/cli-common/src/npm/packageManagers/Yarn.ts"],"sourcesContent":["import { PackageManager } from './PackageManager'\nimport { FileSystem } from '../FileSystem'\nimport { Package } from '../Package'\nimport { PackageJson } from '../PackageJson'\nimport { join } from 'node:path'\nimport { PackageManagerHelpers } from './PackageManagerHelpers'\nimport { CommandRunner } from '../CommandRunner'\n\nexport class Yarn implements PackageManager {\n\tconstructor(\n\t\tprivate readonly fs: FileSystem,\n\t\tprivate readonly commandRunner: CommandRunner,\n\t) {\n\t}\n\n\tasync install({ pckg, dependencies, isDev }: { pckg: Package; isDev: boolean; dependencies: Record<string, string> }): Promise<void> {\n\t\tconst { output } = this.commandRunner.runCommand('yarn', [\n\t\t\t'add',\n\t\t\tisDev ? '--dev' : undefined,\n\t\t\t...PackageManagerHelpers.formatPackagesToInstall(dependencies),\n\t\t], {\n\t\t\tcwd: pckg.dir,\n\t\t\tstderr: process.stderr,\n\t\t\tstdout: process.stdout,\n\t\t})\n\t\tawait output\n\t}\n\n\tasync isActive({ dir, packageJson }: { dir: string; packageJson: PackageJson }): Promise<boolean> {\n\t\treturn await this.fs.pathExists(join(dir, 'yarn.lock'))\n\t\t\t&& (!packageJson.packageManager || (packageJson.packageManager as string).startsWith('yarn@4') || (packageJson.packageManager as string).startsWith('yarn@3') || (packageJson.packageManager as string).startsWith('yarn@2'))\n\t}\n\n\tasync readWorkspacePackages({ dir, packageJson }: { dir: string; packageJson: PackageJson }): Promise<Package[]> {\n\t\treturn await PackageManagerHelpers.readWorkspacePackages({\n\t\t\tfs: this.fs,\n\t\t\tdir,\n\t\t\tworkspaces: PackageManagerHelpers.getWorkspacesFromPackageJson({ packageJson }),\n\t\t})\n\t}\n}\n"],"names":["PackageManagerHelpers","join"],"mappings":";;;;AAQO,MAAM,KAA+B;AAAA,EAC3C,YACkB,IACA,eAChB;AAFgB,SAAA,KAAA;AACA,SAAA,gBAAA;AAAA,EAElB;AAAA,EAEA,MAAM,QAAQ,EAAE,MAAM,cAAc,SAAiG;AACpI,UAAM,EAAE,OAAO,IAAI,KAAK,cAAc,WAAW,QAAQ;AAAA,MACxD;AAAA,MACA,QAAQ,UAAU;AAAA,MAClB,GAAGA,sBAAsB,sBAAA,wBAAwB,YAAY;AAAA,IAAA,GAC3D;AAAA,MACF,KAAK,KAAK;AAAA,MACV,QAAQ,QAAQ;AAAA,MAChB,QAAQ,QAAQ;AAAA,IAAA,CAChB;AACK,UAAA;AAAA,EACP;AAAA,EAEA,MAAM,SAAS,EAAE,KAAK,eAA4E;AAC1F,WAAA,MAAM,KAAK,GAAG,WAAWC,UAAAA,KAAK,KAAK,WAAW,CAAC,MACjD,CAAC,YAAY,kBAAmB,YAAY,eAA0B,WAAW,QAAQ,KAAM,YAAY,eAA0B,WAAW,QAAQ,KAAM,YAAY,eAA0B,WAAW,QAAQ;AAAA,EAC7N;AAAA,EAEA,MAAM,sBAAsB,EAAE,KAAK,eAA8E;AACzG,WAAA,MAAMD,4CAAsB,sBAAsB;AAAA,MACxD,IAAI,KAAK;AAAA,MACT;AAAA,MACA,YAAYA,sBAAA,sBAAsB,6BAA6B,EAAE,aAAa;AAAA,IAAA,CAC9E;AAAA,EACF;AACD;;"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { join } from "node:path";
|
|
2
|
+
import { PackageManagerHelpers } from "./PackageManagerHelpers.js";
|
|
3
|
+
class Yarn {
|
|
4
|
+
constructor(fs, commandRunner) {
|
|
5
|
+
this.fs = fs;
|
|
6
|
+
this.commandRunner = commandRunner;
|
|
7
|
+
}
|
|
8
|
+
async install({ pckg, dependencies, isDev }) {
|
|
9
|
+
const { output } = this.commandRunner.runCommand("yarn", [
|
|
10
|
+
"add",
|
|
11
|
+
isDev ? "--dev" : void 0,
|
|
12
|
+
...PackageManagerHelpers.formatPackagesToInstall(dependencies)
|
|
13
|
+
], {
|
|
14
|
+
cwd: pckg.dir,
|
|
15
|
+
stderr: process.stderr,
|
|
16
|
+
stdout: process.stdout
|
|
17
|
+
});
|
|
18
|
+
await output;
|
|
19
|
+
}
|
|
20
|
+
async isActive({ dir, packageJson }) {
|
|
21
|
+
return await this.fs.pathExists(join(dir, "yarn.lock")) && (!packageJson.packageManager || packageJson.packageManager.startsWith("yarn@4") || packageJson.packageManager.startsWith("yarn@3") || packageJson.packageManager.startsWith("yarn@2"));
|
|
22
|
+
}
|
|
23
|
+
async readWorkspacePackages({ dir, packageJson }) {
|
|
24
|
+
return await PackageManagerHelpers.readWorkspacePackages({
|
|
25
|
+
fs: this.fs,
|
|
26
|
+
dir,
|
|
27
|
+
workspaces: PackageManagerHelpers.getWorkspacesFromPackageJson({ packageJson })
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
export {
|
|
32
|
+
Yarn
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=Yarn.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Yarn.js","sources":["../../../../../../packages/cli-common/src/npm/packageManagers/Yarn.ts"],"sourcesContent":["import { PackageManager } from './PackageManager'\nimport { FileSystem } from '../FileSystem'\nimport { Package } from '../Package'\nimport { PackageJson } from '../PackageJson'\nimport { join } from 'node:path'\nimport { PackageManagerHelpers } from './PackageManagerHelpers'\nimport { CommandRunner } from '../CommandRunner'\n\nexport class Yarn implements PackageManager {\n\tconstructor(\n\t\tprivate readonly fs: FileSystem,\n\t\tprivate readonly commandRunner: CommandRunner,\n\t) {\n\t}\n\n\tasync install({ pckg, dependencies, isDev }: { pckg: Package; isDev: boolean; dependencies: Record<string, string> }): Promise<void> {\n\t\tconst { output } = this.commandRunner.runCommand('yarn', [\n\t\t\t'add',\n\t\t\tisDev ? '--dev' : undefined,\n\t\t\t...PackageManagerHelpers.formatPackagesToInstall(dependencies),\n\t\t], {\n\t\t\tcwd: pckg.dir,\n\t\t\tstderr: process.stderr,\n\t\t\tstdout: process.stdout,\n\t\t})\n\t\tawait output\n\t}\n\n\tasync isActive({ dir, packageJson }: { dir: string; packageJson: PackageJson }): Promise<boolean> {\n\t\treturn await this.fs.pathExists(join(dir, 'yarn.lock'))\n\t\t\t&& (!packageJson.packageManager || (packageJson.packageManager as string).startsWith('yarn@4') || (packageJson.packageManager as string).startsWith('yarn@3') || (packageJson.packageManager as string).startsWith('yarn@2'))\n\t}\n\n\tasync readWorkspacePackages({ dir, packageJson }: { dir: string; packageJson: PackageJson }): Promise<Package[]> {\n\t\treturn await PackageManagerHelpers.readWorkspacePackages({\n\t\t\tfs: this.fs,\n\t\t\tdir,\n\t\t\tworkspaces: PackageManagerHelpers.getWorkspacesFromPackageJson({ packageJson }),\n\t\t})\n\t}\n}\n"],"names":[],"mappings":";;AAQO,MAAM,KAA+B;AAAA,EAC3C,YACkB,IACA,eAChB;AAFgB,SAAA,KAAA;AACA,SAAA,gBAAA;AAAA,EAElB;AAAA,EAEA,MAAM,QAAQ,EAAE,MAAM,cAAc,SAAiG;AACpI,UAAM,EAAE,OAAO,IAAI,KAAK,cAAc,WAAW,QAAQ;AAAA,MACxD;AAAA,MACA,QAAQ,UAAU;AAAA,MAClB,GAAG,sBAAsB,wBAAwB,YAAY;AAAA,IAAA,GAC3D;AAAA,MACF,KAAK,KAAK;AAAA,MACV,QAAQ,QAAQ;AAAA,MAChB,QAAQ,QAAQ;AAAA,IAAA,CAChB;AACK,UAAA;AAAA,EACP;AAAA,EAEA,MAAM,SAAS,EAAE,KAAK,eAA4E;AAC1F,WAAA,MAAM,KAAK,GAAG,WAAW,KAAK,KAAK,WAAW,CAAC,MACjD,CAAC,YAAY,kBAAmB,YAAY,eAA0B,WAAW,QAAQ,KAAM,YAAY,eAA0B,WAAW,QAAQ,KAAM,YAAY,eAA0B,WAAW,QAAQ;AAAA,EAC7N;AAAA,EAEA,MAAM,sBAAsB,EAAE,KAAK,eAA8E;AACzG,WAAA,MAAM,sBAAsB,sBAAsB;AAAA,MACxD,IAAI,KAAK;AAAA,MACT;AAAA,MACA,YAAY,sBAAsB,6BAA6B,EAAE,aAAa;AAAA,IAAA,CAC9E;AAAA,EACF;AACD;"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const node_path = require("node:path");
|
|
4
|
+
const PackageManagerHelpers = require("./PackageManagerHelpers.cjs");
|
|
5
|
+
class YarnClassic {
|
|
6
|
+
constructor(fs, commandRunner) {
|
|
7
|
+
this.fs = fs;
|
|
8
|
+
this.commandRunner = commandRunner;
|
|
9
|
+
}
|
|
10
|
+
async install({ pckg, dependencies, isDev }) {
|
|
11
|
+
const { output } = this.commandRunner.runCommand("yarn", [
|
|
12
|
+
"add",
|
|
13
|
+
isDev ? "--dev" : void 0,
|
|
14
|
+
pckg.isRoot ? "--ignore-workspace-root-check" : void 0,
|
|
15
|
+
...PackageManagerHelpers.PackageManagerHelpers.formatPackagesToInstall(dependencies)
|
|
16
|
+
], {
|
|
17
|
+
cwd: pckg.dir,
|
|
18
|
+
stderr: process.stderr,
|
|
19
|
+
stdout: process.stdout
|
|
20
|
+
});
|
|
21
|
+
await output;
|
|
22
|
+
}
|
|
23
|
+
async isActive({ dir, packageJson }) {
|
|
24
|
+
return await this.fs.pathExists(node_path.join(dir, "yarn.lock"));
|
|
25
|
+
}
|
|
26
|
+
async readWorkspacePackages({ dir, packageJson }) {
|
|
27
|
+
return await PackageManagerHelpers.PackageManagerHelpers.readWorkspacePackages({
|
|
28
|
+
fs: this.fs,
|
|
29
|
+
dir,
|
|
30
|
+
workspaces: PackageManagerHelpers.PackageManagerHelpers.getWorkspacesFromPackageJson({ packageJson })
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
exports.YarnClassic = YarnClassic;
|
|
35
|
+
//# sourceMappingURL=YarnClassic.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"YarnClassic.cjs","sources":["../../../../../../packages/cli-common/src/npm/packageManagers/YarnClassic.ts"],"sourcesContent":["import { PackageManager } from './PackageManager'\nimport { FileSystem } from '../FileSystem'\nimport { Package } from '../Package'\nimport { PackageJson } from '../PackageJson'\nimport { join } from 'node:path'\nimport { PackageManagerHelpers } from './PackageManagerHelpers'\nimport { CommandRunner } from '../CommandRunner'\n\nexport class YarnClassic implements PackageManager {\n\tconstructor(\n\t\tprivate readonly fs: FileSystem,\n\t\tprivate readonly commandRunner: CommandRunner,\n\t) {\n\t}\n\n\tasync install({ pckg, dependencies, isDev }: { pckg: Package; isDev: boolean; dependencies: Record<string, string> }): Promise<void> {\n\t\tconst { output } = this.commandRunner.runCommand('yarn', [\n\t\t\t'add',\n\t\t\tisDev ? '--dev' : undefined,\n\t\t\tpckg.isRoot ? '--ignore-workspace-root-check' : undefined,\n\t\t\t...PackageManagerHelpers.formatPackagesToInstall(dependencies),\n\t\t], {\n\t\t\tcwd: pckg.dir,\n\t\t\tstderr: process.stderr,\n\t\t\tstdout: process.stdout,\n\t\t})\n\t\tawait output\n\t}\n\n\tasync isActive({ dir, packageJson }: { dir: string; packageJson: PackageJson }): Promise<boolean> {\n\t\treturn await this.fs.pathExists(join(dir, 'yarn.lock'))\n\t}\n\n\tasync readWorkspacePackages({ dir, packageJson }: { dir: string; packageJson: PackageJson }): Promise<Package[]> {\n\t\treturn await PackageManagerHelpers.readWorkspacePackages({\n\t\t\tfs: this.fs,\n\t\t\tdir,\n\t\t\tworkspaces: PackageManagerHelpers.getWorkspacesFromPackageJson({ packageJson }),\n\t\t})\n\t}\n}\n"],"names":["PackageManagerHelpers","join"],"mappings":";;;;AAQO,MAAM,YAAsC;AAAA,EAClD,YACkB,IACA,eAChB;AAFgB,SAAA,KAAA;AACA,SAAA,gBAAA;AAAA,EAElB;AAAA,EAEA,MAAM,QAAQ,EAAE,MAAM,cAAc,SAAiG;AACpI,UAAM,EAAE,OAAO,IAAI,KAAK,cAAc,WAAW,QAAQ;AAAA,MACxD;AAAA,MACA,QAAQ,UAAU;AAAA,MAClB,KAAK,SAAS,kCAAkC;AAAA,MAChD,GAAGA,sBAAsB,sBAAA,wBAAwB,YAAY;AAAA,IAAA,GAC3D;AAAA,MACF,KAAK,KAAK;AAAA,MACV,QAAQ,QAAQ;AAAA,MAChB,QAAQ,QAAQ;AAAA,IAAA,CAChB;AACK,UAAA;AAAA,EACP;AAAA,EAEA,MAAM,SAAS,EAAE,KAAK,eAA4E;AACjG,WAAO,MAAM,KAAK,GAAG,WAAWC,UAAAA,KAAK,KAAK,WAAW,CAAC;AAAA,EACvD;AAAA,EAEA,MAAM,sBAAsB,EAAE,KAAK,eAA8E;AACzG,WAAA,MAAMD,4CAAsB,sBAAsB;AAAA,MACxD,IAAI,KAAK;AAAA,MACT;AAAA,MACA,YAAYA,sBAAA,sBAAsB,6BAA6B,EAAE,aAAa;AAAA,IAAA,CAC9E;AAAA,EACF;AACD;;"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { join } from "node:path";
|
|
2
|
+
import { PackageManagerHelpers } from "./PackageManagerHelpers.js";
|
|
3
|
+
class YarnClassic {
|
|
4
|
+
constructor(fs, commandRunner) {
|
|
5
|
+
this.fs = fs;
|
|
6
|
+
this.commandRunner = commandRunner;
|
|
7
|
+
}
|
|
8
|
+
async install({ pckg, dependencies, isDev }) {
|
|
9
|
+
const { output } = this.commandRunner.runCommand("yarn", [
|
|
10
|
+
"add",
|
|
11
|
+
isDev ? "--dev" : void 0,
|
|
12
|
+
pckg.isRoot ? "--ignore-workspace-root-check" : void 0,
|
|
13
|
+
...PackageManagerHelpers.formatPackagesToInstall(dependencies)
|
|
14
|
+
], {
|
|
15
|
+
cwd: pckg.dir,
|
|
16
|
+
stderr: process.stderr,
|
|
17
|
+
stdout: process.stdout
|
|
18
|
+
});
|
|
19
|
+
await output;
|
|
20
|
+
}
|
|
21
|
+
async isActive({ dir, packageJson }) {
|
|
22
|
+
return await this.fs.pathExists(join(dir, "yarn.lock"));
|
|
23
|
+
}
|
|
24
|
+
async readWorkspacePackages({ dir, packageJson }) {
|
|
25
|
+
return await PackageManagerHelpers.readWorkspacePackages({
|
|
26
|
+
fs: this.fs,
|
|
27
|
+
dir,
|
|
28
|
+
workspaces: PackageManagerHelpers.getWorkspacesFromPackageJson({ packageJson })
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
export {
|
|
33
|
+
YarnClassic
|
|
34
|
+
};
|
|
35
|
+
//# sourceMappingURL=YarnClassic.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"YarnClassic.js","sources":["../../../../../../packages/cli-common/src/npm/packageManagers/YarnClassic.ts"],"sourcesContent":["import { PackageManager } from './PackageManager'\nimport { FileSystem } from '../FileSystem'\nimport { Package } from '../Package'\nimport { PackageJson } from '../PackageJson'\nimport { join } from 'node:path'\nimport { PackageManagerHelpers } from './PackageManagerHelpers'\nimport { CommandRunner } from '../CommandRunner'\n\nexport class YarnClassic implements PackageManager {\n\tconstructor(\n\t\tprivate readonly fs: FileSystem,\n\t\tprivate readonly commandRunner: CommandRunner,\n\t) {\n\t}\n\n\tasync install({ pckg, dependencies, isDev }: { pckg: Package; isDev: boolean; dependencies: Record<string, string> }): Promise<void> {\n\t\tconst { output } = this.commandRunner.runCommand('yarn', [\n\t\t\t'add',\n\t\t\tisDev ? '--dev' : undefined,\n\t\t\tpckg.isRoot ? '--ignore-workspace-root-check' : undefined,\n\t\t\t...PackageManagerHelpers.formatPackagesToInstall(dependencies),\n\t\t], {\n\t\t\tcwd: pckg.dir,\n\t\t\tstderr: process.stderr,\n\t\t\tstdout: process.stdout,\n\t\t})\n\t\tawait output\n\t}\n\n\tasync isActive({ dir, packageJson }: { dir: string; packageJson: PackageJson }): Promise<boolean> {\n\t\treturn await this.fs.pathExists(join(dir, 'yarn.lock'))\n\t}\n\n\tasync readWorkspacePackages({ dir, packageJson }: { dir: string; packageJson: PackageJson }): Promise<Package[]> {\n\t\treturn await PackageManagerHelpers.readWorkspacePackages({\n\t\t\tfs: this.fs,\n\t\t\tdir,\n\t\t\tworkspaces: PackageManagerHelpers.getWorkspacesFromPackageJson({ packageJson }),\n\t\t})\n\t}\n}\n"],"names":[],"mappings":";;AAQO,MAAM,YAAsC;AAAA,EAClD,YACkB,IACA,eAChB;AAFgB,SAAA,KAAA;AACA,SAAA,gBAAA;AAAA,EAElB;AAAA,EAEA,MAAM,QAAQ,EAAE,MAAM,cAAc,SAAiG;AACpI,UAAM,EAAE,OAAO,IAAI,KAAK,cAAc,WAAW,QAAQ;AAAA,MACxD;AAAA,MACA,QAAQ,UAAU;AAAA,MAClB,KAAK,SAAS,kCAAkC;AAAA,MAChD,GAAG,sBAAsB,wBAAwB,YAAY;AAAA,IAAA,GAC3D;AAAA,MACF,KAAK,KAAK;AAAA,MACV,QAAQ,QAAQ;AAAA,MAChB,QAAQ,QAAQ;AAAA,IAAA,CAChB;AACK,UAAA;AAAA,EACP;AAAA,EAEA,MAAM,SAAS,EAAE,KAAK,eAA4E;AACjG,WAAO,MAAM,KAAK,GAAG,WAAW,KAAK,KAAK,WAAW,CAAC;AAAA,EACvD;AAAA,EAEA,MAAM,sBAAsB,EAAE,KAAK,eAA8E;AACzG,WAAA,MAAM,sBAAsB,sBAAsB;AAAA,MACxD,IAAI,KAAK;AAAA,MACT;AAAA,MACA,YAAY,sBAAsB,6BAA6B,EAAE,aAAa;AAAA,IAAA,CAC9E;AAAA,EACF;AACD;"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const Application = require("./src/application/Application.cjs");
|
|
4
|
+
const Command = require("./src/application/Command.cjs");
|
|
5
|
+
const CommandManager = require("./src/application/CommandManager.cjs");
|
|
6
|
+
const CommandConfiguration = require("./src/application/CommandConfiguration.cjs");
|
|
7
|
+
const Input = require("./src/application/Input.cjs");
|
|
8
|
+
const CommandRunner = require("./src/npm/CommandRunner.cjs");
|
|
9
|
+
const PackageWorkspace = require("./src/npm/PackageWorkspace.cjs");
|
|
10
|
+
const Npm = require("./src/npm/packageManagers/Npm.cjs");
|
|
11
|
+
const Pnpm = require("./src/npm/packageManagers/Pnpm.cjs");
|
|
12
|
+
const Yarn = require("./src/npm/packageManagers/Yarn.cjs");
|
|
13
|
+
const YarnClassic = require("./src/npm/packageManagers/YarnClassic.cjs");
|
|
14
|
+
const PackageWorkspaceResolver = require("./src/npm/PackageWorkspaceResolver.cjs");
|
|
15
|
+
exports.Application = Application.Application;
|
|
16
|
+
exports.Command = Command.Command;
|
|
17
|
+
exports.CommandManager = CommandManager.CommandManager;
|
|
18
|
+
exports.CommandConfiguration = CommandConfiguration.CommandConfiguration;
|
|
19
|
+
exports.Input = Input.Input;
|
|
20
|
+
exports.ChildProcessError = CommandRunner.ChildProcessError;
|
|
21
|
+
exports.CommandRunner = CommandRunner.CommandRunner;
|
|
22
|
+
exports.PackageWorkspace = PackageWorkspace.PackageWorkspace;
|
|
23
|
+
exports.Npm = Npm.Npm;
|
|
24
|
+
exports.Pnpm = Pnpm.Pnpm;
|
|
25
|
+
exports.Yarn = Yarn.Yarn;
|
|
26
|
+
exports.YarnClassic = YarnClassic.YarnClassic;
|
|
27
|
+
exports.PackageWorkspaceResolver = PackageWorkspaceResolver.PackageWorkspaceResolver;
|
|
28
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Application } from "./src/application/Application.js";
|
|
2
|
+
import { Command } from "./src/application/Command.js";
|
|
3
|
+
import { CommandManager } from "./src/application/CommandManager.js";
|
|
4
|
+
import { CommandConfiguration } from "./src/application/CommandConfiguration.js";
|
|
5
|
+
import { Input } from "./src/application/Input.js";
|
|
6
|
+
import { ChildProcessError, CommandRunner } from "./src/npm/CommandRunner.js";
|
|
7
|
+
import { PackageWorkspace } from "./src/npm/PackageWorkspace.js";
|
|
8
|
+
import { Npm } from "./src/npm/packageManagers/Npm.js";
|
|
9
|
+
import { Pnpm } from "./src/npm/packageManagers/Pnpm.js";
|
|
10
|
+
import { Yarn } from "./src/npm/packageManagers/Yarn.js";
|
|
11
|
+
import { YarnClassic } from "./src/npm/packageManagers/YarnClassic.js";
|
|
12
|
+
import { PackageWorkspaceResolver } from "./src/npm/PackageWorkspaceResolver.js";
|
|
13
|
+
export {
|
|
14
|
+
Application,
|
|
15
|
+
ChildProcessError,
|
|
16
|
+
Command,
|
|
17
|
+
CommandConfiguration,
|
|
18
|
+
CommandManager,
|
|
19
|
+
CommandRunner,
|
|
20
|
+
Input,
|
|
21
|
+
Npm,
|
|
22
|
+
PackageWorkspace,
|
|
23
|
+
PackageWorkspaceResolver,
|
|
24
|
+
Pnpm,
|
|
25
|
+
Yarn,
|
|
26
|
+
YarnClassic
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const InputParser = require("./InputParser.cjs");
|
|
4
|
+
const chalk = require("chalk");
|
|
5
|
+
class Application {
|
|
6
|
+
constructor(commandManager, applicationDescription, options = {}) {
|
|
7
|
+
this.commandManager = commandManager;
|
|
8
|
+
this.applicationDescription = applicationDescription;
|
|
9
|
+
this.options = options;
|
|
10
|
+
}
|
|
11
|
+
async run(args) {
|
|
12
|
+
const [name, ...rest] = args;
|
|
13
|
+
if (!name || name === "--help") {
|
|
14
|
+
console.error(this.applicationDescription);
|
|
15
|
+
console.error(`Usage: <command> <command args>`);
|
|
16
|
+
const commands = Object.entries(this.commandManager.commands).filter(([name2, factory], index, commands2) => commands2.findIndex((it) => it[1] === factory) === index).map(([name2]) => name2).sort((a, b) => a.localeCompare(b));
|
|
17
|
+
const maxCommandNameLength = Math.max(...commands.map((it) => it.length));
|
|
18
|
+
for (let commandName of commands) {
|
|
19
|
+
const [, command] = this.commandManager.createCommand(commandName);
|
|
20
|
+
const configuration = command.getConfiguration();
|
|
21
|
+
const indent = " ";
|
|
22
|
+
console.error(
|
|
23
|
+
`${indent}${chalk.greenBright(
|
|
24
|
+
commandName.padEnd(maxCommandNameLength)
|
|
25
|
+
)}${indent}${configuration.getDescription()}`
|
|
26
|
+
);
|
|
27
|
+
if (name === "--help") {
|
|
28
|
+
const helpIndent = `${indent}${" ".repeat(maxCommandNameLength)}${indent}`;
|
|
29
|
+
const usage = configuration.getUsage({ format: "multiline", indent: helpIndent });
|
|
30
|
+
if (usage) {
|
|
31
|
+
console.error(chalk.green(usage));
|
|
32
|
+
} else {
|
|
33
|
+
console.error(`${helpIndent}${chalk.gray("No options")}`);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
return process.exit(0);
|
|
38
|
+
}
|
|
39
|
+
return this.runCommandInternal(name, rest, true);
|
|
40
|
+
}
|
|
41
|
+
async runCommand(name, args) {
|
|
42
|
+
return this.runCommandInternal(name, args, false);
|
|
43
|
+
}
|
|
44
|
+
async runCommandInternal(name, args, showCommandName) {
|
|
45
|
+
const [fullName, command] = this.commandManager.createCommand(name);
|
|
46
|
+
if (args[0] === "--help" || args[0] === "-h") {
|
|
47
|
+
if (showCommandName) {
|
|
48
|
+
console.error(chalk.greenBright(fullName));
|
|
49
|
+
}
|
|
50
|
+
const configuration = command.getConfiguration();
|
|
51
|
+
const commandDescription = configuration.getDescription();
|
|
52
|
+
if (commandDescription) {
|
|
53
|
+
console.error(commandDescription);
|
|
54
|
+
}
|
|
55
|
+
const shortUsage = configuration.getUsage({ format: "short" });
|
|
56
|
+
if (shortUsage) {
|
|
57
|
+
console.error("\nUsage:");
|
|
58
|
+
console.error(chalk.green(shortUsage));
|
|
59
|
+
console.error("\nArguments and options:");
|
|
60
|
+
console.error(configuration.getUsage({ format: "multiline" }));
|
|
61
|
+
}
|
|
62
|
+
return process.exit(0);
|
|
63
|
+
}
|
|
64
|
+
try {
|
|
65
|
+
await this.options.beforeRun?.({ command, args, name: fullName });
|
|
66
|
+
const result = await command.run(args);
|
|
67
|
+
return process.exit(result);
|
|
68
|
+
} catch (e) {
|
|
69
|
+
if (e instanceof InputParser.InvalidInputError) {
|
|
70
|
+
console.error(chalk.bgRedBright.white(e.message));
|
|
71
|
+
const configuration = command.getConfiguration();
|
|
72
|
+
console.error(`${showCommandName ? chalk.greenBright(fullName) + " " : ""}${chalk.green(configuration.getUsage({ format: "line" }))}`);
|
|
73
|
+
return process.exit(1);
|
|
74
|
+
} else {
|
|
75
|
+
console.error(e);
|
|
76
|
+
return process.exit(2);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
exports.Application = Application;
|
|
82
|
+
//# sourceMappingURL=Application.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Application.cjs","sources":["../../../../../packages/cli-common/src/application/Application.ts"],"sourcesContent":["import { InvalidInputError } from './InputParser'\nimport { CommandManager } from './CommandManager'\nimport chalk from 'chalk'\nimport { Command } from './Command'\n\nexport class Application {\n\tconstructor(\n\t\tprivate readonly commandManager: CommandManager,\n\t\tprivate readonly applicationDescription: string,\n\t\tprivate readonly options: {\n\t\t\tbeforeRun?: (args: {command: Command<any, any>; name: string; args: string[]}) => void\n\t\t} = {},\n\t) {}\n\n\tasync run(args: string[]): Promise<void> {\n\t\tconst [name, ...rest] = args\n\t\tif (!name || name === '--help') {\n\t\t\tconsole.error(this.applicationDescription)\n\t\t\tconsole.error(`Usage: <command> <command args>`)\n\t\t\tconst commands = Object.entries(this.commandManager.commands)\n\t\t\t\t.filter(([name, factory], index, commands) => commands.findIndex(it => it[1] === factory) === index)\n\t\t\t\t.map(([name]) => name)\n\t\t\t\t.sort((a, b) => a.localeCompare(b))\n\n\t\t\tconst maxCommandNameLength = Math.max(...commands.map(it => it.length))\n\n\t\t\tfor (let commandName of commands) {\n\t\t\t\tconst [, command] = this.commandManager.createCommand(commandName)\n\t\t\t\tconst configuration = command.getConfiguration()\n\t\t\t\tconst indent = ' '\n\t\t\t\tconsole.error(\n\t\t\t\t\t`${indent}${chalk.greenBright(\n\t\t\t\t\t\tcommandName.padEnd(maxCommandNameLength),\n\t\t\t\t\t)}${indent}${configuration.getDescription()}`,\n\t\t\t\t)\n\t\t\t\tif (name === '--help') {\n\t\t\t\t\tconst helpIndent = `${indent}${' '.repeat(maxCommandNameLength)}${indent}`\n\t\t\t\t\tconst usage = configuration.getUsage({ format: 'multiline', indent: helpIndent })\n\t\t\t\t\tif (usage) {\n\t\t\t\t\t\tconsole.error(chalk.green(usage))\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconsole.error(`${helpIndent}${chalk.gray('No options')}`)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn process.exit(0)\n\t\t}\n\t\treturn this.runCommandInternal(name, rest, true)\n\t}\n\n\tpublic async runCommand(name: string, args: string[]) {\n\t\treturn this.runCommandInternal(name, args, false)\n\t}\n\n\tpublic async runCommandInternal(name: string, args: string[], showCommandName: boolean) {\n\t\tconst [fullName, command] = this.commandManager.createCommand(name)\n\n\t\tif (args[0] === '--help' || args[0] === '-h') {\n\t\t\tif (showCommandName) {\n\t\t\t\tconsole.error(chalk.greenBright(fullName))\n\t\t\t}\n\t\t\tconst configuration = command.getConfiguration()\n\t\t\tconst commandDescription = configuration.getDescription()\n\t\t\tif (commandDescription) {\n\t\t\t\tconsole.error(commandDescription)\n\t\t\t}\n\t\t\tconst shortUsage = configuration.getUsage({ format: 'short' })\n\t\t\tif (shortUsage) {\n\t\t\t\tconsole.error('\\nUsage:')\n\t\t\t\tconsole.error(chalk.green(shortUsage))\n\t\t\t\tconsole.error('\\nArguments and options:')\n\t\t\t\tconsole.error(configuration.getUsage({ format: 'multiline' }))\n\t\t\t}\n\n\t\t\treturn process.exit(0)\n\t\t}\n\n\t\ttry {\n\t\t\tawait this.options.beforeRun?.({ command, args, name: fullName })\n\n\t\t\tconst result = await command.run(args)\n\t\t\treturn process.exit(result)\n\t\t} catch (e) {\n\t\t\tif (e instanceof InvalidInputError) {\n\t\t\t\tconsole.error(chalk.bgRedBright.white(e.message))\n\t\t\t\tconst configuration = command.getConfiguration()\n\t\t\t\tconsole.error(`${showCommandName ? chalk.greenBright(fullName) + ' ' : ''}${chalk.green(configuration.getUsage({ format: 'line' }))}`)\n\n\t\t\t\treturn process.exit(1)\n\t\t\t} else {\n\t\t\t\tconsole.error(e)\n\t\t\t\treturn process.exit(2)\n\t\t\t}\n\t\t}\n\t}\n}\n"],"names":["name","commands","InvalidInputError"],"mappings":"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"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { InvalidInputError } from "./InputParser.js";
|
|
2
|
+
import chalk from "chalk";
|
|
3
|
+
class Application {
|
|
4
|
+
constructor(commandManager, applicationDescription, options = {}) {
|
|
5
|
+
this.commandManager = commandManager;
|
|
6
|
+
this.applicationDescription = applicationDescription;
|
|
7
|
+
this.options = options;
|
|
8
|
+
}
|
|
9
|
+
async run(args) {
|
|
10
|
+
const [name, ...rest] = args;
|
|
11
|
+
if (!name || name === "--help") {
|
|
12
|
+
console.error(this.applicationDescription);
|
|
13
|
+
console.error(`Usage: <command> <command args>`);
|
|
14
|
+
const commands = Object.entries(this.commandManager.commands).filter(([name2, factory], index, commands2) => commands2.findIndex((it) => it[1] === factory) === index).map(([name2]) => name2).sort((a, b) => a.localeCompare(b));
|
|
15
|
+
const maxCommandNameLength = Math.max(...commands.map((it) => it.length));
|
|
16
|
+
for (let commandName of commands) {
|
|
17
|
+
const [, command] = this.commandManager.createCommand(commandName);
|
|
18
|
+
const configuration = command.getConfiguration();
|
|
19
|
+
const indent = " ";
|
|
20
|
+
console.error(
|
|
21
|
+
`${indent}${chalk.greenBright(
|
|
22
|
+
commandName.padEnd(maxCommandNameLength)
|
|
23
|
+
)}${indent}${configuration.getDescription()}`
|
|
24
|
+
);
|
|
25
|
+
if (name === "--help") {
|
|
26
|
+
const helpIndent = `${indent}${" ".repeat(maxCommandNameLength)}${indent}`;
|
|
27
|
+
const usage = configuration.getUsage({ format: "multiline", indent: helpIndent });
|
|
28
|
+
if (usage) {
|
|
29
|
+
console.error(chalk.green(usage));
|
|
30
|
+
} else {
|
|
31
|
+
console.error(`${helpIndent}${chalk.gray("No options")}`);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return process.exit(0);
|
|
36
|
+
}
|
|
37
|
+
return this.runCommandInternal(name, rest, true);
|
|
38
|
+
}
|
|
39
|
+
async runCommand(name, args) {
|
|
40
|
+
return this.runCommandInternal(name, args, false);
|
|
41
|
+
}
|
|
42
|
+
async runCommandInternal(name, args, showCommandName) {
|
|
43
|
+
const [fullName, command] = this.commandManager.createCommand(name);
|
|
44
|
+
if (args[0] === "--help" || args[0] === "-h") {
|
|
45
|
+
if (showCommandName) {
|
|
46
|
+
console.error(chalk.greenBright(fullName));
|
|
47
|
+
}
|
|
48
|
+
const configuration = command.getConfiguration();
|
|
49
|
+
const commandDescription = configuration.getDescription();
|
|
50
|
+
if (commandDescription) {
|
|
51
|
+
console.error(commandDescription);
|
|
52
|
+
}
|
|
53
|
+
const shortUsage = configuration.getUsage({ format: "short" });
|
|
54
|
+
if (shortUsage) {
|
|
55
|
+
console.error("\nUsage:");
|
|
56
|
+
console.error(chalk.green(shortUsage));
|
|
57
|
+
console.error("\nArguments and options:");
|
|
58
|
+
console.error(configuration.getUsage({ format: "multiline" }));
|
|
59
|
+
}
|
|
60
|
+
return process.exit(0);
|
|
61
|
+
}
|
|
62
|
+
try {
|
|
63
|
+
await this.options.beforeRun?.({ command, args, name: fullName });
|
|
64
|
+
const result = await command.run(args);
|
|
65
|
+
return process.exit(result);
|
|
66
|
+
} catch (e) {
|
|
67
|
+
if (e instanceof InvalidInputError) {
|
|
68
|
+
console.error(chalk.bgRedBright.white(e.message));
|
|
69
|
+
const configuration = command.getConfiguration();
|
|
70
|
+
console.error(`${showCommandName ? chalk.greenBright(fullName) + " " : ""}${chalk.green(configuration.getUsage({ format: "line" }))}`);
|
|
71
|
+
return process.exit(1);
|
|
72
|
+
} else {
|
|
73
|
+
console.error(e);
|
|
74
|
+
return process.exit(2);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
export {
|
|
80
|
+
Application
|
|
81
|
+
};
|
|
82
|
+
//# sourceMappingURL=Application.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Application.js","sources":["../../../../../packages/cli-common/src/application/Application.ts"],"sourcesContent":["import { InvalidInputError } from './InputParser'\nimport { CommandManager } from './CommandManager'\nimport chalk from 'chalk'\nimport { Command } from './Command'\n\nexport class Application {\n\tconstructor(\n\t\tprivate readonly commandManager: CommandManager,\n\t\tprivate readonly applicationDescription: string,\n\t\tprivate readonly options: {\n\t\t\tbeforeRun?: (args: {command: Command<any, any>; name: string; args: string[]}) => void\n\t\t} = {},\n\t) {}\n\n\tasync run(args: string[]): Promise<void> {\n\t\tconst [name, ...rest] = args\n\t\tif (!name || name === '--help') {\n\t\t\tconsole.error(this.applicationDescription)\n\t\t\tconsole.error(`Usage: <command> <command args>`)\n\t\t\tconst commands = Object.entries(this.commandManager.commands)\n\t\t\t\t.filter(([name, factory], index, commands) => commands.findIndex(it => it[1] === factory) === index)\n\t\t\t\t.map(([name]) => name)\n\t\t\t\t.sort((a, b) => a.localeCompare(b))\n\n\t\t\tconst maxCommandNameLength = Math.max(...commands.map(it => it.length))\n\n\t\t\tfor (let commandName of commands) {\n\t\t\t\tconst [, command] = this.commandManager.createCommand(commandName)\n\t\t\t\tconst configuration = command.getConfiguration()\n\t\t\t\tconst indent = ' '\n\t\t\t\tconsole.error(\n\t\t\t\t\t`${indent}${chalk.greenBright(\n\t\t\t\t\t\tcommandName.padEnd(maxCommandNameLength),\n\t\t\t\t\t)}${indent}${configuration.getDescription()}`,\n\t\t\t\t)\n\t\t\t\tif (name === '--help') {\n\t\t\t\t\tconst helpIndent = `${indent}${' '.repeat(maxCommandNameLength)}${indent}`\n\t\t\t\t\tconst usage = configuration.getUsage({ format: 'multiline', indent: helpIndent })\n\t\t\t\t\tif (usage) {\n\t\t\t\t\t\tconsole.error(chalk.green(usage))\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconsole.error(`${helpIndent}${chalk.gray('No options')}`)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn process.exit(0)\n\t\t}\n\t\treturn this.runCommandInternal(name, rest, true)\n\t}\n\n\tpublic async runCommand(name: string, args: string[]) {\n\t\treturn this.runCommandInternal(name, args, false)\n\t}\n\n\tpublic async runCommandInternal(name: string, args: string[], showCommandName: boolean) {\n\t\tconst [fullName, command] = this.commandManager.createCommand(name)\n\n\t\tif (args[0] === '--help' || args[0] === '-h') {\n\t\t\tif (showCommandName) {\n\t\t\t\tconsole.error(chalk.greenBright(fullName))\n\t\t\t}\n\t\t\tconst configuration = command.getConfiguration()\n\t\t\tconst commandDescription = configuration.getDescription()\n\t\t\tif (commandDescription) {\n\t\t\t\tconsole.error(commandDescription)\n\t\t\t}\n\t\t\tconst shortUsage = configuration.getUsage({ format: 'short' })\n\t\t\tif (shortUsage) {\n\t\t\t\tconsole.error('\\nUsage:')\n\t\t\t\tconsole.error(chalk.green(shortUsage))\n\t\t\t\tconsole.error('\\nArguments and options:')\n\t\t\t\tconsole.error(configuration.getUsage({ format: 'multiline' }))\n\t\t\t}\n\n\t\t\treturn process.exit(0)\n\t\t}\n\n\t\ttry {\n\t\t\tawait this.options.beforeRun?.({ command, args, name: fullName })\n\n\t\t\tconst result = await command.run(args)\n\t\t\treturn process.exit(result)\n\t\t} catch (e) {\n\t\t\tif (e instanceof InvalidInputError) {\n\t\t\t\tconsole.error(chalk.bgRedBright.white(e.message))\n\t\t\t\tconst configuration = command.getConfiguration()\n\t\t\t\tconsole.error(`${showCommandName ? chalk.greenBright(fullName) + ' ' : ''}${chalk.green(configuration.getUsage({ format: 'line' }))}`)\n\n\t\t\t\treturn process.exit(1)\n\t\t\t} else {\n\t\t\t\tconsole.error(e)\n\t\t\t\treturn process.exit(2)\n\t\t\t}\n\t\t}\n\t}\n}\n"],"names":["name","commands"],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
class ArgumentConfiguration {
|
|
4
|
+
constructor(options) {
|
|
5
|
+
this.options = options;
|
|
6
|
+
}
|
|
7
|
+
optional(optional = true) {
|
|
8
|
+
this.options.optional = optional;
|
|
9
|
+
return this;
|
|
10
|
+
}
|
|
11
|
+
variadic(variadic = true) {
|
|
12
|
+
this.options.variadic = variadic;
|
|
13
|
+
return this;
|
|
14
|
+
}
|
|
15
|
+
description(description) {
|
|
16
|
+
this.options.description = description;
|
|
17
|
+
return this;
|
|
18
|
+
}
|
|
19
|
+
validator(validator) {
|
|
20
|
+
this.options.validator = validator;
|
|
21
|
+
return this;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
exports.ArgumentConfiguration = ArgumentConfiguration;
|
|
25
|
+
//# sourceMappingURL=Argument.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Argument.cjs","sources":["../../../../../packages/cli-common/src/application/Argument.ts"],"sourcesContent":["export type Argument = {\n\tname: string\n\tdescription?: string\n\toptional: boolean\n\tvariadic: boolean\n\tvalidator?: (value: string) => boolean\n}\n\nexport class ArgumentConfiguration {\n\tconstructor(private readonly options: Argument) {}\n\n\tpublic optional(optional: boolean = true) {\n\t\tthis.options.optional = optional\n\t\treturn this\n\t}\n\n\tpublic variadic(variadic: boolean = true) {\n\t\tthis.options.variadic = variadic\n\t\treturn this\n\t}\n\n\tpublic description(description: string) {\n\t\tthis.options.description = description\n\t\treturn this\n\t}\n\n\tpublic validator(validator: (value: string) => boolean) {\n\t\tthis.options.validator = validator\n\t\treturn this\n\t}\n}\n"],"names":[],"mappings":";;AAQO,MAAM,sBAAsB;AAAA,EAClC,YAA6B,SAAmB;AAAnB,SAAA,UAAA;AAAA,EAAoB;AAAA,EAE1C,SAAS,WAAoB,MAAM;AACzC,SAAK,QAAQ,WAAW;AACjB,WAAA;AAAA,EACR;AAAA,EAEO,SAAS,WAAoB,MAAM;AACzC,SAAK,QAAQ,WAAW;AACjB,WAAA;AAAA,EACR;AAAA,EAEO,YAAY,aAAqB;AACvC,SAAK,QAAQ,cAAc;AACpB,WAAA;AAAA,EACR;AAAA,EAEO,UAAU,WAAuC;AACvD,SAAK,QAAQ,YAAY;AAClB,WAAA;AAAA,EACR;AACD;;"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
class ArgumentConfiguration {
|
|
2
|
+
constructor(options) {
|
|
3
|
+
this.options = options;
|
|
4
|
+
}
|
|
5
|
+
optional(optional = true) {
|
|
6
|
+
this.options.optional = optional;
|
|
7
|
+
return this;
|
|
8
|
+
}
|
|
9
|
+
variadic(variadic = true) {
|
|
10
|
+
this.options.variadic = variadic;
|
|
11
|
+
return this;
|
|
12
|
+
}
|
|
13
|
+
description(description) {
|
|
14
|
+
this.options.description = description;
|
|
15
|
+
return this;
|
|
16
|
+
}
|
|
17
|
+
validator(validator) {
|
|
18
|
+
this.options.validator = validator;
|
|
19
|
+
return this;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
export {
|
|
23
|
+
ArgumentConfiguration
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=Argument.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Argument.js","sources":["../../../../../packages/cli-common/src/application/Argument.ts"],"sourcesContent":["export type Argument = {\n\tname: string\n\tdescription?: string\n\toptional: boolean\n\tvariadic: boolean\n\tvalidator?: (value: string) => boolean\n}\n\nexport class ArgumentConfiguration {\n\tconstructor(private readonly options: Argument) {}\n\n\tpublic optional(optional: boolean = true) {\n\t\tthis.options.optional = optional\n\t\treturn this\n\t}\n\n\tpublic variadic(variadic: boolean = true) {\n\t\tthis.options.variadic = variadic\n\t\treturn this\n\t}\n\n\tpublic description(description: string) {\n\t\tthis.options.description = description\n\t\treturn this\n\t}\n\n\tpublic validator(validator: (value: string) => boolean) {\n\t\tthis.options.validator = validator\n\t\treturn this\n\t}\n}\n"],"names":[],"mappings":"AAQO,MAAM,sBAAsB;AAAA,EAClC,YAA6B,SAAmB;AAAnB,SAAA,UAAA;AAAA,EAAoB;AAAA,EAE1C,SAAS,WAAoB,MAAM;AACzC,SAAK,QAAQ,WAAW;AACjB,WAAA;AAAA,EACR;AAAA,EAEO,SAAS,WAAoB,MAAM;AACzC,SAAK,QAAQ,WAAW;AACjB,WAAA;AAAA,EACR;AAAA,EAEO,YAAY,aAAqB;AACvC,SAAK,QAAQ,cAAc;AACpB,WAAA;AAAA,EACR;AAAA,EAEO,UAAU,WAAuC;AACvD,SAAK,QAAQ,YAAY;AAClB,WAAA;AAAA,EACR;AACD;"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const CommandConfiguration = require("./CommandConfiguration.cjs");
|
|
4
|
+
var __defProp = Object.defineProperty;
|
|
5
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
6
|
+
var __publicField = (obj, key, value) => __defNormalProp(obj, key + "", value);
|
|
7
|
+
class Command {
|
|
8
|
+
constructor() {
|
|
9
|
+
__publicField(this, "configuration");
|
|
10
|
+
}
|
|
11
|
+
getConfiguration() {
|
|
12
|
+
if (this.configuration === void 0) {
|
|
13
|
+
const configuration = new CommandConfiguration.CommandConfiguration();
|
|
14
|
+
this.configure(configuration);
|
|
15
|
+
configuration.validate();
|
|
16
|
+
this.configuration = configuration;
|
|
17
|
+
}
|
|
18
|
+
return this.configuration;
|
|
19
|
+
}
|
|
20
|
+
async run(args) {
|
|
21
|
+
const parser = this.getConfiguration().createParser();
|
|
22
|
+
const input = parser.parse(args);
|
|
23
|
+
const result = await this.execute(input);
|
|
24
|
+
return result || 0;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
exports.Command = Command;
|
|
28
|
+
//# sourceMappingURL=Command.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Command.cjs","sources":["../../../../../packages/cli-common/src/application/Command.ts"],"sourcesContent":["import { CommandConfiguration } from './CommandConfiguration'\nimport { Arguments, Input, Options } from './Input'\n\nexport abstract class Command<Args extends Arguments, TOptions extends Options> {\n\tprivate configuration: CommandConfiguration<Args, TOptions> | undefined\n\n\tprotected abstract configure(configuration: CommandConfiguration<Args, TOptions>): void\n\n\tpublic getConfiguration(): CommandConfiguration<Args, TOptions> {\n\t\tif (this.configuration === undefined) {\n\t\t\tconst configuration = new CommandConfiguration()\n\t\t\tthis.configure(configuration)\n\t\t\tconfiguration.validate()\n\t\t\tthis.configuration = configuration\n\t\t}\n\t\treturn this.configuration\n\t}\n\n\tprotected abstract execute(input: Input<Args, TOptions>): Promise<void | number>\n\n\tpublic async run(args: string[]): Promise<number> {\n\t\tconst parser = this.getConfiguration().createParser()\n\t\tconst input = parser.parse<Args, TOptions>(args)\n\t\tconst result = await this.execute(input)\n\t\treturn result || 0\n\t}\n}\n"],"names":["CommandConfiguration"],"mappings":";;;;;;AAGO,MAAe,QAA0D;AAAA,EAAzE,cAAA;AACE,kBAAA,MAAA,eAAA;AAAA,EAAA;AAAA,EAID,mBAAyD;AAC3D,QAAA,KAAK,kBAAkB,QAAW;AAC/B,YAAA,gBAAgB,IAAIA,qBAAAA;AAC1B,WAAK,UAAU,aAAa;AAC5B,oBAAc,SAAS;AACvB,WAAK,gBAAgB;AAAA,IACtB;AACA,WAAO,KAAK;AAAA,EACb;AAAA,EAIA,MAAa,IAAI,MAAiC;AACjD,UAAM,SAAS,KAAK,iBAAiB,EAAE,aAAa;AAC9C,UAAA,QAAQ,OAAO,MAAsB,IAAI;AAC/C,UAAM,SAAS,MAAM,KAAK,QAAQ,KAAK;AACvC,WAAO,UAAU;AAAA,EAClB;AACD;;"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { CommandConfiguration } from "./CommandConfiguration.js";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
4
|
+
var __publicField = (obj, key, value) => __defNormalProp(obj, key + "", value);
|
|
5
|
+
class Command {
|
|
6
|
+
constructor() {
|
|
7
|
+
__publicField(this, "configuration");
|
|
8
|
+
}
|
|
9
|
+
getConfiguration() {
|
|
10
|
+
if (this.configuration === void 0) {
|
|
11
|
+
const configuration = new CommandConfiguration();
|
|
12
|
+
this.configure(configuration);
|
|
13
|
+
configuration.validate();
|
|
14
|
+
this.configuration = configuration;
|
|
15
|
+
}
|
|
16
|
+
return this.configuration;
|
|
17
|
+
}
|
|
18
|
+
async run(args) {
|
|
19
|
+
const parser = this.getConfiguration().createParser();
|
|
20
|
+
const input = parser.parse(args);
|
|
21
|
+
const result = await this.execute(input);
|
|
22
|
+
return result || 0;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
export {
|
|
26
|
+
Command
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=Command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Command.js","sources":["../../../../../packages/cli-common/src/application/Command.ts"],"sourcesContent":["import { CommandConfiguration } from './CommandConfiguration'\nimport { Arguments, Input, Options } from './Input'\n\nexport abstract class Command<Args extends Arguments, TOptions extends Options> {\n\tprivate configuration: CommandConfiguration<Args, TOptions> | undefined\n\n\tprotected abstract configure(configuration: CommandConfiguration<Args, TOptions>): void\n\n\tpublic getConfiguration(): CommandConfiguration<Args, TOptions> {\n\t\tif (this.configuration === undefined) {\n\t\t\tconst configuration = new CommandConfiguration()\n\t\t\tthis.configure(configuration)\n\t\t\tconfiguration.validate()\n\t\t\tthis.configuration = configuration\n\t\t}\n\t\treturn this.configuration\n\t}\n\n\tprotected abstract execute(input: Input<Args, TOptions>): Promise<void | number>\n\n\tpublic async run(args: string[]): Promise<number> {\n\t\tconst parser = this.getConfiguration().createParser()\n\t\tconst input = parser.parse<Args, TOptions>(args)\n\t\tconst result = await this.execute(input)\n\t\treturn result || 0\n\t}\n}\n"],"names":[],"mappings":";;;;AAGO,MAAe,QAA0D;AAAA,EAAzE,cAAA;AACE,kBAAA,MAAA,eAAA;AAAA,EAAA;AAAA,EAID,mBAAyD;AAC3D,QAAA,KAAK,kBAAkB,QAAW;AAC/B,YAAA,gBAAgB,IAAI;AAC1B,WAAK,UAAU,aAAa;AAC5B,oBAAc,SAAS;AACvB,WAAK,gBAAgB;AAAA,IACtB;AACA,WAAO,KAAK;AAAA,EACb;AAAA,EAIA,MAAa,IAAI,MAAiC;AACjD,UAAM,SAAS,KAAK,iBAAiB,EAAE,aAAa;AAC9C,UAAA,QAAQ,OAAO,MAAsB,IAAI;AAC/C,UAAM,SAAS,MAAM,KAAK,QAAQ,KAAK;AACvC,WAAO,UAAU;AAAA,EAClB;AACD;"}
|