@webiny/cli-core 0.0.0-unstable.6f45466a1d → 0.0.0-unstable.7be00a75a9

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 (268) 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.d.ts +4 -0
  6. package/abstractions/features/CliCommand.js +2 -1
  7. package/abstractions/features/CliCommand.js.map +1 -1
  8. package/abstractions/features/ErrorHandler.js +2 -1
  9. package/abstractions/features/ErrorHandler.js.map +1 -1
  10. package/abstractions/features/GlobalCliOption.js +2 -1
  11. package/abstractions/features/GlobalCliOption.js.map +1 -1
  12. package/abstractions/features/IsCi.js +2 -1
  13. package/abstractions/features/IsCi.js.map +1 -1
  14. package/abstractions/features/index.js +0 -2
  15. package/abstractions/features/types.js +0 -3
  16. package/abstractions/index.js +0 -2
  17. package/abstractions/services/ArgvParserService.js +2 -1
  18. package/abstractions/services/ArgvParserService.js.map +1 -1
  19. package/abstractions/services/CliParamsService.js +2 -1
  20. package/abstractions/services/CliParamsService.js.map +1 -1
  21. package/abstractions/services/CommandsRegistryService.js +2 -1
  22. package/abstractions/services/CommandsRegistryService.js.map +1 -1
  23. package/abstractions/services/GetArgvService.js +2 -1
  24. package/abstractions/services/GetArgvService.js.map +1 -1
  25. package/abstractions/services/GetCliRunnerService.js +2 -1
  26. package/abstractions/services/GetCliRunnerService.js.map +1 -1
  27. package/abstractions/services/GetIsCiService.js +2 -1
  28. package/abstractions/services/GetIsCiService.js.map +1 -1
  29. package/abstractions/services/GetProjectSdkService.js +2 -1
  30. package/abstractions/services/GetProjectSdkService.js.map +1 -1
  31. package/abstractions/services/GlobalOptionsRegistryService.js +2 -1
  32. package/abstractions/services/GlobalOptionsRegistryService.js.map +1 -1
  33. package/abstractions/services/LoggerService.js +2 -1
  34. package/abstractions/services/LoggerService.js.map +1 -1
  35. package/abstractions/services/RunCliRunnerService.js +2 -1
  36. package/abstractions/services/RunCliRunnerService.js.map +1 -1
  37. package/abstractions/services/StdioService.js +2 -1
  38. package/abstractions/services/StdioService.js.map +1 -1
  39. package/abstractions/services/UiService.js +2 -1
  40. package/abstractions/services/UiService.js.map +1 -1
  41. package/abstractions/services/index.js +0 -2
  42. package/createCliContainer.js +89 -118
  43. package/createCliContainer.js.map +1 -1
  44. package/decorators/CommandsWithGracefulErrorHandling.js +34 -32
  45. package/decorators/CommandsWithGracefulErrorHandling.js.map +1 -1
  46. package/decorators/DeployCommandWithTelemetry.js +72 -82
  47. package/decorators/DeployCommandWithTelemetry.js.map +1 -1
  48. package/decorators/index.js +0 -2
  49. package/exports/cli/command.js +0 -2
  50. package/exports/cli.d.ts +2 -0
  51. package/exports/cli.js +2 -0
  52. package/extensions/CliCommand.d.ts +3 -7
  53. package/extensions/CliCommand.js +15 -18
  54. package/extensions/CliCommand.js.map +1 -1
  55. package/extensions/CliCommandDecorator.d.ts +3 -7
  56. package/extensions/CliCommandDecorator.js +15 -18
  57. package/extensions/CliCommandDecorator.js.map +1 -1
  58. package/extensions/index.d.ts +2 -6
  59. package/extensions/index.js +5 -2
  60. package/extensions/index.js.map +1 -1
  61. package/features/AboutCommand.js +80 -86
  62. package/features/AboutCommand.js.map +1 -1
  63. package/features/BuildCommand/BuildCommand.js +46 -36
  64. package/features/BuildCommand/BuildCommand.js.map +1 -1
  65. package/features/BuildCommand/buildRunners/BaseBuildRunner.js +10 -13
  66. package/features/BuildCommand/buildRunners/BaseBuildRunner.js.map +1 -1
  67. package/features/BuildCommand/buildRunners/BuildRunner.js +18 -21
  68. package/features/BuildCommand/buildRunners/BuildRunner.js.map +1 -1
  69. package/features/BuildCommand/buildRunners/MultipleBuildsRunner.js +20 -19
  70. package/features/BuildCommand/buildRunners/MultipleBuildsRunner.js.map +1 -1
  71. package/features/BuildCommand/buildRunners/SingleBuildRunner.js +15 -14
  72. package/features/BuildCommand/buildRunners/SingleBuildRunner.js.map +1 -1
  73. package/features/BuildCommand/buildRunners/ZeroBuildsRunner.js +3 -4
  74. package/features/BuildCommand/buildRunners/ZeroBuildsRunner.js.map +1 -1
  75. package/features/BuildCommand/index.js +0 -2
  76. package/features/ConfigCommand.js +55 -56
  77. package/features/ConfigCommand.js.map +1 -1
  78. package/features/DeployCommand/DeployCommand.d.ts +1 -1
  79. package/features/DeployCommand/DeployCommand.js +164 -156
  80. package/features/DeployCommand/DeployCommand.js.map +1 -1
  81. package/features/DeployCommand/deployOutputs/BaseDeployOutput.js +12 -17
  82. package/features/DeployCommand/deployOutputs/BaseDeployOutput.js.map +1 -1
  83. package/features/DeployCommand/deployOutputs/DeployOutput.js +16 -17
  84. package/features/DeployCommand/deployOutputs/DeployOutput.js.map +1 -1
  85. package/features/DeployCommand/deployOutputs/NoDeploymentLogsDeployOutput.js +89 -54
  86. package/features/DeployCommand/deployOutputs/NoDeploymentLogsDeployOutput.js.map +1 -1
  87. package/features/DeployCommand/deployOutputs/WithDeploymentLogsDeployOutput.js +24 -37
  88. package/features/DeployCommand/deployOutputs/WithDeploymentLogsDeployOutput.js.map +1 -1
  89. package/features/DeployCommand/index.js +0 -2
  90. package/features/DepsSync/BuildDependencyTree.js +17 -22
  91. package/features/DepsSync/BuildDependencyTree.js.map +1 -1
  92. package/features/DepsSync/DependencyTree.js +108 -119
  93. package/features/DepsSync/DependencyTree.js.map +1 -1
  94. package/features/DepsSync/ListAllPackageJsonFiles.js +19 -14
  95. package/features/DepsSync/ListAllPackageJsonFiles.js.map +1 -1
  96. package/features/DepsSync/ListAllPackages.js +7 -9
  97. package/features/DepsSync/ListAllPackages.js.map +1 -1
  98. package/features/DepsSync/commands/SyncDepsCommand.js +30 -24
  99. package/features/DepsSync/commands/SyncDepsCommand.js.map +1 -1
  100. package/features/DepsSync/commands/VerifyDepsCommand.js +70 -71
  101. package/features/DepsSync/commands/VerifyDepsCommand.js.map +1 -1
  102. package/features/DepsSync/createDependencyTree.js +25 -18
  103. package/features/DepsSync/createDependencyTree.js.map +1 -1
  104. package/features/DepsSync/createReferenceFile.js +22 -26
  105. package/features/DepsSync/createReferenceFile.js.map +1 -1
  106. package/features/DepsSync/index.js +0 -2
  107. package/features/DepsSync/paths.js +3 -6
  108. package/features/DepsSync/paths.js.map +1 -1
  109. package/features/DepsSync/types.js +7 -6
  110. package/features/DepsSync/types.js.map +1 -1
  111. package/features/DestroyCommand/DestroyCommand.js +71 -67
  112. package/features/DestroyCommand/DestroyCommand.js.map +1 -1
  113. package/features/DestroyCommand/index.js +0 -2
  114. package/features/DisableTelemetryCommand.js +28 -25
  115. package/features/DisableTelemetryCommand.js.map +1 -1
  116. package/features/EnableTelemetryCommand.js +28 -25
  117. package/features/EnableTelemetryCommand.js.map +1 -1
  118. package/features/ExtensionCommand/ExtensionCommand.js +60 -63
  119. package/features/ExtensionCommand/ExtensionCommand.js.map +1 -1
  120. package/features/ExtensionCommand/index.js +0 -2
  121. package/features/InfoCommand/InfoCommand.js +54 -56
  122. package/features/InfoCommand/InfoCommand.js.map +1 -1
  123. package/features/InfoCommand/PrintInfoForEnv.js +31 -42
  124. package/features/InfoCommand/PrintInfoForEnv.js.map +1 -1
  125. package/features/InfoCommand/index.js +0 -2
  126. package/features/IsCi/IsCi.js +14 -11
  127. package/features/IsCi/IsCi.js.map +1 -1
  128. package/features/IsCi/index.js +1 -3
  129. package/features/OpenCommand.js +48 -47
  130. package/features/OpenCommand.js.map +1 -1
  131. package/features/OutputCommand.js +56 -69
  132. package/features/OutputCommand.js.map +1 -1
  133. package/features/PulumiCommand/PulumiCommand.js +48 -41
  134. package/features/PulumiCommand/PulumiCommand.js.map +1 -1
  135. package/features/PulumiCommand/index.js +0 -2
  136. package/features/RefreshCommand/RefreshCommand.js +42 -36
  137. package/features/RefreshCommand/RefreshCommand.js.map +1 -1
  138. package/features/RefreshCommand/index.js +0 -2
  139. package/features/UpgradeCommand/UpgradeCommand.d.ts +29 -0
  140. package/features/UpgradeCommand/UpgradeCommand.js +123 -0
  141. package/features/UpgradeCommand/UpgradeCommand.js.map +1 -0
  142. package/features/UpgradeCommand/UpgradeCommandHandler.d.ts +11 -0
  143. package/features/UpgradeCommand/UpgradeCommandHandler.js +102 -0
  144. package/features/UpgradeCommand/UpgradeCommandHandler.js.map +1 -0
  145. package/features/UpgradeCommand/abstraction.d.ts +23 -0
  146. package/features/UpgradeCommand/abstraction.js +5 -0
  147. package/features/UpgradeCommand/abstraction.js.map +1 -0
  148. package/features/UpgradeCommand/feature.d.ts +4 -0
  149. package/features/UpgradeCommand/feature.js +13 -0
  150. package/features/UpgradeCommand/feature.js.map +1 -0
  151. package/features/UpgradeCommand/index.d.ts +2 -0
  152. package/features/UpgradeCommand/index.js +2 -0
  153. package/features/WatchCommand/WatchCommand.js +131 -131
  154. package/features/WatchCommand/WatchCommand.js.map +1 -1
  155. package/features/WatchCommand/createPrefixer.js +11 -15
  156. package/features/WatchCommand/createPrefixer.js.map +1 -1
  157. package/features/WatchCommand/getRandomColorForString.js +86 -8
  158. package/features/WatchCommand/getRandomColorForString.js.map +1 -1
  159. package/features/WatchCommand/index.js +0 -2
  160. package/features/Wcp/LinkProjectCommand.js +119 -138
  161. package/features/Wcp/LinkProjectCommand.js.map +1 -1
  162. package/features/Wcp/LoginCommand.js +104 -118
  163. package/features/Wcp/LoginCommand.js.map +1 -1
  164. package/features/Wcp/LogoutCommand.js +29 -23
  165. package/features/Wcp/LogoutCommand.js.map +1 -1
  166. package/features/Wcp/WhoAmICommand.js +33 -29
  167. package/features/Wcp/WhoAmICommand.js.map +1 -1
  168. package/features/common/index.js +0 -2
  169. package/features/common/options.js +41 -50
  170. package/features/common/options.js.map +1 -1
  171. package/features/globalOptions/LogLevelGlobalOption.js +25 -16
  172. package/features/globalOptions/LogLevelGlobalOption.js.map +1 -1
  173. package/features/globalOptions/ShowLogsGlobalOption.js +16 -15
  174. package/features/globalOptions/ShowLogsGlobalOption.js.map +1 -1
  175. package/features/globalOptions/StackTraceGlobalOption.js +16 -15
  176. package/features/globalOptions/StackTraceGlobalOption.js.map +1 -1
  177. package/features/globalOptions/index.js +0 -2
  178. package/features/gracefulErrorHandlers/DdbPutItemConditionalCheckFailedGracefulErrorHandler.js +17 -16
  179. package/features/gracefulErrorHandlers/DdbPutItemConditionalCheckFailedGracefulErrorHandler.js.map +1 -1
  180. package/features/gracefulErrorHandlers/MissingFilesInBuildGracefulErrorHandler.js +12 -18
  181. package/features/gracefulErrorHandlers/MissingFilesInBuildGracefulErrorHandler.js.map +1 -1
  182. package/features/gracefulErrorHandlers/PendingOperationsGracefulErrorHandler.js +19 -19
  183. package/features/gracefulErrorHandlers/PendingOperationsGracefulErrorHandler.js.map +1 -1
  184. package/features/gracefulErrorHandlers/index.js +0 -2
  185. package/features/index.d.ts +1 -0
  186. package/features/index.js +1 -2
  187. package/features/utils/index.js +0 -2
  188. package/features/utils/measureDuration.js +7 -8
  189. package/features/utils/measureDuration.js.map +1 -1
  190. package/index.js +0 -2
  191. package/package.json +33 -28
  192. package/services/ArgvParserService/ArgvParserService.js +27 -33
  193. package/services/ArgvParserService/ArgvParserService.js.map +1 -1
  194. package/services/ArgvParserService/index.js +0 -2
  195. package/services/CliParamsService/CliParamsService.js +18 -15
  196. package/services/CliParamsService/CliParamsService.js.map +1 -1
  197. package/services/CliParamsService/index.js +0 -2
  198. package/services/CommandsRegistryService/CommandsRegistryService.js +19 -13
  199. package/services/CommandsRegistryService/CommandsRegistryService.js.map +1 -1
  200. package/services/CommandsRegistryService/index.js +0 -2
  201. package/services/GetArgvService/GetArgvService.js +14 -11
  202. package/services/GetArgvService/GetArgvService.js.map +1 -1
  203. package/services/GetArgvService/index.js +0 -2
  204. package/services/GetCliRunnerService/GetCliRunnerService.js +119 -148
  205. package/services/GetCliRunnerService/GetCliRunnerService.js.map +1 -1
  206. package/services/GetCliRunnerService/index.js +0 -2
  207. package/services/GetIsCiService/GetIsCiService.js +9 -8
  208. package/services/GetIsCiService/GetIsCiService.js.map +1 -1
  209. package/services/GetIsCiService/index.js +1 -3
  210. package/services/GetProjectSdkService/GetProjectSdkService.js +25 -24
  211. package/services/GetProjectSdkService/GetProjectSdkService.js.map +1 -1
  212. package/services/GetProjectSdkService/index.js +0 -2
  213. package/services/GlobalOptionsRegistryService/GlobalOptionsRegistryService.js +19 -13
  214. package/services/GlobalOptionsRegistryService/GlobalOptionsRegistryService.js.map +1 -1
  215. package/services/GlobalOptionsRegistryService/index.js +0 -2
  216. package/services/LoggerService/LoggerService.js +76 -88
  217. package/services/LoggerService/LoggerService.js.map +1 -1
  218. package/services/LoggerService/index.js +0 -2
  219. package/services/RunCliRunnerService/RunCliRunnerService.js +15 -13
  220. package/services/RunCliRunnerService/RunCliRunnerService.js.map +1 -1
  221. package/services/RunCliRunnerService/index.js +0 -2
  222. package/services/StdioService/StdioService.js +15 -14
  223. package/services/StdioService/StdioService.js.map +1 -1
  224. package/services/StdioService/index.js +0 -2
  225. package/services/UiService/UiService.js +55 -58
  226. package/services/UiService/UiService.js.map +1 -1
  227. package/services/UiService/index.js +0 -2
  228. package/services/index.js +0 -2
  229. package/utils/ManuallyReportedError.js +7 -6
  230. package/utils/ManuallyReportedError.js.map +1 -1
  231. package/abstractions/features/index.js.map +0 -1
  232. package/abstractions/features/types.js.map +0 -1
  233. package/abstractions/index.js.map +0 -1
  234. package/abstractions/services/index.js.map +0 -1
  235. package/decorators/index.js.map +0 -1
  236. package/exports/cli/command.js.map +0 -1
  237. package/exports/cli/index.d.ts +0 -2
  238. package/exports/cli/index.js +0 -4
  239. package/exports/cli/index.js.map +0 -1
  240. package/features/BuildCommand/index.js.map +0 -1
  241. package/features/DeployCommand/index.js.map +0 -1
  242. package/features/DepsSync/index.js.map +0 -1
  243. package/features/DestroyCommand/index.js.map +0 -1
  244. package/features/ExtensionCommand/index.js.map +0 -1
  245. package/features/InfoCommand/index.js.map +0 -1
  246. package/features/IsCi/index.js.map +0 -1
  247. package/features/PulumiCommand/index.js.map +0 -1
  248. package/features/RefreshCommand/index.js.map +0 -1
  249. package/features/WatchCommand/index.js.map +0 -1
  250. package/features/common/index.js.map +0 -1
  251. package/features/globalOptions/index.js.map +0 -1
  252. package/features/gracefulErrorHandlers/index.js.map +0 -1
  253. package/features/index.js.map +0 -1
  254. package/features/utils/index.js.map +0 -1
  255. package/index.js.map +0 -1
  256. package/services/ArgvParserService/index.js.map +0 -1
  257. package/services/CliParamsService/index.js.map +0 -1
  258. package/services/CommandsRegistryService/index.js.map +0 -1
  259. package/services/GetArgvService/index.js.map +0 -1
  260. package/services/GetCliRunnerService/index.js.map +0 -1
  261. package/services/GetIsCiService/index.js.map +0 -1
  262. package/services/GetProjectSdkService/index.js.map +0 -1
  263. package/services/GlobalOptionsRegistryService/index.js.map +0 -1
  264. package/services/LoggerService/index.js.map +0 -1
  265. package/services/RunCliRunnerService/index.js.map +0 -1
  266. package/services/StdioService/index.js.map +0 -1
  267. package/services/UiService/index.js.map +0 -1
  268. package/services/index.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/UpgradeCommand/UpgradeCommand.js","sources":["../../../src/features/UpgradeCommand/UpgradeCommand.ts"],"sourcesContent":["import { CliCommandFactory, UiService } from \"~/abstractions/index.js\";\nimport { UpgradeCommandHandler } from \"./abstraction.js\";\nimport semver from \"semver\";\n\ninterface UpgradeCommandParams {\n skipChecks?: boolean;\n disableSemver?: boolean;\n debug?: boolean;\n _: string[];\n force?: boolean;\n target?: string;\n logLevel?: string;\n showLogs?: boolean;\n showStackTrace?: boolean;\n version?: string;\n registry?: string;\n packageManager?: string;\n installVersion?: string;\n skipDependencyGuard?: boolean;\n}\n\nclass UpgradeCommandImpl implements CliCommandFactory.Interface<UpgradeCommandParams> {\n public constructor(\n private ui: UiService.Interface,\n private upgradeCommandHandler: UpgradeCommandHandler.Interface\n ) {}\n\n public async execute(): Promise<CliCommandFactory.CommandDefinition<UpgradeCommandParams>> {\n return {\n name: \"upgrade\",\n description:\n \"Upgrade Webiny packages and dependencies to the latest or selected version.\",\n examples: [\"upgrade\", \"upgrade 6.2.0\", \"upgrade 0.0.0-unstable.abc --disable-semver\"],\n params: [\n {\n name: \"target\",\n description:\n \"Target version to upgrade to. Can be a specific version (e.g. 6.2.0) or 'latest' to upgrade to the latest version.\",\n type: \"string\",\n default: \"latest\",\n required: false\n }\n ],\n options: [\n {\n name: \"force\",\n description: \"Force an upgrade for a version, even if it was ran before.\",\n type: \"boolean\",\n default: false\n },\n {\n name: \"skip-checks\",\n description: \"Do not perform CLI version and Git tree checks.\",\n type: \"boolean\",\n default: false\n },\n {\n name: \"log-level\",\n default: \"debug\",\n description: `Set log level for the upgrade process executed by npx. Possible values are \"debug\", \"info\", \"warning\", and \"error\".`,\n type: \"string\"\n },\n {\n name: \"show-logs\",\n default: false,\n description: `Show logs from the upgrade process executed by npx.`,\n type: \"boolean\"\n },\n {\n name: \"show-stack-trace\",\n default: false,\n description: `Show stack trace if the upgrade process executed by npx fails.`,\n type: \"boolean\"\n },\n {\n name: \"registry\",\n type: \"string\",\n default: \"\",\n description: \"registry URL\"\n },\n {\n name: \"package-manager\",\n type: \"string\",\n default: \"\",\n description:\n \"Package manager to use: yarn, pnpm, or npm (auto-detected from lock file if omitted)\"\n },\n {\n name: \"skip-dependency-guard\",\n default: false,\n description: `Skip the dependency guard that checks for incompatible dependencies before performing the upgrade.`,\n type: \"boolean\"\n },\n {\n name: \"install-version\",\n type: \"string\",\n default: \"\",\n description:\n \"Install a specific version of Webiny, no matter the version upgrade script is running for. Eg. upgrade script is for 6.5.0 but you want to install 6.5.0-rc.0\"\n }\n ],\n handler: async params => {\n /**\n * We assign only what we want so that we don't accidentally pass some parameters that are not relevant to the handler.\n */\n const version = this.getVersion(params);\n return this.upgradeCommandHandler.handle({\n force: params.force || false,\n logLevel: params.logLevel || \"info\",\n showLogs: params.showLogs || false,\n showStackTrace: params.showStackTrace || false,\n skipChecks: params.skipChecks || false,\n debug: true,\n packageManager: params.packageManager || undefined,\n registry: params.registry || undefined,\n installVersion: params.installVersion || undefined,\n skipDependencyGuard: params.skipDependencyGuard || false,\n version\n });\n }\n };\n }\n\n private getVersion(params: UpgradeCommandParams): UpgradeCommandHandler.Version {\n const version = semver.valid(params._[1]) ? params._[1] : params.target;\n if (!version || version === \"latest\") {\n return \"latest\";\n }\n if (params.disableSemver) {\n return version as UpgradeCommandHandler.Version;\n }\n\n try {\n const parsed = semver.parse(version);\n if (!parsed) {\n throw new Error();\n }\n return parsed.format() as UpgradeCommandHandler.Version;\n } catch (ex) {\n throw new Error(\n `Invalid version provided: \"${version}\". Use --disable-semver to allow non-semver versions: ${ex.message}`\n );\n }\n }\n}\n\nexport const UpgradeCommand = CliCommandFactory.createImplementation({\n implementation: UpgradeCommandImpl,\n dependencies: [UiService, UpgradeCommandHandler]\n});\n"],"names":["UpgradeCommandImpl","ui","upgradeCommandHandler","params","version","undefined","semver","parsed","Error","ex","UpgradeCommand","CliCommandFactory","UiService","UpgradeCommandHandler"],"mappings":";;;AAqBA,MAAMA;IACF,YACYC,EAAuB,EACvBC,qBAAsD,CAChE;aAFUD,EAAE,GAAFA;aACAC,qBAAqB,GAArBA;IACT;IAEH,MAAa,UAA8E;QACvF,OAAO;YACH,MAAM;YACN,aACI;YACJ,UAAU;gBAAC;gBAAW;gBAAiB;aAA8C;YACrF,QAAQ;gBACJ;oBACI,MAAM;oBACN,aACI;oBACJ,MAAM;oBACN,SAAS;oBACT,UAAU;gBACd;aACH;YACD,SAAS;gBACL;oBACI,MAAM;oBACN,aAAa;oBACb,MAAM;oBACN,SAAS;gBACb;gBACA;oBACI,MAAM;oBACN,aAAa;oBACb,MAAM;oBACN,SAAS;gBACb;gBACA;oBACI,MAAM;oBACN,SAAS;oBACT,aAAa;oBACb,MAAM;gBACV;gBACA;oBACI,MAAM;oBACN,SAAS;oBACT,aAAa;oBACb,MAAM;gBACV;gBACA;oBACI,MAAM;oBACN,SAAS;oBACT,aAAa;oBACb,MAAM;gBACV;gBACA;oBACI,MAAM;oBACN,MAAM;oBACN,SAAS;oBACT,aAAa;gBACjB;gBACA;oBACI,MAAM;oBACN,MAAM;oBACN,SAAS;oBACT,aACI;gBACR;gBACA;oBACI,MAAM;oBACN,SAAS;oBACT,aAAa;oBACb,MAAM;gBACV;gBACA;oBACI,MAAM;oBACN,MAAM;oBACN,SAAS;oBACT,aACI;gBACR;aACH;YACD,SAAS,OAAMC;gBAIX,MAAMC,UAAU,IAAI,CAAC,UAAU,CAACD;gBAChC,OAAO,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC;oBACrC,OAAOA,OAAO,KAAK,IAAI;oBACvB,UAAUA,OAAO,QAAQ,IAAI;oBAC7B,UAAUA,OAAO,QAAQ,IAAI;oBAC7B,gBAAgBA,OAAO,cAAc,IAAI;oBACzC,YAAYA,OAAO,UAAU,IAAI;oBACjC,OAAO;oBACP,gBAAgBA,OAAO,cAAc,IAAIE;oBACzC,UAAUF,OAAO,QAAQ,IAAIE;oBAC7B,gBAAgBF,OAAO,cAAc,IAAIE;oBACzC,qBAAqBF,OAAO,mBAAmB,IAAI;oBACnDC;gBACJ;YACJ;QACJ;IACJ;IAEQ,WAAWD,MAA4B,EAAiC;QAC5E,MAAMC,UAAUE,OAAO,KAAK,CAACH,OAAO,CAAC,CAAC,EAAE,IAAIA,OAAO,CAAC,CAAC,EAAE,GAAGA,OAAO,MAAM;QACvE,IAAI,CAACC,WAAWA,AAAY,aAAZA,SACZ,OAAO;QAEX,IAAID,OAAO,aAAa,EACpB,OAAOC;QAGX,IAAI;YACA,MAAMG,SAASD,OAAO,KAAK,CAACF;YAC5B,IAAI,CAACG,QACD,MAAM,IAAIC;YAEd,OAAOD,OAAO,MAAM;QACxB,EAAE,OAAOE,IAAI;YACT,MAAM,IAAID,MACN,CAAC,2BAA2B,EAAEJ,QAAQ,sDAAsD,EAAEK,GAAG,OAAO,EAAE;QAElH;IACJ;AACJ;AAEO,MAAMC,iBAAiBC,kBAAkB,oBAAoB,CAAC;IACjE,gBAAgBX;IAChB,cAAc;QAACY;QAAWC;KAAsB;AACpD"}
