@webiny/cli-core 0.0.0-unstable.e622468070 → 0.0.0-unstable.e6f0dc8ca7

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.
Files changed (56) hide show
  1. package/abstractions/features/CliCommand.d.ts +4 -0
  2. package/abstractions/features/CliCommand.js +3 -0
  3. package/abstractions/features/CliCommand.js.map +1 -1
  4. package/createCliContainer.js +5 -8
  5. package/createCliContainer.js.map +1 -1
  6. package/decorators/CommandsWithGracefulErrorHandling.js.map +1 -1
  7. package/exports/cli.d.ts +2 -0
  8. package/exports/cli.js +4 -0
  9. package/exports/cli.js.map +1 -0
  10. package/extensions/CliCommand.d.ts +3 -7
  11. package/extensions/CliCommandDecorator.d.ts +3 -7
  12. package/extensions/index.d.ts +2 -6
  13. package/features/DeployCommand/DeployCommand.d.ts +1 -1
  14. package/features/DeployCommand/DeployCommand.js +6 -4
  15. package/features/DeployCommand/DeployCommand.js.map +1 -1
  16. package/features/DepsSync/BuildDependencyTree.js +2 -2
  17. package/features/DepsSync/BuildDependencyTree.js.map +1 -1
  18. package/features/DepsSync/DependencyTree.js +7 -0
  19. package/features/DepsSync/DependencyTree.js.map +1 -1
  20. package/features/DepsSync/ListAllPackageJsonFiles.js +2 -2
  21. package/features/DepsSync/ListAllPackageJsonFiles.js.map +1 -1
  22. package/features/DepsSync/commands/VerifyDepsCommand.js +3 -3
  23. package/features/DepsSync/commands/VerifyDepsCommand.js.map +1 -1
  24. package/features/DepsSync/createReferenceFile.js +3 -3
  25. package/features/DepsSync/createReferenceFile.js.map +1 -1
  26. package/features/UpgradeCommand/UpgradeCommand.d.ts +29 -0
  27. package/features/UpgradeCommand/UpgradeCommand.js +112 -0
  28. package/features/UpgradeCommand/UpgradeCommand.js.map +1 -0
  29. package/features/UpgradeCommand/UpgradeCommandHandler.d.ts +11 -0
  30. package/features/UpgradeCommand/UpgradeCommandHandler.js +113 -0
  31. package/features/UpgradeCommand/UpgradeCommandHandler.js.map +1 -0
  32. package/features/UpgradeCommand/abstraction.d.ts +23 -0
  33. package/features/UpgradeCommand/abstraction.js +4 -0
  34. package/features/UpgradeCommand/abstraction.js.map +1 -0
  35. package/features/UpgradeCommand/feature.d.ts +4 -0
  36. package/features/UpgradeCommand/feature.js +12 -0
  37. package/features/UpgradeCommand/feature.js.map +1 -0
  38. package/features/UpgradeCommand/index.d.ts +2 -0
  39. package/features/UpgradeCommand/index.js +4 -0
  40. package/features/UpgradeCommand/index.js.map +1 -0
  41. package/features/Wcp/LinkProjectCommand.js +3 -3
  42. package/features/Wcp/LinkProjectCommand.js.map +1 -1
  43. package/features/gracefulErrorHandlers/DdbPutItemConditionalCheckFailedGracefulErrorHandler.js.map +1 -1
  44. package/features/gracefulErrorHandlers/MissingFilesInBuildGracefulErrorHandler.js.map +1 -1
  45. package/features/gracefulErrorHandlers/PendingOperationsGracefulErrorHandler.js.map +1 -1
  46. package/features/index.d.ts +1 -0
  47. package/features/index.js +1 -0
  48. package/features/index.js.map +1 -1
  49. package/package.json +28 -25
  50. package/services/GetCliRunnerService/GetCliRunnerService.js +7 -0
  51. package/services/GetCliRunnerService/GetCliRunnerService.js.map +1 -1
  52. package/services/LoggerService/LoggerService.js +2 -2
  53. package/services/LoggerService/LoggerService.js.map +1 -1
  54. package/exports/cli/index.d.ts +0 -2
  55. package/exports/cli/index.js +0 -4
  56. package/exports/cli/index.js.map +0 -1
