@webiny/cli-core 0.0.0-unstable.e2758ee1cf → 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.
- package/abstractions/features/CliCommand.d.ts +4 -0
- package/abstractions/features/CliCommand.js +3 -0
- package/abstractions/features/CliCommand.js.map +1 -1
- package/createCliContainer.js +5 -8
- package/createCliContainer.js.map +1 -1
- package/decorators/CommandsWithGracefulErrorHandling.js.map +1 -1
- package/exports/cli.d.ts +2 -0
- package/exports/cli.js +4 -0
- package/exports/cli.js.map +1 -0
- package/extensions/CliCommand.d.ts +3 -7
- package/extensions/CliCommandDecorator.d.ts +3 -7
- package/extensions/index.d.ts +2 -6
- package/features/DeployCommand/DeployCommand.d.ts +1 -1
- package/features/DeployCommand/DeployCommand.js +6 -4
- package/features/DeployCommand/DeployCommand.js.map +1 -1
- package/features/DepsSync/DependencyTree.js +7 -0
- package/features/DepsSync/DependencyTree.js.map +1 -1
- package/features/DepsSync/ListAllPackageJsonFiles.js +2 -2
- package/features/DepsSync/ListAllPackageJsonFiles.js.map +1 -1
- package/features/UpgradeCommand/UpgradeCommand.d.ts +29 -0
- package/features/UpgradeCommand/UpgradeCommand.js +112 -0
- package/features/UpgradeCommand/UpgradeCommand.js.map +1 -0
- package/features/UpgradeCommand/UpgradeCommandHandler.d.ts +11 -0
- package/features/UpgradeCommand/UpgradeCommandHandler.js +113 -0
- package/features/UpgradeCommand/UpgradeCommandHandler.js.map +1 -0
- package/features/UpgradeCommand/abstraction.d.ts +23 -0
- package/features/UpgradeCommand/abstraction.js +4 -0
- package/features/UpgradeCommand/abstraction.js.map +1 -0
- package/features/UpgradeCommand/feature.d.ts +4 -0
- package/features/UpgradeCommand/feature.js +12 -0
- package/features/UpgradeCommand/feature.js.map +1 -0
- package/features/UpgradeCommand/index.d.ts +2 -0
- package/features/UpgradeCommand/index.js +4 -0
- package/features/UpgradeCommand/index.js.map +1 -0
- package/features/Wcp/LinkProjectCommand.js +2 -2
- package/features/Wcp/LinkProjectCommand.js.map +1 -1
- package/features/gracefulErrorHandlers/DdbPutItemConditionalCheckFailedGracefulErrorHandler.js.map +1 -1
- package/features/gracefulErrorHandlers/MissingFilesInBuildGracefulErrorHandler.js.map +1 -1
- package/features/gracefulErrorHandlers/PendingOperationsGracefulErrorHandler.js.map +1 -1
- package/features/index.d.ts +1 -0
- package/features/index.js +1 -0
- package/features/index.js.map +1 -1
- package/package.json +24 -21
- package/services/GetCliRunnerService/GetCliRunnerService.js +7 -0
- package/services/GetCliRunnerService/GetCliRunnerService.js.map +1 -1
- package/services/LoggerService/LoggerService.js +2 -2
- package/services/LoggerService/LoggerService.js.map +1 -1
- package/exports/cli/index.d.ts +0 -2
- package/exports/cli/index.js +0 -4
- package/exports/cli/index.js.map +0 -1
|
@@ -14,6 +14,7 @@ export interface ICliCommandOptionDefinition<TCommandParams> {
|
|
|
14
14
|
group?: string;
|
|
15
15
|
required?: boolean;
|
|
16
16
|
alias?: string;
|
|
17
|
+
array?: boolean;
|
|
17
18
|
default?: any;
|
|
18
19
|
validation?: (value: TCommandParams) => boolean | string;
|
|
19
20
|
}
|
|
@@ -28,6 +29,9 @@ export interface ICliCommandDefinition<TCommandParams> {
|
|
|
28
29
|
export interface ICliCommand<TCommandParams> {
|
|
29
30
|
execute(): Promise<ICliCommandDefinition<TCommandParams>> | ICliCommandDefinition<TCommandParams>;
|
|
30
31
|
}
|
|
32
|
+
/**
|
|
33
|
+
* Implement a custom CLI command for Webiny CLI.
|
|
34
|
+
*/
|
|
31
35
|
export declare const CliCommandFactory: import("@webiny/di").Abstraction<ICliCommand<any>>;
|
|
32
36
|
export declare namespace CliCommandFactory {
|
|
33
37
|
type Interface<TCommandParams> = ICliCommand<TCommandParams>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createAbstraction","CliCommandFactory"],"sources":["CliCommand.ts"],"sourcesContent":["import { createAbstraction } from \"~/abstractions/createAbstraction.js\";\n\nexport interface ICliCommandParamDefinition<TCommandParams> {\n name: string;\n description: string;\n type: \"boolean\" | \"number\" | \"string\";\n required?: boolean;\n array?: boolean;\n default?: any;\n validation?: (value: TCommandParams) => boolean | string;\n}\n\nexport interface ICliCommandOptionDefinition<TCommandParams> {\n name: string;\n description: string;\n type: \"boolean\" | \"number\" | \"string\";\n group?: string;\n required?: boolean;\n alias?: string;\n default?: any;\n validation?: (value: TCommandParams) => boolean | string;\n}\n\nexport interface ICliCommandDefinition<TCommandParams> {\n name: string;\n description: string;\n params?: ICliCommandParamDefinition<TCommandParams>[];\n options?: ICliCommandOptionDefinition<TCommandParams>[];\n examples?: string[];\n handler: (params: TCommandParams) => void | Promise<void>;\n}\n\nexport interface ICliCommand<TCommandParams> {\n execute():\n | Promise<ICliCommandDefinition<TCommandParams>>\n | ICliCommandDefinition<TCommandParams>;\n}\n\nexport const CliCommandFactory = createAbstraction<ICliCommand<any>>(\"CliCommandFactory\");\n\nexport namespace CliCommandFactory {\n export type Interface<TCommandParams> = ICliCommand<TCommandParams>;\n\n export type ParamDefinition<TCommandParams> = ICliCommandParamDefinition<TCommandParams>;\n export type OptionDefinition<TCommandParams> = ICliCommandOptionDefinition<TCommandParams>;\n\n export type CommandDefinition<TCommandParams> = ICliCommandDefinition<TCommandParams>;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB;
|
|
1
|
+
{"version":3,"names":["createAbstraction","CliCommandFactory"],"sources":["CliCommand.ts"],"sourcesContent":["import { createAbstraction } from \"~/abstractions/createAbstraction.js\";\n\nexport interface ICliCommandParamDefinition<TCommandParams> {\n name: string;\n description: string;\n type: \"boolean\" | \"number\" | \"string\";\n required?: boolean;\n array?: boolean;\n default?: any;\n validation?: (value: TCommandParams) => boolean | string;\n}\n\nexport interface ICliCommandOptionDefinition<TCommandParams> {\n name: string;\n description: string;\n type: \"boolean\" | \"number\" | \"string\";\n group?: string;\n required?: boolean;\n alias?: string;\n array?: boolean;\n default?: any;\n validation?: (value: TCommandParams) => boolean | string;\n}\n\nexport interface ICliCommandDefinition<TCommandParams> {\n name: string;\n description: string;\n params?: ICliCommandParamDefinition<TCommandParams>[];\n options?: ICliCommandOptionDefinition<TCommandParams>[];\n examples?: string[];\n handler: (params: TCommandParams) => void | Promise<void>;\n}\n\nexport interface ICliCommand<TCommandParams> {\n execute():\n | Promise<ICliCommandDefinition<TCommandParams>>\n | ICliCommandDefinition<TCommandParams>;\n}\n\n/**\n * Implement a custom CLI command for Webiny CLI.\n */\nexport const CliCommandFactory = createAbstraction<ICliCommand<any>>(\"CliCommandFactory\");\n\nexport namespace CliCommandFactory {\n export type Interface<TCommandParams> = ICliCommand<TCommandParams>;\n\n export type ParamDefinition<TCommandParams> = ICliCommandParamDefinition<TCommandParams>;\n export type OptionDefinition<TCommandParams> = ICliCommandOptionDefinition<TCommandParams>;\n\n export type CommandDefinition<TCommandParams> = ICliCommandDefinition<TCommandParams>;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB;AAuC1B;AACA;AACA;AACA,OAAO,MAAMC,iBAAiB,GAAGD,iBAAiB,CAAmB,mBAAmB,CAAC","ignoreList":[]}
|
package/createCliContainer.js
CHANGED
|
@@ -1,14 +1,10 @@
|
|
|
1
1
|
import path from "path";
|
|
2
2
|
import { Container } from "@webiny/di";
|
|
3
|
-
import { argvParserService, cliParamsService, commandsRegistryService, getArgvService, getCliRunnerService, getIsCiService,
|
|
4
|
-
import { aboutCommand, buildCommand, configCommand, ddbPutItemConditionalCheckFailedGracefulErrorHandler, deployCommand, destroyCommand, disableTelemetryCommand, enableTelemetryCommand, extensionCommand, infoCommand, isCi, missingFilesInBuildGracefulErrorHandler, openCommand, outputCommand, pendingOperationsGracefulErrorHandler, pulumiCommand, refreshCommand, syncDepsCommand, verifyDepsCommand, watchCommand,
|
|
5
|
-
// WCP
|
|
6
|
-
linkProjectCommand, loginCommand, logoutCommand, whoAmICommand,
|
|
7
|
-
// Global Options
|
|
8
|
-
showLogsGlobalOption, logLevelGlobalOption, stackTraceGlobalOption } from "./features/index.js";
|
|
3
|
+
import { argvParserService, cliParamsService, commandsRegistryService, getArgvService, getCliRunnerService, getIsCiService, getProjectSdkService, globalOptionsRegistryService, loggerService, runCliRunnerService, stdioService, uiService } from "./services/index.js";
|
|
4
|
+
import { aboutCommand, buildCommand, configCommand, ddbPutItemConditionalCheckFailedGracefulErrorHandler, deployCommand, destroyCommand, disableTelemetryCommand, enableTelemetryCommand, extensionCommand, infoCommand, isCi, linkProjectCommand, loginCommand, logLevelGlobalOption, logoutCommand, missingFilesInBuildGracefulErrorHandler, openCommand, outputCommand, pendingOperationsGracefulErrorHandler, pulumiCommand, refreshCommand, showLogsGlobalOption, stackTraceGlobalOption, syncDepsCommand, UpgradeCommandFeature, verifyDepsCommand, watchCommand, whoAmICommand } from "./features/index.js";
|
|
9
5
|
import chalk from "chalk";
|
|
10
6
|
import { CliParamsService, GetArgvService, GetProjectSdkService, UiService } from "./abstractions/index.js";
|
|
11
|
-
import { GracefulError } from "@webiny/project";
|
|
7
|
+
import { GracefulError, toImportSpecifier } from "@webiny/project";
|
|
12
8
|
import { commandsWithGracefulErrorHandling, deployCommandWithTelemetry } from "./decorators/index.js";
|
|
13
9
|
import { CliCommand } from "./extensions/index.js";
|
|
14
10
|
const {
|
|
@@ -36,6 +32,7 @@ export const createCliContainer = async params => {
|
|
|
36
32
|
container.register(openCommand).inSingletonScope();
|
|
37
33
|
container.register(outputCommand).inSingletonScope();
|
|
38
34
|
container.register(watchCommand).inSingletonScope();
|
|
35
|
+
UpgradeCommandFeature.register(container);
|
|
39
36
|
container.register(linkProjectCommand).inSingletonScope();
|
|
40
37
|
container.register(loginCommand).inSingletonScope();
|
|
41
38
|
container.register(logoutCommand).inSingletonScope();
|
|
@@ -88,7 +85,7 @@ export const createCliContainer = async params => {
|
|
|
88
85
|
importPath = filePath;
|
|
89
86
|
}
|
|
90
87
|
const exportName = path.basename(filePath).replace(path.extname(filePath), "");
|
|
91
|
-
const importedModule = await import(importPath);
|
|
88
|
+
const importedModule = await import(toImportSpecifier(importPath));
|
|
92
89
|
|
|
93
90
|
// Support both default and named exports.
|
|
94
91
|
// Check for 'default' property existence rather than truthiness.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["path","Container","argvParserService","cliParamsService","commandsRegistryService","getArgvService","getCliRunnerService","getIsCiService","globalOptionsRegistryService","getProjectSdkService","loggerService","runCliRunnerService","stdioService","uiService","aboutCommand","buildCommand","configCommand","ddbPutItemConditionalCheckFailedGracefulErrorHandler","deployCommand","destroyCommand","disableTelemetryCommand","enableTelemetryCommand","extensionCommand","infoCommand","isCi","missingFilesInBuildGracefulErrorHandler","openCommand","outputCommand","pendingOperationsGracefulErrorHandler","pulumiCommand","refreshCommand","syncDepsCommand","verifyDepsCommand","watchCommand","linkProjectCommand","loginCommand","logoutCommand","whoAmICommand","showLogsGlobalOption","logLevelGlobalOption","stackTraceGlobalOption","chalk","CliParamsService","GetArgvService","GetProjectSdkService","UiService","GracefulError","commandsWithGracefulErrorHandling","deployCommandWithTelemetry","CliCommand","bgYellow","bold","createCliContainer","params","container","register","inSingletonScope","ui","resolve","set","projectSdk","execute","projectConfig","getProjectConfig","tags","runtimeContext","validateProjectConfig","project","getProject","importFromPath","filePath","importPath","startsWith","paths","rootFolder","join","toString","exportName","basename","replace","extname","importedModule","default","commands","extensionsByType","command","commandImplementation","src","error","realError","cause","message","argv","showStackTrace","stack","emptyLine","debug","text","process","exit","registerDecorator"],"sources":["createCliContainer.ts"],"sourcesContent":["import path from \"path\";\nimport { Container } from \"@webiny/di\";\nimport {\n argvParserService,\n cliParamsService,\n commandsRegistryService,\n getArgvService,\n getCliRunnerService,\n getIsCiService,\n globalOptionsRegistryService,\n getProjectSdkService,\n loggerService,\n runCliRunnerService,\n stdioService,\n uiService\n} from \"./services/index.js\";\n\nimport {\n aboutCommand,\n buildCommand,\n configCommand,\n ddbPutItemConditionalCheckFailedGracefulErrorHandler,\n deployCommand,\n destroyCommand,\n disableTelemetryCommand,\n enableTelemetryCommand,\n extensionCommand,\n infoCommand,\n isCi,\n missingFilesInBuildGracefulErrorHandler,\n openCommand,\n outputCommand,\n pendingOperationsGracefulErrorHandler,\n pulumiCommand,\n refreshCommand,\n syncDepsCommand,\n verifyDepsCommand,\n watchCommand,\n\n // WCP\n linkProjectCommand,\n loginCommand,\n logoutCommand,\n whoAmICommand,\n\n // Global Options\n showLogsGlobalOption,\n logLevelGlobalOption,\n stackTraceGlobalOption\n} from \"./features/index.js\";\n\nimport chalk from \"chalk\";\nimport {\n CliParamsService,\n GetArgvService,\n GetProjectSdkService,\n UiService\n} from \"~/abstractions/index.js\";\nimport { GracefulError } from \"@webiny/project\";\nimport {\n commandsWithGracefulErrorHandling,\n deployCommandWithTelemetry\n} from \"./decorators/index.js\";\nimport { CliCommand } from \"~/extensions/index.js\";\n\nconst { bgYellow, bold } = chalk;\n\nexport const createCliContainer = async (params: CliParamsService.Params) => {\n const container = new Container();\n\n // Features (commands).\n container.register(aboutCommand).inSingletonScope();\n container.register(buildCommand).inSingletonScope();\n container.register(configCommand).inSingletonScope();\n container.register(deployCommand).inSingletonScope();\n container.register(pulumiCommand).inSingletonScope();\n container.register(refreshCommand).inSingletonScope();\n container.register(enableTelemetryCommand).inSingletonScope();\n container.register(disableTelemetryCommand).inSingletonScope();\n container.register(extensionCommand).inSingletonScope();\n container.register(syncDepsCommand).inSingletonScope();\n container.register(verifyDepsCommand).inSingletonScope();\n container.register(destroyCommand).inSingletonScope();\n container.register(infoCommand).inSingletonScope();\n container.register(isCi).inSingletonScope();\n container.register(openCommand).inSingletonScope();\n container.register(outputCommand).inSingletonScope();\n container.register(watchCommand).inSingletonScope();\n\n container.register(linkProjectCommand).inSingletonScope();\n container.register(loginCommand).inSingletonScope();\n container.register(logoutCommand).inSingletonScope();\n container.register(whoAmICommand).inSingletonScope();\n\n // Graceful error handlers.\n container.register(ddbPutItemConditionalCheckFailedGracefulErrorHandler).inSingletonScope();\n container.register(missingFilesInBuildGracefulErrorHandler).inSingletonScope();\n container.register(pendingOperationsGracefulErrorHandler).inSingletonScope();\n\n // Global options.\n container.register(showLogsGlobalOption).inSingletonScope();\n container.register(logLevelGlobalOption).inSingletonScope();\n container.register(stackTraceGlobalOption).inSingletonScope();\n\n // Services.\n container.register(argvParserService).inSingletonScope();\n container.register(cliParamsService).inSingletonScope();\n container.register(commandsRegistryService).inSingletonScope();\n container.register(getArgvService).inSingletonScope();\n container.register(getCliRunnerService).inSingletonScope();\n container.register(getIsCiService).inSingletonScope();\n container.register(globalOptionsRegistryService).inSingletonScope();\n container.register(getProjectSdkService).inSingletonScope();\n container.register(loggerService).inSingletonScope();\n container.register(runCliRunnerService).inSingletonScope();\n container.register(stdioService).inSingletonScope();\n container.register(uiService).inSingletonScope();\n\n // Extensions.\n const ui = container.resolve(UiService);\n\n try {\n // Immediately set CLI instance params via the `CliParamsService`.\n container.resolve(CliParamsService).set(params);\n\n const projectSdk = await container.resolve(GetProjectSdkService).execute();\n\n const projectConfig = await projectSdk.getProjectConfig({\n tags: { runtimeContext: \"cli\" }\n });\n\n await projectSdk.validateProjectConfig(projectConfig);\n\n const project = projectSdk.getProject();\n\n const importFromPath = async (filePath: string) => {\n let importPath: string;\n if (filePath.startsWith(\"/extensions/\")) {\n // Resolve from project root.\n importPath = project.paths.rootFolder.join(filePath).toString();\n } else {\n // Treat as absolute path.\n importPath = filePath;\n }\n\n const exportName = path.basename(filePath).replace(path.extname(filePath), \"\");\n\n const importedModule = await import(importPath);\n\n // Support both default and named exports.\n // Check for 'default' property existence rather than truthiness.\n return (\n (\"default\" in importedModule && importedModule.default) ||\n importedModule[exportName]\n );\n };\n\n const commands = projectConfig.extensionsByType(CliCommand);\n for (const command of commands) {\n const commandImplementation = await importFromPath(command.params.src);\n\n container.register(commandImplementation).inSingletonScope();\n }\n } catch (error) {\n let realError = error;\n if (error.cause) {\n realError = error.cause as Error;\n }\n\n ui.error(realError.message);\n\n const argv = container.resolve(GetArgvService).execute();\n if (argv.showStackTrace && realError.stack) {\n ui.emptyLine();\n ui.debug(\"Stack trace:\");\n ui.text(realError.stack);\n }\n\n if (error && error instanceof GracefulError) {\n ui.emptyLine();\n ui.text(bgYellow(bold(\"💡 How can I resolve this?\")));\n ui.text(error.message);\n }\n\n process.exit(1);\n }\n\n // Decorators.\n container.registerDecorator(commandsWithGracefulErrorHandling);\n container.registerDecorator(deployCommandWithTelemetry);\n\n return container;\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["path","Container","argvParserService","cliParamsService","commandsRegistryService","getArgvService","getCliRunnerService","getIsCiService","getProjectSdkService","globalOptionsRegistryService","loggerService","runCliRunnerService","stdioService","uiService","aboutCommand","buildCommand","configCommand","ddbPutItemConditionalCheckFailedGracefulErrorHandler","deployCommand","destroyCommand","disableTelemetryCommand","enableTelemetryCommand","extensionCommand","infoCommand","isCi","linkProjectCommand","loginCommand","logLevelGlobalOption","logoutCommand","missingFilesInBuildGracefulErrorHandler","openCommand","outputCommand","pendingOperationsGracefulErrorHandler","pulumiCommand","refreshCommand","showLogsGlobalOption","stackTraceGlobalOption","syncDepsCommand","UpgradeCommandFeature","verifyDepsCommand","watchCommand","whoAmICommand","chalk","CliParamsService","GetArgvService","GetProjectSdkService","UiService","GracefulError","toImportSpecifier","commandsWithGracefulErrorHandling","deployCommandWithTelemetry","CliCommand","bgYellow","bold","createCliContainer","params","container","register","inSingletonScope","ui","resolve","set","projectSdk","execute","projectConfig","getProjectConfig","tags","runtimeContext","validateProjectConfig","project","getProject","importFromPath","filePath","importPath","startsWith","paths","rootFolder","join","toString","exportName","basename","replace","extname","importedModule","default","commands","extensionsByType","command","commandImplementation","src","error","realError","cause","message","argv","showStackTrace","stack","emptyLine","debug","text","process","exit","registerDecorator"],"sources":["createCliContainer.ts"],"sourcesContent":["import path from \"path\";\nimport { Container } from \"@webiny/di\";\nimport {\n argvParserService,\n cliParamsService,\n commandsRegistryService,\n getArgvService,\n getCliRunnerService,\n getIsCiService,\n getProjectSdkService,\n globalOptionsRegistryService,\n loggerService,\n runCliRunnerService,\n stdioService,\n uiService\n} from \"./services/index.js\";\n\nimport {\n aboutCommand,\n buildCommand,\n configCommand,\n ddbPutItemConditionalCheckFailedGracefulErrorHandler,\n deployCommand,\n destroyCommand,\n disableTelemetryCommand,\n enableTelemetryCommand,\n extensionCommand,\n infoCommand,\n isCi,\n linkProjectCommand,\n loginCommand,\n logLevelGlobalOption,\n logoutCommand,\n missingFilesInBuildGracefulErrorHandler,\n openCommand,\n outputCommand,\n pendingOperationsGracefulErrorHandler,\n pulumiCommand,\n refreshCommand,\n showLogsGlobalOption,\n stackTraceGlobalOption,\n syncDepsCommand,\n UpgradeCommandFeature,\n verifyDepsCommand,\n watchCommand,\n whoAmICommand\n} from \"./features/index.js\";\n\nimport chalk from \"chalk\";\nimport {\n CliParamsService,\n GetArgvService,\n GetProjectSdkService,\n UiService\n} from \"~/abstractions/index.js\";\nimport { GracefulError, toImportSpecifier } from \"@webiny/project\";\nimport {\n commandsWithGracefulErrorHandling,\n deployCommandWithTelemetry\n} from \"./decorators/index.js\";\nimport { CliCommand } from \"~/extensions/index.js\";\n\nconst { bgYellow, bold } = chalk;\n\nexport const createCliContainer = async (params: CliParamsService.Params) => {\n const container = new Container();\n\n // Features (commands).\n container.register(aboutCommand).inSingletonScope();\n container.register(buildCommand).inSingletonScope();\n container.register(configCommand).inSingletonScope();\n container.register(deployCommand).inSingletonScope();\n container.register(pulumiCommand).inSingletonScope();\n container.register(refreshCommand).inSingletonScope();\n container.register(enableTelemetryCommand).inSingletonScope();\n container.register(disableTelemetryCommand).inSingletonScope();\n container.register(extensionCommand).inSingletonScope();\n container.register(syncDepsCommand).inSingletonScope();\n container.register(verifyDepsCommand).inSingletonScope();\n container.register(destroyCommand).inSingletonScope();\n container.register(infoCommand).inSingletonScope();\n container.register(isCi).inSingletonScope();\n container.register(openCommand).inSingletonScope();\n container.register(outputCommand).inSingletonScope();\n container.register(watchCommand).inSingletonScope();\n UpgradeCommandFeature.register(container);\n\n container.register(linkProjectCommand).inSingletonScope();\n container.register(loginCommand).inSingletonScope();\n container.register(logoutCommand).inSingletonScope();\n container.register(whoAmICommand).inSingletonScope();\n\n // Graceful error handlers.\n container.register(ddbPutItemConditionalCheckFailedGracefulErrorHandler).inSingletonScope();\n container.register(missingFilesInBuildGracefulErrorHandler).inSingletonScope();\n container.register(pendingOperationsGracefulErrorHandler).inSingletonScope();\n\n // Global options.\n container.register(showLogsGlobalOption).inSingletonScope();\n container.register(logLevelGlobalOption).inSingletonScope();\n container.register(stackTraceGlobalOption).inSingletonScope();\n\n // Services.\n container.register(argvParserService).inSingletonScope();\n container.register(cliParamsService).inSingletonScope();\n container.register(commandsRegistryService).inSingletonScope();\n container.register(getArgvService).inSingletonScope();\n container.register(getCliRunnerService).inSingletonScope();\n container.register(getIsCiService).inSingletonScope();\n container.register(globalOptionsRegistryService).inSingletonScope();\n container.register(getProjectSdkService).inSingletonScope();\n container.register(loggerService).inSingletonScope();\n container.register(runCliRunnerService).inSingletonScope();\n container.register(stdioService).inSingletonScope();\n container.register(uiService).inSingletonScope();\n\n // Extensions.\n const ui = container.resolve(UiService);\n\n try {\n // Immediately set CLI instance params via the `CliParamsService`.\n container.resolve(CliParamsService).set(params);\n\n const projectSdk = await container.resolve(GetProjectSdkService).execute();\n\n const projectConfig = await projectSdk.getProjectConfig({\n tags: { runtimeContext: \"cli\" }\n });\n\n await projectSdk.validateProjectConfig(projectConfig);\n\n const project = projectSdk.getProject();\n\n const importFromPath = async (filePath: string) => {\n let importPath: string;\n if (filePath.startsWith(\"/extensions/\")) {\n // Resolve from project root.\n importPath = project.paths.rootFolder.join(filePath).toString();\n } else {\n // Treat as absolute path.\n importPath = filePath;\n }\n\n const exportName = path.basename(filePath).replace(path.extname(filePath), \"\");\n\n const importedModule = await import(toImportSpecifier(importPath));\n\n // Support both default and named exports.\n // Check for 'default' property existence rather than truthiness.\n return (\n (\"default\" in importedModule && importedModule.default) ||\n importedModule[exportName]\n );\n };\n\n const commands = projectConfig.extensionsByType(CliCommand);\n for (const command of commands) {\n const commandImplementation = await importFromPath(command.params.src);\n\n container.register(commandImplementation).inSingletonScope();\n }\n } catch (error) {\n let realError = error;\n if (error.cause) {\n realError = error.cause as Error;\n }\n\n ui.error(realError.message);\n\n const argv = container.resolve(GetArgvService).execute();\n if (argv.showStackTrace && realError.stack) {\n ui.emptyLine();\n ui.debug(\"Stack trace:\");\n ui.text(realError.stack);\n }\n\n if (error && error instanceof GracefulError) {\n ui.emptyLine();\n ui.text(bgYellow(bold(\"💡 How can I resolve this?\")));\n ui.text(error.message);\n }\n\n process.exit(1);\n }\n\n // Decorators.\n container.registerDecorator(commandsWithGracefulErrorHandling);\n container.registerDecorator(deployCommandWithTelemetry);\n\n return container;\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["CliCommandFactory","ErrorHandler","GracefulError","CommandsWithGracefulErrorHandling","constructor","gracefulErrorHandlers","decoratee","execute","command","originalCommandHandler","handler","params","error","gracefulErrorHandler","commandsWithGracefulErrorHandling","createDecorator","decorator","dependencies","multiple"],"sources":["CommandsWithGracefulErrorHandling.ts"],"sourcesContent":["import { CliCommandFactory, ErrorHandler } from \"~/abstractions/index.js\";\nimport { GracefulError } from \"@webiny/project\";\n\nexport class CommandsWithGracefulErrorHandling
|
|
1
|
+
{"version":3,"names":["CliCommandFactory","ErrorHandler","GracefulError","CommandsWithGracefulErrorHandling","constructor","gracefulErrorHandlers","decoratee","execute","command","originalCommandHandler","handler","params","error","gracefulErrorHandler","commandsWithGracefulErrorHandling","createDecorator","decorator","dependencies","multiple"],"sources":["CommandsWithGracefulErrorHandling.ts"],"sourcesContent":["import { CliCommandFactory, ErrorHandler } from \"~/abstractions/index.js\";\nimport { GracefulError } from \"@webiny/project\";\n\nexport class CommandsWithGracefulErrorHandling<\n TParams\n> implements CliCommandFactory.Interface<TParams> {\n constructor(\n private gracefulErrorHandlers: ErrorHandler.Interface<TParams>[],\n private decoratee: CliCommandFactory.Interface<TParams>\n ) {}\n\n async execute() {\n const command = await this.decoratee.execute();\n\n const originalCommandHandler = command.handler;\n\n command.handler = async (params: TParams) => {\n try {\n await originalCommandHandler(params);\n } catch (error) {\n if (error instanceof GracefulError) {\n throw error;\n }\n\n for (const gracefulErrorHandler of this.gracefulErrorHandlers) {\n gracefulErrorHandler.execute({\n error,\n command,\n params\n });\n }\n\n throw error;\n }\n };\n\n return command;\n }\n}\n\nexport const commandsWithGracefulErrorHandling = CliCommandFactory.createDecorator({\n decorator: CommandsWithGracefulErrorHandling,\n dependencies: [[ErrorHandler, { multiple: true }]]\n});\n"],"mappings":"AAAA,SAASA,iBAAiB,EAAEC,YAAY;AACxC,SAASC,aAAa,QAAQ,iBAAiB;AAE/C,OAAO,MAAMC,iCAAiC,CAEI;EAC9CC,WAAWA,CACCC,qBAAwD,EACxDC,SAA+C,EACzD;IAAA,KAFUD,qBAAwD,GAAxDA,qBAAwD;IAAA,KACxDC,SAA+C,GAA/CA,SAA+C;EACxD;EAEH,MAAMC,OAAOA,CAAA,EAAG;IACZ,MAAMC,OAAO,GAAG,MAAM,IAAI,CAACF,SAAS,CAACC,OAAO,CAAC,CAAC;IAE9C,MAAME,sBAAsB,GAAGD,OAAO,CAACE,OAAO;IAE9CF,OAAO,CAACE,OAAO,GAAG,MAAOC,MAAe,IAAK;MACzC,IAAI;QACA,MAAMF,sBAAsB,CAACE,MAAM,CAAC;MACxC,CAAC,CAAC,OAAOC,KAAK,EAAE;QACZ,IAAIA,KAAK,YAAYV,aAAa,EAAE;UAChC,MAAMU,KAAK;QACf;QAEA,KAAK,MAAMC,oBAAoB,IAAI,IAAI,CAACR,qBAAqB,EAAE;UAC3DQ,oBAAoB,CAACN,OAAO,CAAC;YACzBK,KAAK;YACLJ,OAAO;YACPG;UACJ,CAAC,CAAC;QACN;QAEA,MAAMC,KAAK;MACf;IACJ,CAAC;IAED,OAAOJ,OAAO;EAClB;AACJ;AAEA,OAAO,MAAMM,iCAAiC,GAAGd,iBAAiB,CAACe,eAAe,CAAC;EAC/EC,SAAS,EAAEb,iCAAiC;EAC5Cc,YAAY,EAAE,CAAC,CAAChB,YAAY,EAAE;IAAEiB,QAAQ,EAAE;EAAK,CAAC,CAAC;AACrD,CAAC,CAAC","ignoreList":[]}
|
package/exports/cli.d.ts
ADDED
package/exports/cli.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["LoggerService","Logger","UiService","Ui"],"sources":["cli.ts"],"sourcesContent":["export { LoggerService as Logger } from \"~/abstractions/services/LoggerService.js\";\nexport { UiService as Ui } from \"~/abstractions/services/UiService.js\";\n"],"mappings":"AAAA,SAASA,aAAa,IAAIC,MAAM;AAChC,SAASC,SAAS,IAAIC,EAAE","ignoreList":[]}
|
|
@@ -1,8 +1,4 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
export declare const CliCommand: import("@webiny/project/defineExtension
|
|
3
|
-
src: z.
|
|
4
|
-
},
|
|
5
|
-
src: string;
|
|
6
|
-
}, {
|
|
7
|
-
src: string;
|
|
8
|
-
}>>;
|
|
2
|
+
export declare const CliCommand: import("@webiny/project/defineExtension").ExtensionComponent<z.ZodObject<{
|
|
3
|
+
src: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
|
|
4
|
+
}, z.core.$strip>>;
|
|
@@ -1,8 +1,4 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
export declare const CliCommandDecorator: import("@webiny/project/defineExtension
|
|
3
|
-
src: z.
|
|
4
|
-
},
|
|
5
|
-
src: string;
|
|
6
|
-
}, {
|
|
7
|
-
src: string;
|
|
8
|
-
}>>;
|
|
2
|
+
export declare const CliCommandDecorator: import("@webiny/project/defineExtension").ExtensionComponent<z.ZodObject<{
|
|
3
|
+
src: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
|
|
4
|
+
}, z.core.$strip>>;
|
package/extensions/index.d.ts
CHANGED
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
import { CliCommand } from "./CliCommand.js";
|
|
2
2
|
export { CliCommand };
|
|
3
3
|
export declare const definitions: import("@webiny/project/defineExtension/index.js").ExtensionDefinitionModel<import("zod").ZodObject<{
|
|
4
|
-
src: import("zod").
|
|
5
|
-
},
|
|
6
|
-
src: string;
|
|
7
|
-
}, {
|
|
8
|
-
src: string;
|
|
9
|
-
}>>[];
|
|
4
|
+
src: import("zod").ZodPipe<import("zod").ZodString, import("zod").ZodTransform<string, string>>;
|
|
5
|
+
}, import("zod/v4/core").$strip>>[];
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { CliCommandFactory, GetProjectSdkService, StdioService, UiService } from "../../abstractions/index.js";
|
|
2
1
|
import { AppName } from "@webiny/project";
|
|
2
|
+
import { CliCommandFactory, GetProjectSdkService, StdioService, UiService } from "../../abstractions/index.js";
|
|
3
3
|
export interface IDeployCommandParams {
|
|
4
4
|
apps?: AppName[];
|
|
5
5
|
variant?: string;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { createImplementation } from "@webiny/di";
|
|
2
|
+
import { setTimeout } from "node:timers/promises";
|
|
3
|
+
import open from "open";
|
|
4
|
+
import ora from "ora";
|
|
2
5
|
import { CliCommandFactory, GetProjectSdkService, StdioService, UiService } from "../../abstractions/index.js";
|
|
3
|
-
import { DeployOutput } from "./deployOutputs/DeployOutput.js";
|
|
4
6
|
import { BuildRunner } from "../BuildCommand/buildRunners/BuildRunner.js";
|
|
5
7
|
import { createBaseAppOptions } from "../common/index.js";
|
|
6
|
-
import {
|
|
7
|
-
import ora from "ora";
|
|
8
|
-
import open from "open";
|
|
8
|
+
import { DeployOutput } from "./deployOutputs/DeployOutput.js";
|
|
9
9
|
|
|
10
10
|
// TODO: convert to a real service.
|
|
11
11
|
import { PrintInfoForEnv } from "../InfoCommand/PrintInfoForEnv.js";
|
|
@@ -63,6 +63,8 @@ export class DeployCommand {
|
|
|
63
63
|
ui.emptyLine();
|
|
64
64
|
}
|
|
65
65
|
} else {
|
|
66
|
+
ui.info(`You're using Webiny v${projectSdk.getProjectVersion()}`);
|
|
67
|
+
ui.emptyLine();
|
|
66
68
|
const isCi = projectSdk.isCi();
|
|
67
69
|
const coreStack = await projectSdk.getAppStackOutput("core");
|
|
68
70
|
const isFirstDeployment = !isCi && !coreStack?.deploymentId;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createImplementation","CliCommandFactory","GetProjectSdkService","StdioService","UiService","DeployOutput","BuildRunner","createBaseAppOptions","setTimeout","ora","open","PrintInfoForEnv","sleep","ms","DeployCommand","constructor","getProjectSdkService","uiService","stdioService","execute","projectSdk","ui","name","description","examples","params","type","array","options","default","handler","apps","length","appName","appParams","app","getApp","info","getDisplayName","deployApp","emptyLine","isCi","coreStack","getAppStackOutput","isFirstDeployment","deploymentId","success","printInfoForEnv","textBold","adminAppOutput","spinner","start","appUrl","succeed","fail","warning","stdio","build","packagesBuilder","buildApp","buildRunner","isEmpty","run","showDeploymentLogs","Boolean","preview","output","pulumiProcess","deployOutput","deployProcess","deployParams","deployCommand","abstraction","implementation","dependencies"],"sources":["DeployCommand.ts"],"sourcesContent":["import { createImplementation } from \"@webiny/di\";\nimport {\n CliCommandFactory,\n GetProjectSdkService,\n StdioService,\n UiService\n} from \"~/abstractions/index.js\";\nimport { DeployOutput } from \"./deployOutputs/DeployOutput.js\";\nimport { AppName } from \"@webiny/project\";\nimport { BuildRunner } from \"~/features/BuildCommand/buildRunners/BuildRunner.js\";\nimport { createBaseAppOptions } from \"~/features/common/index.js\";\nimport { setTimeout } from \"node:timers/promises\";\nimport ora from \"ora\";\nimport open from \"open\";\n\n// TODO: convert to a real service.\nimport { PrintInfoForEnv } from \"~/features/InfoCommand/PrintInfoForEnv.js\";\n\nexport interface IDeployCommandParams {\n apps?: AppName[];\n variant?: string;\n region?: string;\n env: string;\n showDeploymentLogs?: boolean;\n build?: boolean;\n preview?: boolean;\n allowLocalStateFiles?: boolean;\n}\n\nexport interface IDeploySingleAppParams {\n app: AppName;\n variant?: string;\n region?: string;\n env: string;\n showDeploymentLogs?: boolean;\n build?: boolean;\n preview?: boolean;\n}\n\nconst sleep = (ms: number = 1500) => setTimeout(ms);\n\nexport class DeployCommand implements CliCommandFactory.Interface<IDeployCommandParams> {\n constructor(\n private getProjectSdkService: GetProjectSdkService.Interface,\n private uiService: UiService.Interface,\n private stdioService: StdioService.Interface\n ) {}\n\n async execute(): Promise<CliCommandFactory.CommandDefinition<IDeployCommandParams>> {\n const projectSdk = await this.getProjectSdkService.execute();\n const ui = this.uiService;\n\n return {\n name: \"deploy\",\n description: \"Deploys specified app or all apps in the project\",\n examples: [\n \"$0 deploy api --env dev\",\n \"$0 deploy core api --env dev\",\n \"$0 deploy admin --env prod\",\n \"$0 deploy --env prod\",\n \"$0 deploy\"\n ],\n params: [\n {\n name: \"apps\",\n description:\n \"Name of the app(s) to deploy (core, admin, or api). You can specify multiple apps.\",\n type: \"string\",\n array: true\n }\n ],\n options: [\n ...createBaseAppOptions(projectSdk),\n {\n name: \"build\",\n description: \"Build packages before deploying\",\n type: \"boolean\",\n default: true\n },\n {\n name: \"preview\",\n description: \"Preview the deploy instead of actually performing it\",\n type: \"boolean\",\n default: false\n },\n {\n name: \"show-deployment-logs\",\n description: \"Print deployment logs (automatically enabled in CI environments)\",\n type: \"boolean\",\n default: false\n },\n {\n name: \"allow-local-state-files\",\n description:\n \"Allow using local Pulumi state files with production environment deployment (not recommended).\",\n type: \"boolean\"\n }\n ],\n handler: async (params: IDeployCommandParams) => {\n if (params.apps && params.apps.length > 0) {\n // Deploy specified apps\n for (const appName of params.apps) {\n const appParams: IDeploySingleAppParams = {\n ...params,\n app: appName\n };\n\n const app = await projectSdk.getApp(appName);\n ui.info(\"Deploying %s app...\", app.getDisplayName());\n await this.deployApp(appParams);\n ui.emptyLine();\n }\n } else {\n const isCi = projectSdk.isCi();\n const coreStack = await projectSdk.getAppStackOutput(\"core\");\n\n const isFirstDeployment = !isCi && !coreStack?.deploymentId;\n if (isFirstDeployment) {\n ui.info(`Looks like this is your first time deploying the project.`);\n ui.info(\n `Note that the initial deployment can take up to %s, so please be patient.`,\n \"10 minutes\"\n );\n await sleep();\n }\n\n // 3. Start deploying apps one-by-one.\n isFirstDeployment && ui.emptyLine();\n\n // Deploy all apps in the project.\n ui.info(\"Deploying %s app...\", \"Core\");\n await this.deployApp({ ...params, app: \"core\" });\n ui.emptyLine();\n\n ui.info(\"Deploying %s app...\", \"API\");\n await this.deployApp({ ...params, app: \"api\" });\n ui.emptyLine();\n ui.info(\"Deploying %s app...\", \"Admin\");\n await this.deployApp({ ...params, app: \"admin\" });\n\n if (isFirstDeployment) {\n ui.success(`Congratulations! You've just deployed a brand new project!`);\n } else {\n ui.success(`Project deployed.`);\n }\n\n const printInfoForEnv = new PrintInfoForEnv({\n getProjectSdkService: this.getProjectSdkService,\n uiService: this.uiService\n });\n\n ui.emptyLine();\n ui.textBold(\"Project Details\");\n await printInfoForEnv.execute(params);\n\n const adminAppOutput = await projectSdk.getAppStackOutput(\"admin\");\n\n if (isFirstDeployment && adminAppOutput) {\n ui.emptyLine();\n ui.info(\n \"The final step is to open the %s app in your browser and complete the installation wizard.\",\n \"Admin\"\n );\n\n const spinner = ora(`Opening Admin in your browser...`).start();\n\n try {\n await sleep(7000);\n open(adminAppOutput.appUrl as string);\n spinner.succeed(`Successfully opened Admin app in your browser.`);\n } catch {\n spinner.fail(`Failed to open Admin in your browser.`);\n\n await sleep(1000);\n ui.emptyLine();\n ui.warning(\n `Failed to open %s app in your browser. To finish the setup and start using the project, please visit %s and complete the installation wizard.`,\n \"Admin\",\n adminAppOutput.appUrl\n );\n }\n }\n }\n }\n };\n }\n\n private async deployApp(params: IDeploySingleAppParams) {\n const projectSdk = await this.getProjectSdkService.execute();\n\n const ui = this.uiService;\n const stdio = this.stdioService;\n\n if (params.build !== false) {\n const packagesBuilder = await projectSdk.buildApp(params);\n\n const buildRunner = new BuildRunner({\n stdio,\n ui,\n packagesBuilder\n });\n\n if (!buildRunner.isEmpty()) {\n await buildRunner.run();\n ui.emptyLine();\n }\n }\n\n // We always show deployment logs when doing previews.\n const showDeploymentLogs = Boolean(\n projectSdk.isCi() || params.preview || params.showDeploymentLogs\n );\n\n return await projectSdk.deployApp({\n ...params,\n output: pulumiProcess => {\n const deployOutput = new DeployOutput({\n stdio,\n ui,\n showDeploymentLogs,\n deployProcess: pulumiProcess,\n deployParams: params\n });\n\n return deployOutput.output();\n }\n });\n }\n}\n\nexport const deployCommand = createImplementation({\n abstraction: CliCommandFactory,\n implementation: DeployCommand,\n dependencies: [GetProjectSdkService, UiService, StdioService]\n});\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["createImplementation","setTimeout","open","ora","CliCommandFactory","GetProjectSdkService","StdioService","UiService","BuildRunner","createBaseAppOptions","DeployOutput","PrintInfoForEnv","sleep","ms","DeployCommand","constructor","getProjectSdkService","uiService","stdioService","execute","projectSdk","ui","name","description","examples","params","type","array","options","default","handler","apps","length","appName","appParams","app","getApp","info","getDisplayName","deployApp","emptyLine","getProjectVersion","isCi","coreStack","getAppStackOutput","isFirstDeployment","deploymentId","success","printInfoForEnv","textBold","adminAppOutput","spinner","start","appUrl","succeed","fail","warning","stdio","build","packagesBuilder","buildApp","buildRunner","isEmpty","run","showDeploymentLogs","Boolean","preview","output","pulumiProcess","deployOutput","deployProcess","deployParams","deployCommand","abstraction","implementation","dependencies"],"sources":["DeployCommand.ts"],"sourcesContent":["import { createImplementation } from \"@webiny/di\";\nimport { AppName } from \"@webiny/project\";\nimport { setTimeout } from \"node:timers/promises\";\nimport open from \"open\";\nimport ora from \"ora\";\nimport {\n CliCommandFactory,\n GetProjectSdkService,\n StdioService,\n UiService\n} from \"~/abstractions/index.js\";\nimport { BuildRunner } from \"~/features/BuildCommand/buildRunners/BuildRunner.js\";\nimport { createBaseAppOptions } from \"~/features/common/index.js\";\nimport { DeployOutput } from \"./deployOutputs/DeployOutput.js\";\n\n// TODO: convert to a real service.\nimport { PrintInfoForEnv } from \"~/features/InfoCommand/PrintInfoForEnv.js\";\n\nexport interface IDeployCommandParams {\n apps?: AppName[];\n variant?: string;\n region?: string;\n env: string;\n showDeploymentLogs?: boolean;\n build?: boolean;\n preview?: boolean;\n allowLocalStateFiles?: boolean;\n}\n\nexport interface IDeploySingleAppParams {\n app: AppName;\n variant?: string;\n region?: string;\n env: string;\n showDeploymentLogs?: boolean;\n build?: boolean;\n preview?: boolean;\n}\n\nconst sleep = (ms: number = 1500) => setTimeout(ms);\n\nexport class DeployCommand implements CliCommandFactory.Interface<IDeployCommandParams> {\n constructor(\n private getProjectSdkService: GetProjectSdkService.Interface,\n private uiService: UiService.Interface,\n private stdioService: StdioService.Interface\n ) {}\n\n async execute(): Promise<CliCommandFactory.CommandDefinition<IDeployCommandParams>> {\n const projectSdk = await this.getProjectSdkService.execute();\n const ui = this.uiService;\n\n return {\n name: \"deploy\",\n description: \"Deploys specified app or all apps in the project\",\n examples: [\n \"$0 deploy api --env dev\",\n \"$0 deploy core api --env dev\",\n \"$0 deploy admin --env prod\",\n \"$0 deploy --env prod\",\n \"$0 deploy\"\n ],\n params: [\n {\n name: \"apps\",\n description:\n \"Name of the app(s) to deploy (core, admin, or api). You can specify multiple apps.\",\n type: \"string\",\n array: true\n }\n ],\n options: [\n ...createBaseAppOptions(projectSdk),\n {\n name: \"build\",\n description: \"Build packages before deploying\",\n type: \"boolean\",\n default: true\n },\n {\n name: \"preview\",\n description: \"Preview the deploy instead of actually performing it\",\n type: \"boolean\",\n default: false\n },\n {\n name: \"show-deployment-logs\",\n description: \"Print deployment logs (automatically enabled in CI environments)\",\n type: \"boolean\",\n default: false\n },\n {\n name: \"allow-local-state-files\",\n description:\n \"Allow using local Pulumi state files with production environment deployment (not recommended).\",\n type: \"boolean\"\n }\n ],\n handler: async (params: IDeployCommandParams) => {\n if (params.apps && params.apps.length > 0) {\n // Deploy specified apps\n for (const appName of params.apps) {\n const appParams: IDeploySingleAppParams = {\n ...params,\n app: appName\n };\n\n const app = await projectSdk.getApp(appName);\n ui.info(\"Deploying %s app...\", app.getDisplayName());\n await this.deployApp(appParams);\n ui.emptyLine();\n }\n } else {\n ui.info(`You're using Webiny v${projectSdk.getProjectVersion()}`);\n ui.emptyLine();\n\n const isCi = projectSdk.isCi();\n const coreStack = await projectSdk.getAppStackOutput(\"core\");\n\n const isFirstDeployment = !isCi && !coreStack?.deploymentId;\n if (isFirstDeployment) {\n ui.info(`Looks like this is your first time deploying the project.`);\n ui.info(\n `Note that the initial deployment can take up to %s, so please be patient.`,\n \"10 minutes\"\n );\n await sleep();\n }\n\n // 3. Start deploying apps one-by-one.\n isFirstDeployment && ui.emptyLine();\n\n // Deploy all apps in the project.\n ui.info(\"Deploying %s app...\", \"Core\");\n await this.deployApp({ ...params, app: \"core\" });\n ui.emptyLine();\n\n ui.info(\"Deploying %s app...\", \"API\");\n await this.deployApp({ ...params, app: \"api\" });\n ui.emptyLine();\n ui.info(\"Deploying %s app...\", \"Admin\");\n await this.deployApp({ ...params, app: \"admin\" });\n\n if (isFirstDeployment) {\n ui.success(`Congratulations! You've just deployed a brand new project!`);\n } else {\n ui.success(`Project deployed.`);\n }\n\n const printInfoForEnv = new PrintInfoForEnv({\n getProjectSdkService: this.getProjectSdkService,\n uiService: this.uiService\n });\n\n ui.emptyLine();\n ui.textBold(\"Project Details\");\n await printInfoForEnv.execute(params);\n\n const adminAppOutput = await projectSdk.getAppStackOutput(\"admin\");\n\n if (isFirstDeployment && adminAppOutput) {\n ui.emptyLine();\n ui.info(\n \"The final step is to open the %s app in your browser and complete the installation wizard.\",\n \"Admin\"\n );\n\n const spinner = ora(`Opening Admin in your browser...`).start();\n\n try {\n await sleep(7000);\n open(adminAppOutput.appUrl as string);\n spinner.succeed(`Successfully opened Admin app in your browser.`);\n } catch {\n spinner.fail(`Failed to open Admin in your browser.`);\n\n await sleep(1000);\n ui.emptyLine();\n ui.warning(\n `Failed to open %s app in your browser. To finish the setup and start using the project, please visit %s and complete the installation wizard.`,\n \"Admin\",\n adminAppOutput.appUrl\n );\n }\n }\n }\n }\n };\n }\n\n private async deployApp(params: IDeploySingleAppParams) {\n const projectSdk = await this.getProjectSdkService.execute();\n\n const ui = this.uiService;\n const stdio = this.stdioService;\n\n if (params.build !== false) {\n const packagesBuilder = await projectSdk.buildApp(params);\n\n const buildRunner = new BuildRunner({\n stdio,\n ui,\n packagesBuilder\n });\n\n if (!buildRunner.isEmpty()) {\n await buildRunner.run();\n ui.emptyLine();\n }\n }\n\n // We always show deployment logs when doing previews.\n const showDeploymentLogs = Boolean(\n projectSdk.isCi() || params.preview || params.showDeploymentLogs\n );\n\n return await projectSdk.deployApp({\n ...params,\n output: pulumiProcess => {\n const deployOutput = new DeployOutput({\n stdio,\n ui,\n showDeploymentLogs,\n deployProcess: pulumiProcess,\n deployParams: params\n });\n\n return deployOutput.output();\n }\n });\n }\n}\n\nexport const deployCommand = createImplementation({\n abstraction: CliCommandFactory,\n implementation: DeployCommand,\n dependencies: [GetProjectSdkService, UiService, StdioService]\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -53,6 +53,13 @@ export class DependencyTree {
|
|
|
53
53
|
process.env.DEBUG === "true" && console.debug(`${version} is not a valid SemVer value in ${file}, package ${name}.`);
|
|
54
54
|
continue;
|
|
55
55
|
}
|
|
56
|
+
/**
|
|
57
|
+
* Let's skip if version starts with >= or <=, as those are not exact versions and we can't be sure which version is actually used.
|
|
58
|
+
*/
|
|
59
|
+
if (version.startsWith(">=") || version.startsWith("<=")) {
|
|
60
|
+
process.env.DEBUG === "true" && console.debug(`${version} is not an exact version in ${file}, package ${name}. Skipping.`);
|
|
61
|
+
continue;
|
|
62
|
+
}
|
|
56
63
|
version = version.replace(/\^/g, "").replace(/~/g, "").replace(/>/g, "").replace(/</g, "").replace(/=/g, "");
|
|
57
64
|
const existing = this.packages[key].find(item => {
|
|
58
65
|
return item.name === name && item.version === version;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["semver","PackageType","keys","dependencies","devDependencies","peerDependencies","resolutions","sortByName","a","b","name","localeCompare","DependencyTree","packages","references","sort","duplicates","filter","reference","versions","length","push","params","file","json","ignore","key","match","version","semverVersion","validRange","process","env","DEBUG","console","debug","replace","existing","find","item","files","addReference","type","ref","types","existingVersion","existingFile","includes"],"sources":["DependencyTree.ts"],"sourcesContent":["import semver from \"semver\";\nimport type {\n IDependency,\n IDependencyTree,\n IDependencyTreePushParams,\n IReference\n} from \"./types.js\";\nimport { PackageType } from \"./types.js\";\n\nconst keys = [\n PackageType.dependencies,\n PackageType.devDependencies,\n PackageType.peerDependencies,\n PackageType.resolutions\n];\n\ninterface IAddReferenceParams {\n name: string;\n version: string;\n file: string;\n type: PackageType;\n}\n\ninterface ISortItem {\n name: string;\n}\n\nconst sortByName = (a: ISortItem, b: ISortItem) => {\n return a.name.localeCompare(b.name);\n};\n\nexport class DependencyTree implements IDependencyTree {\n private readonly packages: Record<(typeof keys)[number], IDependency[]> = {\n resolutions: [],\n dependencies: [],\n devDependencies: [],\n peerDependencies: []\n };\n public readonly references: IReference[] = [];\n\n public get dependencies(): IDependency[] {\n return this.packages.dependencies.sort(sortByName);\n }\n\n public get devDependencies(): IDependency[] {\n return this.packages.devDependencies.sort(sortByName);\n }\n\n public get peerDependencies(): IDependency[] {\n return this.packages.peerDependencies.sort(sortByName);\n }\n\n public get resolutions(): IDependency[] {\n return this.packages.resolutions.sort(sortByName);\n }\n\n public get duplicates(): IReference[] {\n return this.references\n .filter(reference => {\n return reference.versions.length > 1;\n })\n .sort(sortByName);\n }\n\n public push(params: IDependencyTreePushParams): void {\n const { file, json, ignore } = params;\n for (const key of keys) {\n const dependencies = json[key];\n if (!dependencies) {\n continue;\n }\n\n for (const name in dependencies) {\n if (ignore && name.match(ignore) !== null) {\n continue;\n }\n let version = dependencies[name];\n if (!version) {\n continue;\n }\n\n const semverVersion =\n semver.validRange(version) || version === \"beta\" ? version : null;\n if (!semverVersion) {\n process.env.DEBUG === \"true\" &&\n console.debug(\n `${version} is not a valid SemVer value in ${file}, package ${name}.`\n );\n continue;\n }\n version = version\n .replace(/\\^/g, \"\")\n .replace(/~/g, \"\")\n .replace(/>/g, \"\")\n .replace(/</g, \"\")\n .replace(/=/g, \"\");\n const existing = this.packages[key].find(item => {\n return item.name === name && item.version === version;\n });\n if (existing) {\n existing.files.push(file);\n this.addReference({\n name,\n version,\n file,\n type: key\n });\n continue;\n }\n\n this.packages[key].push({\n name,\n version,\n files: [file]\n });\n this.addReference({\n name,\n version,\n file,\n type: key\n });\n }\n }\n }\n\n private addReference(ref: IAddReferenceParams): void {\n const existing = this.references.find(item => {\n return item.name === ref.name;\n });\n const types = [ref.type];\n if (!existing) {\n this.references.push({\n name: ref.name,\n versions: [\n {\n version: ref.version,\n files: [\n {\n file: ref.file,\n types\n }\n ]\n }\n ]\n });\n return;\n }\n const existingVersion = existing.versions.find(item => {\n return item.version === ref.version;\n });\n if (!existingVersion) {\n existing.versions.push({\n version: ref.version,\n files: [\n {\n file: ref.file,\n types\n }\n ]\n });\n return;\n }\n const existingFile = existingVersion.files.find(item => {\n return item.file === ref.file;\n });\n if (!existingFile) {\n existingVersion.files.push({\n file: ref.file,\n types\n });\n return;\n } else if (existingFile.types.includes(ref.type)) {\n return;\n }\n existingFile.types.push(ref.type);\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["semver","PackageType","keys","dependencies","devDependencies","peerDependencies","resolutions","sortByName","a","b","name","localeCompare","DependencyTree","packages","references","sort","duplicates","filter","reference","versions","length","push","params","file","json","ignore","key","match","version","semverVersion","validRange","process","env","DEBUG","console","debug","startsWith","replace","existing","find","item","files","addReference","type","ref","types","existingVersion","existingFile","includes"],"sources":["DependencyTree.ts"],"sourcesContent":["import semver from \"semver\";\nimport type {\n IDependency,\n IDependencyTree,\n IDependencyTreePushParams,\n IReference\n} from \"./types.js\";\nimport { PackageType } from \"./types.js\";\n\nconst keys = [\n PackageType.dependencies,\n PackageType.devDependencies,\n PackageType.peerDependencies,\n PackageType.resolutions\n];\n\ninterface IAddReferenceParams {\n name: string;\n version: string;\n file: string;\n type: PackageType;\n}\n\ninterface ISortItem {\n name: string;\n}\n\nconst sortByName = (a: ISortItem, b: ISortItem) => {\n return a.name.localeCompare(b.name);\n};\n\nexport class DependencyTree implements IDependencyTree {\n private readonly packages: Record<(typeof keys)[number], IDependency[]> = {\n resolutions: [],\n dependencies: [],\n devDependencies: [],\n peerDependencies: []\n };\n public readonly references: IReference[] = [];\n\n public get dependencies(): IDependency[] {\n return this.packages.dependencies.sort(sortByName);\n }\n\n public get devDependencies(): IDependency[] {\n return this.packages.devDependencies.sort(sortByName);\n }\n\n public get peerDependencies(): IDependency[] {\n return this.packages.peerDependencies.sort(sortByName);\n }\n\n public get resolutions(): IDependency[] {\n return this.packages.resolutions.sort(sortByName);\n }\n\n public get duplicates(): IReference[] {\n return this.references\n .filter(reference => {\n return reference.versions.length > 1;\n })\n .sort(sortByName);\n }\n\n public push(params: IDependencyTreePushParams): void {\n const { file, json, ignore } = params;\n for (const key of keys) {\n const dependencies = json[key];\n if (!dependencies) {\n continue;\n }\n\n for (const name in dependencies) {\n if (ignore && name.match(ignore) !== null) {\n continue;\n }\n let version = dependencies[name];\n if (!version) {\n continue;\n }\n\n const semverVersion =\n semver.validRange(version) || version === \"beta\" ? version : null;\n if (!semverVersion) {\n process.env.DEBUG === \"true\" &&\n console.debug(\n `${version} is not a valid SemVer value in ${file}, package ${name}.`\n );\n continue;\n }\n /**\n * Let's skip if version starts with >= or <=, as those are not exact versions and we can't be sure which version is actually used.\n */\n if (version.startsWith(\">=\") || version.startsWith(\"<=\")) {\n process.env.DEBUG === \"true\" &&\n console.debug(\n `${version} is not an exact version in ${file}, package ${name}. Skipping.`\n );\n continue;\n }\n\n version = version\n .replace(/\\^/g, \"\")\n .replace(/~/g, \"\")\n .replace(/>/g, \"\")\n .replace(/</g, \"\")\n .replace(/=/g, \"\");\n const existing = this.packages[key].find(item => {\n return item.name === name && item.version === version;\n });\n if (existing) {\n existing.files.push(file);\n this.addReference({\n name,\n version,\n file,\n type: key\n });\n continue;\n }\n\n this.packages[key].push({\n name,\n version,\n files: [file]\n });\n this.addReference({\n name,\n version,\n file,\n type: key\n });\n }\n }\n }\n\n private addReference(ref: IAddReferenceParams): void {\n const existing = this.references.find(item => {\n return item.name === ref.name;\n });\n const types = [ref.type];\n if (!existing) {\n this.references.push({\n name: ref.name,\n versions: [\n {\n version: ref.version,\n files: [\n {\n file: ref.file,\n types\n }\n ]\n }\n ]\n });\n return;\n }\n const existingVersion = existing.versions.find(item => {\n return item.version === ref.version;\n });\n if (!existingVersion) {\n existing.versions.push({\n version: ref.version,\n files: [\n {\n file: ref.file,\n types\n }\n ]\n });\n return;\n }\n const existingFile = existingVersion.files.find(item => {\n return item.file === ref.file;\n });\n if (!existingFile) {\n existingVersion.files.push({\n file: ref.file,\n types\n });\n return;\n } else if (existingFile.types.includes(ref.type)) {\n return;\n }\n existingFile.types.push(ref.type);\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import fastGlob from "fast-glob";
|
|
2
2
|
const defaultIgnore = ["**/node_modules/**", "**/dist/**", "**/build/**"];
|
|
3
3
|
export class ListAllPackageJsonFiles {
|
|
4
4
|
list(params) {
|
|
@@ -6,7 +6,7 @@ export class ListAllPackageJsonFiles {
|
|
|
6
6
|
const ignore = defaultIgnore.concat(params.ignore || []);
|
|
7
7
|
const results = [];
|
|
8
8
|
for (const target of targets) {
|
|
9
|
-
const files =
|
|
9
|
+
const files = fastGlob.sync(`${target}/**/**/{package.json,*.package.json,dependencies.json}`, {
|
|
10
10
|
ignore
|
|
11
11
|
});
|
|
12
12
|
results.push(...files);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["fastGlob","defaultIgnore","ListAllPackageJsonFiles","list","params","targets","ignore","concat","results","target","files","sync","push"],"sources":["ListAllPackageJsonFiles.ts"],"sourcesContent":["import fastGlob from \"fast-glob\";\n\nconst defaultIgnore = [\"**/node_modules/**\", \"**/dist/**\", \"**/build/**\"];\n\nexport interface IListAllPackageJsonFilesListParams {\n targets: string[];\n ignore?: string[];\n}\n\nexport class ListAllPackageJsonFiles {\n public list(params: IListAllPackageJsonFilesListParams): string[] {\n const targets = params.targets;\n const ignore = defaultIgnore.concat(params.ignore || []);\n\n const results: string[] = [];\n\n for (const target of targets) {\n const files = fastGlob.sync(\n `${target}/**/**/{package.json,*.package.json,dependencies.json}`,\n {\n ignore\n }\n );\n results.push(...files);\n }\n\n return results;\n }\n}\n"],"mappings":"AAAA,OAAOA,QAAQ,MAAM,WAAW;AAEhC,MAAMC,aAAa,GAAG,CAAC,oBAAoB,EAAE,YAAY,EAAE,aAAa,CAAC;AAOzE,OAAO,MAAMC,uBAAuB,CAAC;EAC1BC,IAAIA,CAACC,MAA0C,EAAY;IAC9D,MAAMC,OAAO,GAAGD,MAAM,CAACC,OAAO;IAC9B,MAAMC,MAAM,GAAGL,aAAa,CAACM,MAAM,CAACH,MAAM,CAACE,MAAM,IAAI,EAAE,CAAC;IAExD,MAAME,OAAiB,GAAG,EAAE;IAE5B,KAAK,MAAMC,MAAM,IAAIJ,OAAO,EAAE;MAC1B,MAAMK,KAAK,GAAGV,QAAQ,CAACW,IAAI,CACvB,GAAGF,MAAM,wDAAwD,EACjE;QACIH;MACJ,CACJ,CAAC;MACDE,OAAO,CAACI,IAAI,CAAC,GAAGF,KAAK,CAAC;IAC1B;IAEA,OAAOF,OAAO;EAClB;AACJ","ignoreList":[]}
|
|
@@ -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
|
+
};
|