@@ -0,0 +1,11 @@
1
+ import { UpgradeCommandHandler as UpgradeCommandHandlerAbstraction } from "./abstraction.js";
2
+ import { UiService } from "../../abstractions/index.js";
3
+ export declare class UpgradeCommandHandlerImpl implements UpgradeCommandHandlerAbstraction.Interface {
4
+ private ui;
5
+ constructor(ui: UiService.Interface);
6
+ handle(params: UpgradeCommandHandlerAbstraction.Params): Promise<void>;
7
+ private output;
8
+ }
9
+ export declare const UpgradeCommandHandler: typeof UpgradeCommandHandlerImpl & {
10
+ __abstraction: import("@webiny/di").Abstraction<import("./abstraction.js").IUpgradeCommandHandler>;
11
+ };
@@ -0,0 +1,102 @@
1
+ import { UpgradeCommandHandler } from "./abstraction.js";
2
+ import chalk from "chalk";
3
+ import execa from "execa";
4
+ import { UiService } from "../../abstractions/index.js";
5
+ const GITHUB_REPOSITORY_URL = "https://github.com/webiny/webiny-upgrades-v6";
6
+ class UpgradeCommandHandlerImpl {
7
+ constructor(ui){
8
+ this.ui = ui;
9
+ }
10
+ async handle(params) {
11
+ const { version, skipChecks, debug, logLevel, showLogs, showStackTrace, installVersion, force } = params;
12
+ if (!skipChecks) {
13
+ let gitStatus = "";
14
+ try {
15
+ const { stdout } = execa.sync("git", [
16
+ "status",
17
+ "--porcelain"
18
+ ]);
19
+ gitStatus = stdout.trim();
20
+ } catch {}
21
+ if (gitStatus) {
22
+ this.ui.error(chalk.red("This git repository has untracked files or uncommitted changes:") + "\n\n" + gitStatus.split("\n").map((line)=>{
23
+ const matched = line.match(/ .*/g);
24
+ if (!matched || !matched[0]) return "";
25
+ return matched[0].trim();
26
+ }).join("\n") + "\n\n" + chalk.red("Remove untracked files, stash or commit any changes, and try again."));
27
+ process.exit(1);
28
+ }
29
+ }
30
+ const command = [
31
+ GITHUB_REPOSITORY_URL,
32
+ version || void 0,
33
+ debug ? "--debug" : "",
34
+ showLogs ? `--showLogs=${showLogs}` : "",
35
+ showStackTrace ? `--showStackTrace=${showStackTrace}` : "",
36
+ logLevel ? `--logLevel=${logLevel}` : "--logLevel=debug",
37
+ installVersion ? `--installVersion=${installVersion}` : "",
38
+ force ? "--force" : "",
39
+ "--json"
40
+ ].filter(Boolean);
41
+ const npx = execa("npx", command, {
42
+ env: {
43
+ FORCE_COLOR: true
44
+ },
45
+ stdin: process.stdin
46
+ });
47
+ npx.stdout.on("data", (data)=>{
48
+ const lines = data.toString().replace(/\n$/, "").split("\n");
49
+ for (const line of lines)if (line && line.trim()) this.output(line);
50
+ });
51
+ npx.stderr.on("data", (data)=>{
52
+ this.ui.error(data.toString());
53
+ });
54
+ try {
55
+ await npx;
56
+ } catch (ex) {
57
+ this.ui.error(`Upgrade process failed: ${ex.message}`);
58
+ }
59
+ }
60
+ output(line) {
61
+ try {
62
+ const json = JSON.parse(line);
63
+ switch(json.type){
64
+ case "debug":
65
+ this.ui.debug(json.message);
66
+ if (!json.data?.stack) return;
67
+ this.ui.debug(json.data?.stack);
68
+ return;
69
+ case "info":
70
+ this.ui.info(json.message);
71
+ return;
72
+ case "success":
73
+ case "done":
74
+ this.ui.success(json.message);
75
+ return;
76
+ case "warning":
77
+ case "warn":
78
+ this.ui.warning(json.message);
79
+ return;
80
+ case "error":
81
+ case "fatal":
82
+ this.ui.error(json.message);
83
+ if (!json.data?.stack) return;
84
+ this.ui.debug(json.data?.stack);
85
+ return;
86
+ default:
87
+ console.log(json);
88
+ }
89
+ } catch {
90
+ console.log(line);
91
+ }
92
+ }
93
+ }
94
+ const UpgradeCommandHandler_UpgradeCommandHandler = UpgradeCommandHandler.createImplementation({
95
+ implementation: UpgradeCommandHandlerImpl,
96
+ dependencies: [
97
+ UiService
98
+ ]
99
+ });
100
+ export { UpgradeCommandHandlerImpl, UpgradeCommandHandler_UpgradeCommandHandler as UpgradeCommandHandler };
101
+
102
+ //# sourceMappingURL=UpgradeCommandHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/UpgradeCommand/UpgradeCommandHandler.js","sources":["../../../src/features/UpgradeCommand/UpgradeCommandHandler.ts"],"sourcesContent":["import { UpgradeCommandHandler as UpgradeCommandHandlerAbstraction } from \"./abstraction.js\";\nimport chalk from \"chalk\";\nimport execa from \"execa\";\nimport { UiService } from \"~/abstractions/index.js\";\n\nconst GITHUB_REPOSITORY_URL = \"https://github.com/webiny/webiny-upgrades-v6\";\n\ntype LogType = \"debug\" | \"success\" | \"warning\" | \"warn\" | \"error\" | \"fatal\" | \"done\" | \"info\";\n\ninterface IUpgradeLine {\n type: LogType;\n message: string;\n data?: {\n stack?: string;\n [key: string]: any;\n };\n}\n\nexport class UpgradeCommandHandlerImpl implements UpgradeCommandHandlerAbstraction.Interface {\n public constructor(private ui: UiService.Interface) {}\n\n public async handle(params: UpgradeCommandHandlerAbstraction.Params): Promise<void> {\n const {\n version,\n skipChecks,\n debug,\n logLevel,\n showLogs,\n showStackTrace,\n installVersion,\n force\n } = params;\n\n if (!skipChecks) {\n /**\n * Before doing any upgrading, there must not be any active changes in the current branch.\n */\n let gitStatus = \"\";\n try {\n const { stdout } = execa.sync(\"git\", [\"status\", \"--porcelain\"]);\n gitStatus = stdout.trim();\n } catch {}\n\n if (gitStatus) {\n this.ui.error(\n chalk.red(\"This git repository has untracked files or uncommitted changes:\") +\n \"\\n\\n\" +\n gitStatus\n .split(\"\\n\")\n .map(line => {\n const matched = line.match(/ .*/g);\n if (!matched || !matched[0]) {\n return \"\";\n }\n return matched[0].trim();\n })\n .join(\"\\n\") +\n \"\\n\\n\" +\n chalk.red(\n \"Remove untracked files, stash or commit any changes, and try again.\"\n )\n );\n process.exit(1);\n }\n }\n\n const command = [\n GITHUB_REPOSITORY_URL,\n version || undefined,\n debug ? \"--debug\" : \"\",\n showLogs ? `--showLogs=${showLogs}` : \"\",\n showStackTrace ? `--showStackTrace=${showStackTrace}` : \"\",\n logLevel ? `--logLevel=${logLevel}` : \"--logLevel=debug\",\n installVersion ? `--installVersion=${installVersion}` : \"\",\n force ? \"--force\" : \"\",\n \"--json\"\n ].filter(Boolean);\n\n const npx = execa(\"npx\", command, {\n env: {\n // TODO determine if this actually works\n // @ts-expect-error\n FORCE_COLOR: true\n },\n stdin: process.stdin\n });\n\n npx.stdout!.on(\"data\", data => {\n const lines = data.toString().replace(/\\n$/, \"\").split(\"\\n\") as string[];\n for (const line of lines) {\n if (!line || !line.trim()) {\n continue;\n }\n this.output(line);\n }\n });\n\n npx.stderr!.on(\"data\", data => {\n this.ui.error(data.toString());\n });\n\n try {\n await npx;\n } catch (ex) {\n this.ui.error(`Upgrade process failed: ${ex.message}`);\n }\n }\n\n private output(line: string): void {\n try {\n const json = JSON.parse(line) as IUpgradeLine;\n switch (json.type) {\n case \"debug\":\n this.ui.debug(json.message);\n if (!json.data?.stack) {\n return;\n }\n this.ui.debug(json.data?.stack);\n return;\n case \"info\":\n this.ui.info(json.message);\n return;\n case \"success\":\n case \"done\":\n this.ui.success(json.message);\n return;\n case \"warning\":\n case \"warn\":\n this.ui.warning(json.message);\n return;\n case \"error\":\n case \"fatal\":\n this.ui.error(json.message);\n if (!json.data?.stack) {\n return;\n }\n this.ui.debug(json.data?.stack);\n return;\n default:\n console.log(json);\n }\n } catch {\n console.log(line);\n }\n }\n}\n\nexport const UpgradeCommandHandler = UpgradeCommandHandlerAbstraction.createImplementation({\n implementation: UpgradeCommandHandlerImpl,\n dependencies: [UiService]\n});\n"],"names":["GITHUB_REPOSITORY_URL","UpgradeCommandHandlerImpl","ui","params","version","skipChecks","debug","logLevel","showLogs","showStackTrace","installVersion","force","gitStatus","stdout","execa","chalk","line","matched","process","command","undefined","Boolean","npx","data","lines","ex","json","JSON","console","UpgradeCommandHandler","UpgradeCommandHandlerAbstraction","UiService"],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ export type UpgradeCommandPackageVersion = `${number}.${number}.${number}` | "latest";
2
+ export interface IUpgradeCommandHandlerHandleParams {
3
+ force: boolean;
4
+ showLogs: boolean;
5
+ logLevel: string;
6
+ showStackTrace: boolean;
7
+ skipChecks: boolean;
8
+ debug: boolean;
9
+ version: UpgradeCommandPackageVersion;
10
+ packageManager?: string;
11
+ registry?: string;
12
+ skipDependencyGuard?: boolean;
13
+ installVersion?: string;
14
+ }
15
+ export interface IUpgradeCommandHandler {
16
+ handle(params: IUpgradeCommandHandlerHandleParams): Promise<void>;
17
+ }
18
+ export declare const UpgradeCommandHandler: import("@webiny/di").Abstraction<IUpgradeCommandHandler>;
19
+ export declare namespace UpgradeCommandHandler {
20
+ type Interface = IUpgradeCommandHandler;
21
+ type Params = IUpgradeCommandHandlerHandleParams;
22
+ type Version = UpgradeCommandPackageVersion;
23
+ }
@@ -0,0 +1,5 @@
1
+ import { createAbstraction } from "../../abstractions/createAbstraction.js";
2
+ const UpgradeCommandHandler = createAbstraction("Cli/Core/UpgradeCommandHandler");
3
+ export { UpgradeCommandHandler };
4
+
5
+ //# sourceMappingURL=abstraction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/UpgradeCommand/abstraction.js","sources":["../../../src/features/UpgradeCommand/abstraction.ts"],"sourcesContent":["import { createAbstraction } from \"~/abstractions/createAbstraction.js\";\n\nexport type UpgradeCommandPackageVersion = `${number}.${number}.${number}` | \"latest\";\n\nexport interface IUpgradeCommandHandlerHandleParams {\n force: boolean;\n showLogs: boolean;\n logLevel: string;\n showStackTrace: boolean;\n skipChecks: boolean;\n debug: boolean;\n version: UpgradeCommandPackageVersion;\n packageManager?: string;\n registry?: string;\n skipDependencyGuard?: boolean;\n installVersion?: string;\n}\n\nexport interface IUpgradeCommandHandler {\n handle(params: IUpgradeCommandHandlerHandleParams): Promise<void>;\n}\n\nexport const UpgradeCommandHandler = createAbstraction<IUpgradeCommandHandler>(\n \"Cli/Core/UpgradeCommandHandler\"\n);\n\nexport namespace UpgradeCommandHandler {\n export type Interface = IUpgradeCommandHandler;\n export type Params = IUpgradeCommandHandlerHandleParams;\n export type Version = UpgradeCommandPackageVersion;\n}\n"],"names":["UpgradeCommandHandler","createAbstraction"],"mappings":";AAsBO,MAAMA,wBAAwBC,kBACjC"}
@@ -0,0 +1,4 @@
1
+ export declare const UpgradeCommandFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -0,0 +1,13 @@
1
+ import { createFeature } from "@webiny/feature/api";
2
+ import { UpgradeCommandHandler } from "./UpgradeCommandHandler.js";
3
+ import { UpgradeCommand } from "./UpgradeCommand.js";
4
+ const UpgradeCommandFeature = createFeature({
5
+ name: "Command/Upgrade",
6
+ register (container) {
7
+ container.register(UpgradeCommand).inSingletonScope();
8
+ container.register(UpgradeCommandHandler);
9
+ }
10
+ });
11
+ export { UpgradeCommandFeature };
12
+
13
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/UpgradeCommand/feature.js","sources":["../../../src/features/UpgradeCommand/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { UpgradeCommandHandler } from \"./UpgradeCommandHandler.js\";\nimport { UpgradeCommand } from \"./UpgradeCommand.js\";\n\nexport const UpgradeCommandFeature = createFeature({\n name: \"Command/Upgrade\",\n register(container) {\n container.register(UpgradeCommand).inSingletonScope();\n container.register(UpgradeCommandHandler);\n }\n});\n"],"names":["UpgradeCommandFeature","createFeature","container","UpgradeCommand","UpgradeCommandHandler"],"mappings":";;;AAIO,MAAMA,wBAAwBC,cAAc;IAC/C,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC,gBAAgB,gBAAgB;QACnDD,UAAU,QAAQ,CAACE;IACvB;AACJ"}
@@ -0,0 +1,2 @@
1
+ export { UpgradeCommandFeature } from "./feature.js";
2
+ export { UpgradeCommandHandler } from "./UpgradeCommandHandler.js";
@@ -0,0 +1,2 @@
1
+ export { UpgradeCommandFeature } from "./feature.js";
2
+ export { UpgradeCommandHandler } from "./UpgradeCommandHandler.js";
@@ -6,138 +6,138 @@ import { getRandomColorForString } from "./getRandomColorForString.js";
6
6
  import { createPrefixer } from "./createPrefixer.js";
