@webiny/cli-core 6.1.0-beta.3 → 6.2.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { CliCommandFactory, GetProjectSdkService, StdioService, UiService } from "../../abstractions/index.js";
|
|
2
1
|
import { AppName } from "@webiny/project";
|
|
2
|
+
import { CliCommandFactory, GetProjectSdkService, StdioService, UiService } from "../../abstractions/index.js";
|
|
3
3
|
export interface IDeployCommandParams {
|
|
4
4
|
apps?: AppName[];
|
|
5
5
|
variant?: string;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { createImplementation } from "@webiny/di";
|
|
2
|
+
import { setTimeout } from "node:timers/promises";
|
|
3
|
+
import open from "open";
|
|
4
|
+
import ora from "ora";
|
|
2
5
|
import { CliCommandFactory, GetProjectSdkService, StdioService, UiService } from "../../abstractions/index.js";
|
|
3
|
-
import { DeployOutput } from "./deployOutputs/DeployOutput.js";
|
|
4
6
|
import { BuildRunner } from "../BuildCommand/buildRunners/BuildRunner.js";
|
|
5
7
|
import { createBaseAppOptions } from "../common/index.js";
|
|
6
|
-
import {
|
|
7
|
-
import ora from "ora";
|
|
8
|
-
import open from "open";
|
|
8
|
+
import { DeployOutput } from "./deployOutputs/DeployOutput.js";
|
|
9
9
|
|
|
10
10
|
// TODO: convert to a real service.
|
|
11
11
|
import { PrintInfoForEnv } from "../InfoCommand/PrintInfoForEnv.js";
|
|
@@ -63,6 +63,8 @@ export class DeployCommand {
|
|
|
63
63
|
ui.emptyLine();
|
|
64
64
|
}
|
|
65
65
|
} else {
|
|
66
|
+
ui.info(`You're using Webiny v${projectSdk.getProjectVersion()}`);
|
|
67
|
+
ui.emptyLine();
|
|
66
68
|
const isCi = projectSdk.isCi();
|
|
67
69
|
const coreStack = await projectSdk.getAppStackOutput("core");
|
|
68
70
|
const isFirstDeployment = !isCi && !coreStack?.deploymentId;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createImplementation","CliCommandFactory","GetProjectSdkService","StdioService","UiService","DeployOutput","BuildRunner","createBaseAppOptions","setTimeout","ora","open","PrintInfoForEnv","sleep","ms","DeployCommand","constructor","getProjectSdkService","uiService","stdioService","execute","projectSdk","ui","name","description","examples","params","type","array","options","default","handler","apps","length","appName","appParams","app","getApp","info","getDisplayName","deployApp","emptyLine","isCi","coreStack","getAppStackOutput","isFirstDeployment","deploymentId","success","printInfoForEnv","textBold","adminAppOutput","spinner","start","appUrl","succeed","fail","warning","stdio","build","packagesBuilder","buildApp","buildRunner","isEmpty","run","showDeploymentLogs","Boolean","preview","output","pulumiProcess","deployOutput","deployProcess","deployParams","deployCommand","abstraction","implementation","dependencies"],"sources":["DeployCommand.ts"],"sourcesContent":["import { createImplementation } from \"@webiny/di\";\nimport {\n CliCommandFactory,\n GetProjectSdkService,\n StdioService,\n UiService\n} from \"~/abstractions/index.js\";\nimport { DeployOutput } from \"./deployOutputs/DeployOutput.js\";\nimport { AppName } from \"@webiny/project\";\nimport { BuildRunner } from \"~/features/BuildCommand/buildRunners/BuildRunner.js\";\nimport { createBaseAppOptions } from \"~/features/common/index.js\";\nimport { setTimeout } from \"node:timers/promises\";\nimport ora from \"ora\";\nimport open from \"open\";\n\n// TODO: convert to a real service.\nimport { PrintInfoForEnv } from \"~/features/InfoCommand/PrintInfoForEnv.js\";\n\nexport interface IDeployCommandParams {\n apps?: AppName[];\n variant?: string;\n region?: string;\n env: string;\n showDeploymentLogs?: boolean;\n build?: boolean;\n preview?: boolean;\n allowLocalStateFiles?: boolean;\n}\n\nexport interface IDeploySingleAppParams {\n app: AppName;\n variant?: string;\n region?: string;\n env: string;\n showDeploymentLogs?: boolean;\n build?: boolean;\n preview?: boolean;\n}\n\nconst sleep = (ms: number = 1500) => setTimeout(ms);\n\nexport class DeployCommand implements CliCommandFactory.Interface<IDeployCommandParams> {\n constructor(\n private getProjectSdkService: GetProjectSdkService.Interface,\n private uiService: UiService.Interface,\n private stdioService: StdioService.Interface\n ) {}\n\n async execute(): Promise<CliCommandFactory.CommandDefinition<IDeployCommandParams>> {\n const projectSdk = await this.getProjectSdkService.execute();\n const ui = this.uiService;\n\n return {\n name: \"deploy\",\n description: \"Deploys specified app or all apps in the project\",\n examples: [\n \"$0 deploy api --env dev\",\n \"$0 deploy core api --env dev\",\n \"$0 deploy admin --env prod\",\n \"$0 deploy --env prod\",\n \"$0 deploy\"\n ],\n params: [\n {\n name: \"apps\",\n description:\n \"Name of the app(s) to deploy (core, admin, or api). You can specify multiple apps.\",\n type: \"string\",\n array: true\n }\n ],\n options: [\n ...createBaseAppOptions(projectSdk),\n {\n name: \"build\",\n description: \"Build packages before deploying\",\n type: \"boolean\",\n default: true\n },\n {\n name: \"preview\",\n description: \"Preview the deploy instead of actually performing it\",\n type: \"boolean\",\n default: false\n },\n {\n name: \"show-deployment-logs\",\n description: \"Print deployment logs (automatically enabled in CI environments)\",\n type: \"boolean\",\n default: false\n },\n {\n name: \"allow-local-state-files\",\n description:\n \"Allow using local Pulumi state files with production environment deployment (not recommended).\",\n type: \"boolean\"\n }\n ],\n handler: async (params: IDeployCommandParams) => {\n if (params.apps && params.apps.length > 0) {\n // Deploy specified apps\n for (const appName of params.apps) {\n const appParams: IDeploySingleAppParams = {\n ...params,\n app: appName\n };\n\n const app = await projectSdk.getApp(appName);\n ui.info(\"Deploying %s app...\", app.getDisplayName());\n await this.deployApp(appParams);\n ui.emptyLine();\n }\n } else {\n const isCi = projectSdk.isCi();\n const coreStack = await projectSdk.getAppStackOutput(\"core\");\n\n const isFirstDeployment = !isCi && !coreStack?.deploymentId;\n if (isFirstDeployment) {\n ui.info(`Looks like this is your first time deploying the project.`);\n ui.info(\n `Note that the initial deployment can take up to %s, so please be patient.`,\n \"10 minutes\"\n );\n await sleep();\n }\n\n // 3. Start deploying apps one-by-one.\n isFirstDeployment && ui.emptyLine();\n\n // Deploy all apps in the project.\n ui.info(\"Deploying %s app...\", \"Core\");\n await this.deployApp({ ...params, app: \"core\" });\n ui.emptyLine();\n\n ui.info(\"Deploying %s app...\", \"API\");\n await this.deployApp({ ...params, app: \"api\" });\n ui.emptyLine();\n ui.info(\"Deploying %s app...\", \"Admin\");\n await this.deployApp({ ...params, app: \"admin\" });\n\n if (isFirstDeployment) {\n ui.success(`Congratulations! You've just deployed a brand new project!`);\n } else {\n ui.success(`Project deployed.`);\n }\n\n const printInfoForEnv = new PrintInfoForEnv({\n getProjectSdkService: this.getProjectSdkService,\n uiService: this.uiService\n });\n\n ui.emptyLine();\n ui.textBold(\"Project Details\");\n await printInfoForEnv.execute(params);\n\n const adminAppOutput = await projectSdk.getAppStackOutput(\"admin\");\n\n if (isFirstDeployment && adminAppOutput) {\n ui.emptyLine();\n ui.info(\n \"The final step is to open the %s app in your browser and complete the installation wizard.\",\n \"Admin\"\n );\n\n const spinner = ora(`Opening Admin in your browser...`).start();\n\n try {\n await sleep(7000);\n open(adminAppOutput.appUrl as string);\n spinner.succeed(`Successfully opened Admin app in your browser.`);\n } catch {\n spinner.fail(`Failed to open Admin in your browser.`);\n\n await sleep(1000);\n ui.emptyLine();\n ui.warning(\n `Failed to open %s app in your browser. To finish the setup and start using the project, please visit %s and complete the installation wizard.`,\n \"Admin\",\n adminAppOutput.appUrl\n );\n }\n }\n }\n }\n };\n }\n\n private async deployApp(params: IDeploySingleAppParams) {\n const projectSdk = await this.getProjectSdkService.execute();\n\n const ui = this.uiService;\n const stdio = this.stdioService;\n\n if (params.build !== false) {\n const packagesBuilder = await projectSdk.buildApp(params);\n\n const buildRunner = new BuildRunner({\n stdio,\n ui,\n packagesBuilder\n });\n\n if (!buildRunner.isEmpty()) {\n await buildRunner.run();\n ui.emptyLine();\n }\n }\n\n // We always show deployment logs when doing previews.\n const showDeploymentLogs = Boolean(\n projectSdk.isCi() || params.preview || params.showDeploymentLogs\n );\n\n return await projectSdk.deployApp({\n ...params,\n output: pulumiProcess => {\n const deployOutput = new DeployOutput({\n stdio,\n ui,\n showDeploymentLogs,\n deployProcess: pulumiProcess,\n deployParams: params\n });\n\n return deployOutput.output();\n }\n });\n }\n}\n\nexport const deployCommand = createImplementation({\n abstraction: CliCommandFactory,\n implementation: DeployCommand,\n dependencies: [GetProjectSdkService, UiService, StdioService]\n});\n"],"mappings":"AAAA,SAASA,oBAAoB,QAAQ,YAAY;AACjD,SACIC,iBAAiB,EACjBC,oBAAoB,EACpBC,YAAY,EACZC,SAAS;AAEb,SAASC,YAAY;AAErB,SAASC,WAAW;AACpB,SAASC,oBAAoB;AAC7B,SAASC,UAAU,QAAQ,sBAAsB;AACjD,OAAOC,GAAG,MAAM,KAAK;AACrB,OAAOC,IAAI,MAAM,MAAM;;AAEvB;AACA,SAASC,eAAe;AAuBxB,MAAMC,KAAK,GAAGA,CAACC,EAAU,GAAG,IAAI,KAAKL,UAAU,CAACK,EAAE,CAAC;AAEnD,OAAO,MAAMC,aAAa,CAA8D;EACpFC,WAAWA,CACCC,oBAAoD,EACpDC,SAA8B,EAC9BC,YAAoC,EAC9C;IAAA,KAHUF,oBAAoD,GAApDA,oBAAoD;IAAA,KACpDC,SAA8B,GAA9BA,SAA8B;IAAA,KAC9BC,YAAoC,GAApCA,YAAoC;EAC7C;EAEH,MAAMC,OAAOA,CAAA,EAAuE;IAChF,MAAMC,UAAU,GAAG,MAAM,IAAI,CAACJ,oBAAoB,CAACG,OAAO,CAAC,CAAC;IAC5D,MAAME,EAAE,GAAG,IAAI,CAACJ,SAAS;IAEzB,OAAO;MACHK,IAAI,EAAE,QAAQ;MACdC,WAAW,EAAE,kDAAkD;MAC/DC,QAAQ,EAAE,CACN,yBAAyB,EACzB,8BAA8B,EAC9B,4BAA4B,EAC5B,sBAAsB,EACtB,WAAW,CACd;MACDC,MAAM,EAAE,CACJ;QACIH,IAAI,EAAE,MAAM;QACZC,WAAW,EACP,oFAAoF;QACxFG,IAAI,EAAE,QAAQ;QACdC,KAAK,EAAE;MACX,CAAC,CACJ;MACDC,OAAO,EAAE,CACL,GAAGrB,oBAAoB,CAACa,UAAU,CAAC,EACnC;QACIE,IAAI,EAAE,OAAO;QACbC,WAAW,EAAE,iCAAiC;QAC9CG,IAAI,EAAE,SAAS;QACfG,OAAO,EAAE;MACb,CAAC,EACD;QACIP,IAAI,EAAE,SAAS;QACfC,WAAW,EAAE,sDAAsD;QACnEG,IAAI,EAAE,SAAS;QACfG,OAAO,EAAE;MACb,CAAC,EACD;QACIP,IAAI,EAAE,sBAAsB;QAC5BC,WAAW,EAAE,kEAAkE;QAC/EG,IAAI,EAAE,SAAS;QACfG,OAAO,EAAE;MACb,CAAC,EACD;QACIP,IAAI,EAAE,yBAAyB;QAC/BC,WAAW,EACP,gGAAgG;QACpGG,IAAI,EAAE;MACV,CAAC,CACJ;MACDI,OAAO,EAAE,MAAOL,MAA4B,IAAK;QAC7C,IAAIA,MAAM,CAACM,IAAI,IAAIN,MAAM,CAACM,IAAI,CAACC,MAAM,GAAG,CAAC,EAAE;UACvC;UACA,KAAK,MAAMC,OAAO,IAAIR,MAAM,CAACM,IAAI,EAAE;YAC/B,MAAMG,SAAiC,GAAG;cACtC,GAAGT,MAAM;cACTU,GAAG,EAAEF;YACT,CAAC;YAED,MAAME,GAAG,GAAG,MAAMf,UAAU,CAACgB,MAAM,CAACH,OAAO,CAAC;YAC5CZ,EAAE,CAACgB,IAAI,CAAC,qBAAqB,EAAEF,GAAG,CAACG,cAAc,CAAC,CAAC,CAAC;YACpD,MAAM,IAAI,CAACC,SAAS,CAACL,SAAS,CAAC;YAC/Bb,EAAE,CAACmB,SAAS,CAAC,CAAC;UAClB;QACJ,CAAC,MAAM;UACH,MAAMC,IAAI,GAAGrB,UAAU,CAACqB,IAAI,CAAC,CAAC;UAC9B,MAAMC,SAAS,GAAG,MAAMtB,UAAU,CAACuB,iBAAiB,CAAC,MAAM,CAAC;UAE5D,MAAMC,iBAAiB,GAAG,CAACH,IAAI,IAAI,CAACC,SAAS,EAAEG,YAAY;UAC3D,IAAID,iBAAiB,EAAE;YACnBvB,EAAE,CAACgB,IAAI,CAAC,2DAA2D,CAAC;YACpEhB,EAAE,CAACgB,IAAI,CACH,2EAA2E,EAC3E,YACJ,CAAC;YACD,MAAMzB,KAAK,CAAC,CAAC;UACjB;;UAEA;UACAgC,iBAAiB,IAAIvB,EAAE,CAACmB,SAAS,CAAC,CAAC;;UAEnC;UACAnB,EAAE,CAACgB,IAAI,CAAC,qBAAqB,EAAE,MAAM,CAAC;UACtC,MAAM,IAAI,CAACE,SAAS,CAAC;YAAE,GAAGd,MAAM;YAAEU,GAAG,EAAE;UAAO,CAAC,CAAC;UAChDd,EAAE,CAACmB,SAAS,CAAC,CAAC;UAEdnB,EAAE,CAACgB,IAAI,CAAC,qBAAqB,EAAE,KAAK,CAAC;UACrC,MAAM,IAAI,CAACE,SAAS,CAAC;YAAE,GAAGd,MAAM;YAAEU,GAAG,EAAE;UAAM,CAAC,CAAC;UAC/Cd,EAAE,CAACmB,SAAS,CAAC,CAAC;UACdnB,EAAE,CAACgB,IAAI,CAAC,qBAAqB,EAAE,OAAO,CAAC;UACvC,MAAM,IAAI,CAACE,SAAS,CAAC;YAAE,GAAGd,MAAM;YAAEU,GAAG,EAAE;UAAQ,CAAC,CAAC;UAEjD,IAAIS,iBAAiB,EAAE;YACnBvB,EAAE,CAACyB,OAAO,CAAC,4DAA4D,CAAC;UAC5E,CAAC,MAAM;YACHzB,EAAE,CAACyB,OAAO,CAAC,mBAAmB,CAAC;UACnC;UAEA,MAAMC,eAAe,GAAG,IAAIpC,eAAe,CAAC;YACxCK,oBAAoB,EAAE,IAAI,CAACA,oBAAoB;YAC/CC,SAAS,EAAE,IAAI,CAACA;UACpB,CAAC,CAAC;UAEFI,EAAE,CAACmB,SAAS,CAAC,CAAC;UACdnB,EAAE,CAAC2B,QAAQ,CAAC,iBAAiB,CAAC;UAC9B,MAAMD,eAAe,CAAC5B,OAAO,CAACM,MAAM,CAAC;UAErC,MAAMwB,cAAc,GAAG,MAAM7B,UAAU,CAACuB,iBAAiB,CAAC,OAAO,CAAC;UAElE,IAAIC,iBAAiB,IAAIK,cAAc,EAAE;YACrC5B,EAAE,CAACmB,SAAS,CAAC,CAAC;YACdnB,EAAE,CAACgB,IAAI,CACH,4FAA4F,EAC5F,OACJ,CAAC;YAED,MAAMa,OAAO,GAAGzC,GAAG,CAAC,kCAAkC,CAAC,CAAC0C,KAAK,CAAC,CAAC;YAE/D,IAAI;cACA,MAAMvC,KAAK,CAAC,IAAI,CAAC;cACjBF,IAAI,CAACuC,cAAc,CAACG,MAAgB,CAAC;cACrCF,OAAO,CAACG,OAAO,CAAC,gDAAgD,CAAC;YACrE,CAAC,CAAC,MAAM;cACJH,OAAO,CAACI,IAAI,CAAC,uCAAuC,CAAC;cAErD,MAAM1C,KAAK,CAAC,IAAI,CAAC;cACjBS,EAAE,CAACmB,SAAS,CAAC,CAAC;cACdnB,EAAE,CAACkC,OAAO,CACN,+IAA+I,EAC/I,OAAO,EACPN,cAAc,CAACG,MACnB,CAAC;YACL;UACJ;QACJ;MACJ;IACJ,CAAC;EACL;EAEA,MAAcb,SAASA,CAACd,MAA8B,EAAE;IACpD,MAAML,UAAU,GAAG,MAAM,IAAI,CAACJ,oBAAoB,CAACG,OAAO,CAAC,CAAC;IAE5D,MAAME,EAAE,GAAG,IAAI,CAACJ,SAAS;IACzB,MAAMuC,KAAK,GAAG,IAAI,CAACtC,YAAY;IAE/B,IAAIO,MAAM,CAACgC,KAAK,KAAK,KAAK,EAAE;MACxB,MAAMC,eAAe,GAAG,MAAMtC,UAAU,CAACuC,QAAQ,CAAClC,MAAM,CAAC;MAEzD,MAAMmC,WAAW,GAAG,IAAItD,WAAW,CAAC;QAChCkD,KAAK;QACLnC,EAAE;QACFqC;MACJ,CAAC,CAAC;MAEF,IAAI,CAACE,WAAW,CAACC,OAAO,CAAC,CAAC,EAAE;QACxB,MAAMD,WAAW,CAACE,GAAG,CAAC,CAAC;QACvBzC,EAAE,CAACmB,SAAS,CAAC,CAAC;MAClB;IACJ;;IAEA;IACA,MAAMuB,kBAAkB,GAAGC,OAAO,CAC9B5C,UAAU,CAACqB,IAAI,CAAC,CAAC,IAAIhB,MAAM,CAACwC,OAAO,IAAIxC,MAAM,CAACsC,kBAClD,CAAC;IAED,OAAO,MAAM3C,UAAU,CAACmB,SAAS,CAAC;MAC9B,GAAGd,MAAM;MACTyC,MAAM,EAAEC,aAAa,IAAI;QACrB,MAAMC,YAAY,GAAG,IAAI/D,YAAY,CAAC;UAClCmD,KAAK;UACLnC,EAAE;UACF0C,kBAAkB;UAClBM,aAAa,EAAEF,aAAa;UAC5BG,YAAY,EAAE7C;QAClB,CAAC,CAAC;QAEF,OAAO2C,YAAY,CAACF,MAAM,CAAC,CAAC;MAChC;IACJ,CAAC,CAAC;EACN;AACJ;AAEA,OAAO,MAAMK,aAAa,GAAGvE,oBAAoB,CAAC;EAC9CwE,WAAW,EAAEvE,iBAAiB;EAC9BwE,cAAc,EAAE3D,aAAa;EAC7B4D,YAAY,EAAE,CAACxE,oBAAoB,EAAEE,SAAS,EAAED,YAAY;AAChE,CAAC,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["createImplementation","setTimeout","open","ora","CliCommandFactory","GetProjectSdkService","StdioService","UiService","BuildRunner","createBaseAppOptions","DeployOutput","PrintInfoForEnv","sleep","ms","DeployCommand","constructor","getProjectSdkService","uiService","stdioService","execute","projectSdk","ui","name","description","examples","params","type","array","options","default","handler","apps","length","appName","appParams","app","getApp","info","getDisplayName","deployApp","emptyLine","getProjectVersion","isCi","coreStack","getAppStackOutput","isFirstDeployment","deploymentId","success","printInfoForEnv","textBold","adminAppOutput","spinner","start","appUrl","succeed","fail","warning","stdio","build","packagesBuilder","buildApp","buildRunner","isEmpty","run","showDeploymentLogs","Boolean","preview","output","pulumiProcess","deployOutput","deployProcess","deployParams","deployCommand","abstraction","implementation","dependencies"],"sources":["DeployCommand.ts"],"sourcesContent":["import { createImplementation } from \"@webiny/di\";\nimport { AppName } from \"@webiny/project\";\nimport { setTimeout } from \"node:timers/promises\";\nimport open from \"open\";\nimport ora from \"ora\";\nimport {\n CliCommandFactory,\n GetProjectSdkService,\n StdioService,\n UiService\n} from \"~/abstractions/index.js\";\nimport { BuildRunner } from \"~/features/BuildCommand/buildRunners/BuildRunner.js\";\nimport { createBaseAppOptions } from \"~/features/common/index.js\";\nimport { DeployOutput } from \"./deployOutputs/DeployOutput.js\";\n\n// TODO: convert to a real service.\nimport { PrintInfoForEnv } from \"~/features/InfoCommand/PrintInfoForEnv.js\";\n\nexport interface IDeployCommandParams {\n apps?: AppName[];\n variant?: string;\n region?: string;\n env: string;\n showDeploymentLogs?: boolean;\n build?: boolean;\n preview?: boolean;\n allowLocalStateFiles?: boolean;\n}\n\nexport interface IDeploySingleAppParams {\n app: AppName;\n variant?: string;\n region?: string;\n env: string;\n showDeploymentLogs?: boolean;\n build?: boolean;\n preview?: boolean;\n}\n\nconst sleep = (ms: number = 1500) => setTimeout(ms);\n\nexport class DeployCommand implements CliCommandFactory.Interface<IDeployCommandParams> {\n constructor(\n private getProjectSdkService: GetProjectSdkService.Interface,\n private uiService: UiService.Interface,\n private stdioService: StdioService.Interface\n ) {}\n\n async execute(): Promise<CliCommandFactory.CommandDefinition<IDeployCommandParams>> {\n const projectSdk = await this.getProjectSdkService.execute();\n const ui = this.uiService;\n\n return {\n name: \"deploy\",\n description: \"Deploys specified app or all apps in the project\",\n examples: [\n \"$0 deploy api --env dev\",\n \"$0 deploy core api --env dev\",\n \"$0 deploy admin --env prod\",\n \"$0 deploy --env prod\",\n \"$0 deploy\"\n ],\n params: [\n {\n name: \"apps\",\n description:\n \"Name of the app(s) to deploy (core, admin, or api). You can specify multiple apps.\",\n type: \"string\",\n array: true\n }\n ],\n options: [\n ...createBaseAppOptions(projectSdk),\n {\n name: \"build\",\n description: \"Build packages before deploying\",\n type: \"boolean\",\n default: true\n },\n {\n name: \"preview\",\n description: \"Preview the deploy instead of actually performing it\",\n type: \"boolean\",\n default: false\n },\n {\n name: \"show-deployment-logs\",\n description: \"Print deployment logs (automatically enabled in CI environments)\",\n type: \"boolean\",\n default: false\n },\n {\n name: \"allow-local-state-files\",\n description:\n \"Allow using local Pulumi state files with production environment deployment (not recommended).\",\n type: \"boolean\"\n }\n ],\n handler: async (params: IDeployCommandParams) => {\n if (params.apps && params.apps.length > 0) {\n // Deploy specified apps\n for (const appName of params.apps) {\n const appParams: IDeploySingleAppParams = {\n ...params,\n app: appName\n };\n\n const app = await projectSdk.getApp(appName);\n ui.info(\"Deploying %s app...\", app.getDisplayName());\n await this.deployApp(appParams);\n ui.emptyLine();\n }\n } else {\n ui.info(`You're using Webiny v${projectSdk.getProjectVersion()}`);\n ui.emptyLine();\n\n const isCi = projectSdk.isCi();\n const coreStack = await projectSdk.getAppStackOutput(\"core\");\n\n const isFirstDeployment = !isCi && !coreStack?.deploymentId;\n if (isFirstDeployment) {\n ui.info(`Looks like this is your first time deploying the project.`);\n ui.info(\n `Note that the initial deployment can take up to %s, so please be patient.`,\n \"10 minutes\"\n );\n await sleep();\n }\n\n // 3. Start deploying apps one-by-one.\n isFirstDeployment && ui.emptyLine();\n\n // Deploy all apps in the project.\n ui.info(\"Deploying %s app...\", \"Core\");\n await this.deployApp({ ...params, app: \"core\" });\n ui.emptyLine();\n\n ui.info(\"Deploying %s app...\", \"API\");\n await this.deployApp({ ...params, app: \"api\" });\n ui.emptyLine();\n ui.info(\"Deploying %s app...\", \"Admin\");\n await this.deployApp({ ...params, app: \"admin\" });\n\n if (isFirstDeployment) {\n ui.success(`Congratulations! You've just deployed a brand new project!`);\n } else {\n ui.success(`Project deployed.`);\n }\n\n const printInfoForEnv = new PrintInfoForEnv({\n getProjectSdkService: this.getProjectSdkService,\n uiService: this.uiService\n });\n\n ui.emptyLine();\n ui.textBold(\"Project Details\");\n await printInfoForEnv.execute(params);\n\n const adminAppOutput = await projectSdk.getAppStackOutput(\"admin\");\n\n if (isFirstDeployment && adminAppOutput) {\n ui.emptyLine();\n ui.info(\n \"The final step is to open the %s app in your browser and complete the installation wizard.\",\n \"Admin\"\n );\n\n const spinner = ora(`Opening Admin in your browser...`).start();\n\n try {\n await sleep(7000);\n open(adminAppOutput.appUrl as string);\n spinner.succeed(`Successfully opened Admin app in your browser.`);\n } catch {\n spinner.fail(`Failed to open Admin in your browser.`);\n\n await sleep(1000);\n ui.emptyLine();\n ui.warning(\n `Failed to open %s app in your browser. To finish the setup and start using the project, please visit %s and complete the installation wizard.`,\n \"Admin\",\n adminAppOutput.appUrl\n );\n }\n }\n }\n }\n };\n }\n\n private async deployApp(params: IDeploySingleAppParams) {\n const projectSdk = await this.getProjectSdkService.execute();\n\n const ui = this.uiService;\n const stdio = this.stdioService;\n\n if (params.build !== false) {\n const packagesBuilder = await projectSdk.buildApp(params);\n\n const buildRunner = new BuildRunner({\n stdio,\n ui,\n packagesBuilder\n });\n\n if (!buildRunner.isEmpty()) {\n await buildRunner.run();\n ui.emptyLine();\n }\n }\n\n // We always show deployment logs when doing previews.\n const showDeploymentLogs = Boolean(\n projectSdk.isCi() || params.preview || params.showDeploymentLogs\n );\n\n return await projectSdk.deployApp({\n ...params,\n output: pulumiProcess => {\n const deployOutput = new DeployOutput({\n stdio,\n ui,\n showDeploymentLogs,\n deployProcess: pulumiProcess,\n deployParams: params\n });\n\n return deployOutput.output();\n }\n });\n }\n}\n\nexport const deployCommand = createImplementation({\n abstraction: CliCommandFactory,\n implementation: DeployCommand,\n dependencies: [GetProjectSdkService, UiService, StdioService]\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -53,6 +53,13 @@ export class DependencyTree {
|
|
|
53
53
|
process.env.DEBUG === "true" && console.debug(`${version} is not a valid SemVer value in ${file}, package ${name}.`);
|
|
54
54
|
continue;
|
|
55
55
|
}
|
|
56
|
+
/**
|
|
57
|
+
* Let's skip if version starts with >= or <=, as those are not exact versions and we can't be sure which version is actually used.
|
|
58
|
+
*/
|
|
59
|
+
if (version.startsWith(">=") || version.startsWith("<=")) {
|
|
60
|
+
process.env.DEBUG === "true" && console.debug(`${version} is not an exact version in ${file}, package ${name}. Skipping.`);
|
|
61
|
+
continue;
|
|
62
|
+
}
|
|
56
63
|
version = version.replace(/\^/g, "").replace(/~/g, "").replace(/>/g, "").replace(/</g, "").replace(/=/g, "");
|
|
57
64
|
const existing = this.packages[key].find(item => {
|
|
58
65
|
return item.name === name && item.version === version;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["semver","PackageType","keys","dependencies","devDependencies","peerDependencies","resolutions","sortByName","a","b","name","localeCompare","DependencyTree","packages","references","sort","duplicates","filter","reference","versions","length","push","params","file","json","ignore","key","match","version","semverVersion","validRange","process","env","DEBUG","console","debug","replace","existing","find","item","files","addReference","type","ref","types","existingVersion","existingFile","includes"],"sources":["DependencyTree.ts"],"sourcesContent":["import semver from \"semver\";\nimport type {\n IDependency,\n IDependencyTree,\n IDependencyTreePushParams,\n IReference\n} from \"./types.js\";\nimport { PackageType } from \"./types.js\";\n\nconst keys = [\n PackageType.dependencies,\n PackageType.devDependencies,\n PackageType.peerDependencies,\n PackageType.resolutions\n];\n\ninterface IAddReferenceParams {\n name: string;\n version: string;\n file: string;\n type: PackageType;\n}\n\ninterface ISortItem {\n name: string;\n}\n\nconst sortByName = (a: ISortItem, b: ISortItem) => {\n return a.name.localeCompare(b.name);\n};\n\nexport class DependencyTree implements IDependencyTree {\n private readonly packages: Record<(typeof keys)[number], IDependency[]> = {\n resolutions: [],\n dependencies: [],\n devDependencies: [],\n peerDependencies: []\n };\n public readonly references: IReference[] = [];\n\n public get dependencies(): IDependency[] {\n return this.packages.dependencies.sort(sortByName);\n }\n\n public get devDependencies(): IDependency[] {\n return this.packages.devDependencies.sort(sortByName);\n }\n\n public get peerDependencies(): IDependency[] {\n return this.packages.peerDependencies.sort(sortByName);\n }\n\n public get resolutions(): IDependency[] {\n return this.packages.resolutions.sort(sortByName);\n }\n\n public get duplicates(): IReference[] {\n return this.references\n .filter(reference => {\n return reference.versions.length > 1;\n })\n .sort(sortByName);\n }\n\n public push(params: IDependencyTreePushParams): void {\n const { file, json, ignore } = params;\n for (const key of keys) {\n const dependencies = json[key];\n if (!dependencies) {\n continue;\n }\n\n for (const name in dependencies) {\n if (ignore && name.match(ignore) !== null) {\n continue;\n }\n let version = dependencies[name];\n if (!version) {\n continue;\n }\n\n const semverVersion =\n semver.validRange(version) || version === \"beta\" ? version : null;\n if (!semverVersion) {\n process.env.DEBUG === \"true\" &&\n console.debug(\n `${version} is not a valid SemVer value in ${file}, package ${name}.`\n );\n continue;\n }\n version = version\n .replace(/\\^/g, \"\")\n .replace(/~/g, \"\")\n .replace(/>/g, \"\")\n .replace(/</g, \"\")\n .replace(/=/g, \"\");\n const existing = this.packages[key].find(item => {\n return item.name === name && item.version === version;\n });\n if (existing) {\n existing.files.push(file);\n this.addReference({\n name,\n version,\n file,\n type: key\n });\n continue;\n }\n\n this.packages[key].push({\n name,\n version,\n files: [file]\n });\n this.addReference({\n name,\n version,\n file,\n type: key\n });\n }\n }\n }\n\n private addReference(ref: IAddReferenceParams): void {\n const existing = this.references.find(item => {\n return item.name === ref.name;\n });\n const types = [ref.type];\n if (!existing) {\n this.references.push({\n name: ref.name,\n versions: [\n {\n version: ref.version,\n files: [\n {\n file: ref.file,\n types\n }\n ]\n }\n ]\n });\n return;\n }\n const existingVersion = existing.versions.find(item => {\n return item.version === ref.version;\n });\n if (!existingVersion) {\n existing.versions.push({\n version: ref.version,\n files: [\n {\n file: ref.file,\n types\n }\n ]\n });\n return;\n }\n const existingFile = existingVersion.files.find(item => {\n return item.file === ref.file;\n });\n if (!existingFile) {\n existingVersion.files.push({\n file: ref.file,\n types\n });\n return;\n } else if (existingFile.types.includes(ref.type)) {\n return;\n }\n existingFile.types.push(ref.type);\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["semver","PackageType","keys","dependencies","devDependencies","peerDependencies","resolutions","sortByName","a","b","name","localeCompare","DependencyTree","packages","references","sort","duplicates","filter","reference","versions","length","push","params","file","json","ignore","key","match","version","semverVersion","validRange","process","env","DEBUG","console","debug","startsWith","replace","existing","find","item","files","addReference","type","ref","types","existingVersion","existingFile","includes"],"sources":["DependencyTree.ts"],"sourcesContent":["import semver from \"semver\";\nimport type {\n IDependency,\n IDependencyTree,\n IDependencyTreePushParams,\n IReference\n} from \"./types.js\";\nimport { PackageType } from \"./types.js\";\n\nconst keys = [\n PackageType.dependencies,\n PackageType.devDependencies,\n PackageType.peerDependencies,\n PackageType.resolutions\n];\n\ninterface IAddReferenceParams {\n name: string;\n version: string;\n file: string;\n type: PackageType;\n}\n\ninterface ISortItem {\n name: string;\n}\n\nconst sortByName = (a: ISortItem, b: ISortItem) => {\n return a.name.localeCompare(b.name);\n};\n\nexport class DependencyTree implements IDependencyTree {\n private readonly packages: Record<(typeof keys)[number], IDependency[]> = {\n resolutions: [],\n dependencies: [],\n devDependencies: [],\n peerDependencies: []\n };\n public readonly references: IReference[] = [];\n\n public get dependencies(): IDependency[] {\n return this.packages.dependencies.sort(sortByName);\n }\n\n public get devDependencies(): IDependency[] {\n return this.packages.devDependencies.sort(sortByName);\n }\n\n public get peerDependencies(): IDependency[] {\n return this.packages.peerDependencies.sort(sortByName);\n }\n\n public get resolutions(): IDependency[] {\n return this.packages.resolutions.sort(sortByName);\n }\n\n public get duplicates(): IReference[] {\n return this.references\n .filter(reference => {\n return reference.versions.length > 1;\n })\n .sort(sortByName);\n }\n\n public push(params: IDependencyTreePushParams): void {\n const { file, json, ignore } = params;\n for (const key of keys) {\n const dependencies = json[key];\n if (!dependencies) {\n continue;\n }\n\n for (const name in dependencies) {\n if (ignore && name.match(ignore) !== null) {\n continue;\n }\n let version = dependencies[name];\n if (!version) {\n continue;\n }\n\n const semverVersion =\n semver.validRange(version) || version === \"beta\" ? version : null;\n if (!semverVersion) {\n process.env.DEBUG === \"true\" &&\n console.debug(\n `${version} is not a valid SemVer value in ${file}, package ${name}.`\n );\n continue;\n }\n /**\n * Let's skip if version starts with >= or <=, as those are not exact versions and we can't be sure which version is actually used.\n */\n if (version.startsWith(\">=\") || version.startsWith(\"<=\")) {\n process.env.DEBUG === \"true\" &&\n console.debug(\n `${version} is not an exact version in ${file}, package ${name}. Skipping.`\n );\n continue;\n }\n\n version = version\n .replace(/\\^/g, \"\")\n .replace(/~/g, \"\")\n .replace(/>/g, \"\")\n .replace(/</g, \"\")\n .replace(/=/g, \"\");\n const existing = this.packages[key].find(item => {\n return item.name === name && item.version === version;\n });\n if (existing) {\n existing.files.push(file);\n this.addReference({\n name,\n version,\n file,\n type: key\n });\n continue;\n }\n\n this.packages[key].push({\n name,\n version,\n files: [file]\n });\n this.addReference({\n name,\n version,\n file,\n type: key\n });\n }\n }\n }\n\n private addReference(ref: IAddReferenceParams): void {\n const existing = this.references.find(item => {\n return item.name === ref.name;\n });\n const types = [ref.type];\n if (!existing) {\n this.references.push({\n name: ref.name,\n versions: [\n {\n version: ref.version,\n files: [\n {\n file: ref.file,\n types\n }\n ]\n }\n ]\n });\n return;\n }\n const existingVersion = existing.versions.find(item => {\n return item.version === ref.version;\n });\n if (!existingVersion) {\n existing.versions.push({\n version: ref.version,\n files: [\n {\n file: ref.file,\n types\n }\n ]\n });\n return;\n }\n const existingFile = existingVersion.files.find(item => {\n return item.file === ref.file;\n });\n if (!existingFile) {\n existingVersion.files.push({\n file: ref.file,\n types\n });\n return;\n } else if (existingFile.types.includes(ref.type)) {\n return;\n }\n existingFile.types.push(ref.type);\n }\n}\n"],"mappings":"AAAA,OAAOA,MAAM,MAAM,QAAQ;AAO3B,SAASC,WAAW;AAEpB,MAAMC,IAAI,GAAG,CACTD,WAAW,CAACE,YAAY,EACxBF,WAAW,CAACG,eAAe,EAC3BH,WAAW,CAACI,gBAAgB,EAC5BJ,WAAW,CAACK,WAAW,CAC1B;AAaD,MAAMC,UAAU,GAAGA,CAACC,CAAY,EAAEC,CAAY,KAAK;EAC/C,OAAOD,CAAC,CAACE,IAAI,CAACC,aAAa,CAACF,CAAC,CAACC,IAAI,CAAC;AACvC,CAAC;AAED,OAAO,MAAME,cAAc,CAA4B;EAClCC,QAAQ,GAAiD;IACtEP,WAAW,EAAE,EAAE;IACfH,YAAY,EAAE,EAAE;IAChBC,eAAe,EAAE,EAAE;IACnBC,gBAAgB,EAAE;EACtB,CAAC;EACeS,UAAU,GAAiB,EAAE;EAE7C,IAAWX,YAAYA,CAAA,EAAkB;IACrC,OAAO,IAAI,CAACU,QAAQ,CAACV,YAAY,CAACY,IAAI,CAACR,UAAU,CAAC;EACtD;EAEA,IAAWH,eAAeA,CAAA,EAAkB;IACxC,OAAO,IAAI,CAACS,QAAQ,CAACT,eAAe,CAACW,IAAI,CAACR,UAAU,CAAC;EACzD;EAEA,IAAWF,gBAAgBA,CAAA,EAAkB;IACzC,OAAO,IAAI,CAACQ,QAAQ,CAACR,gBAAgB,CAACU,IAAI,CAACR,UAAU,CAAC;EAC1D;EAEA,IAAWD,WAAWA,CAAA,EAAkB;IACpC,OAAO,IAAI,CAACO,QAAQ,CAACP,WAAW,CAACS,IAAI,CAACR,UAAU,CAAC;EACrD;EAEA,IAAWS,UAAUA,CAAA,EAAiB;IAClC,OAAO,IAAI,CAACF,UAAU,CACjBG,MAAM,CAACC,SAAS,IAAI;MACjB,OAAOA,SAAS,CAACC,QAAQ,CAACC,MAAM,GAAG,CAAC;IACxC,CAAC,CAAC,CACDL,IAAI,CAACR,UAAU,CAAC;EACzB;EAEOc,IAAIA,CAACC,MAAiC,EAAQ;IACjD,MAAM;MAAEC,IAAI;MAAEC,IAAI;MAAEC;IAAO,CAAC,GAAGH,MAAM;IACrC,KAAK,MAAMI,GAAG,IAAIxB,IAAI,EAAE;MACpB,MAAMC,YAAY,GAAGqB,IAAI,CAACE,GAAG,CAAC;MAC9B,IAAI,CAACvB,YAAY,EAAE;QACf;MACJ;MAEA,KAAK,MAAMO,IAAI,IAAIP,YAAY,EAAE;QAC7B,IAAIsB,MAAM,IAAIf,IAAI,CAACiB,KAAK,CAACF,MAAM,CAAC,KAAK,IAAI,EAAE;UACvC;QACJ;QACA,IAAIG,OAAO,GAAGzB,YAAY,CAACO,IAAI,CAAC;QAChC,IAAI,CAACkB,OAAO,EAAE;UACV;QACJ;QAEA,MAAMC,aAAa,GACf7B,MAAM,CAAC8B,UAAU,CAACF,OAAO,CAAC,IAAIA,OAAO,KAAK,MAAM,GAAGA,OAAO,GAAG,IAAI;QACrE,IAAI,CAACC,aAAa,EAAE;UAChBE,OAAO,CAACC,GAAG,CAACC,KAAK,KAAK,MAAM,IACxBC,OAAO,CAACC,KAAK,CACT,GAAGP,OAAO,mCAAmCL,IAAI,aAAab,IAAI,GACtE,CAAC;UACL;QACJ;QACA;AAChB;AACA;QACgB,IAAIkB,OAAO,CAACQ,UAAU,CAAC,IAAI,CAAC,IAAIR,OAAO,CAACQ,UAAU,CAAC,IAAI,CAAC,EAAE;UACtDL,OAAO,CAACC,GAAG,CAACC,KAAK,KAAK,MAAM,IACxBC,OAAO,CAACC,KAAK,CACT,GAAGP,OAAO,+BAA+BL,IAAI,aAAab,IAAI,aAClE,CAAC;UACL;QACJ;QAEAkB,OAAO,GAAGA,OAAO,CACZS,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAClBA,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CACjBA,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CACjBA,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CACjBA,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;QACtB,MAAMC,QAAQ,GAAG,IAAI,CAACzB,QAAQ,CAACa,GAAG,CAAC,CAACa,IAAI,CAACC,IAAI,IAAI;UAC7C,OAAOA,IAAI,CAAC9B,IAAI,KAAKA,IAAI,IAAI8B,IAAI,CAACZ,OAAO,KAAKA,OAAO;QACzD,CAAC,CAAC;QACF,IAAIU,QAAQ,EAAE;UACVA,QAAQ,CAACG,KAAK,CAACpB,IAAI,CAACE,IAAI,CAAC;UACzB,IAAI,CAACmB,YAAY,CAAC;YACdhC,IAAI;YACJkB,OAAO;YACPL,IAAI;YACJoB,IAAI,EAAEjB;UACV,CAAC,CAAC;UACF;QACJ;QAEA,IAAI,CAACb,QAAQ,CAACa,GAAG,CAAC,CAACL,IAAI,CAAC;UACpBX,IAAI;UACJkB,OAAO;UACPa,KAAK,EAAE,CAAClB,IAAI;QAChB,CAAC,CAAC;QACF,IAAI,CAACmB,YAAY,CAAC;UACdhC,IAAI;UACJkB,OAAO;UACPL,IAAI;UACJoB,IAAI,EAAEjB;QACV,CAAC,CAAC;MACN;IACJ;EACJ;EAEQgB,YAAYA,CAACE,GAAwB,EAAQ;IACjD,MAAMN,QAAQ,GAAG,IAAI,CAACxB,UAAU,CAACyB,IAAI,CAACC,IAAI,IAAI;MAC1C,OAAOA,IAAI,CAAC9B,IAAI,KAAKkC,GAAG,CAAClC,IAAI;IACjC,CAAC,CAAC;IACF,MAAMmC,KAAK,GAAG,CAACD,GAAG,CAACD,IAAI,CAAC;IACxB,IAAI,CAACL,QAAQ,EAAE;MACX,IAAI,CAACxB,UAAU,CAACO,IAAI,CAAC;QACjBX,IAAI,EAAEkC,GAAG,CAAClC,IAAI;QACdS,QAAQ,EAAE,CACN;UACIS,OAAO,EAAEgB,GAAG,CAAChB,OAAO;UACpBa,KAAK,EAAE,CACH;YACIlB,IAAI,EAAEqB,GAAG,CAACrB,IAAI;YACdsB;UACJ,CAAC;QAET,CAAC;MAET,CAAC,CAAC;MACF;IACJ;IACA,MAAMC,eAAe,GAAGR,QAAQ,CAACnB,QAAQ,CAACoB,IAAI,CAACC,IAAI,IAAI;MACnD,OAAOA,IAAI,CAACZ,OAAO,KAAKgB,GAAG,CAAChB,OAAO;IACvC,CAAC,CAAC;IACF,IAAI,CAACkB,eAAe,EAAE;MAClBR,QAAQ,CAACnB,QAAQ,CAACE,IAAI,CAAC;QACnBO,OAAO,EAAEgB,GAAG,CAAChB,OAAO;QACpBa,KAAK,EAAE,CACH;UACIlB,IAAI,EAAEqB,GAAG,CAACrB,IAAI;UACdsB;QACJ,CAAC;MAET,CAAC,CAAC;MACF;IACJ;IACA,MAAME,YAAY,GAAGD,eAAe,CAACL,KAAK,CAACF,IAAI,CAACC,IAAI,IAAI;MACpD,OAAOA,IAAI,CAACjB,IAAI,KAAKqB,GAAG,CAACrB,IAAI;IACjC,CAAC,CAAC;IACF,IAAI,CAACwB,YAAY,EAAE;MACfD,eAAe,CAACL,KAAK,CAACpB,IAAI,CAAC;QACvBE,IAAI,EAAEqB,GAAG,CAACrB,IAAI;QACdsB;MACJ,CAAC,CAAC;MACF;IACJ,CAAC,MAAM,IAAIE,YAAY,CAACF,KAAK,CAACG,QAAQ,CAACJ,GAAG,CAACD,IAAI,CAAC,EAAE;MAC9C;IACJ;IACAI,YAAY,CAACF,KAAK,CAACxB,IAAI,CAACuB,GAAG,CAACD,IAAI,CAAC;EACrC;AACJ","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webiny/cli-core",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.2.0-beta.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"repository": {
|
|
@@ -11,10 +11,10 @@
|
|
|
11
11
|
"license": "MIT",
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"@webiny/di": "0.2.3",
|
|
14
|
-
"@webiny/feature": "6.
|
|
15
|
-
"@webiny/project": "6.
|
|
16
|
-
"@webiny/pulumi-sdk": "6.
|
|
17
|
-
"@webiny/telemetry": "6.
|
|
14
|
+
"@webiny/feature": "6.2.0-beta.0",
|
|
15
|
+
"@webiny/project": "6.2.0-beta.0",
|
|
16
|
+
"@webiny/pulumi-sdk": "6.2.0-beta.0",
|
|
17
|
+
"@webiny/telemetry": "6.2.0-beta.0",
|
|
18
18
|
"chalk": "5.6.2",
|
|
19
19
|
"ci-info": "4.4.0",
|
|
20
20
|
"execa": "5.1.1",
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"find-up": "8.0.0",
|
|
23
23
|
"get-yarn-workspaces": "1.0.2",
|
|
24
24
|
"humanize-duration": "3.33.2",
|
|
25
|
-
"inquirer": "13.
|
|
25
|
+
"inquirer": "13.4.1",
|
|
26
26
|
"load-json-file": "7.0.1",
|
|
27
27
|
"open": "11.0.0",
|
|
28
28
|
"ora": "9.3.0",
|
|
@@ -35,9 +35,8 @@
|
|
|
35
35
|
"zod": "4.3.6"
|
|
36
36
|
},
|
|
37
37
|
"devDependencies": {
|
|
38
|
-
"@types/listr": "0.14.10",
|
|
39
38
|
"@types/lodash": "4.17.24",
|
|
40
|
-
"@webiny/build-tools": "6.
|
|
39
|
+
"@webiny/build-tools": "6.2.0-beta.0",
|
|
41
40
|
"rimraf": "6.1.3",
|
|
42
41
|
"typescript": "5.9.3"
|
|
43
42
|
},
|
|
@@ -45,5 +44,5 @@
|
|
|
45
44
|
"access": "public",
|
|
46
45
|
"directory": "dist"
|
|
47
46
|
},
|
|
48
|
-
"gitHead": "
|
|
47
|
+
"gitHead": "3d3148358b6febbc857371930871743bec3b3939"
|
|
49
48
|
}
|