@webiny/cli-core 6.0.0 → 6.1.0-beta.0
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 +3 -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/exports/cli.d.ts +2 -0
- package/exports/cli.js +4 -0
- package/exports/cli.js.map +1 -0
- package/extensions/CliCommand.d.ts +2 -6
- package/extensions/CliCommandDecorator.d.ts +2 -6
- package/extensions/index.d.ts +2 -6
- package/features/DepsSync/ListAllPackageJsonFiles.js +2 -2
- package/features/DepsSync/ListAllPackageJsonFiles.js.map +1 -1
- package/features/UpgradeCommand/UpgradeCommand.d.ts +26 -0
- package/features/UpgradeCommand/UpgradeCommand.js +100 -0
- package/features/UpgradeCommand/UpgradeCommand.js.map +1 -0
- package/features/UpgradeCommand/UpgradeCommandHandler.d.ts +11 -0
- package/features/UpgradeCommand/UpgradeCommandHandler.js +123 -0
- package/features/UpgradeCommand/UpgradeCommandHandler.js.map +1 -0
- package/features/UpgradeCommand/abstraction.d.ts +21 -0
- package/features/UpgradeCommand/abstraction.js +4 -0
- package/features/UpgradeCommand/abstraction.js.map +1 -0
- package/features/UpgradeCommand/feature.d.ts +1 -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/index.d.ts +1 -0
- package/features/index.js +1 -0
- package/features/index.js.map +1 -1
- package/package.json +18 -17
- 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
|
@@ -29,6 +29,9 @@ export interface ICliCommandDefinition<TCommandParams> {
|
|
|
29
29
|
export interface ICliCommand<TCommandParams> {
|
|
30
30
|
execute(): Promise<ICliCommandDefinition<TCommandParams>> | ICliCommandDefinition<TCommandParams>;
|
|
31
31
|
}
|
|
32
|
+
/**
|
|
33
|
+
* Implement a custom CLI command for Webiny CLI.
|
|
34
|
+
*/
|
|
32
35
|
export declare const CliCommandFactory: import("@webiny/di").Abstraction<ICliCommand<any>>;
|
|
33
36
|
export declare namespace CliCommandFactory {
|
|
34
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 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\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,OAAO,MAAMC,iBAAiB,GAAGD,iBAAiB,CAAmB,mBAAmB,CAAC","ignoreList":[]}
|
|
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":[]}
|
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
2
|
export declare const CliCommand: import("@webiny/project/defineExtension/defineExtension").ExtensionComponent<z.ZodObject<{
|
|
3
|
-
src: z.
|
|
4
|
-
},
|
|
5
|
-
src: string;
|
|
6
|
-
}, {
|
|
7
|
-
src: string;
|
|
8
|
-
}>>;
|
|
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
2
|
export declare const CliCommandDecorator: import("@webiny/project/defineExtension/defineExtension").ExtensionComponent<z.ZodObject<{
|
|
3
|
-
src: z.
|
|
4
|
-
},
|
|
5
|
-
src: string;
|
|
6
|
-
}, {
|
|
7
|
-
src: string;
|
|
8
|
-
}>>;
|
|
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,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,26 @@
|
|
|
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
|
+
logLevel?: string;
|
|
9
|
+
showLogs?: boolean;
|
|
10
|
+
showStackTrace?: boolean;
|
|
11
|
+
version?: string;
|
|
12
|
+
registry?: string;
|
|
13
|
+
packageManager?: string;
|
|
14
|
+
skipDependencyGuard?: boolean;
|
|
15
|
+
}
|
|
16
|
+
declare class UpgradeCommandImpl implements CliCommandFactory.Interface<UpgradeCommandParams> {
|
|
17
|
+
private ui;
|
|
18
|
+
private upgradeCommandHandler;
|
|
19
|
+
constructor(ui: UiService.Interface, upgradeCommandHandler: UpgradeCommandHandler.Interface);
|
|
20
|
+
execute(): Promise<CliCommandFactory.CommandDefinition<UpgradeCommandParams>>;
|
|
21
|
+
private getVersion;
|
|
22
|
+
}
|
|
23
|
+
export declare const UpgradeCommand: typeof UpgradeCommandImpl & {
|
|
24
|
+
__abstraction: import("@webiny/di").Abstraction<import("../../abstractions/features/CliCommand.js").ICliCommand<any>>;
|
|
25
|
+
};
|
|
26
|
+
export {};
|
|
@@ -0,0 +1,100 @@
|
|
|
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: "skip-checks",
|
|
23
|
+
description: "Do not perform CLI version and Git tree checks.",
|
|
24
|
+
type: "boolean",
|
|
25
|
+
default: false
|
|
26
|
+
}, {
|
|
27
|
+
name: "log-level",
|
|
28
|
+
default: "info",
|
|
29
|
+
description: `Set log level for the upgrade process executed by npx. Possible values are "debug", "info", "warning", and "error".`,
|
|
30
|
+
type: "string"
|
|
31
|
+
}, {
|
|
32
|
+
name: "show-logs",
|
|
33
|
+
default: false,
|
|
34
|
+
description: `Show logs from the upgrade process executed by npx.`,
|
|
35
|
+
type: "boolean"
|
|
36
|
+
}, {
|
|
37
|
+
name: "show-stack-trace",
|
|
38
|
+
default: false,
|
|
39
|
+
description: `Show stack trace if the upgrade process executed by npx fails.`,
|
|
40
|
+
type: "boolean"
|
|
41
|
+
}, {
|
|
42
|
+
name: "registry",
|
|
43
|
+
type: "string",
|
|
44
|
+
default: "",
|
|
45
|
+
description: "registry URL"
|
|
46
|
+
}, {
|
|
47
|
+
name: "package-manager",
|
|
48
|
+
type: "string",
|
|
49
|
+
default: "",
|
|
50
|
+
description: "Package manager to use: yarn, pnpm, or npm (auto-detected from lock file if omitted)"
|
|
51
|
+
}, {
|
|
52
|
+
name: "skip-dependency-guard",
|
|
53
|
+
default: false,
|
|
54
|
+
description: `Skip the dependency guard that checks for incompatible dependencies before performing the upgrade.`,
|
|
55
|
+
type: "boolean"
|
|
56
|
+
}],
|
|
57
|
+
handler: async params => {
|
|
58
|
+
/**
|
|
59
|
+
* We assign only what we want so that we don't accidentally pass some parameters that are not relevant to the handler.
|
|
60
|
+
*/
|
|
61
|
+
const version = this.getVersion(params);
|
|
62
|
+
return this.upgradeCommandHandler.handle({
|
|
63
|
+
logLevel: params.logLevel || "info",
|
|
64
|
+
showLogs: params.showLogs || false,
|
|
65
|
+
showStackTrace: params.showStackTrace || false,
|
|
66
|
+
skipChecks: params.skipChecks || false,
|
|
67
|
+
debug: params.debug || false,
|
|
68
|
+
packageManager: params.packageManager || undefined,
|
|
69
|
+
registry: params.registry || undefined,
|
|
70
|
+
skipDependencyGuard: params.skipDependencyGuard || false,
|
|
71
|
+
version
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
getVersion(params) {
|
|
77
|
+
const version = params._[1];
|
|
78
|
+
if (!version || version === "latest") {
|
|
79
|
+
return "latest";
|
|
80
|
+
}
|
|
81
|
+
if (params.disableSemver) {
|
|
82
|
+
return version;
|
|
83
|
+
}
|
|
84
|
+
try {
|
|
85
|
+
const parsed = semver.parse(version);
|
|
86
|
+
if (!parsed) {
|
|
87
|
+
throw new Error();
|
|
88
|
+
}
|
|
89
|
+
return parsed.format();
|
|
90
|
+
} catch (ex) {
|
|
91
|
+
throw new Error(`Invalid version provided: "${version}". Use --disable-semver to allow non-semver versions: ${ex.message}`);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
export const UpgradeCommand = CliCommandFactory.createImplementation({
|
|
96
|
+
implementation: UpgradeCommandImpl,
|
|
97
|
+
dependencies: [UiService, UpgradeCommandHandler]
|
|
98
|
+
});
|
|
99
|
+
|
|
100
|
+
//# 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","logLevel","showLogs","showStackTrace","skipChecks","debug","packageManager","undefined","registry","skipDependencyGuard","_","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 logLevel?: string;\n showLogs?: boolean;\n showStackTrace?: boolean;\n version?: string;\n registry?: string;\n packageManager?: 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: \"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: \"info\",\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 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 logLevel: params.logLevel || \"info\",\n showLogs: params.showLogs || false,\n showStackTrace: params.showStackTrace || false,\n skipChecks: params.skipChecks || false,\n debug: params.debug || false,\n packageManager: params.packageManager || undefined,\n registry: params.registry || undefined,\n skipDependencyGuard: params.skipDependencyGuard || false,\n version\n });\n }\n };\n }\n\n private getVersion(params: UpgradeCommandParams): UpgradeCommandHandler.Version {\n const version = params._[1];\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":"AAAA,SAASA,iBAAiB,EAAEC,SAAS;AACrC,SAASC,qBAAqB;AAC9B,OAAOC,MAAM,MAAM,QAAQ;AAgB3B,MAAMC,kBAAkB,CAA8D;EAC3EC,WAAWA,CACNC,EAAuB,EACvBC,qBAAsD,EAChE;IAAA,KAFUD,EAAuB,GAAvBA,EAAuB;IAAA,KACvBC,qBAAsD,GAAtDA,qBAAsD;EAC/D;EAEH,MAAaC,OAAOA,CAAA,EAAuE;IACvF,OAAO;MACHC,IAAI,EAAE,SAAS;MACfC,WAAW,EACP,6EAA6E;MACjFC,QAAQ,EAAE,CAAC,SAAS,EAAE,eAAe,EAAE,6CAA6C,CAAC;MACrFC,MAAM,EAAE,CACJ;QACIH,IAAI,EAAE,QAAQ;QACdC,WAAW,EACP,oHAAoH;QACxHG,IAAI,EAAE,QAAQ;QACdC,OAAO,EAAE,QAAQ;QACjBC,QAAQ,EAAE;MACd,CAAC,CACJ;MACDC,OAAO,EAAE,CACL;QACIP,IAAI,EAAE,aAAa;QACnBC,WAAW,EAAE,iDAAiD;QAC9DG,IAAI,EAAE,SAAS;QACfC,OAAO,EAAE;MACb,CAAC,EACD;QACIL,IAAI,EAAE,WAAW;QACjBK,OAAO,EAAE,MAAM;QACfJ,WAAW,EAAE,qHAAqH;QAClIG,IAAI,EAAE;MACV,CAAC,EACD;QACIJ,IAAI,EAAE,WAAW;QACjBK,OAAO,EAAE,KAAK;QACdJ,WAAW,EAAE,qDAAqD;QAClEG,IAAI,EAAE;MACV,CAAC,EACD;QACIJ,IAAI,EAAE,kBAAkB;QACxBK,OAAO,EAAE,KAAK;QACdJ,WAAW,EAAE,gEAAgE;QAC7EG,IAAI,EAAE;MACV,CAAC,EACD;QACIJ,IAAI,EAAE,UAAU;QAChBI,IAAI,EAAE,QAAQ;QACdC,OAAO,EAAE,EAAE;QACXJ,WAAW,EAAE;MACjB,CAAC,EACD;QACID,IAAI,EAAE,iBAAiB;QACvBI,IAAI,EAAE,QAAQ;QACdC,OAAO,EAAE,EAAE;QACXJ,WAAW,EACP;MACR,CAAC,EACD;QACID,IAAI,EAAE,uBAAuB;QAC7BK,OAAO,EAAE,KAAK;QACdJ,WAAW,EAAE,oGAAoG;QACjHG,IAAI,EAAE;MACV,CAAC,CACJ;MACDI,OAAO,EAAE,MAAML,MAAM,IAAI;QACrB;AAChB;AACA;QACgB,MAAMM,OAAO,GAAG,IAAI,CAACC,UAAU,CAACP,MAAM,CAAC;QACvC,OAAO,IAAI,CAACL,qBAAqB,CAACa,MAAM,CAAC;UACrCC,QAAQ,EAAET,MAAM,CAACS,QAAQ,IAAI,MAAM;UACnCC,QAAQ,EAAEV,MAAM,CAACU,QAAQ,IAAI,KAAK;UAClCC,cAAc,EAAEX,MAAM,CAACW,cAAc,IAAI,KAAK;UAC9CC,UAAU,EAAEZ,MAAM,CAACY,UAAU,IAAI,KAAK;UACtCC,KAAK,EAAEb,MAAM,CAACa,KAAK,IAAI,KAAK;UAC5BC,cAAc,EAAEd,MAAM,CAACc,cAAc,IAAIC,SAAS;UAClDC,QAAQ,EAAEhB,MAAM,CAACgB,QAAQ,IAAID,SAAS;UACtCE,mBAAmB,EAAEjB,MAAM,CAACiB,mBAAmB,IAAI,KAAK;UACxDX;QACJ,CAAC,CAAC;MACN;IACJ,CAAC;EACL;EAEQC,UAAUA,CAACP,MAA4B,EAAiC;IAC5E,MAAMM,OAAO,GAAGN,MAAM,CAACkB,CAAC,CAAC,CAAC,CAAC;IAC3B,IAAI,CAACZ,OAAO,IAAIA,OAAO,KAAK,QAAQ,EAAE;MAClC,OAAO,QAAQ;IACnB;IACA,IAAIN,MAAM,CAACmB,aAAa,EAAE;MACtB,OAAOb,OAAO;IAClB;IAEA,IAAI;MACA,MAAMc,MAAM,GAAG7B,MAAM,CAAC8B,KAAK,CAACf,OAAO,CAAC;MACpC,IAAI,CAACc,MAAM,EAAE;QACT,MAAM,IAAIE,KAAK,CAAC,CAAC;MACrB;MACA,OAAOF,MAAM,CAACG,MAAM,CAAC,CAAC;IAC1B,CAAC,CAAC,OAAOC,EAAE,EAAE;MACT,MAAM,IAAIF,KAAK,CACX,8BAA8BhB,OAAO,yDAAyDkB,EAAE,CAACC,OAAO,EAC5G,CAAC;IACL;EACJ;AACJ;AAEA,OAAO,MAAMC,cAAc,GAAGtC,iBAAiB,CAACuC,oBAAoB,CAAC;EACjEC,cAAc,EAAEpC,kBAAkB;EAClCqC,YAAY,EAAE,CAACxC,SAAS,EAAEC,qBAAqB;AACnD,CAAC,CAAC","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,123 @@
|
|
|
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
|
+
} = params;
|
|
19
|
+
if (!skipChecks) {
|
|
20
|
+
/**
|
|
21
|
+
* Before doing any upgrading, there must not be any active changes in the current branch.
|
|
22
|
+
*/
|
|
23
|
+
let gitStatus = "";
|
|
24
|
+
try {
|
|
25
|
+
const {
|
|
26
|
+
stdout
|
|
27
|
+
} = execa.sync("git", ["status", "--porcelain"]);
|
|
28
|
+
gitStatus = stdout.trim();
|
|
29
|
+
} catch {}
|
|
30
|
+
if (gitStatus) {
|
|
31
|
+
this.ui.error(chalk.red("This git repository has untracked files or uncommitted changes:") + "\n\n" + gitStatus.split("\n").map(line => {
|
|
32
|
+
const matched = line.match(/ .*/g);
|
|
33
|
+
if (!matched || !matched[0]) {
|
|
34
|
+
return "";
|
|
35
|
+
}
|
|
36
|
+
return matched[0].trim();
|
|
37
|
+
}).join("\n") + "\n\n" + chalk.red("Remove untracked files, stash or commit any changes, and try again."));
|
|
38
|
+
process.exit(1);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
const command = [GITHUB_REPOSITORY_URL, version || undefined, debug ? "--debug" : "", showLogs ? `--showLogs=${showLogs}` : "", showStackTrace ? `--showStackTrace=${showStackTrace}` : "", logLevel ? `--logLevel=${logLevel}` : "", "--json"].filter(Boolean);
|
|
42
|
+
const npx = execa("npx", command, {
|
|
43
|
+
env: {
|
|
44
|
+
// TODO determine if this actually works
|
|
45
|
+
// @ts-expect-error
|
|
46
|
+
FORCE_COLOR: true
|
|
47
|
+
},
|
|
48
|
+
stdin: process.stdin
|
|
49
|
+
});
|
|
50
|
+
npx.stdout.on("data", data => {
|
|
51
|
+
const lines = data.toString().replace(/\n$/, "").split("\n");
|
|
52
|
+
for (const line of lines) {
|
|
53
|
+
if (!line || !line.trim()) {
|
|
54
|
+
continue;
|
|
55
|
+
}
|
|
56
|
+
this.output(line, {
|
|
57
|
+
debug,
|
|
58
|
+
logLevel
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
npx.stderr.on("data", data => {
|
|
63
|
+
this.ui.error(data.toString());
|
|
64
|
+
});
|
|
65
|
+
try {
|
|
66
|
+
await npx;
|
|
67
|
+
} catch (ex) {
|
|
68
|
+
this.ui.error(`Upgrade process failed: ${ex.message}`);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
output(line, options) {
|
|
72
|
+
const {
|
|
73
|
+
debug,
|
|
74
|
+
logLevel
|
|
75
|
+
} = options;
|
|
76
|
+
try {
|
|
77
|
+
const json = JSON.parse(line);
|
|
78
|
+
switch (json.type) {
|
|
79
|
+
case "debug":
|
|
80
|
+
if (!debug && logLevel !== "debug") {
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
this.ui.debug(json.message);
|
|
84
|
+
if (!json.data?.stack) {
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
this.ui.debug(json.data?.stack);
|
|
88
|
+
break;
|
|
89
|
+
case "info":
|
|
90
|
+
this.ui.info(json.message);
|
|
91
|
+
break;
|
|
92
|
+
case "success":
|
|
93
|
+
case "done":
|
|
94
|
+
this.ui.success(json.message);
|
|
95
|
+
break;
|
|
96
|
+
case "warning":
|
|
97
|
+
this.ui.warning(json.message);
|
|
98
|
+
break;
|
|
99
|
+
case "error":
|
|
100
|
+
this.ui.error(json.message);
|
|
101
|
+
if (!json.data?.stack) {
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
this.ui.debug(json.data?.stack);
|
|
105
|
+
break;
|
|
106
|
+
default:
|
|
107
|
+
console.log(json);
|
|
108
|
+
}
|
|
109
|
+
} catch {
|
|
110
|
+
// Not JSON, let's just print the line then, if its debug mode on.
|
|
111
|
+
if (!debug && logLevel !== "debug") {
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
console.log(line);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
export const UpgradeCommandHandler = UpgradeCommandHandlerAbstraction.createImplementation({
|
|
119
|
+
implementation: UpgradeCommandHandlerImpl,
|
|
120
|
+
dependencies: [UiService]
|
|
121
|
+
});
|
|
122
|
+
|
|
123
|
+
//# 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","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","options","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\" | \"error\" | \"done\" | \"info\";\n\ninterface IUpgradeLine {\n type: LogType;\n message: string;\n data?: {\n stack?: string;\n [key: string]: any;\n };\n}\n\ninterface IOutputOptions {\n debug: boolean;\n logLevel: string;\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 { version, skipChecks, debug, logLevel, showLogs, showStackTrace } = 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}` : \"\",\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 debug,\n logLevel\n });\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, options: IOutputOptions): void {\n const { debug, logLevel } = options;\n try {\n const json = JSON.parse(line) as IUpgradeLine;\n switch (json.type) {\n case \"debug\":\n if (!debug && logLevel !== \"debug\") {\n return;\n }\n this.ui.debug(json.message);\n if (!json.data?.stack) {\n return;\n }\n this.ui.debug(json.data?.stack);\n break;\n case \"info\":\n this.ui.info(json.message);\n break;\n case \"success\":\n case \"done\":\n this.ui.success(json.message);\n break;\n case \"warning\":\n this.ui.warning(json.message);\n break;\n case \"error\":\n this.ui.error(json.message);\n if (!json.data?.stack) {\n return;\n }\n this.ui.debug(json.data?.stack);\n break;\n default:\n console.log(json);\n }\n } catch {\n // Not JSON, let's just print the line then, if its debug mode on.\n if (!debug && logLevel !== \"debug\") {\n return;\n }\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,21 @@
|
|
|
1
|
+
export type UpgradeCommandPackageVersion = `${number}.${number}.${number}` | "latest";
|
|
2
|
+
export interface IUpgradeCommandHandlerHandleParams {
|
|
3
|
+
showLogs: boolean;
|
|
4
|
+
logLevel: string;
|
|
5
|
+
showStackTrace: boolean;
|
|
6
|
+
skipChecks: boolean;
|
|
7
|
+
debug: boolean;
|
|
8
|
+
version: UpgradeCommandPackageVersion;
|
|
9
|
+
packageManager?: string;
|
|
10
|
+
registry?: string;
|
|
11
|
+
skipDependencyGuard?: boolean;
|
|
12
|
+
}
|
|
13
|
+
export interface IUpgradeCommandHandler {
|
|
14
|
+
handle(params: IUpgradeCommandHandlerHandleParams): Promise<void>;
|
|
15
|
+
}
|
|
16
|
+
export declare const UpgradeCommandHandler: import("@webiny/di").Abstraction<IUpgradeCommandHandler>;
|
|
17
|
+
export declare namespace UpgradeCommandHandler {
|
|
18
|
+
type Interface = IUpgradeCommandHandler;
|
|
19
|
+
type Params = IUpgradeCommandHandlerHandleParams;
|
|
20
|
+
type Version = UpgradeCommandPackageVersion;
|
|
21
|
+
}
|
|
@@ -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 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}\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;AAoB1B,OAAO,MAAMC,qBAAqB,GAAGD,iBAAiB,CAClD,gCACJ,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const UpgradeCommandFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
|
|
@@ -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 @@
|
|
|
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: "
|
|
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: "
|
|
117
|
+
type: "select",
|
|
118
118
|
choices,
|
|
119
119
|
default: choices[0].value
|
|
120
120
|
}).then(result => result.project);
|
|
@@ -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(`${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
|
+
{"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":[]}
|
package/features/index.d.ts
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";
|
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";
|
package/features/index.js.map
CHANGED
|
@@ -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":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webiny/cli-core",
|
|
3
|
-
"version": "6.0.0",
|
|
3
|
+
"version": "6.1.0-beta.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"repository": {
|
|
@@ -11,32 +11,33 @@
|
|
|
11
11
|
"license": "MIT",
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"@webiny/di": "0.2.3",
|
|
14
|
-
"@webiny/
|
|
15
|
-
"@webiny/
|
|
16
|
-
"@webiny/
|
|
17
|
-
"
|
|
14
|
+
"@webiny/feature": "6.1.0-beta.0",
|
|
15
|
+
"@webiny/project": "6.1.0-beta.0",
|
|
16
|
+
"@webiny/pulumi-sdk": "6.1.0-beta.0",
|
|
17
|
+
"@webiny/telemetry": "6.1.0-beta.0",
|
|
18
|
+
"chalk": "5.6.2",
|
|
18
19
|
"ci-info": "4.4.0",
|
|
19
20
|
"execa": "5.1.1",
|
|
20
|
-
"
|
|
21
|
+
"fast-glob": "3.3.3",
|
|
22
|
+
"find-up": "8.0.0",
|
|
21
23
|
"get-yarn-workspaces": "1.0.2",
|
|
22
|
-
"glob": "7.2.3",
|
|
23
24
|
"humanize-duration": "3.33.2",
|
|
24
|
-
"inquirer": "
|
|
25
|
+
"inquirer": "13.3.2",
|
|
25
26
|
"load-json-file": "7.0.1",
|
|
26
|
-
"open": "
|
|
27
|
-
"ora": "
|
|
28
|
-
"pino": "
|
|
29
|
-
"pino-pretty": "
|
|
27
|
+
"open": "11.0.0",
|
|
28
|
+
"ora": "9.3.0",
|
|
29
|
+
"pino": "10.3.1",
|
|
30
|
+
"pino-pretty": "13.1.3",
|
|
30
31
|
"semver": "7.7.4",
|
|
31
|
-
"type-fest": "5.
|
|
32
|
+
"type-fest": "5.5.0",
|
|
32
33
|
"write-json-file": "7.0.0",
|
|
33
|
-
"yargs": "
|
|
34
|
-
"zod": "3.
|
|
34
|
+
"yargs": "18.0.0",
|
|
35
|
+
"zod": "4.3.6"
|
|
35
36
|
},
|
|
36
37
|
"devDependencies": {
|
|
37
38
|
"@types/listr": "0.14.10",
|
|
38
39
|
"@types/lodash": "4.17.24",
|
|
39
|
-
"@webiny/build-tools": "6.0.0",
|
|
40
|
+
"@webiny/build-tools": "6.1.0-beta.0",
|
|
40
41
|
"rimraf": "6.1.3",
|
|
41
42
|
"typescript": "5.9.3"
|
|
42
43
|
},
|
|
@@ -44,5 +45,5 @@
|
|
|
44
45
|
"access": "public",
|
|
45
46
|
"directory": "dist"
|
|
46
47
|
},
|
|
47
|
-
"gitHead": "
|
|
48
|
+
"gitHead": "a3bd3695c66c79238e380d7360d9731b5fcf9c87"
|
|
48
49
|
}
|
|
@@ -99,6 +99,13 @@ export class DefaultGetCliRunnerService {
|
|
|
99
99
|
handler
|
|
100
100
|
} = await command.execute();
|
|
101
101
|
let yargsCommand = name;
|
|
102
|
+
const paramVersionExists = params.some(p => {
|
|
103
|
+
return p.name === "version";
|
|
104
|
+
});
|
|
105
|
+
if (paramVersionExists) {
|
|
106
|
+
ui.error(`The command "${name}" cannot have a parameter named "version" as it conflicts with the global --version option.`);
|
|
107
|
+
process.exit();
|
|
108
|
+
}
|
|
102
109
|
if (params.length > 0) {
|
|
103
110
|
yargsCommand += " " + params.map(param => {
|
|
104
111
|
const paramName = param.array ? `${param.name}..` : param.name;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createImplementation","CommandsRegistryService","GetArgvService","GetCliRunnerService","GlobalOptionsRegistryService","GetProjectSdkService","UiService","yargs","chalk","GracefulError","ManuallyReportedError","blue","bgYellow","bold","DefaultGetCliRunnerService","constructor","commandsRegistryService","globalOptionsRegistryService","uiService","getProjectSdkService","getArgvService","yargsRunner","execute","ui","projectSdk","usage","help","demandCommand","recommendCommands","scriptName","epilogue","globalOptions","globalOption","name","config","option","type","default","desc","description","alias","choices","global","fail","invalidParamsMessage","error","includes","emptyLine","info","showHelp","process","exit","args","split","map","v","trim","join","logger","getLogger","err","realError","cause","message","argv","showStackTrace","stack","debug","text","commands","command","params","options","handler","yargsCommand","length","param","paramName","array","required","forEach","validation","rest","yargsParam","positional","demandOption","check","yargsOption","group","version","getProjectVersion","getCliRunnerService","abstraction","implementation","dependencies"],"sources":["GetCliRunnerService.ts"],"sourcesContent":["import { createImplementation } from \"@webiny/di\";\nimport {\n CliCommandFactory,\n CommandsRegistryService,\n GetArgvService,\n GetCliRunnerService,\n GlobalOptionsRegistryService,\n GetProjectSdkService,\n UiService\n} from \"~/abstractions/index.js\";\nimport yargs from \"yargs/yargs\";\nimport chalk from \"chalk\";\nimport { Argv } from \"yargs\";\nimport { GracefulError } from \"@webiny/project\";\nimport { ManuallyReportedError } from \"~/utils/ManuallyReportedError.js\";\n\nconst { blue, bgYellow, bold } = chalk;\n\nexport class DefaultGetCliRunnerService implements GetCliRunnerService.Interface {\n constructor(\n private readonly commandsRegistryService: CommandsRegistryService.Interface,\n private readonly globalOptionsRegistryService: GlobalOptionsRegistryService.Interface,\n private readonly uiService: UiService.Interface,\n private readonly getProjectSdkService: GetProjectSdkService.Interface,\n private readonly getArgvService: GetArgvService.Interface\n ) {}\n\n private yargsRunner: Argv | null = null;\n\n async execute() {\n if (this.yargsRunner) {\n return this.yargsRunner;\n }\n\n const ui = this.uiService;\n const projectSdk = await this.getProjectSdkService.execute();\n\n const yargsRunner = yargs()\n .usage(\"Usage: $0 <command> [options]\")\n .help(false)\n .demandCommand(1)\n .recommendCommands()\n .scriptName(\"webiny\")\n .epilogue(\n `To find more information, docs and tutorials, see ${blue(\n \"https://www.webiny.com/docs\"\n )}.`\n )\n .epilogue(`Want to contribute? ${blue(\"https://github.com/webiny/webiny-js\")}.`);\n\n // Register global options.\n const globalOptions = this.globalOptionsRegistryService.execute();\n for (const globalOption of globalOptions) {\n const { name, config } = await globalOption.execute();\n yargsRunner.option(name, {\n type: config.type,\n default: config.default,\n desc: config.description,\n alias: config.alias,\n choices: config.choices,\n global: true\n });\n }\n\n yargsRunner.fail((invalidParamsMessage, error) => {\n if (invalidParamsMessage) {\n if (invalidParamsMessage.includes(\"Not enough non-option arguments\")) {\n ui.emptyLine();\n ui.error(\"Command was not invoked as expected.\");\n ui.info(\n `Some non-optional arguments are missing. See the usage examples printed below.`\n );\n ui.emptyLine();\n yargsRunner.showHelp();\n process.exit(1);\n }\n\n if (invalidParamsMessage.includes(\"Missing required argument\")) {\n const args = invalidParamsMessage\n .split(\":\")[1]\n .split(\",\")\n .map(v => v.trim());\n\n ui.emptyLine();\n ui.error(\"Command was not invoked as expected.\");\n ui.info(\n `Missing required argument(s): ${args.join(\n \", \"\n )}. See the usage examples printed below.`\n );\n ui.emptyLine();\n yargsRunner.showHelp();\n process.exit(1);\n }\n\n ui.emptyLine();\n ui.error(invalidParamsMessage);\n\n process.exit(1);\n }\n\n const logger = projectSdk.getLogger();\n logger.error({ err: error }, \"CLI command execution failed.\");\n\n const realError = (error.cause as Error) || error;\n\n if (realError instanceof ManuallyReportedError) {\n // Do nothing as the error reporting has already been\n // handled within the invoked CLI command.\n } else {\n ui.error(realError.message);\n }\n\n const argv = this.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 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 const commands = this.commandsRegistryService.execute();\n\n for (const command of commands) {\n const {\n name,\n description,\n params = [],\n options = [],\n handler\n } = await command.execute();\n\n let yargsCommand = name;\n if (params.length > 0) {\n yargsCommand +=\n \" \" +\n params\n .map(param => {\n const paramName = param.array ? `${param.name}..` : param.name;\n return param.required ? `<${paramName}>` : `[${paramName}]`;\n })\n .join(\" \");\n }\n\n yargsRunner.command(\n yargsCommand,\n description,\n yargs => {\n params.forEach((param: CliCommandFactory.ParamDefinition<unknown>) => {\n const { name, required, validation, array, ...rest } = param;\n\n const yargsParam = yargs.positional(name, {\n ...rest,\n ...(array && { array: true }),\n demandOption: required\n });\n\n if (validation) {\n yargsParam.check(validation);\n }\n });\n\n options.forEach((option: CliCommandFactory.OptionDefinition<unknown>) => {\n const { name, required, validation, ...rest } = option;\n\n const yargsOption = yargs.option(name, {\n ...rest,\n demandOption: required\n });\n\n if (option.group) {\n yargsOption.group(option.name, option.group);\n }\n\n if (validation) {\n yargsOption.check(validation);\n }\n });\n },\n handler\n );\n }\n\n yargsRunner.help(true);\n yargsRunner.version(projectSdk.getProjectVersion());\n this.yargsRunner = yargsRunner;\n return this.yargsRunner;\n }\n}\n\nexport const getCliRunnerService = createImplementation({\n abstraction: GetCliRunnerService,\n implementation: DefaultGetCliRunnerService,\n dependencies: [\n CommandsRegistryService,\n GlobalOptionsRegistryService,\n UiService,\n GetProjectSdkService,\n GetArgvService\n ]\n});\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["createImplementation","CommandsRegistryService","GetArgvService","GetCliRunnerService","GlobalOptionsRegistryService","GetProjectSdkService","UiService","yargs","chalk","GracefulError","ManuallyReportedError","blue","bgYellow","bold","DefaultGetCliRunnerService","constructor","commandsRegistryService","globalOptionsRegistryService","uiService","getProjectSdkService","getArgvService","yargsRunner","execute","ui","projectSdk","usage","help","demandCommand","recommendCommands","scriptName","epilogue","globalOptions","globalOption","name","config","option","type","default","desc","description","alias","choices","global","fail","invalidParamsMessage","error","includes","emptyLine","info","showHelp","process","exit","args","split","map","v","trim","join","logger","getLogger","err","realError","cause","message","argv","showStackTrace","stack","debug","text","commands","command","params","options","handler","yargsCommand","paramVersionExists","some","p","length","param","paramName","array","required","forEach","validation","rest","yargsParam","positional","demandOption","check","yargsOption","group","version","getProjectVersion","getCliRunnerService","abstraction","implementation","dependencies"],"sources":["GetCliRunnerService.ts"],"sourcesContent":["import { createImplementation } from \"@webiny/di\";\nimport {\n CliCommandFactory,\n CommandsRegistryService,\n GetArgvService,\n GetCliRunnerService,\n GlobalOptionsRegistryService,\n GetProjectSdkService,\n UiService\n} from \"~/abstractions/index.js\";\nimport yargs from \"yargs/yargs\";\nimport chalk from \"chalk\";\nimport { Argv } from \"yargs\";\nimport { GracefulError } from \"@webiny/project\";\nimport { ManuallyReportedError } from \"~/utils/ManuallyReportedError.js\";\n\nconst { blue, bgYellow, bold } = chalk;\n\nexport class DefaultGetCliRunnerService implements GetCliRunnerService.Interface {\n constructor(\n private readonly commandsRegistryService: CommandsRegistryService.Interface,\n private readonly globalOptionsRegistryService: GlobalOptionsRegistryService.Interface,\n private readonly uiService: UiService.Interface,\n private readonly getProjectSdkService: GetProjectSdkService.Interface,\n private readonly getArgvService: GetArgvService.Interface\n ) {}\n\n private yargsRunner: Argv | null = null;\n\n async execute() {\n if (this.yargsRunner) {\n return this.yargsRunner;\n }\n\n const ui = this.uiService;\n const projectSdk = await this.getProjectSdkService.execute();\n\n const yargsRunner = yargs()\n .usage(\"Usage: $0 <command> [options]\")\n .help(false)\n .demandCommand(1)\n .recommendCommands()\n .scriptName(\"webiny\")\n .epilogue(\n `To find more information, docs and tutorials, see ${blue(\n \"https://www.webiny.com/docs\"\n )}.`\n )\n .epilogue(`Want to contribute? ${blue(\"https://github.com/webiny/webiny-js\")}.`);\n\n // Register global options.\n const globalOptions = this.globalOptionsRegistryService.execute();\n for (const globalOption of globalOptions) {\n const { name, config } = await globalOption.execute();\n yargsRunner.option(name, {\n type: config.type,\n default: config.default,\n desc: config.description,\n alias: config.alias,\n choices: config.choices,\n global: true\n });\n }\n\n yargsRunner.fail((invalidParamsMessage, error) => {\n if (invalidParamsMessage) {\n if (invalidParamsMessage.includes(\"Not enough non-option arguments\")) {\n ui.emptyLine();\n ui.error(\"Command was not invoked as expected.\");\n ui.info(\n `Some non-optional arguments are missing. See the usage examples printed below.`\n );\n ui.emptyLine();\n yargsRunner.showHelp();\n process.exit(1);\n }\n\n if (invalidParamsMessage.includes(\"Missing required argument\")) {\n const args = invalidParamsMessage\n .split(\":\")[1]\n .split(\",\")\n .map(v => v.trim());\n\n ui.emptyLine();\n ui.error(\"Command was not invoked as expected.\");\n ui.info(\n `Missing required argument(s): ${args.join(\n \", \"\n )}. See the usage examples printed below.`\n );\n ui.emptyLine();\n yargsRunner.showHelp();\n process.exit(1);\n }\n\n ui.emptyLine();\n ui.error(invalidParamsMessage);\n\n process.exit(1);\n }\n\n const logger = projectSdk.getLogger();\n logger.error({ err: error }, \"CLI command execution failed.\");\n\n const realError = (error.cause as Error) || error;\n\n if (realError instanceof ManuallyReportedError) {\n // Do nothing as the error reporting has already been\n // handled within the invoked CLI command.\n } else {\n ui.error(realError.message);\n }\n\n const argv = this.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 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 const commands = this.commandsRegistryService.execute();\n\n for (const command of commands) {\n const {\n name,\n description,\n params = [],\n options = [],\n handler\n } = await command.execute();\n\n let yargsCommand = name;\n const paramVersionExists = params.some(p => {\n return p.name === \"version\";\n });\n if (paramVersionExists) {\n ui.error(\n `The command \"${name}\" cannot have a parameter named \"version\" as it conflicts with the global --version option.`\n );\n process.exit();\n }\n\n if (params.length > 0) {\n yargsCommand +=\n \" \" +\n params\n .map(param => {\n const paramName = param.array ? `${param.name}..` : param.name;\n return param.required ? `<${paramName}>` : `[${paramName}]`;\n })\n .join(\" \");\n }\n\n yargsRunner.command(\n yargsCommand,\n description,\n yargs => {\n params.forEach((param: CliCommandFactory.ParamDefinition<unknown>) => {\n const { name, required, validation, array, ...rest } = param;\n\n const yargsParam = yargs.positional(name, {\n ...rest,\n ...(array && { array: true }),\n demandOption: required\n });\n\n if (validation) {\n yargsParam.check(validation);\n }\n });\n\n options.forEach((option: CliCommandFactory.OptionDefinition<unknown>) => {\n const { name, required, validation, ...rest } = option;\n\n const yargsOption = yargs.option(name, {\n ...rest,\n demandOption: required\n });\n\n if (option.group) {\n yargsOption.group(option.name, option.group);\n }\n\n if (validation) {\n yargsOption.check(validation);\n }\n });\n },\n handler\n );\n }\n\n yargsRunner.help(true);\n yargsRunner.version(projectSdk.getProjectVersion());\n this.yargsRunner = yargsRunner;\n return this.yargsRunner;\n }\n}\n\nexport const getCliRunnerService = createImplementation({\n abstraction: GetCliRunnerService,\n implementation: DefaultGetCliRunnerService,\n dependencies: [\n CommandsRegistryService,\n GlobalOptionsRegistryService,\n UiService,\n GetProjectSdkService,\n GetArgvService\n ]\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -2,7 +2,7 @@ import { createImplementation } from "@webiny/di";
|
|
|
2
2
|
import { GetArgvService, LoggerService } from "../../abstractions/index.js";
|
|
3
3
|
import * as fs from "node:fs";
|
|
4
4
|
import path from "node:path";
|
|
5
|
-
import
|
|
5
|
+
import { findUpSync } from "find-up";
|
|
6
6
|
import { pino } from "pino";
|
|
7
7
|
import pinoPretty from "pino-pretty";
|
|
8
8
|
const DEFAULT_LOG_LEVEL = "info";
|
|
@@ -61,7 +61,7 @@ export class DefaultLoggerService {
|
|
|
61
61
|
// Wanted to use `GetProjectSdkService` to get project root path, but
|
|
62
62
|
// to get that, had to call async method, which is not allowed in constructor.
|
|
63
63
|
// TODO: implement a better way to get project root path.
|
|
64
|
-
const webinyConfigPath =
|
|
64
|
+
const webinyConfigPath = findUpSync("webiny.config.tsx");
|
|
65
65
|
if (!webinyConfigPath) {
|
|
66
66
|
// Should not happen, but just in case.
|
|
67
67
|
throw new Error("Could not find project root path.");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createImplementation","GetArgvService","LoggerService","fs","path","
|
|
1
|
+
{"version":3,"names":["createImplementation","GetArgvService","LoggerService","fs","path","findUpSync","pino","pinoPretty","DEFAULT_LOG_LEVEL","DefaultLoggerService","pinoLogger","constructor","getArgvService","trace","message","optionalParams","logger","getLogger","fatal","debug","info","warn","error","log","logStream","getLogStream","level","getLogLevel","argv","execute","showLogs","ignore","webinyConfigPath","Error","projectRootPath","dirname","logsFolderPath","join","logsFileName","getLogFileName","existsSync","mkdirSync","recursive","logFilePath","createWriteStream","flags","now","Date","dateStr","toISOString","split","process","env","WEBINY_CLI_LOG_LEVEL","logLevel","loggerService","abstraction","implementation","dependencies"],"sources":["LoggerService.ts"],"sourcesContent":["import { createImplementation } from \"@webiny/di\";\nimport { GetArgvService, LoggerService } from \"~/abstractions/index.js\";\nimport * as fs from \"node:fs\";\nimport path from \"node:path\";\nimport { findUpSync } from \"find-up\";\nimport { pino, type Logger } from \"pino\";\nimport pinoPretty from \"pino-pretty\";\n\nconst DEFAULT_LOG_LEVEL = \"info\";\n\nexport class DefaultLoggerService implements LoggerService.Interface {\n private pinoLogger: Logger | null = null;\n\n constructor(private readonly getArgvService: GetArgvService.Interface) {}\n\n trace(message?: any, ...optionalParams: any[]) {\n const logger = this.getLogger();\n logger.trace(message, ...optionalParams);\n }\n\n fatal(message?: any, ...optionalParams: any[]) {\n const logger = this.getLogger();\n logger.fatal(message, ...optionalParams);\n }\n\n debug(message?: any, ...optionalParams: any[]) {\n const logger = this.getLogger();\n logger.debug(message, ...optionalParams);\n }\n\n info(message?: any, ...optionalParams: any[]) {\n const logger = this.getLogger();\n logger.info(message, ...optionalParams);\n }\n\n warn(message?: any, ...optionalParams: any[]) {\n const logger = this.getLogger();\n logger.warn(message, ...optionalParams);\n }\n\n error(message?: any, ...optionalParams: any[]) {\n const logger = this.getLogger();\n logger.error(message, ...optionalParams);\n }\n\n log(message?: any, ...optionalParams: any[]) {\n const logger = this.getLogger();\n logger.info(message, ...optionalParams);\n }\n\n private getLogger() {\n if (this.pinoLogger) {\n return this.pinoLogger;\n }\n\n const logStream = this.getLogStream();\n const level = this.getLogLevel();\n\n this.pinoLogger = pino({ level }, logStream);\n\n return this.pinoLogger;\n }\n\n private getLogStream() {\n const argv = this.getArgvService.execute();\n if (argv.showLogs) {\n return pinoPretty({\n ignore: \"pid,hostname\"\n });\n }\n\n // Wanted to use `GetProjectSdkService` to get project root path, but\n // to get that, had to call async method, which is not allowed in constructor.\n // TODO: implement a better way to get project root path.\n const webinyConfigPath = findUpSync(\"webiny.config.tsx\");\n if (!webinyConfigPath) {\n // Should not happen, but just in case.\n throw new Error(\"Could not find project root path.\");\n }\n\n const projectRootPath = path.dirname(webinyConfigPath!);\n\n const logsFolderPath = path.join(projectRootPath, \".webiny\", \"logs\");\n const logsFileName = this.getLogFileName();\n\n if (!fs.existsSync(logsFolderPath)) {\n fs.mkdirSync(logsFolderPath, { recursive: true });\n }\n\n const logFilePath = path.join(logsFolderPath, logsFileName);\n\n // Ensure the file exists or can be appended to\n return fs.createWriteStream(logFilePath, { flags: \"a\" });\n }\n\n private getLogFileName() {\n const now = new Date();\n const dateStr = now.toISOString().split(\"T\")[0];\n return `logs-${dateStr}.log`;\n }\n\n private getLogLevel() {\n const argv = this.getArgvService.execute();\n return process.env.WEBINY_CLI_LOG_LEVEL || argv.logLevel || DEFAULT_LOG_LEVEL;\n }\n}\n\nexport const loggerService = createImplementation({\n abstraction: LoggerService,\n implementation: DefaultLoggerService,\n dependencies: [GetArgvService]\n});\n"],"mappings":"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","ignoreList":[]}
|
package/exports/cli/index.d.ts
DELETED
package/exports/cli/index.js
DELETED
package/exports/cli/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["LoggerService","Logger","UiService","Ui"],"sources":["index.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":[]}
|