@@ -0,0 +1,29 @@
1
+ import { CliCommandFactory, UiService } from "../../abstractions/index.js";
2
+ import { UpgradeCommandHandler } from "./abstraction.js";
3
+ interface UpgradeCommandParams {
4
+ skipChecks?: boolean;
5
+ disableSemver?: boolean;
6
+ debug?: boolean;
7
+ _: string[];
8
+ force?: boolean;
9
+ target?: string;
10
+ logLevel?: string;
11
+ showLogs?: boolean;
12
+ showStackTrace?: boolean;
13
+ version?: string;
14
+ registry?: string;
15
+ packageManager?: string;
16
+ installVersion?: string;
17
+ skipDependencyGuard?: boolean;
18
+ }
19
+ declare class UpgradeCommandImpl implements CliCommandFactory.Interface<UpgradeCommandParams> {
20
+ private ui;
21
+ private upgradeCommandHandler;
22
+ constructor(ui: UiService.Interface, upgradeCommandHandler: UpgradeCommandHandler.Interface);
23
+ execute(): Promise<CliCommandFactory.CommandDefinition<UpgradeCommandParams>>;
24
+ private getVersion;
25
+ }
26
+ export declare const UpgradeCommand: typeof UpgradeCommandImpl & {
27
+ __abstraction: import("@webiny/di").Abstraction<import("../../abstractions/features/CliCommand.js").ICliCommand<any>>;
28
+ };
29
+ export {};
@@ -0,0 +1,112 @@
1
+ import { CliCommandFactory, UiService } from "../../abstractions/index.js";
2
+ import { UpgradeCommandHandler } from "./abstraction.js";
3
+ import semver from "semver";
4
+ class UpgradeCommandImpl {
5
+ constructor(ui, upgradeCommandHandler) {
6
+ this.ui = ui;
7
+ this.upgradeCommandHandler = upgradeCommandHandler;
8
+ }
9
+ async execute() {
10
+ return {
11
+ name: "upgrade",
12
+ description: "Upgrade Webiny packages and dependencies to the latest or selected version.",
13
+ examples: ["upgrade", "upgrade 6.2.0", "upgrade 0.0.0-unstable.abc --disable-semver"],
14
+ params: [{
15
+ name: "target",
16
+ description: "Target version to upgrade to. Can be a specific version (e.g. 6.2.0) or 'latest' to upgrade to the latest version.",
17
+ type: "string",
18
+ default: "latest",
19
+ required: false
20
+ }],
21
+ options: [{
22
+ name: "force",
23
+ description: "Force an upgrade for a version, even if it was ran before.",
24
+ type: "boolean",
25
+ default: false
26
+ }, {
27
+ name: "skip-checks",
28
+ description: "Do not perform CLI version and Git tree checks.",
29
+ type: "boolean",
30
+ default: false
31
+ }, {
32
+ name: "log-level",
33
+ default: "debug",
34
+ description: `Set log level for the upgrade process executed by npx. Possible values are "debug", "info", "warning", and "error".`,
35
+ type: "string"
36
+ }, {
37
+ name: "show-logs",
38
+ default: false,
39
+ description: `Show logs from the upgrade process executed by npx.`,
40
+ type: "boolean"
41
+ }, {
42
+ name: "show-stack-trace",
43
+ default: false,
44
+ description: `Show stack trace if the upgrade process executed by npx fails.`,
45
+ type: "boolean"
46
+ }, {
47
+ name: "registry",
48
+ type: "string",
49
+ default: "",
50
+ description: "registry URL"
51
+ }, {
52
+ name: "package-manager",
53
+ type: "string",
54
+ default: "",
55
+ description: "Package manager to use: yarn, pnpm, or npm (auto-detected from lock file if omitted)"
56
+ }, {
57
+ name: "skip-dependency-guard",
58
+ default: false,
59
+ description: `Skip the dependency guard that checks for incompatible dependencies before performing the upgrade.`,
60
+ type: "boolean"
61
+ }, {
62
+ name: "install-version",
63
+ type: "string",
64
+ default: "",
65
+ description: "Install a specific version of Webiny, no matter the version upgrade script is running for. Eg. upgrade script is for 6.5.0 but you want to install 6.5.0-rc.0"
66
+ }],
67
+ handler: async params => {
68
+ /**
69
+ * We assign only what we want so that we don't accidentally pass some parameters that are not relevant to the handler.
70
+ */
71
+ const version = this.getVersion(params);
72
+ return this.upgradeCommandHandler.handle({
73
+ force: params.force || false,
74
+ logLevel: params.logLevel || "info",
75
+ showLogs: params.showLogs || false,
76
+ showStackTrace: params.showStackTrace || false,
77
+ skipChecks: params.skipChecks || false,
78
+ debug: true,
79
+ packageManager: params.packageManager || undefined,
80
+ registry: params.registry || undefined,
81
+ installVersion: params.installVersion || undefined,
82
+ skipDependencyGuard: params.skipDependencyGuard || false,
83
+ version
84
+ });
85
+ }
86
+ };
87
+ }
88
+ getVersion(params) {
89
+ const version = semver.valid(params._[1]) ? params._[1] : params.target;
90
+ if (!version || version === "latest") {
91
+ return "latest";
92
+ }
93
+ if (params.disableSemver) {
94
+ return version;
95
+ }
96
+ try {
97
+ const parsed = semver.parse(version);
98
+ if (!parsed) {
99
+ throw new Error();
100
+ }
101
+ return parsed.format();
102
+ } catch (ex) {
103
+ throw new Error(`Invalid version provided: "${version}". Use --disable-semver to allow non-semver versions: ${ex.message}`);
104
+ }
105
+ }
106
+ }
107
+ export const UpgradeCommand = CliCommandFactory.createImplementation({
108
+ implementation: UpgradeCommandImpl,
109
+ dependencies: [UiService, UpgradeCommandHandler]
110
+ });
111
+
112
+ //# sourceMappingURL=UpgradeCommand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["CliCommandFactory","UiService","UpgradeCommandHandler","semver","UpgradeCommandImpl","constructor","ui","upgradeCommandHandler","execute","name","description","examples","params","type","default","required","options","handler","version","getVersion","handle","force","logLevel","showLogs","showStackTrace","skipChecks","debug","packageManager","undefined","registry","installVersion","skipDependencyGuard","valid","_","target","disableSemver","parsed","parse","Error","format","ex","message","UpgradeCommand","createImplementation","implementation","dependencies"],"sources":["UpgradeCommand.ts"],"sourcesContent":["import { CliCommandFactory, UiService } from \"~/abstractions/index.js\";\nimport { UpgradeCommandHandler } from \"./abstraction.js\";\nimport semver from \"semver\";\n\ninterface UpgradeCommandParams {\n skipChecks?: boolean;\n disableSemver?: boolean;\n debug?: boolean;\n _: string[];\n force?: boolean;\n target?: string;\n logLevel?: string;\n showLogs?: boolean;\n showStackTrace?: boolean;\n version?: string;\n registry?: string;\n packageManager?: string;\n installVersion?: string;\n skipDependencyGuard?: boolean;\n}\n\nclass UpgradeCommandImpl implements CliCommandFactory.Interface<UpgradeCommandParams> {\n public constructor(\n private ui: UiService.Interface,\n private upgradeCommandHandler: UpgradeCommandHandler.Interface\n ) {}\n\n public async execute(): Promise<CliCommandFactory.CommandDefinition<UpgradeCommandParams>> {\n return {\n name: \"upgrade\",\n description:\n \"Upgrade Webiny packages and dependencies to the latest or selected version.\",\n examples: [\"upgrade\", \"upgrade 6.2.0\", \"upgrade 0.0.0-unstable.abc --disable-semver\"],\n params: [\n {\n name: \"target\",\n description:\n \"Target version to upgrade to. Can be a specific version (e.g. 6.2.0) or 'latest' to upgrade to the latest version.\",\n type: \"string\",\n default: \"latest\",\n required: false\n }\n ],\n options: [\n {\n name: \"force\",\n description: \"Force an upgrade for a version, even if it was ran before.\",\n type: \"boolean\",\n default: false\n },\n {\n name: \"skip-checks\",\n description: \"Do not perform CLI version and Git tree checks.\",\n type: \"boolean\",\n default: false\n },\n {\n name: \"log-level\",\n default: \"debug\",\n description: `Set log level for the upgrade process executed by npx. Possible values are \"debug\", \"info\", \"warning\", and \"error\".`,\n type: \"string\"\n },\n {\n name: \"show-logs\",\n default: false,\n description: `Show logs from the upgrade process executed by npx.`,\n type: \"boolean\"\n },\n {\n name: \"show-stack-trace\",\n default: false,\n description: `Show stack trace if the upgrade process executed by npx fails.`,\n type: \"boolean\"\n },\n {\n name: \"registry\",\n type: \"string\",\n default: \"\",\n description: \"registry URL\"\n },\n {\n name: \"package-manager\",\n type: \"string\",\n default: \"\",\n description:\n \"Package manager to use: yarn, pnpm, or npm (auto-detected from lock file if omitted)\"\n },\n {\n name: \"skip-dependency-guard\",\n default: false,\n description: `Skip the dependency guard that checks for incompatible dependencies before performing the upgrade.`,\n type: \"boolean\"\n },\n {\n name: \"install-version\",\n type: \"string\",\n default: \"\",\n description:\n \"Install a specific version of Webiny, no matter the version upgrade script is running for. Eg. upgrade script is for 6.5.0 but you want to install 6.5.0-rc.0\"\n }\n ],\n handler: async params => {\n /**\n * We assign only what we want so that we don't accidentally pass some parameters that are not relevant to the handler.\n */\n const version = this.getVersion(params);\n return this.upgradeCommandHandler.handle({\n force: params.force || false,\n logLevel: params.logLevel || \"info\",\n showLogs: params.showLogs || false,\n showStackTrace: params.showStackTrace || false,\n skipChecks: params.skipChecks || false,\n debug: true,\n packageManager: params.packageManager || undefined,\n registry: params.registry || undefined,\n installVersion: params.installVersion || undefined,\n skipDependencyGuard: params.skipDependencyGuard || false,\n version\n });\n }\n };\n }\n\n private getVersion(params: UpgradeCommandParams): UpgradeCommandHandler.Version {\n const version = semver.valid(params._[1]) ? params._[1] : params.target;\n if (!version || version === \"latest\") {\n return \"latest\";\n }\n if (params.disableSemver) {\n return version as UpgradeCommandHandler.Version;\n }\n\n try {\n const parsed = semver.parse(version);\n if (!parsed) {\n throw new Error();\n }\n return parsed.format() as UpgradeCommandHandler.Version;\n } catch (ex) {\n throw new Error(\n `Invalid version provided: \"${version}\". Use --disable-semver to allow non-semver versions: ${ex.message}`\n );\n }\n }\n}\n\nexport const UpgradeCommand = CliCommandFactory.createImplementation({\n implementation: UpgradeCommandImpl,\n dependencies: [UiService, UpgradeCommandHandler]\n});\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,11 @@
1
+ import { UpgradeCommandHandler as UpgradeCommandHandlerAbstraction } from "./abstraction.js";
2
+ import { UiService } from "../../abstractions/index.js";
3
+ export declare class UpgradeCommandHandlerImpl implements UpgradeCommandHandlerAbstraction.Interface {
4
+ private ui;
5
+ constructor(ui: UiService.Interface);
6
+ handle(params: UpgradeCommandHandlerAbstraction.Params): Promise<void>;
7
+ private output;
8
+ }
9
+ export declare const UpgradeCommandHandler: typeof UpgradeCommandHandlerImpl & {
10
+ __abstraction: import("@webiny/di").Abstraction<import("./abstraction.js").IUpgradeCommandHandler>;
11
+ };
@@ -0,0 +1,113 @@
1
+ import { UpgradeCommandHandler as UpgradeCommandHandlerAbstraction } from "./abstraction.js";
2
+ import chalk from "chalk";
3
+ import execa from "execa";
4
+ import { UiService } from "../../abstractions/index.js";
5
+ const GITHUB_REPOSITORY_URL = "https://github.com/webiny/webiny-upgrades-v6";
6
+ export class UpgradeCommandHandlerImpl {
7
+ constructor(ui) {
8
+ this.ui = ui;
9
+ }
10
+ async handle(params) {
11
+ const {
12
+ version,
13
+ skipChecks,
14
+ debug,
15
+ logLevel,
16
+ showLogs,
17
+ showStackTrace,
18
+ installVersion,
19
+ force
20
+ } = params;
21
+ if (!skipChecks) {
22
+ /**
23
+ * Before doing any upgrading, there must not be any active changes in the current branch.
24
+ */
25
+ let gitStatus = "";
26
+ try {
27
+ const {
28
+ stdout
29
+ } = execa.sync("git", ["status", "--porcelain"]);
30
+ gitStatus = stdout.trim();
31
+ } catch {}
32
+ if (gitStatus) {
33
+ this.ui.error(chalk.red("This git repository has untracked files or uncommitted changes:") + "\n\n" + gitStatus.split("\n").map(line => {
34
+ const matched = line.match(/ .*/g);
35
+ if (!matched || !matched[0]) {
36
+ return "";
37
+ }
38
+ return matched[0].trim();
39
+ }).join("\n") + "\n\n" + chalk.red("Remove untracked files, stash or commit any changes, and try again."));
40
+ process.exit(1);
41
+ }
42
+ }
43
+ const command = [GITHUB_REPOSITORY_URL, version || undefined, debug ? "--debug" : "", showLogs ? `--showLogs=${showLogs}` : "", showStackTrace ? `--showStackTrace=${showStackTrace}` : "", logLevel ? `--logLevel=${logLevel}` : "--logLevel=debug", installVersion ? `--installVersion=${installVersion}` : "", force ? "--force" : "", "--json"].filter(Boolean);
44
+ const npx = execa("npx", command, {
45
+ env: {
46
+ // TODO determine if this actually works
47
+ // @ts-expect-error
48
+ FORCE_COLOR: true
49
+ },
50
+ stdin: process.stdin
51
+ });
52
+ npx.stdout.on("data", data => {
53
+ const lines = data.toString().replace(/\n$/, "").split("\n");
54
+ for (const line of lines) {
55
+ if (!line || !line.trim()) {
56
+ continue;
57
+ }
58
+ this.output(line);
59
+ }
60
+ });
61
+ npx.stderr.on("data", data => {
62
+ this.ui.error(data.toString());
63
+ });
64
+ try {
65
+ await npx;
66
+ } catch (ex) {
67
+ this.ui.error(`Upgrade process failed: ${ex.message}`);
68
+ }
69
+ }
70
+ output(line) {
71
+ try {
72
+ const json = JSON.parse(line);
73
+ switch (json.type) {
74
+ case "debug":
75
+ this.ui.debug(json.message);
76
+ if (!json.data?.stack) {
77
+ return;
78
+ }
79
+ this.ui.debug(json.data?.stack);
80
+ return;
81
+ case "info":
82
+ this.ui.info(json.message);
83
+ return;
84
+ case "success":
85
+ case "done":
86
+ this.ui.success(json.message);
87
+ return;
88
+ case "warning":
89
+ case "warn":
90
+ this.ui.warning(json.message);
91
+ return;
92
+ case "error":
93
+ case "fatal":
94
+ this.ui.error(json.message);
95
+ if (!json.data?.stack) {
96
+ return;
97
+ }
98
+ this.ui.debug(json.data?.stack);
99
+ return;
100
+ default:
101
+ console.log(json);
102
+ }
103
+ } catch {
104
+ console.log(line);
105
+ }
106
+ }
107
+ }
108
+ export const UpgradeCommandHandler = UpgradeCommandHandlerAbstraction.createImplementation({
109
+ implementation: UpgradeCommandHandlerImpl,
110
+ dependencies: [UiService]
111
+ });
112
+
113
+ //# sourceMappingURL=UpgradeCommandHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["UpgradeCommandHandler","UpgradeCommandHandlerAbstraction","chalk","execa","UiService","GITHUB_REPOSITORY_URL","UpgradeCommandHandlerImpl","constructor","ui","handle","params","version","skipChecks","debug","logLevel","showLogs","showStackTrace","installVersion","force","gitStatus","stdout","sync","trim","error","red","split","map","line","matched","match","join","process","exit","command","undefined","filter","Boolean","npx","env","FORCE_COLOR","stdin","on","data","lines","toString","replace","output","stderr","ex","message","json","JSON","parse","type","stack","info","success","warning","console","log","createImplementation","implementation","dependencies"],"sources":["UpgradeCommandHandler.ts"],"sourcesContent":["import { UpgradeCommandHandler as UpgradeCommandHandlerAbstraction } from \"./abstraction.js\";\nimport chalk from \"chalk\";\nimport execa from \"execa\";\nimport { UiService } from \"~/abstractions/index.js\";\n\nconst GITHUB_REPOSITORY_URL = \"https://github.com/webiny/webiny-upgrades-v6\";\n\ntype LogType = \"debug\" | \"success\" | \"warning\" | \"warn\" | \"error\" | \"fatal\" | \"done\" | \"info\";\n\ninterface IUpgradeLine {\n type: LogType;\n message: string;\n data?: {\n stack?: string;\n [key: string]: any;\n };\n}\n\nexport class UpgradeCommandHandlerImpl implements UpgradeCommandHandlerAbstraction.Interface {\n public constructor(private ui: UiService.Interface) {}\n\n public async handle(params: UpgradeCommandHandlerAbstraction.Params): Promise<void> {\n const {\n version,\n skipChecks,\n debug,\n logLevel,\n showLogs,\n showStackTrace,\n installVersion,\n force\n } = params;\n\n if (!skipChecks) {\n /**\n * Before doing any upgrading, there must not be any active changes in the current branch.\n */\n let gitStatus = \"\";\n try {\n const { stdout } = execa.sync(\"git\", [\"status\", \"--porcelain\"]);\n gitStatus = stdout.trim();\n } catch {}\n\n if (gitStatus) {\n this.ui.error(\n chalk.red(\"This git repository has untracked files or uncommitted changes:\") +\n \"\\n\\n\" +\n gitStatus\n .split(\"\\n\")\n .map(line => {\n const matched = line.match(/ .*/g);\n if (!matched || !matched[0]) {\n return \"\";\n }\n return matched[0].trim();\n })\n .join(\"\\n\") +\n \"\\n\\n\" +\n chalk.red(\n \"Remove untracked files, stash or commit any changes, and try again.\"\n )\n );\n process.exit(1);\n }\n }\n\n const command = [\n GITHUB_REPOSITORY_URL,\n version || undefined,\n debug ? \"--debug\" : \"\",\n showLogs ? `--showLogs=${showLogs}` : \"\",\n showStackTrace ? `--showStackTrace=${showStackTrace}` : \"\",\n logLevel ? `--logLevel=${logLevel}` : \"--logLevel=debug\",\n installVersion ? `--installVersion=${installVersion}` : \"\",\n force ? \"--force\" : \"\",\n \"--json\"\n ].filter(Boolean);\n\n const npx = execa(\"npx\", command, {\n env: {\n // TODO determine if this actually works\n // @ts-expect-error\n FORCE_COLOR: true\n },\n stdin: process.stdin\n });\n\n npx.stdout!.on(\"data\", data => {\n const lines = data.toString().replace(/\\n$/, \"\").split(\"\\n\") as string[];\n for (const line of lines) {\n if (!line || !line.trim()) {\n continue;\n }\n this.output(line);\n }\n });\n\n npx.stderr!.on(\"data\", data => {\n this.ui.error(data.toString());\n });\n\n try {\n await npx;\n } catch (ex) {\n this.ui.error(`Upgrade process failed: ${ex.message}`);\n }\n }\n\n private output(line: string): void {\n try {\n const json = JSON.parse(line) as IUpgradeLine;\n switch (json.type) {\n case \"debug\":\n this.ui.debug(json.message);\n if (!json.data?.stack) {\n return;\n }\n this.ui.debug(json.data?.stack);\n return;\n case \"info\":\n this.ui.info(json.message);\n return;\n case \"success\":\n case \"done\":\n this.ui.success(json.message);\n return;\n case \"warning\":\n case \"warn\":\n this.ui.warning(json.message);\n return;\n case \"error\":\n case \"fatal\":\n this.ui.error(json.message);\n if (!json.data?.stack) {\n return;\n }\n this.ui.debug(json.data?.stack);\n return;\n default:\n console.log(json);\n }\n } catch {\n console.log(line);\n }\n }\n}\n\nexport const UpgradeCommandHandler = UpgradeCommandHandlerAbstraction.createImplementation({\n implementation: UpgradeCommandHandlerImpl,\n dependencies: [UiService]\n});\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,23 @@
1
+ export type UpgradeCommandPackageVersion = `${number}.${number}.${number}` | "latest";
2
+ export interface IUpgradeCommandHandlerHandleParams {
3
+ force: boolean;
4
+ showLogs: boolean;
5
+ logLevel: string;
6
+ showStackTrace: boolean;
7
+ skipChecks: boolean;
8
+ debug: boolean;
9
+ version: UpgradeCommandPackageVersion;
10
+ packageManager?: string;
11
+ registry?: string;
12
+ skipDependencyGuard?: boolean;
13
+ installVersion?: string;
14
+ }
15
+ export interface IUpgradeCommandHandler {
16
+ handle(params: IUpgradeCommandHandlerHandleParams): Promise<void>;
17
+ }
18
+ export declare const UpgradeCommandHandler: import("@webiny/di").Abstraction<IUpgradeCommandHandler>;
19
+ export declare namespace UpgradeCommandHandler {
20
+ type Interface = IUpgradeCommandHandler;
21
+ type Params = IUpgradeCommandHandlerHandleParams;
22
+ type Version = UpgradeCommandPackageVersion;
23
+ }
@@ -0,0 +1,4 @@
1
+ import { createAbstraction } from "../../abstractions/createAbstraction.js";
2
+ export const UpgradeCommandHandler = createAbstraction("Cli/Core/UpgradeCommandHandler");
3
+
4
+ //# sourceMappingURL=abstraction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createAbstraction","UpgradeCommandHandler"],"sources":["abstraction.ts"],"sourcesContent":["import { createAbstraction } from \"~/abstractions/createAbstraction.js\";\n\nexport type UpgradeCommandPackageVersion = `${number}.${number}.${number}` | \"latest\";\n\nexport interface IUpgradeCommandHandlerHandleParams {\n force: boolean;\n showLogs: boolean;\n logLevel: string;\n showStackTrace: boolean;\n skipChecks: boolean;\n debug: boolean;\n version: UpgradeCommandPackageVersion;\n packageManager?: string;\n registry?: string;\n skipDependencyGuard?: boolean;\n installVersion?: string;\n}\n\nexport interface IUpgradeCommandHandler {\n handle(params: IUpgradeCommandHandlerHandleParams): Promise<void>;\n}\n\nexport const UpgradeCommandHandler = createAbstraction<IUpgradeCommandHandler>(\n \"Cli/Core/UpgradeCommandHandler\"\n);\n\nexport namespace UpgradeCommandHandler {\n export type Interface = IUpgradeCommandHandler;\n export type Params = IUpgradeCommandHandlerHandleParams;\n export type Version = UpgradeCommandPackageVersion;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB;AAsB1B,OAAO,MAAMC,qBAAqB,GAAGD,iBAAiB,CAClD,gCACJ,CAAC","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ export declare const UpgradeCommandFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -0,0 +1,12 @@
1
+ import { createFeature } from "@webiny/feature/api";
2
+ import { UpgradeCommandHandler } from "./UpgradeCommandHandler.js";
3
+ import { UpgradeCommand } from "./UpgradeCommand.js";
4
+ export const UpgradeCommandFeature = createFeature({
5
+ name: "Command/Upgrade",
6
+ register(container) {
7
+ container.register(UpgradeCommand).inSingletonScope();
8
+ container.register(UpgradeCommandHandler);
9
+ }
10
+ });
11
+
12
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createFeature","UpgradeCommandHandler","UpgradeCommand","UpgradeCommandFeature","name","register","container","inSingletonScope"],"sources":["feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { UpgradeCommandHandler } from \"./UpgradeCommandHandler.js\";\nimport { UpgradeCommand } from \"./UpgradeCommand.js\";\n\nexport const UpgradeCommandFeature = createFeature({\n name: \"Command/Upgrade\",\n register(container) {\n container.register(UpgradeCommand).inSingletonScope();\n container.register(UpgradeCommandHandler);\n }\n});\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,qBAAqB;AACnD,SAASC,qBAAqB;AAC9B,SAASC,cAAc;AAEvB,OAAO,MAAMC,qBAAqB,GAAGH,aAAa,CAAC;EAC/CI,IAAI,EAAE,iBAAiB;EACvBC,QAAQA,CAACC,SAAS,EAAE;IAChBA,SAAS,CAACD,QAAQ,CAACH,cAAc,CAAC,CAACK,gBAAgB,CAAC,CAAC;IACrDD,SAAS,CAACD,QAAQ,CAACJ,qBAAqB,CAAC;EAC7C;AACJ,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ export { UpgradeCommandFeature } from "./feature.js";
2
+ export { UpgradeCommandHandler } from "./UpgradeCommandHandler.js";
@@ -0,0 +1,4 @@
1
+ export { UpgradeCommandFeature } from "./feature.js";
2
+ export { UpgradeCommandHandler } from "./UpgradeCommandHandler.js";
3
+
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["UpgradeCommandFeature","UpgradeCommandHandler"],"sources":["index.ts"],"sourcesContent":["export { UpgradeCommandFeature } from \"./feature.js\";\nexport { UpgradeCommandHandler } from \"./UpgradeCommandHandler.js\";\n"],"mappings":"AAAA,SAASA,qBAAqB;AAC9B,SAASC,qBAAqB","ignoreList":[]}
@@ -77,7 +77,7 @@ export class LinkProjectCommand {
77
77
  selectedOrg = await prompt({
78
78
  name: "org",
79
79
  message: "Select organization:",
80
- type: "list",
80
+ type: "select",
81
81
  choices,
82
82
  default: choices[0].value
83
83
  }).then(result => result.org);
@@ -114,7 +114,7 @@ export class LinkProjectCommand {
114
114
  selectedProject = await prompt({
115
115
  name: "project",
116
116
  message: "Select project:",
117
- type: "list",
117
+ type: "select",
118
118
  choices,
119
119
  default: choices[0].value
120
120
  }).then(result => result.project);
@@ -125,7 +125,7 @@ export class LinkProjectCommand {
125
125
  await sleep();
126
126
 
127
127
  // Assign the necessary IDs into root `webiny.project.ts` project file.
128
- await projectSdk.setProjectId(selectedProject.id, {
128
+ await projectSdk.setProjectId(`${selectedOrg.id}/${selectedProject.id}`, {
129
129
  force: true
130
130
  });
131
131
  ui.success(`%s Project %s linked successfully.`, "✔", selectedProject.name);
@@ -1 +1 @@
1
- {"version":3,"names":["createImplementation","inquirer","CliCommandFactory","GetProjectSdkService","UiService","setTimeout","sleep","ms","LinkProjectCommand","constructor","getProjectSdkService","uiService","execute","projectSdk","wcp","ui","name","description","examples","handler","user","getUser","error","orgProjectId","getProjectId","projectId","split","project","projects","find","item","id","info","prompt","createPromptModule","proceed","message","type","default","emptyLine","wcpAppUrl","getWcpAppUrl","toString","orgs","length","open","selectedOrg","choices","map","value","then","result","org","orgProjects","filter","selectedProject","setProjectId","force","success","textBold","text","linkProjectCommand","abstraction","implementation","dependencies"],"sources":["LinkProjectCommand.ts"],"sourcesContent":["import { createImplementation } from \"@webiny/di\";\nimport inquirer from \"inquirer\";\nimport { CliCommandFactory, GetProjectSdkService, UiService } from \"~/abstractions/index.js\";\nimport { setTimeout } from \"node:timers/promises\";\n\nconst sleep = (ms: number = 1500) => setTimeout(ms);\n\nexport class LinkProjectCommand implements CliCommandFactory.Interface<void> {\n constructor(\n private getProjectSdkService: GetProjectSdkService.Interface,\n private uiService: UiService.Interface\n ) {}\n\n async execute() {\n const projectSdk = await this.getProjectSdkService.execute();\n const wcp = projectSdk.wcp;\n const ui = this.uiService;\n\n return {\n name: \"link-project\",\n description: \"Link a Webiny project with Webiny Control Panel\",\n examples: [\"$0 link-project\"],\n handler: async () => {\n const user = await wcp.getUser();\n\n if (!user) {\n ui.error(\"You must be logged in to link a project.\");\n return;\n }\n\n // User already linked a project?\n const orgProjectId = await projectSdk.getProjectId();\n if (orgProjectId) {\n const [, projectId] = orgProjectId.split(\"/\");\n const project = user.projects.find(item => item.id === projectId);\n if (project) {\n ui.info(\"Your %s project is already linked.\", orgProjectId);\n\n const prompt = inquirer.createPromptModule();\n const { proceed } = await prompt({\n name: \"proceed\",\n message: \"Would you like to re-link it?\",\n type: \"confirm\",\n default: false\n });\n\n if (!proceed) {\n return;\n }\n\n ui.emptyLine();\n }\n }\n\n const wcpAppUrl = projectSdk.wcp.getWcpAppUrl().toString();\n\n // Get user's organizations.\n if (!user.orgs.length) {\n ui.info(\n \"It seems you're not part of any organization. Please log in to Webiny Control Panel and create one.\"\n );\n\n const prompt = inquirer.createPromptModule();\n const { proceed } = await prompt({\n name: \"proceed\",\n message: \"Would you like to do that now?\",\n type: \"confirm\",\n default: false\n });\n\n if (proceed) {\n open(wcpAppUrl);\n }\n return;\n }\n\n let selectedOrg;\n if (user.orgs.length === 1) {\n selectedOrg = user.orgs[0];\n } else {\n ui.info(\"It seems you're part of multiple organizations. \");\n const choices = user.orgs.map(item => ({\n name: item.name,\n value: item\n }));\n\n const prompt = inquirer.createPromptModule();\n selectedOrg = await prompt({\n name: \"org\",\n message: \"Select organization:\",\n type: \"list\",\n choices,\n default: choices[0].value\n }).then(result => result.org);\n }\n\n const orgProjects = user.projects.filter(item => item.org.id === selectedOrg.id);\n\n // Get user's projects.\n if (!orgProjects.length) {\n ui.info(\n \"It seems there are no projects created within the %s organization.\",\n selectedOrg.name\n );\n\n const prompt = inquirer.createPromptModule();\n const { proceed } = await prompt({\n name: \"proceed\",\n message: \"Would you like to create one now?\",\n type: \"confirm\",\n default: false\n });\n\n if (proceed) {\n open(wcpAppUrl);\n }\n return;\n }\n\n let selectedProject;\n if (orgProjects.length === 1) {\n selectedProject = user.projects[0];\n } else {\n ui.info(\n `It seems there are multiple projects created within the organization.`,\n selectedOrg.name\n );\n const choices = orgProjects.map(item => ({\n name: item.name,\n value: item\n }));\n const prompt = inquirer.createPromptModule();\n selectedProject = await prompt({\n name: \"project\",\n message: \"Select project:\",\n type: \"list\",\n choices,\n default: choices[0].value\n }).then(result => result.project);\n }\n\n await sleep();\n ui.emptyLine();\n\n ui.info(\"Linking %s project...\", selectedProject.name);\n\n await sleep();\n\n // Assign the necessary IDs into root `webiny.project.ts` project file.\n await projectSdk.setProjectId(selectedProject.id, { force: true });\n\n ui.success(`%s Project %s linked successfully.`, \"✔\", selectedProject.name);\n\n await sleep();\n\n ui.emptyLine();\n ui.textBold(\"Next Steps\");\n\n ui.text(`‣ deploy your project via the yarn webiny deploy command`);\n }\n };\n }\n}\n\nexport const linkProjectCommand = createImplementation({\n abstraction: CliCommandFactory,\n implementation: LinkProjectCommand,\n dependencies: [GetProjectSdkService, UiService]\n});\n"],"mappings":"AAAA,SAASA,oBAAoB,QAAQ,YAAY;AACjD,OAAOC,QAAQ,MAAM,UAAU;AAC/B,SAASC,iBAAiB,EAAEC,oBAAoB,EAAEC,SAAS;AAC3D,SAASC,UAAU,QAAQ,sBAAsB;AAEjD,MAAMC,KAAK,GAAGA,CAACC,EAAU,GAAG,IAAI,KAAKF,UAAU,CAACE,EAAE,CAAC;AAEnD,OAAO,MAAMC,kBAAkB,CAA8C;EACzEC,WAAWA,CACCC,oBAAoD,EACpDC,SAA8B,EACxC;IAAA,KAFUD,oBAAoD,GAApDA,oBAAoD;IAAA,KACpDC,SAA8B,GAA9BA,SAA8B;EACvC;EAEH,MAAMC,OAAOA,CAAA,EAAG;IACZ,MAAMC,UAAU,GAAG,MAAM,IAAI,CAACH,oBAAoB,CAACE,OAAO,CAAC,CAAC;IAC5D,MAAME,GAAG,GAAGD,UAAU,CAACC,GAAG;IAC1B,MAAMC,EAAE,GAAG,IAAI,CAACJ,SAAS;IAEzB,OAAO;MACHK,IAAI,EAAE,cAAc;MACpBC,WAAW,EAAE,iDAAiD;MAC9DC,QAAQ,EAAE,CAAC,iBAAiB,CAAC;MAC7BC,OAAO,EAAE,MAAAA,CAAA,KAAY;QACjB,MAAMC,IAAI,GAAG,MAAMN,GAAG,CAACO,OAAO,CAAC,CAAC;QAEhC,IAAI,CAACD,IAAI,EAAE;UACPL,EAAE,CAACO,KAAK,CAAC,0CAA0C,CAAC;UACpD;QACJ;;QAEA;QACA,MAAMC,YAAY,GAAG,MAAMV,UAAU,CAACW,YAAY,CAAC,CAAC;QACpD,IAAID,YAAY,EAAE;UACd,MAAM,GAAGE,SAAS,CAAC,GAAGF,YAAY,CAACG,KAAK,CAAC,GAAG,CAAC;UAC7C,MAAMC,OAAO,GAAGP,IAAI,CAACQ,QAAQ,CAACC,IAAI,CAACC,IAAI,IAAIA,IAAI,CAACC,EAAE,KAAKN,SAAS,CAAC;UACjE,IAAIE,OAAO,EAAE;YACTZ,EAAE,CAACiB,IAAI,CAAC,oCAAoC,EAAET,YAAY,CAAC;YAE3D,MAAMU,MAAM,GAAGhC,QAAQ,CAACiC,kBAAkB,CAAC,CAAC;YAC5C,MAAM;cAAEC;YAAQ,CAAC,GAAG,MAAMF,MAAM,CAAC;cAC7BjB,IAAI,EAAE,SAAS;cACfoB,OAAO,EAAE,+BAA+B;cACxCC,IAAI,EAAE,SAAS;cACfC,OAAO,EAAE;YACb,CAAC,CAAC;YAEF,IAAI,CAACH,OAAO,EAAE;cACV;YACJ;YAEApB,EAAE,CAACwB,SAAS,CAAC,CAAC;UAClB;QACJ;QAEA,MAAMC,SAAS,GAAG3B,UAAU,CAACC,GAAG,CAAC2B,YAAY,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC;;QAE1D;QACA,IAAI,CAACtB,IAAI,CAACuB,IAAI,CAACC,MAAM,EAAE;UACnB7B,EAAE,CAACiB,IAAI,CACH,qGACJ,CAAC;UAED,MAAMC,MAAM,GAAGhC,QAAQ,CAACiC,kBAAkB,CAAC,CAAC;UAC5C,MAAM;YAAEC;UAAQ,CAAC,GAAG,MAAMF,MAAM,CAAC;YAC7BjB,IAAI,EAAE,SAAS;YACfoB,OAAO,EAAE,gCAAgC;YACzCC,IAAI,EAAE,SAAS;YACfC,OAAO,EAAE;UACb,CAAC,CAAC;UAEF,IAAIH,OAAO,EAAE;YACTU,IAAI,CAACL,SAAS,CAAC;UACnB;UACA;QACJ;QAEA,IAAIM,WAAW;QACf,IAAI1B,IAAI,CAACuB,IAAI,CAACC,MAAM,KAAK,CAAC,EAAE;UACxBE,WAAW,GAAG1B,IAAI,CAACuB,IAAI,CAAC,CAAC,CAAC;QAC9B,CAAC,MAAM;UACH5B,EAAE,CAACiB,IAAI,CAAC,kDAAkD,CAAC;UAC3D,MAAMe,OAAO,GAAG3B,IAAI,CAACuB,IAAI,CAACK,GAAG,CAAClB,IAAI,KAAK;YACnCd,IAAI,EAAEc,IAAI,CAACd,IAAI;YACfiC,KAAK,EAAEnB;UACX,CAAC,CAAC,CAAC;UAEH,MAAMG,MAAM,GAAGhC,QAAQ,CAACiC,kBAAkB,CAAC,CAAC;UAC5CY,WAAW,GAAG,MAAMb,MAAM,CAAC;YACvBjB,IAAI,EAAE,KAAK;YACXoB,OAAO,EAAE,sBAAsB;YAC/BC,IAAI,EAAE,MAAM;YACZU,OAAO;YACPT,OAAO,EAAES,OAAO,CAAC,CAAC,CAAC,CAACE;UACxB,CAAC,CAAC,CAACC,IAAI,CAACC,MAAM,IAAIA,MAAM,CAACC,GAAG,CAAC;QACjC;QAEA,MAAMC,WAAW,GAAGjC,IAAI,CAACQ,QAAQ,CAAC0B,MAAM,CAACxB,IAAI,IAAIA,IAAI,CAACsB,GAAG,CAACrB,EAAE,KAAKe,WAAW,CAACf,EAAE,CAAC;;QAEhF;QACA,IAAI,CAACsB,WAAW,CAACT,MAAM,EAAE;UACrB7B,EAAE,CAACiB,IAAI,CACH,oEAAoE,EACpEc,WAAW,CAAC9B,IAChB,CAAC;UAED,MAAMiB,MAAM,GAAGhC,QAAQ,CAACiC,kBAAkB,CAAC,CAAC;UAC5C,MAAM;YAAEC;UAAQ,CAAC,GAAG,MAAMF,MAAM,CAAC;YAC7BjB,IAAI,EAAE,SAAS;YACfoB,OAAO,EAAE,mCAAmC;YAC5CC,IAAI,EAAE,SAAS;YACfC,OAAO,EAAE;UACb,CAAC,CAAC;UAEF,IAAIH,OAAO,EAAE;YACTU,IAAI,CAACL,SAAS,CAAC;UACnB;UACA;QACJ;QAEA,IAAIe,eAAe;QACnB,IAAIF,WAAW,CAACT,MAAM,KAAK,CAAC,EAAE;UAC1BW,eAAe,GAAGnC,IAAI,CAACQ,QAAQ,CAAC,CAAC,CAAC;QACtC,CAAC,MAAM;UACHb,EAAE,CAACiB,IAAI,CACH,uEAAuE,EACvEc,WAAW,CAAC9B,IAChB,CAAC;UACD,MAAM+B,OAAO,GAAGM,WAAW,CAACL,GAAG,CAAClB,IAAI,KAAK;YACrCd,IAAI,EAAEc,IAAI,CAACd,IAAI;YACfiC,KAAK,EAAEnB;UACX,CAAC,CAAC,CAAC;UACH,MAAMG,MAAM,GAAGhC,QAAQ,CAACiC,kBAAkB,CAAC,CAAC;UAC5CqB,eAAe,GAAG,MAAMtB,MAAM,CAAC;YAC3BjB,IAAI,EAAE,SAAS;YACfoB,OAAO,EAAE,iBAAiB;YAC1BC,IAAI,EAAE,MAAM;YACZU,OAAO;YACPT,OAAO,EAAES,OAAO,CAAC,CAAC,CAAC,CAACE;UACxB,CAAC,CAAC,CAACC,IAAI,CAACC,MAAM,IAAIA,MAAM,CAACxB,OAAO,CAAC;QACrC;QAEA,MAAMrB,KAAK,CAAC,CAAC;QACbS,EAAE,CAACwB,SAAS,CAAC,CAAC;QAEdxB,EAAE,CAACiB,IAAI,CAAC,uBAAuB,EAAEuB,eAAe,CAACvC,IAAI,CAAC;QAEtD,MAAMV,KAAK,CAAC,CAAC;;QAEb;QACA,MAAMO,UAAU,CAAC2C,YAAY,CAACD,eAAe,CAACxB,EAAE,EAAE;UAAE0B,KAAK,EAAE;QAAK,CAAC,CAAC;QAElE1C,EAAE,CAAC2C,OAAO,CAAC,oCAAoC,EAAE,GAAG,EAAEH,eAAe,CAACvC,IAAI,CAAC;QAE3E,MAAMV,KAAK,CAAC,CAAC;QAEbS,EAAE,CAACwB,SAAS,CAAC,CAAC;QACdxB,EAAE,CAAC4C,QAAQ,CAAC,YAAY,CAAC;QAEzB5C,EAAE,CAAC6C,IAAI,CAAC,0DAA0D,CAAC;MACvE;IACJ,CAAC;EACL;AACJ;AAEA,OAAO,MAAMC,kBAAkB,GAAG7D,oBAAoB,CAAC;EACnD8D,WAAW,EAAE5D,iBAAiB;EAC9B6D,cAAc,EAAEvD,kBAAkB;EAClCwD,YAAY,EAAE,CAAC7D,oBAAoB,EAAEC,SAAS;AAClD,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["createImplementation","inquirer","CliCommandFactory","GetProjectSdkService","UiService","setTimeout","sleep","ms","LinkProjectCommand","constructor","getProjectSdkService","uiService","execute","projectSdk","wcp","ui","name","description","examples","handler","user","getUser","error","orgProjectId","getProjectId","projectId","split","project","projects","find","item","id","info","prompt","createPromptModule","proceed","message","type","default","emptyLine","wcpAppUrl","getWcpAppUrl","toString","orgs","length","open","selectedOrg","choices","map","value","then","result","org","orgProjects","filter","selectedProject","setProjectId","force","success","textBold","text","linkProjectCommand","abstraction","implementation","dependencies"],"sources":["LinkProjectCommand.ts"],"sourcesContent":["import { createImplementation } from \"@webiny/di\";\nimport inquirer from \"inquirer\";\nimport { CliCommandFactory, GetProjectSdkService, UiService } from \"~/abstractions/index.js\";\nimport { setTimeout } from \"node:timers/promises\";\n\nconst sleep = (ms: number = 1500) => setTimeout(ms);\n\nexport class LinkProjectCommand implements CliCommandFactory.Interface<void> {\n constructor(\n private getProjectSdkService: GetProjectSdkService.Interface,\n private uiService: UiService.Interface\n ) {}\n\n async execute() {\n const projectSdk = await this.getProjectSdkService.execute();\n const wcp = projectSdk.wcp;\n const ui = this.uiService;\n\n return {\n name: \"link-project\",\n description: \"Link a Webiny project with Webiny Control Panel\",\n examples: [\"$0 link-project\"],\n handler: async () => {\n const user = await wcp.getUser();\n\n if (!user) {\n ui.error(\"You must be logged in to link a project.\");\n return;\n }\n\n // User already linked a project?\n const orgProjectId = await projectSdk.getProjectId();\n if (orgProjectId) {\n const [, projectId] = orgProjectId.split(\"/\");\n const project = user.projects.find(item => item.id === projectId);\n if (project) {\n ui.info(\"Your %s project is already linked.\", orgProjectId);\n\n const prompt = inquirer.createPromptModule();\n const { proceed } = await prompt({\n name: \"proceed\",\n message: \"Would you like to re-link it?\",\n type: \"confirm\",\n default: false\n });\n\n if (!proceed) {\n return;\n }\n\n ui.emptyLine();\n }\n }\n\n const wcpAppUrl = projectSdk.wcp.getWcpAppUrl().toString();\n\n // Get user's organizations.\n if (!user.orgs.length) {\n ui.info(\n \"It seems you're not part of any organization. Please log in to Webiny Control Panel and create one.\"\n );\n\n const prompt = inquirer.createPromptModule();\n const { proceed } = await prompt({\n name: \"proceed\",\n message: \"Would you like to do that now?\",\n type: \"confirm\",\n default: false\n });\n\n if (proceed) {\n open(wcpAppUrl);\n }\n return;\n }\n\n let selectedOrg;\n if (user.orgs.length === 1) {\n selectedOrg = user.orgs[0];\n } else {\n ui.info(\"It seems you're part of multiple organizations. \");\n const choices = user.orgs.map(item => ({\n name: item.name,\n value: item\n }));\n\n const prompt = inquirer.createPromptModule();\n selectedOrg = await prompt({\n name: \"org\",\n message: \"Select organization:\",\n type: \"select\",\n choices,\n default: choices[0].value\n }).then(result => result.org);\n }\n\n const orgProjects = user.projects.filter(item => item.org.id === selectedOrg.id);\n\n // Get user's projects.\n if (!orgProjects.length) {\n ui.info(\n \"It seems there are no projects created within the %s organization.\",\n selectedOrg.name\n );\n\n const prompt = inquirer.createPromptModule();\n const { proceed } = await prompt({\n name: \"proceed\",\n message: \"Would you like to create one now?\",\n type: \"confirm\",\n default: false\n });\n\n if (proceed) {\n open(wcpAppUrl);\n }\n return;\n }\n\n let selectedProject;\n if (orgProjects.length === 1) {\n selectedProject = user.projects[0];\n } else {\n ui.info(\n `It seems there are multiple projects created within the organization.`,\n selectedOrg.name\n );\n const choices = orgProjects.map(item => ({\n name: item.name,\n value: item\n }));\n const prompt = inquirer.createPromptModule();\n selectedProject = await prompt({\n name: \"project\",\n message: \"Select project:\",\n type: \"select\",\n choices,\n default: choices[0].value\n }).then(result => result.project);\n }\n\n await sleep();\n ui.emptyLine();\n\n ui.info(\"Linking %s project...\", selectedProject.name);\n\n await sleep();\n\n // Assign the necessary IDs into root `webiny.project.ts` project file.\n await projectSdk.setProjectId(`${selectedOrg.id}/${selectedProject.id}`, {\n force: true\n });\n\n ui.success(`%s Project %s linked successfully.`, \"✔\", selectedProject.name);\n\n await sleep();\n\n ui.emptyLine();\n ui.textBold(\"Next Steps\");\n\n ui.text(`‣ deploy your project via the yarn webiny deploy command`);\n }\n };\n }\n}\n\nexport const linkProjectCommand = createImplementation({\n abstraction: CliCommandFactory,\n implementation: LinkProjectCommand,\n dependencies: [GetProjectSdkService, UiService]\n});\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["createImplementation","ErrorHandler","GracefulError","MATCH_STRING","LEARN_MORE_URL","DdbPutItemConditionalCheckFailedGracefulErrorHandler","execute","error","message","includes","join","from","ddbPutItemConditionalCheckFailedGracefulErrorHandler","abstraction","implementation","dependencies"],"sources":["DdbPutItemConditionalCheckFailedGracefulErrorHandler.ts"],"sourcesContent":["import { createImplementation } from \"@webiny/di\";\nimport { ErrorHandler } from \"~/abstractions/index.js\";\nimport { IBaseAppParams } from \"~/abstractions/features/types.js\";\nimport { GracefulError } from \"@webiny/project\";\n\nconst MATCH_STRING = \"ConditionalCheckFailedException: The conditional request failed\";\nconst LEARN_MORE_URL = \"https://webiny.link/deployment-ddb-conditional-check-failed\";\n\nexport class DdbPutItemConditionalCheckFailedGracefulErrorHandler\n implements ErrorHandler.Interface<IBaseAppParams>\n{\n execute({ error }: ErrorHandler.Params<IBaseAppParams>) {\n if (!error.message) {\n return;\n }\n\n if (!error.message.includes(MATCH_STRING)) {\n return;\n }\n\n const message = [\n `Looks like the deployment failed because Pulumi tried to insert a`,\n `record into a DynamoDB table, but the record already exists. The`,\n `easiest way to resolve this is to delete the record from the`,\n `table and try again.`,\n `Learn more: ${LEARN_MORE_URL}`\n ].join(\" \");\n\n throw GracefulError.from(error, message);\n }\n}\n\nexport const ddbPutItemConditionalCheckFailedGracefulErrorHandler = createImplementation({\n abstraction: ErrorHandler,\n implementation: DdbPutItemConditionalCheckFailedGracefulErrorHandler,\n dependencies: []\n});\n"],"mappings":"AAAA,SAASA,oBAAoB,QAAQ,YAAY;AACjD,SAASC,YAAY;AAErB,SAASC,aAAa,QAAQ,iBAAiB;AAE/C,MAAMC,YAAY,GAAG,iEAAiE;AACtF,MAAMC,cAAc,GAAG,6DAA6D;AAEpF,OAAO,MAAMC,oDAAoD,CAEjE;EACIC,OAAOA,CAAC;IAAEC;EAA2C,CAAC,EAAE;IACpD,IAAI,CAACA,KAAK,CAACC,OAAO,EAAE;MAChB;IACJ;IAEA,IAAI,CAACD,KAAK,CAACC,OAAO,CAACC,QAAQ,CAACN,YAAY,CAAC,EAAE;MACvC;IACJ;IAEA,MAAMK,OAAO,GAAG,CACZ,mEAAmE,EACnE,kEAAkE,EAClE,8DAA8D,EAC9D,sBAAsB,EACtB,eAAeJ,cAAc,EAAE,CAClC,CAACM,IAAI,CAAC,GAAG,CAAC;IAEX,MAAMR,aAAa,CAACS,IAAI,CAACJ,KAAK,EAAEC,OAAO,CAAC;EAC5C;AACJ;AAEA,OAAO,MAAMI,oDAAoD,GAAGZ,oBAAoB,CAAC;EACrFa,WAAW,EAAEZ,YAAY;EACzBa,cAAc,EAAET,oDAAoD;EACpEU,YAAY,EAAE;AAClB,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["createImplementation","ErrorHandler","GracefulError","MATCH_STRING","LEARN_MORE_URL","DdbPutItemConditionalCheckFailedGracefulErrorHandler","execute","error","message","includes","join","from","ddbPutItemConditionalCheckFailedGracefulErrorHandler","abstraction","implementation","dependencies"],"sources":["DdbPutItemConditionalCheckFailedGracefulErrorHandler.ts"],"sourcesContent":["import { createImplementation } from \"@webiny/di\";\nimport { ErrorHandler } from \"~/abstractions/index.js\";\nimport { IBaseAppParams } from \"~/abstractions/features/types.js\";\nimport { GracefulError } from \"@webiny/project\";\n\nconst MATCH_STRING = \"ConditionalCheckFailedException: The conditional request failed\";\nconst LEARN_MORE_URL = \"https://webiny.link/deployment-ddb-conditional-check-failed\";\n\nexport class DdbPutItemConditionalCheckFailedGracefulErrorHandler implements ErrorHandler.Interface<IBaseAppParams> {\n execute({ error }: ErrorHandler.Params<IBaseAppParams>) {\n if (!error.message) {\n return;\n }\n\n if (!error.message.includes(MATCH_STRING)) {\n return;\n }\n\n const message = [\n `Looks like the deployment failed because Pulumi tried to insert a`,\n `record into a DynamoDB table, but the record already exists. The`,\n `easiest way to resolve this is to delete the record from the`,\n `table and try again.`,\n `Learn more: ${LEARN_MORE_URL}`\n ].join(\" \");\n\n throw GracefulError.from(error, message);\n }\n}\n\nexport const ddbPutItemConditionalCheckFailedGracefulErrorHandler = createImplementation({\n abstraction: ErrorHandler,\n implementation: DdbPutItemConditionalCheckFailedGracefulErrorHandler,\n dependencies: []\n});\n"],"mappings":"AAAA,SAASA,oBAAoB,QAAQ,YAAY;AACjD,SAASC,YAAY;AAErB,SAASC,aAAa,QAAQ,iBAAiB;AAE/C,MAAMC,YAAY,GAAG,iEAAiE;AACtF,MAAMC,cAAc,GAAG,6DAA6D;AAEpF,OAAO,MAAMC,oDAAoD,CAAmD;EAChHC,OAAOA,CAAC;IAAEC;EAA2C,CAAC,EAAE;IACpD,IAAI,CAACA,KAAK,CAACC,OAAO,EAAE;MAChB;IACJ;IAEA,IAAI,CAACD,KAAK,CAACC,OAAO,CAACC,QAAQ,CAACN,YAAY,CAAC,EAAE;MACvC;IACJ;IAEA,MAAMK,OAAO,GAAG,CACZ,mEAAmE,EACnE,kEAAkE,EAClE,8DAA8D,EAC9D,sBAAsB,EACtB,eAAeJ,cAAc,EAAE,CAClC,CAACM,IAAI,CAAC,GAAG,CAAC;IAEX,MAAMR,aAAa,CAACS,IAAI,CAACJ,KAAK,EAAEC,OAAO,CAAC;EAC5C;AACJ;AAEA,OAAO,MAAMI,oDAAoD,GAAGZ,oBAAoB,CAAC;EACrFa,WAAW,EAAEZ,YAAY;EACzBa,cAAc,EAAET,oDAAoD;EACpEU,YAAY,EAAE;AAClB,CAAC,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["createImplementation","ErrorHandler","GracefulError","MATCH_STRING","MissingFilesInBuildGracefulErrorHandler","execute","error","params","message","includes","join","cmd","app","env","from","missingFilesInBuildGracefulErrorHandler","abstraction","implementation","dependencies"],"sources":["MissingFilesInBuildGracefulErrorHandler.ts"],"sourcesContent":["import { createImplementation } from \"@webiny/di\";\nimport { ErrorHandler } from \"~/abstractions/index.js\";\nimport { IBaseAppParams } from \"~/abstractions/features/types.js\";\nimport { GracefulError } from \"@webiny/project\";\n\nconst MATCH_STRING = \"failed to compute archive hash for\";\n\nexport class MissingFilesInBuildGracefulErrorHandler\n implements ErrorHandler.Interface<IBaseAppParams>\n{\n execute({ error, params }: ErrorHandler.Params<IBaseAppParams>) {\n if (!error.message) {\n return;\n }\n\n if (!error.message.includes(MATCH_STRING)) {\n return;\n }\n\n const message = [\n \"Looks like the deployment failed because Pulumi could not retrieve the built code.\",\n \"Please try again, or, alternatively, try building the app you're\",\n \"trying to deploy by running %s.\"\n ].join(\" \");\n\n const cmd = `yarn webiny build ${params.app} --env ${params.env}`;\n throw GracefulError.from(error, message, cmd);\n }\n}\n\nexport const missingFilesInBuildGracefulErrorHandler = createImplementation({\n abstraction: ErrorHandler,\n implementation: MissingFilesInBuildGracefulErrorHandler,\n dependencies: []\n});\n"],"mappings":"AAAA,SAASA,oBAAoB,QAAQ,YAAY;AACjD,SAASC,YAAY;AAErB,SAASC,aAAa,QAAQ,iBAAiB;AAE/C,MAAMC,YAAY,GAAG,oCAAoC;AAEzD,OAAO,MAAMC,uCAAuC,CAEpD;EACIC,OAAOA,CAAC;IAAEC,KAAK;IAAEC;EAA4C,CAAC,EAAE;IAC5D,IAAI,CAACD,KAAK,CAACE,OAAO,EAAE;MAChB;IACJ;IAEA,IAAI,CAACF,KAAK,CAACE,OAAO,CAACC,QAAQ,CAACN,YAAY,CAAC,EAAE;MACvC;IACJ;IAEA,MAAMK,OAAO,GAAG,CACZ,oFAAoF,EACpF,kEAAkE,EAClE,iCAAiC,CACpC,CAACE,IAAI,CAAC,GAAG,CAAC;IAEX,MAAMC,GAAG,GAAG,qBAAqBJ,MAAM,CAACK,GAAG,UAAUL,MAAM,CAACM,GAAG,EAAE;IACjE,MAAMX,aAAa,CAACY,IAAI,CAACR,KAAK,EAAEE,OAAO,EAAEG,GAAG,CAAC;EACjD;AACJ;AAEA,OAAO,MAAMI,uCAAuC,GAAGf,oBAAoB,CAAC;EACxEgB,WAAW,EAAEf,YAAY;EACzBgB,cAAc,EAAEb,uCAAuC;EACvDc,YAAY,EAAE;AAClB,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["createImplementation","ErrorHandler","GracefulError","MATCH_STRING","MissingFilesInBuildGracefulErrorHandler","execute","error","params","message","includes","join","cmd","app","env","from","missingFilesInBuildGracefulErrorHandler","abstraction","implementation","dependencies"],"sources":["MissingFilesInBuildGracefulErrorHandler.ts"],"sourcesContent":["import { createImplementation } from \"@webiny/di\";\nimport { ErrorHandler } from \"~/abstractions/index.js\";\nimport { IBaseAppParams } from \"~/abstractions/features/types.js\";\nimport { GracefulError } from \"@webiny/project\";\n\nconst MATCH_STRING = \"failed to compute archive hash for\";\n\nexport class MissingFilesInBuildGracefulErrorHandler implements ErrorHandler.Interface<IBaseAppParams> {\n execute({ error, params }: ErrorHandler.Params<IBaseAppParams>) {\n if (!error.message) {\n return;\n }\n\n if (!error.message.includes(MATCH_STRING)) {\n return;\n }\n\n const message = [\n \"Looks like the deployment failed because Pulumi could not retrieve the built code.\",\n \"Please try again, or, alternatively, try building the app you're\",\n \"trying to deploy by running %s.\"\n ].join(\" \");\n\n const cmd = `yarn webiny build ${params.app} --env ${params.env}`;\n throw GracefulError.from(error, message, cmd);\n }\n}\n\nexport const missingFilesInBuildGracefulErrorHandler = createImplementation({\n abstraction: ErrorHandler,\n implementation: MissingFilesInBuildGracefulErrorHandler,\n dependencies: []\n});\n"],"mappings":"AAAA,SAASA,oBAAoB,QAAQ,YAAY;AACjD,SAASC,YAAY;AAErB,SAASC,aAAa,QAAQ,iBAAiB;AAE/C,MAAMC,YAAY,GAAG,oCAAoC;AAEzD,OAAO,MAAMC,uCAAuC,CAAmD;EACnGC,OAAOA,CAAC;IAAEC,KAAK;IAAEC;EAA4C,CAAC,EAAE;IAC5D,IAAI,CAACD,KAAK,CAACE,OAAO,EAAE;MAChB;IACJ;IAEA,IAAI,CAACF,KAAK,CAACE,OAAO,CAACC,QAAQ,CAACN,YAAY,CAAC,EAAE;MACvC;IACJ;IAEA,MAAMK,OAAO,GAAG,CACZ,oFAAoF,EACpF,kEAAkE,EAClE,iCAAiC,CACpC,CAACE,IAAI,CAAC,GAAG,CAAC;IAEX,MAAMC,GAAG,GAAG,qBAAqBJ,MAAM,CAACK,GAAG,UAAUL,MAAM,CAACM,GAAG,EAAE;IACjE,MAAMX,aAAa,CAACY,IAAI,CAACR,KAAK,EAAEE,OAAO,EAAEG,GAAG,CAAC;EACjD;AACJ;AAEA,OAAO,MAAMI,uCAAuC,GAAGf,oBAAoB,CAAC;EACxEgB,WAAW,EAAEf,YAAY;EACzBgB,cAAc,EAAEb,uCAAuC;EACvDc,YAAY,EAAE;AAClB,CAAC,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["createImplementation","ErrorHandler","GracefulError","MATCH_STRING","LEARN_MORE_URL","PendingOperationsGracefulErrorHandler","execute","error","params","message","includes","appName","app","join","cmd","env","from","pendingOperationsGracefulErrorHandler","abstraction","implementation","dependencies"],"sources":["PendingOperationsGracefulErrorHandler.ts"],"sourcesContent":["import { createImplementation } from \"@webiny/di\";\nimport { ErrorHandler } from \"~/abstractions/index.js\";\nimport { IBaseAppParams } from \"~/abstractions/features/types.js\";\nimport { GracefulError } from \"@webiny/project\";\n\nconst MATCH_STRING = \"the stack is currently locked\";\nconst LEARN_MORE_URL = \"https://webiny.link/locked-stacks\";\n\nexport class PendingOperationsGracefulErrorHandler\n implements ErrorHandler.Interface<IBaseAppParams>\n{\n execute({ error, params }: ErrorHandler.Params<IBaseAppParams>) {\n if (!error.message) {\n return;\n }\n\n if (!error.message.includes(MATCH_STRING)) {\n return;\n }\n\n const appName = params.app ? params.app : \"{APP_NAME}\";\n\n const message = [\n `The Pulumi error you've just experienced can occur`,\n `if one of the previous deployments has been interrupted or another deployment`,\n `is already in progress. For development purposes, the quickest way to get`,\n `past this issue is to run the following command: %s.`,\n `Learn more: ${LEARN_MORE_URL}`\n ].join(\" \");\n\n const cmd = `yarn webiny pulumi ${appName} --env ${params.env} -- cancel`;\n throw GracefulError.from(error, message, cmd);\n }\n}\n\nexport const pendingOperationsGracefulErrorHandler = createImplementation({\n abstraction: ErrorHandler,\n implementation: PendingOperationsGracefulErrorHandler,\n dependencies: []\n});\n"],"mappings":"AAAA,SAASA,oBAAoB,QAAQ,YAAY;AACjD,SAASC,YAAY;AAErB,SAASC,aAAa,QAAQ,iBAAiB;AAE/C,MAAMC,YAAY,GAAG,+BAA+B;AACpD,MAAMC,cAAc,GAAG,mCAAmC;AAE1D,OAAO,MAAMC,qCAAqC,CAElD;EACIC,OAAOA,CAAC;IAAEC,KAAK;IAAEC;EAA4C,CAAC,EAAE;IAC5D,IAAI,CAACD,KAAK,CAACE,OAAO,EAAE;MAChB;IACJ;IAEA,IAAI,CAACF,KAAK,CAACE,OAAO,CAACC,QAAQ,CAACP,YAAY,CAAC,EAAE;MACvC;IACJ;IAEA,MAAMQ,OAAO,GAAGH,MAAM,CAACI,GAAG,GAAGJ,MAAM,CAACI,GAAG,GAAG,YAAY;IAEtD,MAAMH,OAAO,GAAG,CACZ,oDAAoD,EACpD,+EAA+E,EAC/E,2EAA2E,EAC3E,sDAAsD,EACtD,eAAeL,cAAc,EAAE,CAClC,CAACS,IAAI,CAAC,GAAG,CAAC;IAEX,MAAMC,GAAG,GAAG,sBAAsBH,OAAO,UAAUH,MAAM,CAACO,GAAG,YAAY;IACzE,MAAMb,aAAa,CAACc,IAAI,CAACT,KAAK,EAAEE,OAAO,EAAEK,GAAG,CAAC;EACjD;AACJ;AAEA,OAAO,MAAMG,qCAAqC,GAAGjB,oBAAoB,CAAC;EACtEkB,WAAW,EAAEjB,YAAY;EACzBkB,cAAc,EAAEd,qCAAqC;EACrDe,YAAY,EAAE;AAClB,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["createImplementation","ErrorHandler","GracefulError","MATCH_STRING","LEARN_MORE_URL","PendingOperationsGracefulErrorHandler","execute","error","params","message","includes","appName","app","join","cmd","env","from","pendingOperationsGracefulErrorHandler","abstraction","implementation","dependencies"],"sources":["PendingOperationsGracefulErrorHandler.ts"],"sourcesContent":["import { createImplementation } from \"@webiny/di\";\nimport { ErrorHandler } from \"~/abstractions/index.js\";\nimport { IBaseAppParams } from \"~/abstractions/features/types.js\";\nimport { GracefulError } from \"@webiny/project\";\n\nconst MATCH_STRING = \"the stack is currently locked\";\nconst LEARN_MORE_URL = \"https://webiny.link/locked-stacks\";\n\nexport class PendingOperationsGracefulErrorHandler implements ErrorHandler.Interface<IBaseAppParams> {\n execute({ error, params }: ErrorHandler.Params<IBaseAppParams>) {\n if (!error.message) {\n return;\n }\n\n if (!error.message.includes(MATCH_STRING)) {\n return;\n }\n\n const appName = params.app ? params.app : \"{APP_NAME}\";\n\n const message = [\n `The Pulumi error you've just experienced can occur`,\n `if one of the previous deployments has been interrupted or another deployment`,\n `is already in progress. For development purposes, the quickest way to get`,\n `past this issue is to run the following command: %s.`,\n `Learn more: ${LEARN_MORE_URL}`\n ].join(\" \");\n\n const cmd = `yarn webiny pulumi ${appName} --env ${params.env} -- cancel`;\n throw GracefulError.from(error, message, cmd);\n }\n}\n\nexport const pendingOperationsGracefulErrorHandler = createImplementation({\n abstraction: ErrorHandler,\n implementation: PendingOperationsGracefulErrorHandler,\n dependencies: []\n});\n"],"mappings":"AAAA,SAASA,oBAAoB,QAAQ,YAAY;AACjD,SAASC,YAAY;AAErB,SAASC,aAAa,QAAQ,iBAAiB;AAE/C,MAAMC,YAAY,GAAG,+BAA+B;AACpD,MAAMC,cAAc,GAAG,mCAAmC;AAE1D,OAAO,MAAMC,qCAAqC,CAAmD;EACjGC,OAAOA,CAAC;IAAEC,KAAK;IAAEC;EAA4C,CAAC,EAAE;IAC5D,IAAI,CAACD,KAAK,CAACE,OAAO,EAAE;MAChB;IACJ;IAEA,IAAI,CAACF,KAAK,CAACE,OAAO,CAACC,QAAQ,CAACP,YAAY,CAAC,EAAE;MACvC;IACJ;IAEA,MAAMQ,OAAO,GAAGH,MAAM,CAACI,GAAG,GAAGJ,MAAM,CAACI,GAAG,GAAG,YAAY;IAEtD,MAAMH,OAAO,GAAG,CACZ,oDAAoD,EACpD,+EAA+E,EAC/E,2EAA2E,EAC3E,sDAAsD,EACtD,eAAeL,cAAc,EAAE,CAClC,CAACS,IAAI,CAAC,GAAG,CAAC;IAEX,MAAMC,GAAG,GAAG,sBAAsBH,OAAO,UAAUH,MAAM,CAACO,GAAG,YAAY;IACzE,MAAMb,aAAa,CAACc,IAAI,CAACT,KAAK,EAAEE,OAAO,EAAEK,GAAG,CAAC;EACjD;AACJ;AAEA,OAAO,MAAMG,qCAAqC,GAAGjB,oBAAoB,CAAC;EACtEkB,WAAW,EAAEjB,YAAY;EACzBkB,cAAc,EAAEd,qCAAqC;EACrDe,YAAY,EAAE;AAClB,CAAC,CAAC","ignoreList":[]}
@@ -12,6 +12,7 @@ export * from "./EnableTelemetryCommand.js";
12
12
  export * from "./OutputCommand.js";