7
7
  const BASE_OPTIONS_GROUP = "Base Options:";
8
8
  const LOCAL_AWS_LAMBDA_DEVELOPMENT_GROUP = "Local AWS Lambda Development Options:";
9
- export class WatchCommand {
10
- constructor(getProjectSdkService, stdioService, uiService) {
11
- this.getProjectSdkService = getProjectSdkService;
12
- this.stdioService = stdioService;
13
- this.uiService = uiService;
14
- }
15
- async execute() {
16
- const projectSdk = await this.getProjectSdkService.execute();
17
- const stdio = this.stdioService;
18
- const ui = this.uiService;
19
- return {
20
- name: "watch",
21
- description: "Watches code changes for a specific app or package.",
22
- examples: ["watch api --env dev", "watch admin --env prod", "watch -p my-package1,my-package2", "watch api --env dev -p my-package1,my-package2"],
23
- params: [{
24
- name: "app",
25
- description: "Name of the app (core, admin, or api)",
26
- type: "string"
27
- }],
28
- options: [...createBaseAppOptions(projectSdk, {
29
- env: {
30
- group: BASE_OPTIONS_GROUP
31
- },
32
- variant: {
33
- group: BASE_OPTIONS_GROUP
34
- },
35
- region: {
36
- group: BASE_OPTIONS_GROUP
37
- }
38
- }), {
39
- name: "package",
40
- alias: "p",
41
- description: `One or more packages that will be watched for code changes`,
42
- type: "string",
43
- group: BASE_OPTIONS_GROUP
44
- }, {
45
- name: "function",
46
- alias: "f",
47
- description: "Specify one or more AWS Lambda functions to watch (comma-separated)",
48
- type: "string",
49
- group: LOCAL_AWS_LAMBDA_DEVELOPMENT_GROUP
50
- }, {
51
- name: "increase-timeout",
52
- default: 120,
53
- description: "Increase AWS Lambda function timeout (passed as number of seconds)",
54
- type: "number",
55
- group: LOCAL_AWS_LAMBDA_DEVELOPMENT_GROUP
56
- }, {
57
- name: "increase-handshake-timeout",
58
- default: 5,
59
- description: "Increase timeout for the initial handshake between a single AWS Lambda invocation and local code execution (passed as number of seconds)",
60
- type: "number",
61
- group: LOCAL_AWS_LAMBDA_DEVELOPMENT_GROUP
62
- }, {
63
- name: "inspect",
64
- alias: "i",
65
- description: "[EXPERIMENTAL] Enable Node debugger",
66
- type: "string",
67
- group: LOCAL_AWS_LAMBDA_DEVELOPMENT_GROUP
68
- }, {
69
- name: "allow-production",
70
- default: false,
71
- description: "Enables running the watch command against environments marked as production environments (not recommended).",
72
- type: "number"
73
- }, {
74
- name: "deployment-checks",
75
- default: true,
76
- description: `Enable or disable deployment checks. For example, if you are trying to watch the API app, but the 'api' app is not deployed yet, you will get a warning and the process will stop.`,
77
- type: "boolean"
78
- }],
79
- handler: async params => {
80
- const {
81
- packagesWatcher
82
- } = await projectSdk.watch(params);
83
-
84
- // TODO: Revisit this.
85
- // if (webinyConfigWatcher) {
86
- // webinyConfigWatcher
87
- // .onError(err => {
88
- // ui.error(
89
- // `There is an error in your %s file: ${err.message}`,
90
- // "webiny.config.tsx"
91
- // );
92
- // })
93
- // .onSuccess(() => {
94
- // ui.success(`%s compiled successfully!`, "webiny.config.tsx");
95
- // })
96
- // .run();
97
- // }
98
-
99
- // TODO: Extract this logic into WatchRunners, same thing we have with BuildRunners.
100
- const watchProcesses = packagesWatcher.prepare();
101
- if (watchProcesses.length === 1) {
102
- watchProcesses.setForkOptions({
103
- stdio: "inherit",
104
- env: process.env
105
- });
106
- const [firstProcess] = watchProcesses.getProcesses();
107
- ui.info(`Watching %s package...`, firstProcess.pkg.name);
108
- await firstProcess.run();
109
- return;
110
- }
111
- if (watchProcesses.length > 1) {
112
- ui.info(`Watching %s packages...`, watchProcesses.length);
113
- stdio.getStdout().setMaxListeners(20);
114
- stdio.getStderr().setMaxListeners(20);
115
- watchProcesses.forEach(watchProcess => {
116
- const {
117
- pkg
118
- } = watchProcess;
119
- const pkgPrefix = chalk.hex(getRandomColorForString(pkg.name))(pkg.name);
120
- watchProcess.pipeStdout(stdout => {
121
- const prefixedStdout = createPrefixer(pkgPrefix);
122
- stdout.pipe(prefixedStdout).pipe(stdio.getStdout());
123
- });
124
- watchProcess.pipeStderr(stderr => {
125
- const prefixedStderr = createPrefixer(pkgPrefix);
126
- stderr.pipe(prefixedStderr).pipe(stdio.getStderr());
127
- });
128
- });
129
- await Promise.all(watchProcesses.run());
130
- return;
131
- }
132
- ui.warning(`No watch processes were started. Please ensure that you have specified valid "app" or "package" parameters.`);
133
- }
134
- };
135
- }
9
+ class WatchCommand {
10
+ constructor(getProjectSdkService, stdioService, uiService){
11
+ this.getProjectSdkService = getProjectSdkService;
12
+ this.stdioService = stdioService;
13
+ this.uiService = uiService;
14
+ }
15
+ async execute() {
16
+ const projectSdk = await this.getProjectSdkService.execute();
17
+ const stdio = this.stdioService;
18
+ const ui = this.uiService;
19
+ return {
20
+ name: "watch",
21
+ description: "Watches code changes for a specific app or package.",
22
+ examples: [
23
+ "watch api --env dev",
24
+ "watch admin --env prod",
25
+ "watch -p my-package1,my-package2",
26
+ "watch api --env dev -p my-package1,my-package2"
27
+ ],
28
+ params: [
29
+ {
30
+ name: "app",
31
+ description: "Name of the app (core, admin, or api)",
32
+ type: "string"
33
+ }
34
+ ],
35
+ options: [
36
+ ...createBaseAppOptions(projectSdk, {
37
+ env: {
38
+ group: BASE_OPTIONS_GROUP
39
+ },
40
+ variant: {
41
+ group: BASE_OPTIONS_GROUP
42
+ },
43
+ region: {
44
+ group: BASE_OPTIONS_GROUP
45
+ }
46
+ }),
47
+ {
48
+ name: "package",
49
+ alias: "p",
50
+ description: "One or more packages that will be watched for code changes",
51
+ type: "string",
52
+ group: BASE_OPTIONS_GROUP
53
+ },
54
+ {
55
+ name: "function",
56
+ alias: "f",
57
+ description: "Specify one or more AWS Lambda functions to watch (comma-separated)",
58
+ type: "string",
59
+ group: LOCAL_AWS_LAMBDA_DEVELOPMENT_GROUP
60
+ },
61
+ {
62
+ name: "increase-timeout",
63
+ default: 120,
64
+ description: "Increase AWS Lambda function timeout (passed as number of seconds)",
65
+ type: "number",
66
+ group: LOCAL_AWS_LAMBDA_DEVELOPMENT_GROUP
67
+ },
68
+ {
69
+ name: "increase-handshake-timeout",
70
+ default: 5,
71
+ description: "Increase timeout for the initial handshake between a single AWS Lambda invocation and local code execution (passed as number of seconds)",
72
+ type: "number",
73
+ group: LOCAL_AWS_LAMBDA_DEVELOPMENT_GROUP
74
+ },
75
+ {
76
+ name: "inspect",
77
+ alias: "i",
78
+ description: "[EXPERIMENTAL] Enable Node debugger",
79
+ type: "string",
80
+ group: LOCAL_AWS_LAMBDA_DEVELOPMENT_GROUP
81
+ },
82
+ {
83
+ name: "allow-production",
84
+ default: false,
85
+ description: "Enables running the watch command against environments marked as production environments (not recommended).",
86
+ type: "number"
87
+ },
88
+ {
89
+ name: "deployment-checks",
90
+ default: true,
91
+ description: "Enable or disable deployment checks. For example, if you are trying to watch the API app, but the 'api' app is not deployed yet, you will get a warning and the process will stop.",
92
+ type: "boolean"
93
+ }
94
+ ],
95
+ handler: async (params)=>{
96
+ const { packagesWatcher } = await projectSdk.watch(params);
97
+ const watchProcesses = packagesWatcher.prepare();
98
+ if (1 === watchProcesses.length) {
99
+ watchProcesses.setForkOptions({
100
+ stdio: "inherit",
101
+ env: process.env
102
+ });
103
+ const [firstProcess] = watchProcesses.getProcesses();
104
+ ui.info("Watching %s package...", firstProcess.pkg.name);
105
+ await firstProcess.run();
106
+ return;
107
+ }
108
+ if (watchProcesses.length > 1) {
109
+ ui.info("Watching %s packages...", watchProcesses.length);
110
+ stdio.getStdout().setMaxListeners(20);
111
+ stdio.getStderr().setMaxListeners(20);
112
+ watchProcesses.forEach((watchProcess)=>{
113
+ const { pkg } = watchProcess;
114
+ const pkgPrefix = chalk.hex(getRandomColorForString(pkg.name))(pkg.name);
115
+ watchProcess.pipeStdout((stdout)=>{
116
+ const prefixedStdout = createPrefixer(pkgPrefix);
117
+ stdout.pipe(prefixedStdout).pipe(stdio.getStdout());
118
+ });
119
+ watchProcess.pipeStderr((stderr)=>{
120
+ const prefixedStderr = createPrefixer(pkgPrefix);
121
+ stderr.pipe(prefixedStderr).pipe(stdio.getStderr());
122
+ });
123
+ });
124
+ await Promise.all(watchProcesses.run());
125
+ return;
126
+ }
127
+ ui.warning('No watch processes were started. Please ensure that you have specified valid "app" or "package" parameters.');
128
+ }
129
+ };
130
+ }
136
131
  }
137
- export const watchCommand = createImplementation({
138
- abstraction: CliCommandFactory,
139
- implementation: WatchCommand,
140
- dependencies: [GetProjectSdkService, StdioService, UiService]
132
+ const watchCommand = createImplementation({
133
+ abstraction: CliCommandFactory,
134
+ implementation: WatchCommand,
135
+ dependencies: [
136
+ GetProjectSdkService,
137
+ StdioService,
138
+ UiService
139
+ ]
141
140
  });
141
+ export { WatchCommand, watchCommand };
142
142
 
143
143
  //# sourceMappingURL=WatchCommand.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createImplementation","CliCommandFactory","GetProjectSdkService","StdioService","UiService","createBaseAppOptions","chalk","getRandomColorForString","createPrefixer","BASE_OPTIONS_GROUP","LOCAL_AWS_LAMBDA_DEVELOPMENT_GROUP","WatchCommand","constructor","getProjectSdkService","stdioService","uiService","execute","projectSdk","stdio","ui","name","description","examples","params","type","options","env","group","variant","region","alias","default","handler","packagesWatcher","watch","watchProcesses","prepare","length","setForkOptions","process","firstProcess","getProcesses","info","pkg","run","getStdout","setMaxListeners","getStderr","forEach","watchProcess","pkgPrefix","hex","pipeStdout","stdout","prefixedStdout","pipe","pipeStderr","stderr","prefixedStderr","Promise","all","warning","watchCommand","abstraction","implementation","dependencies"],"sources":["WatchCommand.ts"],"sourcesContent":["import { createImplementation } from \"@webiny/di\";\nimport {\n CliCommandFactory,\n GetProjectSdkService,\n StdioService,\n UiService\n} from \"~/abstractions/index.js\";\nimport { IBaseAppParams } from \"~/abstractions/features/types.js\";\nimport { createBaseAppOptions } from \"~/features/common/index.js\";\nimport chalk from \"chalk\";\nimport { getRandomColorForString } from \"./getRandomColorForString.js\";\nimport { createPrefixer } from \"./createPrefixer.js\";\n\nexport type IWatchCommandParams = IBaseAppParams;\n\nconst BASE_OPTIONS_GROUP = \"Base Options:\";\nconst LOCAL_AWS_LAMBDA_DEVELOPMENT_GROUP = \"Local AWS Lambda Development Options:\";\n\nexport class WatchCommand implements CliCommandFactory.Interface<IWatchCommandParams> {\n constructor(\n private getProjectSdkService: GetProjectSdkService.Interface,\n private stdioService: StdioService.Interface,\n private uiService: UiService.Interface\n ) {}\n\n async execute(): Promise<CliCommandFactory.CommandDefinition<IWatchCommandParams>> {\n const projectSdk = await this.getProjectSdkService.execute();\n const stdio = this.stdioService;\n const ui = this.uiService;\n\n return {\n name: \"watch\",\n description: \"Watches code changes for a specific app or package.\",\n examples: [\n \"watch api --env dev\",\n \"watch admin --env prod\",\n \"watch -p my-package1,my-package2\",\n \"watch api --env dev -p my-package1,my-package2\"\n ],\n params: [\n {\n name: \"app\",\n description: \"Name of the app (core, admin, or api)\",\n type: \"string\"\n }\n ],\n options: [\n ...createBaseAppOptions(projectSdk, {\n env: { group: BASE_OPTIONS_GROUP },\n variant: { group: BASE_OPTIONS_GROUP },\n region: { group: BASE_OPTIONS_GROUP }\n }),\n {\n name: \"package\",\n alias: \"p\",\n description: `One or more packages that will be watched for code changes`,\n type: \"string\",\n group: BASE_OPTIONS_GROUP\n },\n {\n name: \"function\",\n alias: \"f\",\n description:\n \"Specify one or more AWS Lambda functions to watch (comma-separated)\",\n type: \"string\",\n group: LOCAL_AWS_LAMBDA_DEVELOPMENT_GROUP\n },\n {\n name: \"increase-timeout\",\n default: 120,\n description:\n \"Increase AWS Lambda function timeout (passed as number of seconds)\",\n type: \"number\",\n group: LOCAL_AWS_LAMBDA_DEVELOPMENT_GROUP\n },\n {\n name: \"increase-handshake-timeout\",\n default: 5,\n description:\n \"Increase timeout for the initial handshake between a single AWS Lambda invocation and local code execution (passed as number of seconds)\",\n type: \"number\",\n group: LOCAL_AWS_LAMBDA_DEVELOPMENT_GROUP\n },\n {\n name: \"inspect\",\n alias: \"i\",\n description: \"[EXPERIMENTAL] Enable Node debugger\",\n type: \"string\",\n group: LOCAL_AWS_LAMBDA_DEVELOPMENT_GROUP\n },\n {\n name: \"allow-production\",\n default: false,\n description:\n \"Enables running the watch command against environments marked as production environments (not recommended).\",\n type: \"number\"\n },\n {\n name: \"deployment-checks\",\n default: true,\n description: `Enable or disable deployment checks. For example, if you are trying to watch the API app, but the 'api' app is not deployed yet, you will get a warning and the process will stop.`,\n type: \"boolean\"\n }\n ],\n handler: async (params: IWatchCommandParams) => {\n const { packagesWatcher } = await projectSdk.watch(params);\n\n // TODO: Revisit this.\n // if (webinyConfigWatcher) {\n // webinyConfigWatcher\n // .onError(err => {\n // ui.error(\n // `There is an error in your %s file: ${err.message}`,\n // \"webiny.config.tsx\"\n // );\n // })\n // .onSuccess(() => {\n // ui.success(`%s compiled successfully!`, \"webiny.config.tsx\");\n // })\n // .run();\n // }\n\n // TODO: Extract this logic into WatchRunners, same thing we have with BuildRunners.\n const watchProcesses = packagesWatcher.prepare();\n if (watchProcesses.length === 1) {\n watchProcesses.setForkOptions({\n stdio: \"inherit\",\n env: process.env\n });\n\n const [firstProcess] = watchProcesses.getProcesses();\n ui.info(`Watching %s package...`, firstProcess.pkg.name);\n\n await firstProcess.run();\n return;\n }\n\n if (watchProcesses.length > 1) {\n ui.info(`Watching %s packages...`, watchProcesses.length);\n\n stdio.getStdout().setMaxListeners(20);\n stdio.getStderr().setMaxListeners(20);\n\n watchProcesses.forEach(watchProcess => {\n const { pkg } = watchProcess;\n const pkgPrefix = chalk.hex(getRandomColorForString(pkg.name))(pkg.name);\n\n watchProcess.pipeStdout(stdout => {\n const prefixedStdout = createPrefixer(pkgPrefix);\n stdout.pipe(prefixedStdout).pipe(stdio.getStdout());\n });\n\n watchProcess.pipeStderr(stderr => {\n const prefixedStderr = createPrefixer(pkgPrefix);\n stderr.pipe(prefixedStderr).pipe(stdio.getStderr());\n });\n });\n\n await Promise.all(watchProcesses.run());\n return;\n }\n\n ui.warning(\n `No watch processes were started. Please ensure that you have specified valid \"app\" or \"package\" parameters.`\n );\n }\n };\n }\n}\n\nexport const watchCommand = createImplementation({\n abstraction: CliCommandFactory,\n implementation: WatchCommand,\n dependencies: [GetProjectSdkService, StdioService, UiService]\n});\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"features/WatchCommand/WatchCommand.js","sources":["../../../src/features/WatchCommand/WatchCommand.ts"],"sourcesContent":["import { createImplementation } from \"@webiny/di\";\nimport {\n CliCommandFactory,\n GetProjectSdkService,\n StdioService,\n UiService\n} from \"~/abstractions/index.js\";\nimport { IBaseAppParams } from \"~/abstractions/features/types.js\";\nimport { createBaseAppOptions } from \"~/features/common/index.js\";\nimport chalk from \"chalk\";\nimport { getRandomColorForString } from \"./getRandomColorForString.js\";\nimport { createPrefixer } from \"./createPrefixer.js\";\n\nexport type IWatchCommandParams = IBaseAppParams;\n\nconst BASE_OPTIONS_GROUP = \"Base Options:\";\nconst LOCAL_AWS_LAMBDA_DEVELOPMENT_GROUP = \"Local AWS Lambda Development Options:\";\n\nexport class WatchCommand implements CliCommandFactory.Interface<IWatchCommandParams> {\n constructor(\n private getProjectSdkService: GetProjectSdkService.Interface,\n private stdioService: StdioService.Interface,\n private uiService: UiService.Interface\n ) {}\n\n async execute(): Promise<CliCommandFactory.CommandDefinition<IWatchCommandParams>> {\n const projectSdk = await this.getProjectSdkService.execute();\n const stdio = this.stdioService;\n const ui = this.uiService;\n\n return {\n name: \"watch\",\n description: \"Watches code changes for a specific app or package.\",\n examples: [\n \"watch api --env dev\",\n \"watch admin --env prod\",\n \"watch -p my-package1,my-package2\",\n \"watch api --env dev -p my-package1,my-package2\"\n ],\n params: [\n {\n name: \"app\",\n description: \"Name of the app (core, admin, or api)\",\n type: \"string\"\n }\n ],\n options: [\n ...createBaseAppOptions(projectSdk, {\n env: { group: BASE_OPTIONS_GROUP },\n variant: { group: BASE_OPTIONS_GROUP },\n region: { group: BASE_OPTIONS_GROUP }\n }),\n {\n name: \"package\",\n alias: \"p\",\n description: `One or more packages that will be watched for code changes`,\n type: \"string\",\n group: BASE_OPTIONS_GROUP\n },\n {\n name: \"function\",\n alias: \"f\",\n description:\n \"Specify one or more AWS Lambda functions to watch (comma-separated)\",\n type: \"string\",\n group: LOCAL_AWS_LAMBDA_DEVELOPMENT_GROUP\n },\n {\n name: \"increase-timeout\",\n default: 120,\n description:\n \"Increase AWS Lambda function timeout (passed as number of seconds)\",\n type: \"number\",\n group: LOCAL_AWS_LAMBDA_DEVELOPMENT_GROUP\n },\n {\n name: \"increase-handshake-timeout\",\n default: 5,\n description:\n \"Increase timeout for the initial handshake between a single AWS Lambda invocation and local code execution (passed as number of seconds)\",\n type: \"number\",\n group: LOCAL_AWS_LAMBDA_DEVELOPMENT_GROUP\n },\n {\n name: \"inspect\",\n alias: \"i\",\n description: \"[EXPERIMENTAL] Enable Node debugger\",\n type: \"string\",\n group: LOCAL_AWS_LAMBDA_DEVELOPMENT_GROUP\n },\n {\n name: \"allow-production\",\n default: false,\n description:\n \"Enables running the watch command against environments marked as production environments (not recommended).\",\n type: \"number\"\n },\n {\n name: \"deployment-checks\",\n default: true,\n description: `Enable or disable deployment checks. For example, if you are trying to watch the API app, but the 'api' app is not deployed yet, you will get a warning and the process will stop.`,\n type: \"boolean\"\n }\n ],\n handler: async (params: IWatchCommandParams) => {\n const { packagesWatcher } = await projectSdk.watch(params);\n\n // TODO: Revisit this.\n // if (webinyConfigWatcher) {\n // webinyConfigWatcher\n // .onError(err => {\n // ui.error(\n // `There is an error in your %s file: ${err.message}`,\n // \"webiny.config.tsx\"\n // );\n // })\n // .onSuccess(() => {\n // ui.success(`%s compiled successfully!`, \"webiny.config.tsx\");\n // })\n // .run();\n // }\n\n // TODO: Extract this logic into WatchRunners, same thing we have with BuildRunners.\n const watchProcesses = packagesWatcher.prepare();\n if (watchProcesses.length === 1) {\n watchProcesses.setForkOptions({\n stdio: \"inherit\",\n env: process.env\n });\n\n const [firstProcess] = watchProcesses.getProcesses();\n ui.info(`Watching %s package...`, firstProcess.pkg.name);\n\n await firstProcess.run();\n return;\n }\n\n if (watchProcesses.length > 1) {\n ui.info(`Watching %s packages...`, watchProcesses.length);\n\n stdio.getStdout().setMaxListeners(20);\n stdio.getStderr().setMaxListeners(20);\n\n watchProcesses.forEach(watchProcess => {\n const { pkg } = watchProcess;\n const pkgPrefix = chalk.hex(getRandomColorForString(pkg.name))(pkg.name);\n\n watchProcess.pipeStdout(stdout => {\n const prefixedStdout = createPrefixer(pkgPrefix);\n stdout.pipe(prefixedStdout).pipe(stdio.getStdout());\n });\n\n watchProcess.pipeStderr(stderr => {\n const prefixedStderr = createPrefixer(pkgPrefix);\n stderr.pipe(prefixedStderr).pipe(stdio.getStderr());\n });\n });\n\n await Promise.all(watchProcesses.run());\n return;\n }\n\n ui.warning(\n `No watch processes were started. Please ensure that you have specified valid \"app\" or \"package\" parameters.`\n );\n }\n };\n }\n}\n\nexport const watchCommand = createImplementation({\n abstraction: CliCommandFactory,\n implementation: WatchCommand,\n dependencies: [GetProjectSdkService, StdioService, UiService]\n});\n"],"names":["BASE_OPTIONS_GROUP","LOCAL_AWS_LAMBDA_DEVELOPMENT_GROUP","WatchCommand","getProjectSdkService","stdioService","uiService","projectSdk","stdio","ui","createBaseAppOptions","params","packagesWatcher","watchProcesses","process","firstProcess","watchProcess","pkg","pkgPrefix","chalk","getRandomColorForString","stdout","prefixedStdout","createPrefixer","stderr","prefixedStderr","Promise","watchCommand","createImplementation","CliCommandFactory","GetProjectSdkService","StdioService","UiService"],"mappings":"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"}
@@ -1,20 +1,16 @@
1
1
  import { Transform } from "node:stream";
2
- export function createPrefixer(prefix) {
3
- // This returns a Transform stream that prefixes each line
4
- return new Transform({
5
- readableObjectMode: true,
6
- writableObjectMode: true,
7
- transform(chunk, encoding, callback) {
8
- const str = chunk.toString();
9
- const lines = str.split(/\r?\n/);
10
- for (let i = 0; i < lines.length; i++) {
11
- if (lines[i].trim() !== "") {
12
- this.push(`${prefix}: ${lines[i]}\n`);
2
+ function createPrefixer(prefix) {
3
+ return new Transform({
4
+ readableObjectMode: true,
5
+ writableObjectMode: true,
6
+ transform (chunk, encoding, callback) {
7
+ const str = chunk.toString();
8
+ const lines = str.split(/\r?\n/);
9
+ for(let i = 0; i < lines.length; i++)if ("" !== lines[i].trim()) this.push(`${prefix}: ${lines[i]}\n`);
10
+ callback();
13
11
  }
14
- }
15
- callback();
16
- }
17
- });
12
+ });
18
13
  }
14
+ export { createPrefixer };
19
15
 
20
16
  //# sourceMappingURL=createPrefixer.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Transform","createPrefixer","prefix","readableObjectMode","writableObjectMode","transform","chunk","encoding","callback","str","toString","lines","split","i","length","trim","push"],"sources":["createPrefixer.ts"],"sourcesContent":["import { Transform } from \"node:stream\";\n\nexport function createPrefixer(prefix: string) {\n // This returns a Transform stream that prefixes each line\n return new Transform({\n readableObjectMode: true,\n writableObjectMode: true,\n transform(chunk, encoding, callback) {\n const str = chunk.toString();\n const lines = str.split(/\\r?\\n/);\n for (let i = 0; i < lines.length; i++) {\n if (lines[i].trim() !== \"\") {\n this.push(`${prefix}: ${lines[i]}\\n`);\n }\n }\n callback();\n }\n });\n}\n"],"mappings":"AAAA,SAASA,SAAS,QAAQ,aAAa;AAEvC,OAAO,SAASC,cAAcA,CAACC,MAAc,EAAE;EAC3C;EACA,OAAO,IAAIF,SAAS,CAAC;IACjBG,kBAAkB,EAAE,IAAI;IACxBC,kBAAkB,EAAE,IAAI;IACxBC,SAASA,CAACC,KAAK,EAAEC,QAAQ,EAAEC,QAAQ,EAAE;MACjC,MAAMC,GAAG,GAAGH,KAAK,CAACI,QAAQ,CAAC,CAAC;MAC5B,MAAMC,KAAK,GAAGF,GAAG,CAACG,KAAK,CAAC,OAAO,CAAC;MAChC,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGF,KAAK,CAACG,MAAM,EAAED,CAAC,EAAE,EAAE;QACnC,IAAIF,KAAK,CAACE,CAAC,CAAC,CAACE,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;UACxB,IAAI,CAACC,IAAI,CAAC,GAAGd,MAAM,KAAKS,KAAK,CAACE,CAAC,CAAC,IAAI,CAAC;QACzC;MACJ;MACAL,QAAQ,CAAC,CAAC;IACd;EACJ,CAAC,CAAC;AACN","ignoreList":[]}
1
+ {"version":3,"file":"features/WatchCommand/createPrefixer.js","sources":["../../../src/features/WatchCommand/createPrefixer.ts"],"sourcesContent":["import { Transform } from \"node:stream\";\n\nexport function createPrefixer(prefix: string) {\n // This returns a Transform stream that prefixes each line\n return new Transform({\n readableObjectMode: true,\n writableObjectMode: true,\n transform(chunk, encoding, callback) {\n const str = chunk.toString();\n const lines = str.split(/\\r?\\n/);\n for (let i = 0; i < lines.length; i++) {\n if (lines[i].trim() !== \"\") {\n this.push(`${prefix}: ${lines[i]}\\n`);\n }\n }\n callback();\n }\n });\n}\n"],"names":["createPrefixer","prefix","Transform","chunk","encoding","callback","str","lines","i"],"mappings":";AAEO,SAASA,eAAeC,MAAc;IAEzC,OAAO,IAAIC,UAAU;QACjB,oBAAoB;QACpB,oBAAoB;QACpB,WAAUC,KAAK,EAAEC,QAAQ,EAAEC,QAAQ;YAC/B,MAAMC,MAAMH,MAAM,QAAQ;YAC1B,MAAMI,QAAQD,IAAI,KAAK,CAAC;YACxB,IAAK,IAAIE,IAAI,GAAGA,IAAID,MAAM,MAAM,EAAEC,IAC9B,IAAID,AAAoB,OAApBA,KAAK,CAACC,EAAE,CAAC,IAAI,IACb,IAAI,CAAC,IAAI,CAAC,GAAGP,OAAO,EAAE,EAAEM,KAAK,CAACC,EAAE,CAAC,EAAE,CAAC;YAG5CH;QACJ;IACJ;AACJ"}