@webiny/cli-core 6.3.0 → 6.4.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (255) hide show
  1. package/Cli.js +12 -11
  2. package/Cli.js.map +1 -1
  3. package/abstractions/createAbstraction.js +3 -2
  4. package/abstractions/createAbstraction.js.map +1 -1
  5. package/abstractions/features/CliCommand.js +2 -4
  6. package/abstractions/features/CliCommand.js.map +1 -1
  7. package/abstractions/features/ErrorHandler.js +2 -1
  8. package/abstractions/features/ErrorHandler.js.map +1 -1
  9. package/abstractions/features/GlobalCliOption.js +2 -1
  10. package/abstractions/features/GlobalCliOption.js.map +1 -1
  11. package/abstractions/features/IsCi.js +2 -1
  12. package/abstractions/features/IsCi.js.map +1 -1
  13. package/abstractions/features/index.js +0 -2
  14. package/abstractions/features/types.js +0 -3
  15. package/abstractions/index.js +0 -2
  16. package/abstractions/services/ArgvParserService.js +2 -1
  17. package/abstractions/services/ArgvParserService.js.map +1 -1
  18. package/abstractions/services/CliParamsService.js +2 -1
  19. package/abstractions/services/CliParamsService.js.map +1 -1
  20. package/abstractions/services/CommandsRegistryService.js +2 -1
  21. package/abstractions/services/CommandsRegistryService.js.map +1 -1
  22. package/abstractions/services/GetArgvService.js +2 -1
  23. package/abstractions/services/GetArgvService.js.map +1 -1
  24. package/abstractions/services/GetCliRunnerService.js +2 -1
  25. package/abstractions/services/GetCliRunnerService.js.map +1 -1
  26. package/abstractions/services/GetIsCiService.js +2 -1
  27. package/abstractions/services/GetIsCiService.js.map +1 -1
  28. package/abstractions/services/GetProjectSdkService.js +2 -1
  29. package/abstractions/services/GetProjectSdkService.js.map +1 -1
  30. package/abstractions/services/GlobalOptionsRegistryService.js +2 -1
  31. package/abstractions/services/GlobalOptionsRegistryService.js.map +1 -1
  32. package/abstractions/services/LoggerService.js +2 -1
  33. package/abstractions/services/LoggerService.js.map +1 -1
  34. package/abstractions/services/RunCliRunnerService.js +2 -1
  35. package/abstractions/services/RunCliRunnerService.js.map +1 -1
  36. package/abstractions/services/StdioService.js +2 -1
  37. package/abstractions/services/StdioService.js.map +1 -1
  38. package/abstractions/services/UiService.js +2 -1
  39. package/abstractions/services/UiService.js.map +1 -1
  40. package/abstractions/services/index.js +0 -2
  41. package/createCliContainer.js +87 -113
  42. package/createCliContainer.js.map +1 -1
  43. package/decorators/CommandsWithGracefulErrorHandling.js +34 -32
  44. package/decorators/CommandsWithGracefulErrorHandling.js.map +1 -1
  45. package/decorators/DeployCommandWithTelemetry.js +72 -82
  46. package/decorators/DeployCommandWithTelemetry.js.map +1 -1
  47. package/decorators/index.js +0 -2
  48. package/exports/cli/command.js +0 -2
  49. package/exports/cli.js +0 -2
  50. package/extensions/CliCommand.js +15 -18
  51. package/extensions/CliCommand.js.map +1 -1
  52. package/extensions/CliCommandDecorator.js +15 -18
  53. package/extensions/CliCommandDecorator.js.map +1 -1
  54. package/extensions/index.js +5 -2
  55. package/extensions/index.js.map +1 -1
  56. package/features/AboutCommand.js +80 -86
  57. package/features/AboutCommand.js.map +1 -1
  58. package/features/BuildCommand/BuildCommand.js +46 -36
  59. package/features/BuildCommand/BuildCommand.js.map +1 -1
  60. package/features/BuildCommand/buildRunners/BaseBuildRunner.js +10 -13
  61. package/features/BuildCommand/buildRunners/BaseBuildRunner.js.map +1 -1
  62. package/features/BuildCommand/buildRunners/BuildRunner.js +18 -21
  63. package/features/BuildCommand/buildRunners/BuildRunner.js.map +1 -1
  64. package/features/BuildCommand/buildRunners/MultipleBuildsRunner.js +20 -19
  65. package/features/BuildCommand/buildRunners/MultipleBuildsRunner.js.map +1 -1
  66. package/features/BuildCommand/buildRunners/SingleBuildRunner.js +15 -14
  67. package/features/BuildCommand/buildRunners/SingleBuildRunner.js.map +1 -1
  68. package/features/BuildCommand/buildRunners/ZeroBuildsRunner.js +3 -4
  69. package/features/BuildCommand/buildRunners/ZeroBuildsRunner.js.map +1 -1
  70. package/features/BuildCommand/index.js +0 -2
  71. package/features/ConfigCommand.js +55 -56
  72. package/features/ConfigCommand.js.map +1 -1
  73. package/features/DeployCommand/DeployCommand.js +162 -156
  74. package/features/DeployCommand/DeployCommand.js.map +1 -1
  75. package/features/DeployCommand/deployOutputs/BaseDeployOutput.js +12 -17
  76. package/features/DeployCommand/deployOutputs/BaseDeployOutput.js.map +1 -1
  77. package/features/DeployCommand/deployOutputs/DeployOutput.js +16 -17
  78. package/features/DeployCommand/deployOutputs/DeployOutput.js.map +1 -1
  79. package/features/DeployCommand/deployOutputs/NoDeploymentLogsDeployOutput.js +89 -54
  80. package/features/DeployCommand/deployOutputs/NoDeploymentLogsDeployOutput.js.map +1 -1
  81. package/features/DeployCommand/deployOutputs/WithDeploymentLogsDeployOutput.js +24 -37
  82. package/features/DeployCommand/deployOutputs/WithDeploymentLogsDeployOutput.js.map +1 -1
  83. package/features/DeployCommand/index.js +0 -2
  84. package/features/DepsSync/BuildDependencyTree.js +16 -21
  85. package/features/DepsSync/BuildDependencyTree.js.map +1 -1
  86. package/features/DepsSync/DependencyTree.js +108 -126
  87. package/features/DepsSync/DependencyTree.js.map +1 -1
  88. package/features/DepsSync/ListAllPackageJsonFiles.js +19 -14
  89. package/features/DepsSync/ListAllPackageJsonFiles.js.map +1 -1
  90. package/features/DepsSync/ListAllPackages.js +7 -9
  91. package/features/DepsSync/ListAllPackages.js.map +1 -1
  92. package/features/DepsSync/commands/SyncDepsCommand.js +30 -24
  93. package/features/DepsSync/commands/SyncDepsCommand.js.map +1 -1
  94. package/features/DepsSync/commands/VerifyDepsCommand.js +69 -70
  95. package/features/DepsSync/commands/VerifyDepsCommand.js.map +1 -1
  96. package/features/DepsSync/createDependencyTree.js +25 -18
  97. package/features/DepsSync/createDependencyTree.js.map +1 -1
  98. package/features/DepsSync/createReferenceFile.js +21 -25
  99. package/features/DepsSync/createReferenceFile.js.map +1 -1
  100. package/features/DepsSync/index.js +0 -2
  101. package/features/DepsSync/paths.js +3 -6
  102. package/features/DepsSync/paths.js.map +1 -1
  103. package/features/DepsSync/types.js +7 -6
  104. package/features/DepsSync/types.js.map +1 -1
  105. package/features/DestroyCommand/DestroyCommand.js +71 -67
  106. package/features/DestroyCommand/DestroyCommand.js.map +1 -1
  107. package/features/DestroyCommand/index.js +0 -2
  108. package/features/DisableTelemetryCommand.js +28 -25
  109. package/features/DisableTelemetryCommand.js.map +1 -1
  110. package/features/EnableTelemetryCommand.js +28 -25
  111. package/features/EnableTelemetryCommand.js.map +1 -1
  112. package/features/ExtensionCommand/ExtensionCommand.js +60 -63
  113. package/features/ExtensionCommand/ExtensionCommand.js.map +1 -1
  114. package/features/ExtensionCommand/index.js +0 -2
  115. package/features/InfoCommand/InfoCommand.js +54 -56
  116. package/features/InfoCommand/InfoCommand.js.map +1 -1
  117. package/features/InfoCommand/PrintInfoForEnv.js +31 -47
  118. package/features/InfoCommand/PrintInfoForEnv.js.map +1 -1
  119. package/features/InfoCommand/index.js +0 -2
  120. package/features/IsCi/IsCi.js +14 -11
  121. package/features/IsCi/IsCi.js.map +1 -1
  122. package/features/IsCi/index.js +1 -3
  123. package/features/OpenCommand.js +48 -47
  124. package/features/OpenCommand.js.map +1 -1
  125. package/features/OutputCommand.js +56 -69
  126. package/features/OutputCommand.js.map +1 -1
  127. package/features/PulumiCommand/PulumiCommand.js +48 -41
  128. package/features/PulumiCommand/PulumiCommand.js.map +1 -1
  129. package/features/PulumiCommand/index.js +0 -2
  130. package/features/RefreshCommand/RefreshCommand.js +42 -36
  131. package/features/RefreshCommand/RefreshCommand.js.map +1 -1
  132. package/features/RefreshCommand/index.js +0 -2
  133. package/features/UpgradeCommand/UpgradeCommand.js +112 -101
  134. package/features/UpgradeCommand/UpgradeCommand.js.map +1 -1
  135. package/features/UpgradeCommand/UpgradeCommandHandler.js +90 -101
  136. package/features/UpgradeCommand/UpgradeCommandHandler.js.map +1 -1
  137. package/features/UpgradeCommand/abstraction.js +2 -1
  138. package/features/UpgradeCommand/abstraction.js.map +1 -1
  139. package/features/UpgradeCommand/feature.js +7 -6
  140. package/features/UpgradeCommand/feature.js.map +1 -1
  141. package/features/UpgradeCommand/index.js +0 -2
  142. package/features/WatchCommand/WatchCommand.js +131 -131
  143. package/features/WatchCommand/WatchCommand.js.map +1 -1
  144. package/features/WatchCommand/createPrefixer.js +11 -15
  145. package/features/WatchCommand/createPrefixer.js.map +1 -1
  146. package/features/WatchCommand/getRandomColorForString.js +86 -8
  147. package/features/WatchCommand/getRandomColorForString.js.map +1 -1
  148. package/features/WatchCommand/index.js +0 -2
  149. package/features/Wcp/LinkProjectCommand.js +119 -138
  150. package/features/Wcp/LinkProjectCommand.js.map +1 -1
  151. package/features/Wcp/LoginCommand.js +104 -118
  152. package/features/Wcp/LoginCommand.js.map +1 -1
  153. package/features/Wcp/LogoutCommand.js +29 -23
  154. package/features/Wcp/LogoutCommand.js.map +1 -1
  155. package/features/Wcp/WhoAmICommand.js +33 -29
  156. package/features/Wcp/WhoAmICommand.js.map +1 -1
  157. package/features/common/index.js +0 -2
  158. package/features/common/options.js +41 -50
  159. package/features/common/options.js.map +1 -1
  160. package/features/globalOptions/LogLevelGlobalOption.js +25 -16
  161. package/features/globalOptions/LogLevelGlobalOption.js.map +1 -1
  162. package/features/globalOptions/ShowLogsGlobalOption.js +16 -15
  163. package/features/globalOptions/ShowLogsGlobalOption.js.map +1 -1
  164. package/features/globalOptions/StackTraceGlobalOption.js +16 -15
  165. package/features/globalOptions/StackTraceGlobalOption.js.map +1 -1
  166. package/features/globalOptions/index.js +0 -2
  167. package/features/gracefulErrorHandlers/DdbPutItemConditionalCheckFailedGracefulErrorHandler.js +17 -16
  168. package/features/gracefulErrorHandlers/DdbPutItemConditionalCheckFailedGracefulErrorHandler.js.map +1 -1
  169. package/features/gracefulErrorHandlers/MissingFilesInBuildGracefulErrorHandler.js +12 -18
  170. package/features/gracefulErrorHandlers/MissingFilesInBuildGracefulErrorHandler.js.map +1 -1
  171. package/features/gracefulErrorHandlers/PendingOperationsGracefulErrorHandler.js +19 -19
  172. package/features/gracefulErrorHandlers/PendingOperationsGracefulErrorHandler.js.map +1 -1
  173. package/features/gracefulErrorHandlers/index.js +0 -2
  174. package/features/index.js +0 -2
  175. package/features/utils/index.js +0 -2
  176. package/features/utils/measureDuration.js +7 -8
  177. package/features/utils/measureDuration.js.map +1 -1
  178. package/index.js +0 -2
  179. package/package.json +11 -11
  180. package/services/ArgvParserService/ArgvParserService.js +27 -33
  181. package/services/ArgvParserService/ArgvParserService.js.map +1 -1
  182. package/services/ArgvParserService/index.js +0 -2
  183. package/services/CliParamsService/CliParamsService.js +18 -15
  184. package/services/CliParamsService/CliParamsService.js.map +1 -1
  185. package/services/CliParamsService/index.js +0 -2
  186. package/services/CommandsRegistryService/CommandsRegistryService.js +19 -13
  187. package/services/CommandsRegistryService/CommandsRegistryService.js.map +1 -1
  188. package/services/CommandsRegistryService/index.js +0 -2
  189. package/services/GetArgvService/GetArgvService.js +14 -11
  190. package/services/GetArgvService/GetArgvService.js.map +1 -1
  191. package/services/GetArgvService/index.js +0 -2
  192. package/services/GetCliRunnerService/GetCliRunnerService.js +119 -155
  193. package/services/GetCliRunnerService/GetCliRunnerService.js.map +1 -1
  194. package/services/GetCliRunnerService/index.js +0 -2
  195. package/services/GetIsCiService/GetIsCiService.js +9 -8
  196. package/services/GetIsCiService/GetIsCiService.js.map +1 -1
  197. package/services/GetIsCiService/index.js +1 -3
  198. package/services/GetProjectSdkService/GetProjectSdkService.js +25 -24
  199. package/services/GetProjectSdkService/GetProjectSdkService.js.map +1 -1
  200. package/services/GetProjectSdkService/index.js +0 -2
  201. package/services/GlobalOptionsRegistryService/GlobalOptionsRegistryService.js +19 -13
  202. package/services/GlobalOptionsRegistryService/GlobalOptionsRegistryService.js.map +1 -1
  203. package/services/GlobalOptionsRegistryService/index.js +0 -2
  204. package/services/LoggerService/LoggerService.js +75 -87
  205. package/services/LoggerService/LoggerService.js.map +1 -1
  206. package/services/LoggerService/index.js +0 -2
  207. package/services/RunCliRunnerService/RunCliRunnerService.js +15 -13
  208. package/services/RunCliRunnerService/RunCliRunnerService.js.map +1 -1
  209. package/services/RunCliRunnerService/index.js +0 -2
  210. package/services/StdioService/StdioService.js +15 -14
  211. package/services/StdioService/StdioService.js.map +1 -1
  212. package/services/StdioService/index.js +0 -2
  213. package/services/UiService/UiService.js +55 -58
  214. package/services/UiService/UiService.js.map +1 -1
  215. package/services/UiService/index.js +0 -2
  216. package/services/index.js +0 -2
  217. package/utils/ManuallyReportedError.js +7 -6
  218. package/utils/ManuallyReportedError.js.map +1 -1
  219. package/abstractions/features/index.js.map +0 -1
  220. package/abstractions/features/types.js.map +0 -1
  221. package/abstractions/index.js.map +0 -1
  222. package/abstractions/services/index.js.map +0 -1
  223. package/decorators/index.js.map +0 -1
  224. package/exports/cli/command.js.map +0 -1
  225. package/exports/cli.js.map +0 -1
  226. package/features/BuildCommand/index.js.map +0 -1
  227. package/features/DeployCommand/index.js.map +0 -1
  228. package/features/DepsSync/index.js.map +0 -1
  229. package/features/DestroyCommand/index.js.map +0 -1
  230. package/features/ExtensionCommand/index.js.map +0 -1
  231. package/features/InfoCommand/index.js.map +0 -1
  232. package/features/IsCi/index.js.map +0 -1
  233. package/features/PulumiCommand/index.js.map +0 -1
  234. package/features/RefreshCommand/index.js.map +0 -1
  235. package/features/UpgradeCommand/index.js.map +0 -1
  236. package/features/WatchCommand/index.js.map +0 -1
  237. package/features/common/index.js.map +0 -1
  238. package/features/globalOptions/index.js.map +0 -1
  239. package/features/gracefulErrorHandlers/index.js.map +0 -1
  240. package/features/index.js.map +0 -1
  241. package/features/utils/index.js.map +0 -1
  242. package/index.js.map +0 -1
  243. package/services/ArgvParserService/index.js.map +0 -1
  244. package/services/CliParamsService/index.js.map +0 -1
  245. package/services/CommandsRegistryService/index.js.map +0 -1
  246. package/services/GetArgvService/index.js.map +0 -1
  247. package/services/GetCliRunnerService/index.js.map +0 -1
  248. package/services/GetIsCiService/index.js.map +0 -1
  249. package/services/GetProjectSdkService/index.js.map +0 -1
  250. package/services/GlobalOptionsRegistryService/index.js.map +0 -1
  251. package/services/LoggerService/index.js.map +0 -1
  252. package/services/RunCliRunnerService/index.js.map +0 -1
  253. package/services/StdioService/index.js.map +0 -1
  254. package/services/UiService/index.js.map +0 -1
  255. package/services/index.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"names":["path","Container","argvParserService","cliParamsService","commandsRegistryService","getArgvService","getCliRunnerService","getIsCiService","getProjectSdkService","globalOptionsRegistryService","loggerService","runCliRunnerService","stdioService","uiService","aboutCommand","buildCommand","configCommand","ddbPutItemConditionalCheckFailedGracefulErrorHandler","deployCommand","destroyCommand","disableTelemetryCommand","enableTelemetryCommand","extensionCommand","infoCommand","isCi","linkProjectCommand","loginCommand","logLevelGlobalOption","logoutCommand","missingFilesInBuildGracefulErrorHandler","openCommand","outputCommand","pendingOperationsGracefulErrorHandler","pulumiCommand","refreshCommand","showLogsGlobalOption","stackTraceGlobalOption","syncDepsCommand","UpgradeCommandFeature","verifyDepsCommand","watchCommand","whoAmICommand","chalk","CliParamsService","GetArgvService","GetProjectSdkService","UiService","GracefulError","toImportSpecifier","commandsWithGracefulErrorHandling","deployCommandWithTelemetry","CliCommand","bgYellow","bold","createCliContainer","params","container","register","inSingletonScope","ui","resolve","set","projectSdk","execute","projectConfig","getProjectConfig","tags","runtimeContext","validateProjectConfig","project","getProject","importFromPath","filePath","importPath","startsWith","paths","rootFolder","join","toString","exportName","basename","replace","extname","importedModule","default","commands","extensionsByType","command","commandImplementation","src","error","realError","cause","message","argv","showStackTrace","stack","emptyLine","debug","text","process","exit","registerDecorator"],"sources":["createCliContainer.ts"],"sourcesContent":["import path from \"path\";\nimport { Container } from \"@webiny/di\";\nimport {\n argvParserService,\n cliParamsService,\n commandsRegistryService,\n getArgvService,\n getCliRunnerService,\n getIsCiService,\n getProjectSdkService,\n globalOptionsRegistryService,\n loggerService,\n runCliRunnerService,\n stdioService,\n uiService\n} from \"./services/index.js\";\n\nimport {\n aboutCommand,\n buildCommand,\n configCommand,\n ddbPutItemConditionalCheckFailedGracefulErrorHandler,\n deployCommand,\n destroyCommand,\n disableTelemetryCommand,\n enableTelemetryCommand,\n extensionCommand,\n infoCommand,\n isCi,\n linkProjectCommand,\n loginCommand,\n logLevelGlobalOption,\n logoutCommand,\n missingFilesInBuildGracefulErrorHandler,\n openCommand,\n outputCommand,\n pendingOperationsGracefulErrorHandler,\n pulumiCommand,\n refreshCommand,\n showLogsGlobalOption,\n stackTraceGlobalOption,\n syncDepsCommand,\n UpgradeCommandFeature,\n verifyDepsCommand,\n watchCommand,\n whoAmICommand\n} from \"./features/index.js\";\n\nimport chalk from \"chalk\";\nimport {\n CliParamsService,\n GetArgvService,\n GetProjectSdkService,\n UiService\n} from \"~/abstractions/index.js\";\nimport { GracefulError, toImportSpecifier } from \"@webiny/project\";\nimport {\n commandsWithGracefulErrorHandling,\n deployCommandWithTelemetry\n} from \"./decorators/index.js\";\nimport { CliCommand } from \"~/extensions/index.js\";\n\nconst { bgYellow, bold } = chalk;\n\nexport const createCliContainer = async (params: CliParamsService.Params) => {\n const container = new Container();\n\n // Features (commands).\n container.register(aboutCommand).inSingletonScope();\n container.register(buildCommand).inSingletonScope();\n container.register(configCommand).inSingletonScope();\n container.register(deployCommand).inSingletonScope();\n container.register(pulumiCommand).inSingletonScope();\n container.register(refreshCommand).inSingletonScope();\n container.register(enableTelemetryCommand).inSingletonScope();\n container.register(disableTelemetryCommand).inSingletonScope();\n container.register(extensionCommand).inSingletonScope();\n container.register(syncDepsCommand).inSingletonScope();\n container.register(verifyDepsCommand).inSingletonScope();\n container.register(destroyCommand).inSingletonScope();\n container.register(infoCommand).inSingletonScope();\n container.register(isCi).inSingletonScope();\n container.register(openCommand).inSingletonScope();\n container.register(outputCommand).inSingletonScope();\n container.register(watchCommand).inSingletonScope();\n UpgradeCommandFeature.register(container);\n\n container.register(linkProjectCommand).inSingletonScope();\n container.register(loginCommand).inSingletonScope();\n container.register(logoutCommand).inSingletonScope();\n container.register(whoAmICommand).inSingletonScope();\n\n // Graceful error handlers.\n container.register(ddbPutItemConditionalCheckFailedGracefulErrorHandler).inSingletonScope();\n container.register(missingFilesInBuildGracefulErrorHandler).inSingletonScope();\n container.register(pendingOperationsGracefulErrorHandler).inSingletonScope();\n\n // Global options.\n container.register(showLogsGlobalOption).inSingletonScope();\n container.register(logLevelGlobalOption).inSingletonScope();\n container.register(stackTraceGlobalOption).inSingletonScope();\n\n // Services.\n container.register(argvParserService).inSingletonScope();\n container.register(cliParamsService).inSingletonScope();\n container.register(commandsRegistryService).inSingletonScope();\n container.register(getArgvService).inSingletonScope();\n container.register(getCliRunnerService).inSingletonScope();\n container.register(getIsCiService).inSingletonScope();\n container.register(globalOptionsRegistryService).inSingletonScope();\n container.register(getProjectSdkService).inSingletonScope();\n container.register(loggerService).inSingletonScope();\n container.register(runCliRunnerService).inSingletonScope();\n container.register(stdioService).inSingletonScope();\n container.register(uiService).inSingletonScope();\n\n // Extensions.\n const ui = container.resolve(UiService);\n\n try {\n // Immediately set CLI instance params via the `CliParamsService`.\n container.resolve(CliParamsService).set(params);\n\n const projectSdk = await container.resolve(GetProjectSdkService).execute();\n\n const projectConfig = await projectSdk.getProjectConfig({\n tags: { runtimeContext: \"cli\" }\n });\n\n await projectSdk.validateProjectConfig(projectConfig);\n\n const project = projectSdk.getProject();\n\n const importFromPath = async (filePath: string) => {\n let importPath: string;\n if (filePath.startsWith(\"/extensions/\")) {\n // Resolve from project root.\n importPath = project.paths.rootFolder.join(filePath).toString();\n } else {\n // Treat as absolute path.\n importPath = filePath;\n }\n\n const exportName = path.basename(filePath).replace(path.extname(filePath), \"\");\n\n const importedModule = await import(toImportSpecifier(importPath));\n\n // Support both default and named exports.\n // Check for 'default' property existence rather than truthiness.\n return (\n (\"default\" in importedModule && importedModule.default) ||\n importedModule[exportName]\n );\n };\n\n const commands = projectConfig.extensionsByType(CliCommand);\n for (const command of commands) {\n const commandImplementation = await importFromPath(command.params.src);\n\n container.register(commandImplementation).inSingletonScope();\n }\n } catch (error) {\n let realError = error;\n if (error.cause) {\n realError = error.cause as Error;\n }\n\n ui.error(realError.message);\n\n const argv = container.resolve(GetArgvService).execute();\n if (argv.showStackTrace && realError.stack) {\n ui.emptyLine();\n ui.debug(\"Stack trace:\");\n ui.text(realError.stack);\n }\n\n if (error && error instanceof GracefulError) {\n ui.emptyLine();\n ui.text(bgYellow(bold(\"💡 How can I resolve this?\")));\n ui.text(error.message);\n }\n\n process.exit(1);\n }\n\n // Decorators.\n container.registerDecorator(commandsWithGracefulErrorHandling);\n container.registerDecorator(deployCommandWithTelemetry);\n\n return container;\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"createCliContainer.js","sources":["../src/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"],"names":["bgYellow","bold","chalk","createCliContainer","params","container","Container","aboutCommand","buildCommand","configCommand","deployCommand","pulumiCommand","refreshCommand","enableTelemetryCommand","disableTelemetryCommand","extensionCommand","syncDepsCommand","verifyDepsCommand","destroyCommand","infoCommand","isCi","openCommand","outputCommand","watchCommand","UpgradeCommandFeature","linkProjectCommand","loginCommand","logoutCommand","whoAmICommand","ddbPutItemConditionalCheckFailedGracefulErrorHandler","missingFilesInBuildGracefulErrorHandler","pendingOperationsGracefulErrorHandler","showLogsGlobalOption","logLevelGlobalOption","stackTraceGlobalOption","argvParserService","cliParamsService","commandsRegistryService","getArgvService","getCliRunnerService","getIsCiService","globalOptionsRegistryService","getProjectSdkService","loggerService","runCliRunnerService","stdioService","uiService","ui","UiService","CliParamsService","projectSdk","GetProjectSdkService","projectConfig","project","importFromPath","filePath","importPath","exportName","path","importedModule","toImportSpecifier","commands","CliCommand","command","commandImplementation","error","realError","argv","GetArgvService","GracefulError","process","commandsWithGracefulErrorHandling","deployCommandWithTelemetry"],"mappings":";;;;;;;;;AA8DA,MAAM,EAAEA,UAAAA,QAAQ,EAAEC,MAAAA,IAAI,EAAE,GAAGC;AAEpB,MAAMC,qBAAqB,OAAOC;IACrC,MAAMC,YAAY,IAAIC;IAGtBD,UAAU,QAAQ,CAACE,cAAc,gBAAgB;IACjDF,UAAU,QAAQ,CAACG,cAAc,gBAAgB;IACjDH,UAAU,QAAQ,CAACI,eAAe,gBAAgB;IAClDJ,UAAU,QAAQ,CAACK,eAAe,gBAAgB;IAClDL,UAAU,QAAQ,CAACM,eAAe,gBAAgB;IAClDN,UAAU,QAAQ,CAACO,gBAAgB,gBAAgB;IACnDP,UAAU,QAAQ,CAACQ,wBAAwB,gBAAgB;IAC3DR,UAAU,QAAQ,CAACS,yBAAyB,gBAAgB;IAC5DT,UAAU,QAAQ,CAACU,kBAAkB,gBAAgB;IACrDV,UAAU,QAAQ,CAACW,iBAAiB,gBAAgB;IACpDX,UAAU,QAAQ,CAACY,mBAAmB,gBAAgB;IACtDZ,UAAU,QAAQ,CAACa,gBAAgB,gBAAgB;IACnDb,UAAU,QAAQ,CAACc,aAAa,gBAAgB;IAChDd,UAAU,QAAQ,CAACe,MAAM,gBAAgB;IACzCf,UAAU,QAAQ,CAACgB,aAAa,gBAAgB;IAChDhB,UAAU,QAAQ,CAACiB,eAAe,gBAAgB;IAClDjB,UAAU,QAAQ,CAACkB,cAAc,gBAAgB;IACjDC,sBAAsB,QAAQ,CAACnB;IAE/BA,UAAU,QAAQ,CAACoB,oBAAoB,gBAAgB;IACvDpB,UAAU,QAAQ,CAACqB,cAAc,gBAAgB;IACjDrB,UAAU,QAAQ,CAACsB,eAAe,gBAAgB;IAClDtB,UAAU,QAAQ,CAACuB,eAAe,gBAAgB;IAGlDvB,UAAU,QAAQ,CAACwB,sDAAsD,gBAAgB;IACzFxB,UAAU,QAAQ,CAACyB,yCAAyC,gBAAgB;IAC5EzB,UAAU,QAAQ,CAAC0B,uCAAuC,gBAAgB;IAG1E1B,UAAU,QAAQ,CAAC2B,sBAAsB,gBAAgB;IACzD3B,UAAU,QAAQ,CAAC4B,sBAAsB,gBAAgB;IACzD5B,UAAU,QAAQ,CAAC6B,wBAAwB,gBAAgB;IAG3D7B,UAAU,QAAQ,CAAC8B,mBAAmB,gBAAgB;IACtD9B,UAAU,QAAQ,CAAC+B,kBAAkB,gBAAgB;IACrD/B,UAAU,QAAQ,CAACgC,yBAAyB,gBAAgB;IAC5DhC,UAAU,QAAQ,CAACiC,gBAAgB,gBAAgB;IACnDjC,UAAU,QAAQ,CAACkC,qBAAqB,gBAAgB;IACxDlC,UAAU,QAAQ,CAACmC,gBAAgB,gBAAgB;IACnDnC,UAAU,QAAQ,CAACoC,8BAA8B,gBAAgB;IACjEpC,UAAU,QAAQ,CAACqC,sBAAsB,gBAAgB;IACzDrC,UAAU,QAAQ,CAACsC,eAAe,gBAAgB;IAClDtC,UAAU,QAAQ,CAACuC,qBAAqB,gBAAgB;IACxDvC,UAAU,QAAQ,CAACwC,cAAc,gBAAgB;IACjDxC,UAAU,QAAQ,CAACyC,WAAW,gBAAgB;IAG9C,MAAMC,KAAK1C,UAAU,OAAO,CAAC2C;IAE7B,IAAI;QAEA3C,UAAU,OAAO,CAAC4C,kBAAkB,GAAG,CAAC7C;QAExC,MAAM8C,aAAa,MAAM7C,UAAU,OAAO,CAAC8C,sBAAsB,OAAO;QAExE,MAAMC,gBAAgB,MAAMF,WAAW,gBAAgB,CAAC;YACpD,MAAM;gBAAE,gBAAgB;YAAM;QAClC;QAEA,MAAMA,WAAW,qBAAqB,CAACE;QAEvC,MAAMC,UAAUH,WAAW,UAAU;QAErC,MAAMI,iBAAiB,OAAOC;YAC1B,IAAIC;YAGAA,aAFAD,SAAS,UAAU,CAAC,kBAEPF,QAAQ,KAAK,CAAC,UAAU,CAAC,IAAI,CAACE,UAAU,QAAQ,KAGhDA;YAGjB,MAAME,aAAaC,KAAK,QAAQ,CAACH,UAAU,OAAO,CAACG,KAAK,OAAO,CAACH,WAAW;YAE3E,MAAMI,iBAAiB,MAAM,MAAM,CAACC,kBAAkBJ;YAItD,OACK,aAAaG,kBAAkBA,eAAe,OAAO,IACtDA,cAAc,CAACF,WAAW;QAElC;QAEA,MAAMI,WAAWT,cAAc,gBAAgB,CAACU;QAChD,KAAK,MAAMC,WAAWF,SAAU;YAC5B,MAAMG,wBAAwB,MAAMV,eAAeS,QAAQ,MAAM,CAAC,GAAG;YAErE1D,UAAU,QAAQ,CAAC2D,uBAAuB,gBAAgB;QAC9D;IACJ,EAAE,OAAOC,OAAO;QACZ,IAAIC,YAAYD;QAChB,IAAIA,MAAM,KAAK,EACXC,YAAYD,MAAM,KAAK;QAG3BlB,GAAG,KAAK,CAACmB,UAAU,OAAO;QAE1B,MAAMC,OAAO9D,UAAU,OAAO,CAAC+D,gBAAgB,OAAO;QACtD,IAAID,KAAK,cAAc,IAAID,UAAU,KAAK,EAAE;YACxCnB,GAAG,SAAS;YACZA,GAAG,KAAK,CAAC;YACTA,GAAG,IAAI,CAACmB,UAAU,KAAK;QAC3B;QAEA,IAAID,SAASA,iBAAiBI,eAAe;YACzCtB,GAAG,SAAS;YACZA,GAAG,IAAI,CAAC/C,SAASC,KAAK;YACtB8C,GAAG,IAAI,CAACkB,MAAM,OAAO;QACzB;QAEAK,QAAQ,IAAI,CAAC;IACjB;IAGAjE,UAAU,iBAAiB,CAACkE;IAC5BlE,UAAU,iBAAiB,CAACmE;IAE5B,OAAOnE;AACX"}
@@ -1,38 +1,40 @@
1
1
  import { CliCommandFactory, ErrorHandler } from "../abstractions/index.js";
2
2
  import { GracefulError } from "@webiny/project";
3
- export class CommandsWithGracefulErrorHandling {
4
- constructor(gracefulErrorHandlers, decoratee) {
5
- this.gracefulErrorHandlers = gracefulErrorHandlers;
6
- this.decoratee = decoratee;
7
- }
8
- async execute() {
9
- const command = await this.decoratee.execute();
10
- const originalCommandHandler = command.handler;
11
- command.handler = async params => {
12
- try {
13
- await originalCommandHandler(params);
14
- } catch (error) {
15
- if (error instanceof GracefulError) {
16
- throw error;
17
- }
18
- for (const gracefulErrorHandler of this.gracefulErrorHandlers) {
19
- gracefulErrorHandler.execute({
20
- error,
21
- command,
22
- params
23
- });
24
- }
25
- throw error;
26
- }
27
- };
28
- return command;
29
- }
3
+ class CommandsWithGracefulErrorHandling {
4
+ constructor(gracefulErrorHandlers, decoratee){
5
+ this.gracefulErrorHandlers = gracefulErrorHandlers;
6
+ this.decoratee = decoratee;
7
+ }
8
+ async execute() {
9
+ const command = await this.decoratee.execute();
10
+ const originalCommandHandler = command.handler;
11
+ command.handler = async (params)=>{
12
+ try {
13
+ await originalCommandHandler(params);
14
+ } catch (error) {
15
+ if (error instanceof GracefulError) throw error;
16
+ for (const gracefulErrorHandler of this.gracefulErrorHandlers)gracefulErrorHandler.execute({
17
+ error,
18
+ command,
19
+ params
20
+ });
21
+ throw error;
22
+ }
23
+ };
24
+ return command;
25
+ }
30
26
  }
31
- export const commandsWithGracefulErrorHandling = CliCommandFactory.createDecorator({
32
- decorator: CommandsWithGracefulErrorHandling,
33
- dependencies: [[ErrorHandler, {
34
- multiple: true
35
- }]]
27
+ const commandsWithGracefulErrorHandling = CliCommandFactory.createDecorator({
28
+ decorator: CommandsWithGracefulErrorHandling,
29
+ dependencies: [
30
+ [
31
+ ErrorHandler,
32
+ {
33
+ multiple: true
34
+ }
35
+ ]
36
+ ]
36
37
  });
38
+ export { CommandsWithGracefulErrorHandling, commandsWithGracefulErrorHandling };
37
39
 
38
40
  //# sourceMappingURL=CommandsWithGracefulErrorHandling.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["CliCommandFactory","ErrorHandler","GracefulError","CommandsWithGracefulErrorHandling","constructor","gracefulErrorHandlers","decoratee","execute","command","originalCommandHandler","handler","params","error","gracefulErrorHandler","commandsWithGracefulErrorHandling","createDecorator","decorator","dependencies","multiple"],"sources":["CommandsWithGracefulErrorHandling.ts"],"sourcesContent":["import { CliCommandFactory, ErrorHandler } from \"~/abstractions/index.js\";\nimport { GracefulError } from \"@webiny/project\";\n\nexport class CommandsWithGracefulErrorHandling<\n TParams\n> implements CliCommandFactory.Interface<TParams> {\n constructor(\n private gracefulErrorHandlers: ErrorHandler.Interface<TParams>[],\n private decoratee: CliCommandFactory.Interface<TParams>\n ) {}\n\n async execute() {\n const command = await this.decoratee.execute();\n\n const originalCommandHandler = command.handler;\n\n command.handler = async (params: TParams) => {\n try {\n await originalCommandHandler(params);\n } catch (error) {\n if (error instanceof GracefulError) {\n throw error;\n }\n\n for (const gracefulErrorHandler of this.gracefulErrorHandlers) {\n gracefulErrorHandler.execute({\n error,\n command,\n params\n });\n }\n\n throw error;\n }\n };\n\n return command;\n }\n}\n\nexport const commandsWithGracefulErrorHandling = CliCommandFactory.createDecorator({\n decorator: CommandsWithGracefulErrorHandling,\n dependencies: [[ErrorHandler, { multiple: true }]]\n});\n"],"mappings":"AAAA,SAASA,iBAAiB,EAAEC,YAAY;AACxC,SAASC,aAAa,QAAQ,iBAAiB;AAE/C,OAAO,MAAMC,iCAAiC,CAEI;EAC9CC,WAAWA,CACCC,qBAAwD,EACxDC,SAA+C,EACzD;IAAA,KAFUD,qBAAwD,GAAxDA,qBAAwD;IAAA,KACxDC,SAA+C,GAA/CA,SAA+C;EACxD;EAEH,MAAMC,OAAOA,CAAA,EAAG;IACZ,MAAMC,OAAO,GAAG,MAAM,IAAI,CAACF,SAAS,CAACC,OAAO,CAAC,CAAC;IAE9C,MAAME,sBAAsB,GAAGD,OAAO,CAACE,OAAO;IAE9CF,OAAO,CAACE,OAAO,GAAG,MAAOC,MAAe,IAAK;MACzC,IAAI;QACA,MAAMF,sBAAsB,CAACE,MAAM,CAAC;MACxC,CAAC,CAAC,OAAOC,KAAK,EAAE;QACZ,IAAIA,KAAK,YAAYV,aAAa,EAAE;UAChC,MAAMU,KAAK;QACf;QAEA,KAAK,MAAMC,oBAAoB,IAAI,IAAI,CAACR,qBAAqB,EAAE;UAC3DQ,oBAAoB,CAACN,OAAO,CAAC;YACzBK,KAAK;YACLJ,OAAO;YACPG;UACJ,CAAC,CAAC;QACN;QAEA,MAAMC,KAAK;MACf;IACJ,CAAC;IAED,OAAOJ,OAAO;EAClB;AACJ;AAEA,OAAO,MAAMM,iCAAiC,GAAGd,iBAAiB,CAACe,eAAe,CAAC;EAC/EC,SAAS,EAAEb,iCAAiC;EAC5Cc,YAAY,EAAE,CAAC,CAAChB,YAAY,EAAE;IAAEiB,QAAQ,EAAE;EAAK,CAAC,CAAC;AACrD,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"decorators/CommandsWithGracefulErrorHandling.js","sources":["../../src/decorators/CommandsWithGracefulErrorHandling.ts"],"sourcesContent":["import { CliCommandFactory, ErrorHandler } from \"~/abstractions/index.js\";\nimport { GracefulError } from \"@webiny/project\";\n\nexport class CommandsWithGracefulErrorHandling<\n TParams\n> implements CliCommandFactory.Interface<TParams> {\n constructor(\n private gracefulErrorHandlers: ErrorHandler.Interface<TParams>[],\n private decoratee: CliCommandFactory.Interface<TParams>\n ) {}\n\n async execute() {\n const command = await this.decoratee.execute();\n\n const originalCommandHandler = command.handler;\n\n command.handler = async (params: TParams) => {\n try {\n await originalCommandHandler(params);\n } catch (error) {\n if (error instanceof GracefulError) {\n throw error;\n }\n\n for (const gracefulErrorHandler of this.gracefulErrorHandlers) {\n gracefulErrorHandler.execute({\n error,\n command,\n params\n });\n }\n\n throw error;\n }\n };\n\n return command;\n }\n}\n\nexport const commandsWithGracefulErrorHandling = CliCommandFactory.createDecorator({\n decorator: CommandsWithGracefulErrorHandling,\n dependencies: [[ErrorHandler, { multiple: true }]]\n});\n"],"names":["CommandsWithGracefulErrorHandling","gracefulErrorHandlers","decoratee","command","originalCommandHandler","params","error","GracefulError","gracefulErrorHandler","commandsWithGracefulErrorHandling","CliCommandFactory","ErrorHandler"],"mappings":";;AAGO,MAAMA;IAGT,YACYC,qBAAwD,EACxDC,SAA+C,CACzD;aAFUD,qBAAqB,GAArBA;aACAC,SAAS,GAATA;IACT;IAEH,MAAM,UAAU;QACZ,MAAMC,UAAU,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO;QAE5C,MAAMC,yBAAyBD,QAAQ,OAAO;QAE9CA,QAAQ,OAAO,GAAG,OAAOE;YACrB,IAAI;gBACA,MAAMD,uBAAuBC;YACjC,EAAE,OAAOC,OAAO;gBACZ,IAAIA,iBAAiBC,eACjB,MAAMD;gBAGV,KAAK,MAAME,wBAAwB,IAAI,CAAC,qBAAqB,CACzDA,qBAAqB,OAAO,CAAC;oBACzBF;oBACAH;oBACAE;gBACJ;gBAGJ,MAAMC;YACV;QACJ;QAEA,OAAOH;IACX;AACJ;AAEO,MAAMM,oCAAoCC,kBAAkB,eAAe,CAAC;IAC/E,WAAWV;IACX,cAAc;QAAC;YAACW;YAAc;gBAAE,UAAU;YAAK;SAAE;KAAC;AACtD"}
@@ -1,91 +1,81 @@
1
- import { isEnabled as globalIsTelemetryEnabled, sendEvent as telemetrySendEvent } from "@webiny/telemetry/cli.js";
1
+ import { isEnabled, sendEvent } from "@webiny/telemetry/cli.js";
2
2
  import { CliCommandFactory, GetProjectSdkService } from "../abstractions/index.js";
3
3
  import { GracefulError } from "@webiny/project";
4
- const isDeployCommand = command => {
5
- return command.name === "deploy";
6
- };
7
- export class DeployCommandWithTelemetry {
8
- constructor(getProjectSdkService, decoratee) {
9
- this.getProjectSdkService = getProjectSdkService;
10
- this.decoratee = decoratee;
11
- }
12
- async execute() {
13
- const command = await this.decoratee.execute();
14
- if (!isDeployCommand(command)) {
15
- // If the command is not a `deploy` command, we do not need to wrap it with telemetry.
16
- return command;
4
+ const isDeployCommand = (command)=>"deploy" === command.name;
5
+ class DeployCommandWithTelemetry {
6
+ constructor(getProjectSdkService, decoratee){
7
+ this.getProjectSdkService = getProjectSdkService;
8
+ this.decoratee = decoratee;
17
9
  }
18
- if (!globalIsTelemetryEnabled()) {
19
- return command;
20
- }
21
-
22
- // Check if telemetry is disabled via an extension.
23
- const projectSdk = await this.getProjectSdkService.execute();
24
- const projectSdkTelemetryEnabled = await projectSdk.isTelemetryEnabled();
25
- if (!projectSdkTelemetryEnabled) {
26
- return command;
27
- }
28
-
29
- // Getting a different type without type assertion. :|
30
- const deployCommand = command;
31
- const originalCommandHandler = deployCommand.handler;
32
- deployCommand.handler = async params => {
33
- if ("app" in params) {
34
- const telemetryProperties = {
35
- app: params.app || "unknown",
36
- env: params.env || "unknown",
37
- variant: params.variant || "unknown",
38
- region: params.region || "unknown",
39
- commandParams: JSON.stringify(params)
10
+ async execute() {
11
+ const command = await this.decoratee.execute();
12
+ if (!isDeployCommand(command)) return command;
13
+ if (!isEnabled()) return command;
14
+ const projectSdk = await this.getProjectSdkService.execute();
15
+ const projectSdkTelemetryEnabled = await projectSdk.isTelemetryEnabled();
16
+ if (!projectSdkTelemetryEnabled) return command;
17
+ const deployCommand = command;
18
+ const originalCommandHandler = deployCommand.handler;
19
+ deployCommand.handler = async (params)=>{
20
+ if ("app" in params) {
21
+ const telemetryProperties = {
22
+ app: params.app || "unknown",
23
+ env: params.env || "unknown",
24
+ variant: params.variant || "unknown",
25
+ region: params.region || "unknown",
26
+ commandParams: JSON.stringify(params)
27
+ };
28
+ try {
29
+ await this.sendEvent("cli-pulumi-command-deploy-start", telemetryProperties);
30
+ const result = await originalCommandHandler(params);
31
+ await this.sendEvent("cli-pulumi-command-deploy-end", telemetryProperties);
32
+ return result;
33
+ } catch (e) {
34
+ const event = e instanceof GracefulError ? "cli-pulumi-command-deploy-error-graceful" : "cli-pulumi-command-deploy-error";
35
+ await this.sendEvent(event, {
36
+ ...telemetryProperties,
37
+ errorMessage: e.message,
38
+ errorStack: e.stack
39
+ });
40
+ throw e;
41
+ }
42
+ }
43
+ const telemetryProperties = {
44
+ env: params.env || "unknown",
45
+ variant: params.variant || "unknown",
46
+ region: params.region || "unknown",
47
+ commandParams: JSON.stringify(params)
48
+ };
49
+ try {
50
+ await this.sendEvent("cli-project-deploy-start", telemetryProperties);
51
+ const result = await originalCommandHandler(params);
52
+ await this.sendEvent("cli-project-deploy-end", telemetryProperties);
53
+ return result;
54
+ } catch (e) {
55
+ const event = e instanceof GracefulError ? "cli-project-deploy-error-graceful" : "cli-project-deploy-error";
56
+ await this.sendEvent(event, {
57
+ ...telemetryProperties,
58
+ errorMessage: e.message,
59
+ errorStack: e.stack
60
+ });
61
+ throw e;
62
+ }
40
63
  };
41
- try {
42
- await this.sendEvent("cli-pulumi-command-deploy-start", telemetryProperties);
43
- const result = await originalCommandHandler(params);
44
- await this.sendEvent("cli-pulumi-command-deploy-end", telemetryProperties);
45
- return result;
46
- } catch (e) {
47
- const event = e instanceof GracefulError ? "cli-pulumi-command-deploy-error-graceful" : "cli-pulumi-command-deploy-error";
48
- await this.sendEvent(event, {
49
- ...telemetryProperties,
50
- errorMessage: e.message,
51
- errorStack: e.stack
52
- });
53
- throw e;
54
- }
55
- }
56
- const telemetryProperties = {
57
- env: params.env || "unknown",
58
- variant: params.variant || "unknown",
59
- region: params.region || "unknown",
60
- commandParams: JSON.stringify(params)
61
- };
62
- try {
63
- await this.sendEvent("cli-project-deploy-start", telemetryProperties);
64
- const result = await originalCommandHandler(params);
65
- await this.sendEvent("cli-project-deploy-end", telemetryProperties);
66
- return result;
67
- } catch (e) {
68
- const event = e instanceof GracefulError ? "cli-project-deploy-error-graceful" : "cli-project-deploy-error";
69
- await this.sendEvent(event, {
70
- ...telemetryProperties,
71
- errorMessage: e.message,
72
- errorStack: e.stack
64
+ return command;
65
+ }
66
+ sendEvent(event, properties = {}) {
67
+ return sendEvent({
68
+ event,
69
+ properties
73
70
  });
74
- throw e;
75
- }
76
- };
77
- return command;
78
- }
79
- sendEvent(event, properties = {}) {
80
- return telemetrySendEvent({
81
- event,
82
- properties
83
- });
84
- }
71
+ }
85
72
  }
86
- export const deployCommandWithTelemetry = CliCommandFactory.createDecorator({
87
- decorator: DeployCommandWithTelemetry,
88
- dependencies: [GetProjectSdkService]
73
+ const deployCommandWithTelemetry = CliCommandFactory.createDecorator({
74
+ decorator: DeployCommandWithTelemetry,
75
+ dependencies: [
76
+ GetProjectSdkService
77
+ ]
89
78
  });
79
+ export { DeployCommandWithTelemetry, deployCommandWithTelemetry };
90
80
 
91
81
  //# sourceMappingURL=DeployCommandWithTelemetry.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["isEnabled","globalIsTelemetryEnabled","sendEvent","telemetrySendEvent","CliCommandFactory","GetProjectSdkService","GracefulError","isDeployCommand","command","name","DeployCommandWithTelemetry","constructor","getProjectSdkService","decoratee","execute","projectSdk","projectSdkTelemetryEnabled","isTelemetryEnabled","deployCommand","originalCommandHandler","handler","params","telemetryProperties","app","env","variant","region","commandParams","JSON","stringify","result","e","event","errorMessage","message","errorStack","stack","properties","deployCommandWithTelemetry","createDecorator","decorator","dependencies"],"sources":["DeployCommandWithTelemetry.ts"],"sourcesContent":["import {\n isEnabled as globalIsTelemetryEnabled,\n sendEvent as telemetrySendEvent\n} from \"@webiny/telemetry/cli.js\";\nimport { CliCommandFactory, GetProjectSdkService } from \"~/abstractions/index.js\";\nimport { IDeployCommandParams } from \"~/features/index.js\";\nimport { GracefulError } from \"@webiny/project\";\n\nconst isDeployCommand = (\n command: CliCommandFactory.CommandDefinition<any>\n): command is CliCommandFactory.CommandDefinition<IDeployCommandParams> => {\n return command.name === \"deploy\";\n};\n\nexport class DeployCommandWithTelemetry<TParams> implements CliCommandFactory.Interface<TParams> {\n constructor(\n private getProjectSdkService: GetProjectSdkService.Interface,\n private decoratee: CliCommandFactory.Interface<TParams>\n ) {}\n\n async execute() {\n const command = await this.decoratee.execute();\n\n if (!isDeployCommand(command)) {\n // If the command is not a `deploy` command, we do not need to wrap it with telemetry.\n return command;\n }\n\n if (!globalIsTelemetryEnabled()) {\n return command;\n }\n\n // Check if telemetry is disabled via an extension.\n const projectSdk = await this.getProjectSdkService.execute();\n const projectSdkTelemetryEnabled = await projectSdk.isTelemetryEnabled();\n if (!projectSdkTelemetryEnabled) {\n return command;\n }\n\n // Getting a different type without type assertion. :|\n const deployCommand = command as CliCommandFactory.CommandDefinition<IDeployCommandParams>;\n const originalCommandHandler = deployCommand.handler;\n\n deployCommand.handler = async (params: IDeployCommandParams) => {\n if (\"app\" in params) {\n const telemetryProperties = {\n app: params.app || \"unknown\",\n env: params.env || \"unknown\",\n variant: params.variant || \"unknown\",\n region: params.region || \"unknown\",\n commandParams: JSON.stringify(params)\n };\n\n try {\n await this.sendEvent(\"cli-pulumi-command-deploy-start\", telemetryProperties);\n\n const result = await originalCommandHandler(params);\n\n await this.sendEvent(\"cli-pulumi-command-deploy-end\", telemetryProperties);\n\n return result;\n } catch (e) {\n const event =\n e instanceof GracefulError\n ? \"cli-pulumi-command-deploy-error-graceful\"\n : \"cli-pulumi-command-deploy-error\";\n\n await this.sendEvent(event, {\n ...telemetryProperties,\n errorMessage: e.message,\n errorStack: e.stack\n });\n\n throw e;\n }\n }\n\n const telemetryProperties = {\n env: params.env || \"unknown\",\n variant: params.variant || \"unknown\",\n region: params.region || \"unknown\",\n commandParams: JSON.stringify(params)\n };\n\n try {\n await this.sendEvent(\"cli-project-deploy-start\", telemetryProperties);\n const result = await originalCommandHandler(params);\n await this.sendEvent(\"cli-project-deploy-end\", telemetryProperties);\n return result;\n } catch (e) {\n const event =\n e instanceof GracefulError\n ? \"cli-project-deploy-error-graceful\"\n : \"cli-project-deploy-error\";\n\n await this.sendEvent(event, {\n ...telemetryProperties,\n errorMessage: e.message,\n errorStack: e.stack\n });\n\n throw e;\n }\n };\n\n return command;\n }\n\n private sendEvent(event: string, properties: Record<string, any> = {}) {\n return telemetrySendEvent({\n event,\n properties\n });\n }\n}\n\nexport const deployCommandWithTelemetry = CliCommandFactory.createDecorator({\n decorator: DeployCommandWithTelemetry,\n dependencies: [GetProjectSdkService]\n});\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"decorators/DeployCommandWithTelemetry.js","sources":["../../src/decorators/DeployCommandWithTelemetry.ts"],"sourcesContent":["import {\n isEnabled as globalIsTelemetryEnabled,\n sendEvent as telemetrySendEvent\n} from \"@webiny/telemetry/cli.js\";\nimport { CliCommandFactory, GetProjectSdkService } from \"~/abstractions/index.js\";\nimport { IDeployCommandParams } from \"~/features/index.js\";\nimport { GracefulError } from \"@webiny/project\";\n\nconst isDeployCommand = (\n command: CliCommandFactory.CommandDefinition<any>\n): command is CliCommandFactory.CommandDefinition<IDeployCommandParams> => {\n return command.name === \"deploy\";\n};\n\nexport class DeployCommandWithTelemetry<TParams> implements CliCommandFactory.Interface<TParams> {\n constructor(\n private getProjectSdkService: GetProjectSdkService.Interface,\n private decoratee: CliCommandFactory.Interface<TParams>\n ) {}\n\n async execute() {\n const command = await this.decoratee.execute();\n\n if (!isDeployCommand(command)) {\n // If the command is not a `deploy` command, we do not need to wrap it with telemetry.\n return command;\n }\n\n if (!globalIsTelemetryEnabled()) {\n return command;\n }\n\n // Check if telemetry is disabled via an extension.\n const projectSdk = await this.getProjectSdkService.execute();\n const projectSdkTelemetryEnabled = await projectSdk.isTelemetryEnabled();\n if (!projectSdkTelemetryEnabled) {\n return command;\n }\n\n // Getting a different type without type assertion. :|\n const deployCommand = command as CliCommandFactory.CommandDefinition<IDeployCommandParams>;\n const originalCommandHandler = deployCommand.handler;\n\n deployCommand.handler = async (params: IDeployCommandParams) => {\n if (\"app\" in params) {\n const telemetryProperties = {\n app: params.app || \"unknown\",\n env: params.env || \"unknown\",\n variant: params.variant || \"unknown\",\n region: params.region || \"unknown\",\n commandParams: JSON.stringify(params)\n };\n\n try {\n await this.sendEvent(\"cli-pulumi-command-deploy-start\", telemetryProperties);\n\n const result = await originalCommandHandler(params);\n\n await this.sendEvent(\"cli-pulumi-command-deploy-end\", telemetryProperties);\n\n return result;\n } catch (e) {\n const event =\n e instanceof GracefulError\n ? \"cli-pulumi-command-deploy-error-graceful\"\n : \"cli-pulumi-command-deploy-error\";\n\n await this.sendEvent(event, {\n ...telemetryProperties,\n errorMessage: e.message,\n errorStack: e.stack\n });\n\n throw e;\n }\n }\n\n const telemetryProperties = {\n env: params.env || \"unknown\",\n variant: params.variant || \"unknown\",\n region: params.region || \"unknown\",\n commandParams: JSON.stringify(params)\n };\n\n try {\n await this.sendEvent(\"cli-project-deploy-start\", telemetryProperties);\n const result = await originalCommandHandler(params);\n await this.sendEvent(\"cli-project-deploy-end\", telemetryProperties);\n return result;\n } catch (e) {\n const event =\n e instanceof GracefulError\n ? \"cli-project-deploy-error-graceful\"\n : \"cli-project-deploy-error\";\n\n await this.sendEvent(event, {\n ...telemetryProperties,\n errorMessage: e.message,\n errorStack: e.stack\n });\n\n throw e;\n }\n };\n\n return command;\n }\n\n private sendEvent(event: string, properties: Record<string, any> = {}) {\n return telemetrySendEvent({\n event,\n properties\n });\n }\n}\n\nexport const deployCommandWithTelemetry = CliCommandFactory.createDecorator({\n decorator: DeployCommandWithTelemetry,\n dependencies: [GetProjectSdkService]\n});\n"],"names":["isDeployCommand","command","DeployCommandWithTelemetry","getProjectSdkService","decoratee","globalIsTelemetryEnabled","projectSdk","projectSdkTelemetryEnabled","deployCommand","originalCommandHandler","params","telemetryProperties","JSON","result","e","event","GracefulError","properties","telemetrySendEvent","deployCommandWithTelemetry","CliCommandFactory","GetProjectSdkService"],"mappings":";;;AAQA,MAAMA,kBAAkB,CACpBC,UAEOA,AAAiB,aAAjBA,QAAQ,IAAI;AAGhB,MAAMC;IACT,YACYC,oBAAoD,EACpDC,SAA+C,CACzD;aAFUD,oBAAoB,GAApBA;aACAC,SAAS,GAATA;IACT;IAEH,MAAM,UAAU;QACZ,MAAMH,UAAU,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO;QAE5C,IAAI,CAACD,gBAAgBC,UAEjB,OAAOA;QAGX,IAAI,CAACI,aACD,OAAOJ;QAIX,MAAMK,aAAa,MAAM,IAAI,CAAC,oBAAoB,CAAC,OAAO;QAC1D,MAAMC,6BAA6B,MAAMD,WAAW,kBAAkB;QACtE,IAAI,CAACC,4BACD,OAAON;QAIX,MAAMO,gBAAgBP;QACtB,MAAMQ,yBAAyBD,cAAc,OAAO;QAEpDA,cAAc,OAAO,GAAG,OAAOE;YAC3B,IAAI,SAASA,QAAQ;gBACjB,MAAMC,sBAAsB;oBACxB,KAAKD,OAAO,GAAG,IAAI;oBACnB,KAAKA,OAAO,GAAG,IAAI;oBACnB,SAASA,OAAO,OAAO,IAAI;oBAC3B,QAAQA,OAAO,MAAM,IAAI;oBACzB,eAAeE,KAAK,SAAS,CAACF;gBAClC;gBAEA,IAAI;oBACA,MAAM,IAAI,CAAC,SAAS,CAAC,mCAAmCC;oBAExD,MAAME,SAAS,MAAMJ,uBAAuBC;oBAE5C,MAAM,IAAI,CAAC,SAAS,CAAC,iCAAiCC;oBAEtD,OAAOE;gBACX,EAAE,OAAOC,GAAG;oBACR,MAAMC,QACFD,aAAaE,gBACP,6CACA;oBAEV,MAAM,IAAI,CAAC,SAAS,CAACD,OAAO;wBACxB,GAAGJ,mBAAmB;wBACtB,cAAcG,EAAE,OAAO;wBACvB,YAAYA,EAAE,KAAK;oBACvB;oBAEA,MAAMA;gBACV;YACJ;YAEA,MAAMH,sBAAsB;gBACxB,KAAKD,OAAO,GAAG,IAAI;gBACnB,SAASA,OAAO,OAAO,IAAI;gBAC3B,QAAQA,OAAO,MAAM,IAAI;gBACzB,eAAeE,KAAK,SAAS,CAACF;YAClC;YAEA,IAAI;gBACA,MAAM,IAAI,CAAC,SAAS,CAAC,4BAA4BC;gBACjD,MAAME,SAAS,MAAMJ,uBAAuBC;gBAC5C,MAAM,IAAI,CAAC,SAAS,CAAC,0BAA0BC;gBAC/C,OAAOE;YACX,EAAE,OAAOC,GAAG;gBACR,MAAMC,QACFD,aAAaE,gBACP,sCACA;gBAEV,MAAM,IAAI,CAAC,SAAS,CAACD,OAAO;oBACxB,GAAGJ,mBAAmB;oBACtB,cAAcG,EAAE,OAAO;oBACvB,YAAYA,EAAE,KAAK;gBACvB;gBAEA,MAAMA;YACV;QACJ;QAEA,OAAOb;IACX;IAEQ,UAAUc,KAAa,EAAEE,aAAkC,CAAC,CAAC,EAAE;QACnE,OAAOC,UAAmB;YACtBH;YACAE;QACJ;IACJ;AACJ;AAEO,MAAME,6BAA6BC,kBAAkB,eAAe,CAAC;IACxE,WAAWlB;IACX,cAAc;QAACmB;KAAqB;AACxC"}
@@ -1,4 +1,2 @@
1
1
  export * from "./CommandsWithGracefulErrorHandling.js";
2
2
  export * from "./DeployCommandWithTelemetry.js";
3
-
4
- //# sourceMappingURL=index.js.map
@@ -1,3 +1 @@
1
1
  export { CliCommandFactory } from "../../abstractions/features/CliCommand.js";
2
-
3
- //# sourceMappingURL=command.js.map
package/exports/cli.js CHANGED
@@ -1,4 +1,2 @@
1
1
  export { LoggerService as Logger } from "../abstractions/services/LoggerService.js";
2
2
  export { UiService as Ui } from "../abstractions/services/UiService.js";
3
-
4
- //# sourceMappingURL=cli.js.map
@@ -1,23 +1,20 @@
1
1
  import { defineExtension, zodSrcPath } from "@webiny/project/extensions/index.js";
2
- import { CliCommandFactory as CliCommandFactoryAbstraction } from "../abstractions/index.js";
2
+ import { CliCommandFactory } from "../abstractions/index.js";
3
3
  import { z } from "zod";
4
- export const CliCommand = defineExtension({
5
- type: "Cli/Command",
6
- tags: {
7
- runtimeContext: "cli"
8
- },
9
- description: "An extension for defining CLI commands.",
10
- multiple: true,
11
- paramsSchema: ({
12
- project
13
- }) => {
14
- return z.object({
15
- src: zodSrcPath({
16
- abstraction: CliCommandFactoryAbstraction,
17
- project
18
- })
19
- });
20
- }
4
+ const CliCommand = defineExtension({
5
+ type: "Cli/Command",
6
+ tags: {
7
+ runtimeContext: "cli"
8
+ },
9
+ description: "An extension for defining CLI commands.",
10
+ multiple: true,
11
+ paramsSchema: ({ project })=>z.object({
12
+ src: zodSrcPath({
13
+ abstraction: CliCommandFactory,
14
+ project
15
+ })
16
+ })
21
17
  });
18
+ export { CliCommand };
22
19
 
23
20
  //# sourceMappingURL=CliCommand.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["defineExtension","zodSrcPath","CliCommandFactory","CliCommandFactoryAbstraction","z","CliCommand","type","tags","runtimeContext","description","multiple","paramsSchema","project","object","src","abstraction"],"sources":["CliCommand.ts"],"sourcesContent":["import { defineExtension, zodSrcPath } from \"@webiny/project/extensions/index.js\";\nimport { CliCommandFactory as CliCommandFactoryAbstraction } from \"~/abstractions/index.js\";\nimport { z } from \"zod\";\n\nexport const CliCommand = defineExtension({\n type: \"Cli/Command\",\n tags: { runtimeContext: \"cli\" },\n description: \"An extension for defining CLI commands.\",\n multiple: true,\n paramsSchema: ({ project }) => {\n return z.object({\n src: zodSrcPath({ abstraction: CliCommandFactoryAbstraction, project })\n });\n }\n});\n"],"mappings":"AAAA,SAASA,eAAe,EAAEC,UAAU,QAAQ,qCAAqC;AACjF,SAASC,iBAAiB,IAAIC,4BAA4B;AAC1D,SAASC,CAAC,QAAQ,KAAK;AAEvB,OAAO,MAAMC,UAAU,GAAGL,eAAe,CAAC;EACtCM,IAAI,EAAE,aAAa;EACnBC,IAAI,EAAE;IAAEC,cAAc,EAAE;EAAM,CAAC;EAC/BC,WAAW,EAAE,yCAAyC;EACtDC,QAAQ,EAAE,IAAI;EACdC,YAAY,EAAEA,CAAC;IAAEC;EAAQ,CAAC,KAAK;IAC3B,OAAOR,CAAC,CAACS,MAAM,CAAC;MACZC,GAAG,EAAEb,UAAU,CAAC;QAAEc,WAAW,EAAEZ,4BAA4B;QAAES;MAAQ,CAAC;IAC1E,CAAC,CAAC;EACN;AACJ,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"extensions/CliCommand.js","sources":["../../src/extensions/CliCommand.ts"],"sourcesContent":["import { defineExtension, zodSrcPath } from \"@webiny/project/extensions/index.js\";\nimport { CliCommandFactory as CliCommandFactoryAbstraction } from \"~/abstractions/index.js\";\nimport { z } from \"zod\";\n\nexport const CliCommand = defineExtension({\n type: \"Cli/Command\",\n tags: { runtimeContext: \"cli\" },\n description: \"An extension for defining CLI commands.\",\n multiple: true,\n paramsSchema: ({ project }) => {\n return z.object({\n src: zodSrcPath({ abstraction: CliCommandFactoryAbstraction, project })\n });\n }\n});\n"],"names":["CliCommand","defineExtension","project","z","zodSrcPath","CliCommandFactoryAbstraction"],"mappings":";;;AAIO,MAAMA,aAAaC,gBAAgB;IACtC,MAAM;IACN,MAAM;QAAE,gBAAgB;IAAM;IAC9B,aAAa;IACb,UAAU;IACV,cAAc,CAAC,EAAEC,OAAO,EAAE,GACfC,EAAE,MAAM,CAAC;YACZ,KAAKC,WAAW;gBAAE,aAAaC;gBAA8BH;YAAQ;QACzE;AAER"}
@@ -1,23 +1,20 @@
1
1
  import { defineExtension, zodSrcPath } from "@webiny/project/extensions/index.js";
2
- import { CliCommandFactory as CliCommandFactoryAbstraction } from "../abstractions/index.js";
2
+ import { CliCommandFactory } from "../abstractions/index.js";
3
3
  import { z } from "zod";
4
- export const CliCommandDecorator = defineExtension({
5
- type: "cliCommandDecorator",
6
- tags: {
7
- runtimeContext: "cli"
8
- },
9
- description: "Decorates an existing CLI command.",
10
- multiple: true,
11
- paramsSchema: ({
12
- project
13
- }) => {
14
- return z.object({
15
- src: zodSrcPath({
16
- project,
17
- abstraction: CliCommandFactoryAbstraction
18
- })
19
- });
20
- }
4
+ const CliCommandDecorator = defineExtension({
5
+ type: "cliCommandDecorator",
6
+ tags: {
7
+ runtimeContext: "cli"
8
+ },
9
+ description: "Decorates an existing CLI command.",
10
+ multiple: true,
11
+ paramsSchema: ({ project })=>z.object({
12
+ src: zodSrcPath({
13
+ project,
14
+ abstraction: CliCommandFactory
15
+ })
16
+ })
21
17
  });
18
+ export { CliCommandDecorator };
22
19
 
23
20
  //# sourceMappingURL=CliCommandDecorator.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["defineExtension","zodSrcPath","CliCommandFactory","CliCommandFactoryAbstraction","z","CliCommandDecorator","type","tags","runtimeContext","description","multiple","paramsSchema","project","object","src","abstraction"],"sources":["CliCommandDecorator.ts"],"sourcesContent":["import { defineExtension, zodSrcPath } from \"@webiny/project/extensions/index.js\";\nimport { CliCommandFactory as CliCommandFactoryAbstraction } from \"~/abstractions/index.js\";\nimport { z } from \"zod\";\n\nexport const CliCommandDecorator = defineExtension({\n type: \"cliCommandDecorator\",\n tags: { runtimeContext: \"cli\" },\n description: \"Decorates an existing CLI command.\",\n multiple: true,\n paramsSchema: ({ project }) => {\n return z.object({\n src: zodSrcPath({ project, abstraction: CliCommandFactoryAbstraction })\n });\n }\n});\n"],"mappings":"AAAA,SAASA,eAAe,EAAEC,UAAU,QAAQ,qCAAqC;AACjF,SAASC,iBAAiB,IAAIC,4BAA4B;AAC1D,SAASC,CAAC,QAAQ,KAAK;AAEvB,OAAO,MAAMC,mBAAmB,GAAGL,eAAe,CAAC;EAC/CM,IAAI,EAAE,qBAAqB;EAC3BC,IAAI,EAAE;IAAEC,cAAc,EAAE;EAAM,CAAC;EAC/BC,WAAW,EAAE,oCAAoC;EACjDC,QAAQ,EAAE,IAAI;EACdC,YAAY,EAAEA,CAAC;IAAEC;EAAQ,CAAC,KAAK;IAC3B,OAAOR,CAAC,CAACS,MAAM,CAAC;MACZC,GAAG,EAAEb,UAAU,CAAC;QAAEW,OAAO;QAAEG,WAAW,EAAEZ;MAA6B,CAAC;IAC1E,CAAC,CAAC;EACN;AACJ,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"extensions/CliCommandDecorator.js","sources":["../../src/extensions/CliCommandDecorator.ts"],"sourcesContent":["import { defineExtension, zodSrcPath } from \"@webiny/project/extensions/index.js\";\nimport { CliCommandFactory as CliCommandFactoryAbstraction } from \"~/abstractions/index.js\";\nimport { z } from \"zod\";\n\nexport const CliCommandDecorator = defineExtension({\n type: \"cliCommandDecorator\",\n tags: { runtimeContext: \"cli\" },\n description: \"Decorates an existing CLI command.\",\n multiple: true,\n paramsSchema: ({ project }) => {\n return z.object({\n src: zodSrcPath({ project, abstraction: CliCommandFactoryAbstraction })\n });\n }\n});\n"],"names":["CliCommandDecorator","defineExtension","project","z","zodSrcPath","CliCommandFactoryAbstraction"],"mappings":";;;AAIO,MAAMA,sBAAsBC,gBAAgB;IAC/C,MAAM;IACN,MAAM;QAAE,gBAAgB;IAAM;IAC9B,aAAa;IACb,UAAU;IACV,cAAc,CAAC,EAAEC,OAAO,EAAE,GACfC,EAAE,MAAM,CAAC;YACZ,KAAKC,WAAW;gBAAEF;gBAAS,aAAaG;YAA6B;QACzE;AAER"}
@@ -1,6 +1,9 @@
1
1
  import { CliCommand } from "./CliCommand.js";
2
2
  import { CliCommandDecorator } from "./CliCommandDecorator.js";
3
- export { CliCommand };
4
- export const definitions = [CliCommand.def, CliCommandDecorator.def];
3
+ const definitions = [
4
+ CliCommand.def,
5
+ CliCommandDecorator.def
6
+ ];
7
+ export { CliCommand, definitions };
5
8
 
6
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["CliCommand","CliCommandDecorator","definitions","def"],"sources":["index.ts"],"sourcesContent":["import { CliCommand } from \"./CliCommand.js\";\nimport { CliCommandDecorator } from \"~/extensions/CliCommandDecorator.js\";\n\nexport { CliCommand };\n\nexport const definitions = [CliCommand.def, CliCommandDecorator.def];\n"],"mappings":"AAAA,SAASA,UAAU;AACnB,SAASC,mBAAmB;AAE5B,SAASD,UAAU;AAEnB,OAAO,MAAME,WAAW,GAAG,CAACF,UAAU,CAACG,GAAG,EAAEF,mBAAmB,CAACE,GAAG,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"extensions/index.js","sources":["../../src/extensions/index.ts"],"sourcesContent":["import { CliCommand } from \"./CliCommand.js\";\nimport { CliCommandDecorator } from \"~/extensions/CliCommandDecorator.js\";\n\nexport { CliCommand };\n\nexport const definitions = [CliCommand.def, CliCommandDecorator.def];\n"],"names":["definitions","CliCommand","CliCommandDecorator"],"mappings":";;AAKO,MAAMA,cAAc;IAACC,WAAW,GAAG;IAAEC,oBAAoB,GAAG;CAAC"}