@webiny/cli-core 0.0.0-unstable.6844005670 → 0.0.0-unstable.81ae05e56b

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.
@@ -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,4 +1,7 @@
1
1
  import { createAbstraction } from "../createAbstraction.js";
2
+ /**
3
+ * Implement a custom CLI command for Webiny CLI.
4
+ */
2
5
  export const CliCommandFactory = createAbstraction("CliCommandFactory");
3
6
 
4
7
  //# sourceMappingURL=CliCommand.js.map
@@ -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":[]}
@@ -8,7 +8,7 @@ linkProjectCommand, loginCommand, logoutCommand, whoAmICommand,
8
8
  showLogsGlobalOption, logLevelGlobalOption, stackTraceGlobalOption } from "./features/index.js";
9
9
  import chalk from "chalk";
10
10
  import { CliParamsService, GetArgvService, GetProjectSdkService, UiService } from "./abstractions/index.js";
11
- import { GracefulError } from "@webiny/project";
11
+ import { GracefulError, toImportSpecifier } from "@webiny/project";
12
12
  import { commandsWithGracefulErrorHandling, deployCommandWithTelemetry } from "./decorators/index.js";
13
13
  import { CliCommand } from "./extensions/index.js";
14
14
  const {
@@ -88,7 +88,7 @@ export const createCliContainer = async params => {
88
88
  importPath = filePath;
89
89
  }
90
90
  const exportName = path.basename(filePath).replace(path.extname(filePath), "");
91
- const importedModule = await import(importPath);
91
+ const importedModule = await import(toImportSpecifier(importPath));
92
92
 
93
93
  // Support both default and named exports.
94
94
  // 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","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","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 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, 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\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":[]}
@@ -0,0 +1,2 @@
1
+ export { LoggerService as Logger } from "../abstractions/services/LoggerService.js";
2
+ export { UiService as Ui } from "../abstractions/services/UiService.js";
package/exports/cli.js ADDED
@@ -0,0 +1,4 @@
1
+ export { LoggerService as Logger } from "../abstractions/services/LoggerService.js";
2
+ export { UiService as Ui } from "../abstractions/services/UiService.js";
3
+
4
+ //# sourceMappingURL=cli.js.map
@@ -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.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
4
- }, "strip", z.ZodTypeAny, {
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.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
4
- }, "strip", z.ZodTypeAny, {
5
- src: string;
6
- }, {
7
- src: string;
8
- }>>;
3
+ src: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
4
+ }, z.core.$strip>>;
@@ -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").ZodEffects<import("zod").ZodEffects<import("zod").ZodString, string, string>, string, string>;
5
- }, "strip", import("zod").ZodTypeAny, {
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 glob from "glob";
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 = glob.sync(`${target}/**/**/{package.json,*.package.json,dependencies.json}`, {
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":["glob","defaultIgnore","ListAllPackageJsonFiles","list","params","targets","ignore","concat","results","target","files","sync","push"],"sources":["ListAllPackageJsonFiles.ts"],"sourcesContent":["import glob from \"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 = glob.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,IAAI,MAAM,MAAM;AAEvB,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,IAAI,CAACW,IAAI,CACnB,GAAGF,MAAM,wDAAwD,EACjE;QACIH;MACJ,CACJ,CAAC;MACDE,OAAO,CAACI,IAAI,CAAC,GAAGF,KAAK,CAAC;IAC1B;IAEA,OAAOF,OAAO;EAClB;AACJ","ignoreList":[]}
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":[]}
@@ -77,7 +77,7 @@ export class LinkProjectCommand {
77
77
  selectedOrg = await prompt({
78
78
  name: "org",
79
79
  message: "Select organization:",
80
- type: "list",
80
+ type: "select",
81
81
  choices,
82
82
  default: choices[0].value
83
83
  }).then(result => result.org);
@@ -114,7 +114,7 @@ export class LinkProjectCommand {
114
114
  selectedProject = await prompt({
115
115
  name: "project",
116
116
  message: "Select project:",
117
- type: "list",
117
+ type: "select",
118
118
  choices,
119
119
  default: choices[0].value
120
120
  }).then(result => result.project);
@@ -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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webiny/cli-core",
3
- "version": "0.0.0-unstable.6844005670",
3
+ "version": "0.0.0-unstable.81ae05e56b",
4
4
  "type": "module",
5
5
  "main": "index.js",
6
6
  "repository": {
@@ -11,32 +11,32 @@
11
11
  "license": "MIT",
12
12
  "dependencies": {
13
13
  "@webiny/di": "0.2.3",
14
- "@webiny/project": "0.0.0-unstable.6844005670",
15
- "@webiny/pulumi-sdk": "0.0.0-unstable.6844005670",
16
- "@webiny/telemetry": "0.0.0-unstable.6844005670",
17
- "chalk": "4.1.2",
14
+ "@webiny/project": "0.0.0-unstable.81ae05e56b",
15
+ "@webiny/pulumi-sdk": "0.0.0-unstable.81ae05e56b",
16
+ "@webiny/telemetry": "0.0.0-unstable.81ae05e56b",
17
+ "chalk": "5.6.2",
18
18
  "ci-info": "4.4.0",
19
19
  "execa": "5.1.1",
20
- "find-up": "5.0.0",
20
+ "fast-glob": "3.3.3",
21
+ "find-up": "8.0.0",
21
22
  "get-yarn-workspaces": "1.0.2",
22
- "glob": "7.2.3",
23
23
  "humanize-duration": "3.33.2",
24
- "inquirer": "12.11.1",
24
+ "inquirer": "13.3.2",
25
25
  "load-json-file": "7.0.1",
26
- "open": "10.2.0",
27
- "ora": "4.1.1",
28
- "pino": "9.14.0",
29
- "pino-pretty": "9.4.1",
26
+ "open": "11.0.0",
27
+ "ora": "9.3.0",
28
+ "pino": "10.3.1",
29
+ "pino-pretty": "13.1.3",
30
30
  "semver": "7.7.4",
31
- "type-fest": "5.4.4",
31
+ "type-fest": "5.5.0",
32
32
  "write-json-file": "7.0.0",
33
- "yargs": "17.7.2",
34
- "zod": "3.25.76"
33
+ "yargs": "18.0.0",
34
+ "zod": "4.3.6"
35
35
  },
36
36
  "devDependencies": {
37
37
  "@types/listr": "0.14.10",
38
38
  "@types/lodash": "4.17.24",
39
- "@webiny/build-tools": "0.0.0-unstable.6844005670",
39
+ "@webiny/build-tools": "0.0.0-unstable.81ae05e56b",
40
40
  "rimraf": "6.1.3",
41
41
  "typescript": "5.9.3"
42
42
  },
@@ -44,5 +44,5 @@
44
44
  "access": "public",
45
45
  "directory": "dist"
46
46
  },
47
- "gitHead": "6844005670e84a575d0c765a6c4f9c5d59166516"
47
+ "gitHead": "81ae05e56bcc774d1e077ca615a0005e736aa5a6"
48
48
  }
@@ -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 findUp from "find-up";
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 = findUp.sync("webiny.config.tsx");
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","findUp","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","sync","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 findUp 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 = findUp.sync(\"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":[]}
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":[]}
@@ -1,2 +0,0 @@
1
- export { LoggerService as Logger } from "../../abstractions/services/LoggerService.js";
2
- export { UiService as Ui } from "../../abstractions/services/UiService.js";
@@ -1,4 +0,0 @@
1
- export { LoggerService as Logger } from "../../abstractions/services/LoggerService.js";
2
- export { UiService as Ui } from "../../abstractions/services/UiService.js";
3
-
4
- //# sourceMappingURL=index.js.map
@@ -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":[]}