13
13
  export * from "./PulumiCommand/index.js";
14
14
  export * from "./RefreshCommand/index.js";
15
+ export * from "./UpgradeCommand/index.js";
15
16
  export * from "./DepsSync/index.js";
16
17
  export * from "./WatchCommand/index.js";
17
18
  export * from "./Wcp/LinkProjectCommand.js";
package/features/index.js CHANGED
@@ -12,6 +12,7 @@ export * from "./EnableTelemetryCommand.js";
12
12
  export * from "./OutputCommand.js";
13
13
  export * from "./PulumiCommand/index.js";
14
14
  export * from "./RefreshCommand/index.js";
15
+ export * from "./UpgradeCommand/index.js";
15
16
  export * from "./DepsSync/index.js";
16
17
  export * from "./WatchCommand/index.js";
17
18
  export * from "./Wcp/LinkProjectCommand.js";
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from \"./AboutCommand.js\";\nexport * from \"./BuildCommand/index.js\";\nexport * from \"./ConfigCommand.js\";\nexport * from \"./DeployCommand/index.js\";\nexport * from \"./DestroyCommand/index.js\";\nexport * from \"./ExtensionCommand/index.js\";\nexport * from \"./InfoCommand/index.js\";\nexport * from \"./IsCi/index.js\";\nexport * from \"./OpenCommand.js\";\nexport * from \"./DisableTelemetryCommand.js\";\nexport * from \"./EnableTelemetryCommand.js\";\nexport * from \"./OutputCommand.js\";\nexport * from \"./PulumiCommand/index.js\";\nexport * from \"./RefreshCommand/index.js\";\nexport * from \"./DepsSync/index.js\";\nexport * from \"./WatchCommand/index.js\";\nexport * from \"./Wcp/LinkProjectCommand.js\";\nexport * from \"./Wcp/LoginCommand.js\";\nexport * from \"./Wcp/LogoutCommand.js\";\nexport * from \"./Wcp/WhoAmICommand.js\";\nexport * from \"./gracefulErrorHandlers/index.js\";\nexport * from \"./globalOptions/index.js\";\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from \"./AboutCommand.js\";\nexport * from \"./BuildCommand/index.js\";\nexport * from \"./ConfigCommand.js\";\nexport * from \"./DeployCommand/index.js\";\nexport * from \"./DestroyCommand/index.js\";\nexport * from \"./ExtensionCommand/index.js\";\nexport * from \"./InfoCommand/index.js\";\nexport * from \"./IsCi/index.js\";\nexport * from \"./OpenCommand.js\";\nexport * from \"./DisableTelemetryCommand.js\";\nexport * from \"./EnableTelemetryCommand.js\";\nexport * from \"./OutputCommand.js\";\nexport * from \"./PulumiCommand/index.js\";\nexport * from \"./RefreshCommand/index.js\";\nexport * from \"./UpgradeCommand/index.js\";\nexport * from \"./DepsSync/index.js\";\nexport * from \"./WatchCommand/index.js\";\nexport * from \"./Wcp/LinkProjectCommand.js\";\nexport * from \"./Wcp/LoginCommand.js\";\nexport * from \"./Wcp/LogoutCommand.js\";\nexport * from \"./Wcp/WhoAmICommand.js\";\nexport * from \"./gracefulErrorHandlers/index.js\";\nexport * from \"./globalOptions/index.js\";\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","ignoreList":[]}