@strapi/cloud-cli 5.18.1 → 5.20.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.
Files changed (44) hide show
  1. package/dist/create-project/action.d.ts +2 -2
  2. package/dist/create-project/action.d.ts.map +1 -1
  3. package/dist/create-project/action.js +38 -11
  4. package/dist/create-project/action.js.map +1 -1
  5. package/dist/create-project/action.mjs +39 -12
  6. package/dist/create-project/action.mjs.map +1 -1
  7. package/dist/deploy-project/action.d.ts.map +1 -1
  8. package/dist/deploy-project/action.js +54 -17
  9. package/dist/deploy-project/action.js.map +1 -1
  10. package/dist/deploy-project/action.mjs +55 -18
  11. package/dist/deploy-project/action.mjs.map +1 -1
  12. package/dist/package.json.js +4 -4
  13. package/dist/package.json.mjs +4 -4
  14. package/dist/services/build-logs.d.ts.map +1 -1
  15. package/dist/services/build-logs.js +7 -7
  16. package/dist/services/build-logs.js.map +1 -1
  17. package/dist/services/build-logs.mjs +7 -7
  18. package/dist/services/build-logs.mjs.map +1 -1
  19. package/dist/services/cli-api.d.ts +7 -2
  20. package/dist/services/cli-api.d.ts.map +1 -1
  21. package/dist/services/cli-api.js +2 -3
  22. package/dist/services/cli-api.js.map +1 -1
  23. package/dist/services/cli-api.mjs +2 -3
  24. package/dist/services/cli-api.mjs.map +1 -1
  25. package/dist/services/notification.d.ts +4 -1
  26. package/dist/services/notification.d.ts.map +1 -1
  27. package/dist/services/notification.js +44 -2
  28. package/dist/services/notification.js.map +1 -1
  29. package/dist/services/notification.mjs +44 -2
  30. package/dist/services/notification.mjs.map +1 -1
  31. package/dist/types.d.ts +11 -0
  32. package/dist/types.d.ts.map +1 -1
  33. package/dist/utils/compress-files.d.ts.map +1 -1
  34. package/dist/utils/compress-files.js +2 -0
  35. package/dist/utils/compress-files.js.map +1 -1
  36. package/dist/utils/compress-files.mjs +2 -0
  37. package/dist/utils/compress-files.mjs.map +1 -1
  38. package/dist/utils/error-message-factories.d.ts +9 -0
  39. package/dist/utils/error-message-factories.d.ts.map +1 -0
  40. package/dist/utils/error-message-factories.js +25 -0
  41. package/dist/utils/error-message-factories.js.map +1 -0
  42. package/dist/utils/error-message-factories.mjs +22 -0
  43. package/dist/utils/error-message-factories.mjs.map +1 -0
  44. package/package.json +4 -4
@@ -9,7 +9,7 @@ import { apiConfig } from '../config/api.mjs';
9
9
  import { compressFilesToTar } from '../utils/compress-files.mjs';
10
10
  import action$1 from '../create-project/action.mjs';
11
11
  import { getTmpStoragePath } from '../config/local.mjs';
12
- import { cloudApiFactory } from '../services/cli-api.mjs';
12
+ import { cloudApiFactory, VERSION } from '../services/cli-api.mjs';
13
13
  import { retrieve } from '../services/strapi-info-save.mjs';
14
14
  import { tokenServiceFactory } from '../services/token.mjs';
15
15
  import 'fast-safe-stringify';
@@ -20,6 +20,7 @@ import { loadPkg } from '../utils/pkg.mjs';
20
20
  import { buildLogsServiceFactory } from '../services/build-logs.mjs';
21
21
  import { promptLogin } from '../login/action.mjs';
22
22
  import { trackEvent } from '../utils/analytics.mjs';
23
+ import { environmentErrorMessageFactory, environmentCreationErrorFactory } from '../utils/error-message-factories.mjs';
23
24
 
24
25
  const boxenOptions = {
25
26
  padding: 1,
@@ -53,7 +54,7 @@ async function promptForEnvironment(environments) {
53
54
  }
54
55
  return selectedEnvironment;
55
56
  }
56
- async function upload(ctx, project, token, maxProjectFileSize) {
57
+ async function upload(ctx, project, cliConfig, token, maxProjectFileSize) {
57
58
  const cloudApi = await cloudApiFactory(ctx, token);
58
59
  try {
59
60
  const storagePath = await getTmpStoragePath();
@@ -63,16 +64,17 @@ async function upload(ctx, project, token, maxProjectFileSize) {
63
64
  ctx.logger.error('Unable to deploy the project. Please make sure the package.json file is correctly formatted.');
64
65
  return;
65
66
  }
66
- ctx.logger.log('📦 Compressing project...');
67
+ const compressSpinner = ctx.logger.spinner('Compressing project...').start();
68
+ compressSpinner.indent = 1;
67
69
  // hash packageJson.name to avoid conflicts
68
70
  const hashname = crypto.createHash('sha512').update(packageJson.name).digest('hex');
69
71
  const compressedFilename = `${hashname}.tar.gz`;
70
72
  try {
71
73
  ctx.logger.debug('Compression parameters\n', `Storage path: ${storagePath}\n`, `Project folder: ${projectFolder}\n`, `Compressed filename: ${compressedFilename}`);
72
74
  await compressFilesToTar(storagePath, projectFolder, compressedFilename);
73
- ctx.logger.log('📦 Project compressed successfully!');
75
+ compressSpinner.succeed(`Project compressed successfully!`);
74
76
  } catch (e) {
75
- ctx.logger.error('⚠️ Project compression failed. Try again later or check for large/incompatible files.');
77
+ compressSpinner.fail('Project compression failed. Try again later or check for large/incompatible files.');
76
78
  ctx.logger.debug(e);
77
79
  process.exit(1);
78
80
  }
@@ -88,8 +90,7 @@ async function upload(ctx, project, token, maxProjectFileSize) {
88
90
  }
89
91
  return;
90
92
  }
91
- ctx.logger.info('🚀 Uploading project...');
92
- const progressBar = ctx.logger.progressBar(100, 'Upload Progress');
93
+ const progressBar = ctx.logger.progressBar(100, ' Uploading project');
93
94
  try {
94
95
  const { data } = await cloudApi.deploy({
95
96
  filePath: tarFilePath,
@@ -103,12 +104,11 @@ async function upload(ctx, project, token, maxProjectFileSize) {
103
104
  });
104
105
  progressBar.update(100);
105
106
  progressBar.stop();
106
- ctx.logger.success(' Upload finished!');
107
+ ctx.logger.log(`${chalk.green.bold('✔')} Upload finished!\n`);
107
108
  return data.build_id;
108
109
  } catch (e) {
109
110
  progressBar.stop();
110
- ctx.logger.error('An error occurred while deploying the project. Please try again later.');
111
- ctx.logger.debug(e);
111
+ await handleUploadError(ctx, e, project, cliConfig);
112
112
  } finally{
113
113
  await fse__default.remove(tarFilePath);
114
114
  }
@@ -119,11 +119,37 @@ async function upload(ctx, project, token, maxProjectFileSize) {
119
119
  process.exit(1);
120
120
  }
121
121
  }
122
+ async function handleUploadError(ctx, error, project, cliConfig) {
123
+ const { logger } = ctx;
124
+ logger.debug(error);
125
+ if (error.response?.status) {
126
+ switch(error.response.status){
127
+ case 405:
128
+ {
129
+ const environmentErrorMessage = environmentErrorMessageFactory({
130
+ projectName: project.name,
131
+ firstLine: cliConfig.projectDeployment.errors.environmentNotReady.firstLine,
132
+ secondLine: cliConfig.projectDeployment.errors.environmentNotReady.secondLine
133
+ });
134
+ logger.log(environmentCreationErrorFactory(environmentErrorMessage));
135
+ return;
136
+ }
137
+ case 413:
138
+ logger.error('The project you are trying to upload is too big. Please remove unnecessary files and try again.');
139
+ return;
140
+ }
141
+ }
142
+ logger.error('An error occurred while deploying the project. Please try again later.');
143
+ }
122
144
  async function getProject(ctx) {
123
145
  const { project } = await retrieve();
124
146
  if (!project) {
125
147
  try {
126
- return await action$1(ctx);
148
+ const projectResponse = await action$1(ctx);
149
+ if (projectResponse) {
150
+ const { project: projectSaved } = await retrieve();
151
+ return projectSaved;
152
+ }
127
153
  } catch (e) {
128
154
  ctx.logger.error('An error occurred while deploying the project. Please try again later.');
129
155
  ctx.logger.debug(e);
@@ -175,7 +201,7 @@ var action = (async (ctx, opts)=>{
175
201
  }
176
202
  const project = await getProject(ctx);
177
203
  if (!project) {
178
- return;
204
+ process.exit(1);
179
205
  }
180
206
  const cloudApiService = await cloudApiFactory(ctx, token);
181
207
  let projectData;
@@ -242,16 +268,23 @@ var action = (async (ctx, opts)=>{
242
268
  }
243
269
  }
244
270
  }
245
- const buildId = await upload(ctx, project, token, maxSize);
271
+ const buildId = await upload(ctx, project, cliConfig, token, maxSize);
246
272
  if (!buildId) {
247
273
  return;
248
274
  }
275
+ let notifications = null;
249
276
  try {
250
- ctx.logger.log(`🚀 Deploying project to ${chalk.cyan(project.targetEnvironment ?? `production`)} environment...`);
251
- notificationService(`${apiConfig.apiBaseUrl}/notifications`, token, cliConfig);
252
- await buildLogsService(`${apiConfig.apiBaseUrl}/v1/logs/${buildId}`, token, cliConfig);
253
- ctx.logger.log('Visit the following URL for deployment logs. Your deployment will be available here shortly.');
254
- ctx.logger.log(chalk.underline(`${apiConfig.dashboardBaseUrl}/projects/${project.name}/deployments`));
277
+ ctx.logger.log(`∷ Deploying project to ${chalk.cyan(project.targetEnvironment ?? `production`)} environment...`);
278
+ notifications = notificationService(`${apiConfig.apiBaseUrl}/${VERSION}/notifications`, token, cliConfig);
279
+ await buildLogsService(`${apiConfig.apiBaseUrl}/${VERSION}/logs/${buildId}`, token, cliConfig);
280
+ const dashboardUrlLine = chalk.cyan(' → ') + chalk.cyan.underline(`${apiConfig.dashboardBaseUrl}/projects/${project.name}/deployments`);
281
+ ctx.logger.log(boxen(`Project and deployment logs ready at:\n${dashboardUrlLine}`, {
282
+ padding: 1,
283
+ margin: 1,
284
+ borderStyle: 'round',
285
+ borderColor: 'white',
286
+ titleAlignment: 'left'
287
+ }));
255
288
  } catch (e) {
256
289
  ctx.logger.debug(e);
257
290
  if (e instanceof Error) {
@@ -259,6 +292,10 @@ var action = (async (ctx, opts)=>{
259
292
  } else {
260
293
  ctx.logger.error('An error occurred while deploying the project. Please try again later.');
261
294
  }
295
+ } finally{
296
+ if (notifications) {
297
+ notifications.close();
298
+ }
262
299
  }
263
300
  });
264
301
 
@@ -1 +1 @@
1
- {"version":3,"file":"action.mjs","sources":["../../src/deploy-project/action.ts"],"sourcesContent":["import fse from 'fs-extra';\nimport inquirer from 'inquirer';\nimport boxen from 'boxen';\nimport path from 'path';\nimport chalk from 'chalk';\nimport { AxiosError } from 'axios';\nimport * as crypto from 'node:crypto';\nimport { apiConfig } from '../config/api';\nimport { compressFilesToTar } from '../utils/compress-files';\nimport createProjectAction from '../create-project/action';\nimport type {\n CLIContext,\n CloudApiService,\n CloudCliConfig,\n EnvironmentDetails,\n ProjectInfo,\n} from '../types';\nimport { getTmpStoragePath } from '../config/local';\nimport { cloudApiFactory, tokenServiceFactory, local } from '../services';\nimport { notificationServiceFactory } from '../services/notification';\nimport { loadPkg } from '../utils/pkg';\nimport { buildLogsServiceFactory } from '../services/build-logs';\nimport { promptLogin } from '../login/action';\nimport { trackEvent } from '../utils/analytics';\n\ntype PackageJson = {\n name: string;\n strapi?: {\n uuid: string;\n };\n};\n\ninterface CmdOptions {\n env?: string;\n force?: boolean;\n}\n\nconst boxenOptions: boxen.Options = {\n padding: 1,\n margin: 1,\n align: 'center',\n borderColor: 'yellow',\n borderStyle: 'round',\n};\n\nconst QUIT_OPTION = 'Quit';\n\nasync function promptForEnvironment(environments: string[]): Promise<string> {\n const choices = environments.map((env) => ({ name: env, value: env }));\n const { selectedEnvironment } = await inquirer.prompt([\n {\n type: 'list',\n name: 'selectedEnvironment',\n message: 'Select the environment to deploy:',\n choices: [...choices, { name: chalk.grey(`(${QUIT_OPTION})`), value: null }],\n },\n ]);\n if (selectedEnvironment === null) {\n process.exit(1);\n }\n\n return selectedEnvironment;\n}\n\nasync function upload(\n ctx: CLIContext,\n project: ProjectInfo,\n token: string,\n maxProjectFileSize: number\n) {\n const cloudApi = await cloudApiFactory(ctx, token);\n try {\n const storagePath = await getTmpStoragePath();\n const projectFolder = path.resolve(process.cwd());\n const packageJson = (await loadPkg(ctx)) as PackageJson;\n\n if (!packageJson) {\n ctx.logger.error(\n 'Unable to deploy the project. Please make sure the package.json file is correctly formatted.'\n );\n return;\n }\n\n ctx.logger.log('📦 Compressing project...');\n // hash packageJson.name to avoid conflicts\n const hashname = crypto.createHash('sha512').update(packageJson.name).digest('hex');\n const compressedFilename = `${hashname}.tar.gz`;\n try {\n ctx.logger.debug(\n 'Compression parameters\\n',\n `Storage path: ${storagePath}\\n`,\n `Project folder: ${projectFolder}\\n`,\n `Compressed filename: ${compressedFilename}`\n );\n await compressFilesToTar(storagePath, projectFolder, compressedFilename);\n ctx.logger.log('📦 Project compressed successfully!');\n } catch (e: unknown) {\n ctx.logger.error(\n '⚠️ Project compression failed. Try again later or check for large/incompatible files.'\n );\n ctx.logger.debug(e);\n process.exit(1);\n }\n\n const tarFilePath = path.resolve(storagePath, compressedFilename);\n const fileStats = await fse.stat(tarFilePath);\n\n if (fileStats.size > maxProjectFileSize) {\n ctx.logger.log(\n 'Unable to proceed: Your project is too big to be transferred, please use a git repo instead.'\n );\n try {\n await fse.remove(tarFilePath);\n } catch (e: any) {\n ctx.logger.log('Unable to remove file: ', tarFilePath);\n ctx.logger.debug(e);\n }\n return;\n }\n\n ctx.logger.info('🚀 Uploading project...');\n const progressBar = ctx.logger.progressBar(100, 'Upload Progress');\n\n try {\n const { data } = await cloudApi.deploy(\n { filePath: tarFilePath, project },\n {\n onUploadProgress(progressEvent) {\n const total = progressEvent.total || fileStats.size;\n const percentage = Math.round((progressEvent.loaded * 100) / total);\n progressBar.update(percentage);\n },\n }\n );\n\n progressBar.update(100);\n progressBar.stop();\n ctx.logger.success('✨ Upload finished!');\n return data.build_id;\n } catch (e: any) {\n progressBar.stop();\n ctx.logger.error('An error occurred while deploying the project. Please try again later.');\n ctx.logger.debug(e);\n } finally {\n await fse.remove(tarFilePath);\n }\n process.exit(0);\n } catch (e: any) {\n ctx.logger.error('An error occurred while deploying the project. Please try again later.');\n ctx.logger.debug(e);\n process.exit(1);\n }\n}\n\nasync function getProject(ctx: CLIContext) {\n const { project } = await local.retrieve();\n if (!project) {\n try {\n return await createProjectAction(ctx);\n } catch (e: any) {\n ctx.logger.error('An error occurred while deploying the project. Please try again later.');\n ctx.logger.debug(e);\n process.exit(1);\n }\n }\n return project;\n}\n\nasync function getConfig({\n ctx,\n cloudApiService,\n}: {\n ctx: CLIContext;\n cloudApiService: CloudApiService;\n}): Promise<CloudCliConfig | null> {\n try {\n const { data: cliConfig } = await cloudApiService.config();\n return cliConfig;\n } catch (e) {\n ctx.logger.debug('Failed to get cli config', e);\n return null;\n }\n}\n\nfunction validateEnvironment(ctx: CLIContext, environment: string, environments: string[]): void {\n if (!environments.includes(environment)) {\n ctx.logger.error(`Environment ${environment} does not exist.`);\n process.exit(1);\n }\n}\n\nasync function getTargetEnvironment(\n ctx: CLIContext,\n opts: CmdOptions,\n project: ProjectInfo,\n environments: string[]\n): Promise<string> {\n if (opts.env) {\n validateEnvironment(ctx, opts.env, environments);\n return opts.env;\n }\n\n if (project.targetEnvironment) {\n return project.targetEnvironment;\n }\n\n if (environments.length > 1) {\n return promptForEnvironment(environments);\n }\n\n return environments[0];\n}\n\nfunction hasPendingOrLiveDeployment(\n environments: EnvironmentDetails[],\n targetEnvironment: string\n): boolean {\n const environment = environments.find((env) => env.name === targetEnvironment);\n if (!environment) {\n throw new Error(`Environment details ${targetEnvironment} not found.`);\n }\n return environment.hasPendingDeployment || environment.hasLiveDeployment || false;\n}\n\nexport default async (ctx: CLIContext, opts: CmdOptions) => {\n const { getValidToken } = await tokenServiceFactory(ctx);\n const token = await getValidToken(ctx, promptLogin);\n if (!token) {\n return;\n }\n\n const project = await getProject(ctx);\n if (!project) {\n return;\n }\n\n const cloudApiService = await cloudApiFactory(ctx, token);\n let projectData;\n let environments: string[];\n let environmentsDetails: EnvironmentDetails[];\n\n try {\n const {\n data: { data, metadata },\n } = await cloudApiService.getProject({ name: project.name });\n projectData = data;\n environments = projectData.environments;\n environmentsDetails = projectData.environmentsDetails;\n const isProjectSuspended = projectData.suspendedAt;\n\n if (isProjectSuspended) {\n ctx.logger.log(\n '\\n Oops! This project has been suspended. \\n\\n Please reactivate it from the dashboard to continue deploying: '\n );\n ctx.logger.log(chalk.underline(`${metadata.dashboardUrls.project}`));\n return;\n }\n } catch (e: Error | unknown) {\n if (e instanceof AxiosError && e.response?.data) {\n if (e.response.status === 404) {\n ctx.logger.warn(\n `The project associated with this folder does not exist in Strapi Cloud. \\nPlease link your local project to an existing Strapi Cloud project using the ${chalk.cyan(\n 'link'\n )} command before deploying.`\n );\n } else {\n ctx.logger.error(e.response.data);\n }\n } else {\n ctx.logger.error(\n \"An error occurred while retrieving the project's information. Please try again later.\"\n );\n }\n ctx.logger.debug(e);\n return;\n }\n\n await trackEvent(ctx, cloudApiService, 'willDeployWithCLI', {\n projectInternalName: project.name,\n });\n\n const notificationService = notificationServiceFactory(ctx);\n const buildLogsService = buildLogsServiceFactory(ctx);\n\n const cliConfig = await getConfig({ ctx, cloudApiService });\n if (!cliConfig) {\n ctx.logger.error(\n 'An error occurred while retrieving data from Strapi Cloud. Please check your network or try again later.'\n );\n return;\n }\n\n let maxSize: number = parseInt(cliConfig.maxProjectFileSize, 10);\n if (Number.isNaN(maxSize)) {\n ctx.logger.debug(\n 'An error occurred while parsing the maxProjectFileSize. Using default value.'\n );\n maxSize = 100000000;\n }\n\n project.targetEnvironment = await getTargetEnvironment(ctx, opts, project, environments);\n\n if (!opts.force) {\n const shouldDisplayWarning = hasPendingOrLiveDeployment(\n environmentsDetails,\n project.targetEnvironment\n );\n if (shouldDisplayWarning) {\n ctx.logger.log(boxen(cliConfig.projectDeployment.confirmationText, boxenOptions));\n const { confirm } = await inquirer.prompt([\n {\n type: 'confirm',\n name: 'confirm',\n message: `Do you want to proceed with deployment to ${chalk.cyan(projectData.displayName)} on ${chalk.cyan(project.targetEnvironment)} environment?`,\n },\n ]);\n if (!confirm) {\n process.exit(1);\n }\n }\n }\n\n const buildId = await upload(ctx, project, token, maxSize);\n\n if (!buildId) {\n return;\n }\n\n try {\n ctx.logger.log(\n `🚀 Deploying project to ${chalk.cyan(project.targetEnvironment ?? `production`)} environment...`\n );\n notificationService(`${apiConfig.apiBaseUrl}/notifications`, token, cliConfig);\n await buildLogsService(`${apiConfig.apiBaseUrl}/v1/logs/${buildId}`, token, cliConfig);\n\n ctx.logger.log(\n 'Visit the following URL for deployment logs. Your deployment will be available here shortly.'\n );\n ctx.logger.log(\n chalk.underline(`${apiConfig.dashboardBaseUrl}/projects/${project.name}/deployments`)\n );\n } catch (e: Error | unknown) {\n ctx.logger.debug(e);\n if (e instanceof Error) {\n ctx.logger.error(e.message);\n } else {\n ctx.logger.error('An error occurred while deploying the project. Please try again later.');\n }\n }\n};\n"],"names":["boxenOptions","padding","margin","align","borderColor","borderStyle","QUIT_OPTION","promptForEnvironment","environments","choices","map","env","name","value","selectedEnvironment","inquirer","prompt","type","message","chalk","grey","process","exit","upload","ctx","project","token","maxProjectFileSize","cloudApi","cloudApiFactory","storagePath","getTmpStoragePath","projectFolder","path","resolve","cwd","packageJson","loadPkg","logger","error","log","hashname","crypto","createHash","update","digest","compressedFilename","debug","compressFilesToTar","e","tarFilePath","fileStats","fse","stat","size","remove","info","progressBar","data","deploy","filePath","onUploadProgress","progressEvent","total","percentage","Math","round","loaded","stop","success","build_id","getProject","local","createProjectAction","getConfig","cloudApiService","cliConfig","config","validateEnvironment","environment","includes","getTargetEnvironment","opts","targetEnvironment","length","hasPendingOrLiveDeployment","find","Error","hasPendingDeployment","hasLiveDeployment","getValidToken","tokenServiceFactory","promptLogin","projectData","environmentsDetails","metadata","isProjectSuspended","suspendedAt","underline","dashboardUrls","AxiosError","response","status","warn","cyan","trackEvent","projectInternalName","notificationService","notificationServiceFactory","buildLogsService","buildLogsServiceFactory","maxSize","parseInt","Number","isNaN","force","shouldDisplayWarning","boxen","projectDeployment","confirmationText","confirm","displayName","buildId","apiConfig","apiBaseUrl","dashboardBaseUrl"],"mappings":"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"}
1
+ {"version":3,"file":"action.mjs","sources":["../../src/deploy-project/action.ts"],"sourcesContent":["import fse from 'fs-extra';\nimport inquirer from 'inquirer';\nimport boxen from 'boxen';\nimport path from 'path';\nimport chalk from 'chalk';\nimport { AxiosError } from 'axios';\nimport * as crypto from 'node:crypto';\nimport { apiConfig } from '../config/api';\nimport { compressFilesToTar } from '../utils/compress-files';\nimport createProjectAction from '../create-project/action';\nimport type {\n CLIContext,\n CloudApiService,\n CloudCliConfig,\n EnvironmentDetails,\n ProjectInfo,\n} from '../types';\nimport { getTmpStoragePath } from '../config/local';\nimport { cloudApiFactory, tokenServiceFactory, local } from '../services';\nimport { VERSION } from '../services/cli-api';\nimport { notificationServiceFactory } from '../services/notification';\nimport { loadPkg } from '../utils/pkg';\nimport { buildLogsServiceFactory } from '../services/build-logs';\nimport { promptLogin } from '../login/action';\nimport { trackEvent } from '../utils/analytics';\nimport {\n environmentCreationErrorFactory,\n environmentErrorMessageFactory,\n} from '../utils/error-message-factories';\n\ntype PackageJson = {\n name: string;\n strapi?: {\n uuid: string;\n };\n};\n\ninterface CmdOptions {\n env?: string;\n force?: boolean;\n}\n\nconst boxenOptions: boxen.Options = {\n padding: 1,\n margin: 1,\n align: 'center',\n borderColor: 'yellow',\n borderStyle: 'round',\n};\n\nconst QUIT_OPTION = 'Quit';\n\nasync function promptForEnvironment(environments: string[]): Promise<string> {\n const choices = environments.map((env) => ({ name: env, value: env }));\n const { selectedEnvironment } = await inquirer.prompt([\n {\n type: 'list',\n name: 'selectedEnvironment',\n message: 'Select the environment to deploy:',\n choices: [...choices, { name: chalk.grey(`(${QUIT_OPTION})`), value: null }],\n },\n ]);\n if (selectedEnvironment === null) {\n process.exit(1);\n }\n\n return selectedEnvironment;\n}\n\nasync function upload(\n ctx: CLIContext,\n project: Omit<ProjectInfo, 'id'>,\n cliConfig: CloudCliConfig,\n token: string,\n maxProjectFileSize: number\n) {\n const cloudApi = await cloudApiFactory(ctx, token);\n try {\n const storagePath = await getTmpStoragePath();\n const projectFolder = path.resolve(process.cwd());\n const packageJson = (await loadPkg(ctx)) as PackageJson;\n\n if (!packageJson) {\n ctx.logger.error(\n 'Unable to deploy the project. Please make sure the package.json file is correctly formatted.'\n );\n return;\n }\n\n const compressSpinner = ctx.logger.spinner('Compressing project...').start();\n compressSpinner.indent = 1;\n // hash packageJson.name to avoid conflicts\n const hashname = crypto.createHash('sha512').update(packageJson.name).digest('hex');\n const compressedFilename = `${hashname}.tar.gz`;\n try {\n ctx.logger.debug(\n 'Compression parameters\\n',\n `Storage path: ${storagePath}\\n`,\n `Project folder: ${projectFolder}\\n`,\n `Compressed filename: ${compressedFilename}`\n );\n await compressFilesToTar(storagePath, projectFolder, compressedFilename);\n compressSpinner.succeed(`Project compressed successfully!`);\n } catch (e: unknown) {\n compressSpinner.fail(\n 'Project compression failed. Try again later or check for large/incompatible files.'\n );\n ctx.logger.debug(e);\n process.exit(1);\n }\n\n const tarFilePath = path.resolve(storagePath, compressedFilename);\n const fileStats = await fse.stat(tarFilePath);\n\n if (fileStats.size > maxProjectFileSize) {\n ctx.logger.log(\n 'Unable to proceed: Your project is too big to be transferred, please use a git repo instead.'\n );\n try {\n await fse.remove(tarFilePath);\n } catch (e: any) {\n ctx.logger.log('Unable to remove file: ', tarFilePath);\n ctx.logger.debug(e);\n }\n return;\n }\n\n const progressBar = ctx.logger.progressBar(100, ' ∷ Uploading project');\n\n try {\n const { data } = await cloudApi.deploy(\n { filePath: tarFilePath, project },\n {\n onUploadProgress(progressEvent) {\n const total = progressEvent.total || fileStats.size;\n const percentage = Math.round((progressEvent.loaded * 100) / total);\n progressBar.update(percentage);\n },\n }\n );\n\n progressBar.update(100);\n progressBar.stop();\n ctx.logger.log(`${chalk.green.bold('✔')} Upload finished!\\n`);\n return data.build_id;\n } catch (e: any) {\n progressBar.stop();\n await handleUploadError(ctx, e, project, cliConfig);\n } finally {\n await fse.remove(tarFilePath);\n }\n process.exit(0);\n } catch (e: any) {\n ctx.logger.error('An error occurred while deploying the project. Please try again later.');\n ctx.logger.debug(e);\n process.exit(1);\n }\n}\n\nasync function handleUploadError(\n ctx: CLIContext,\n error: any,\n project: any,\n cliConfig: CloudCliConfig\n) {\n const { logger } = ctx;\n logger.debug(error);\n\n if (error.response?.status) {\n switch (error.response.status) {\n case 405: {\n const environmentErrorMessage = environmentErrorMessageFactory({\n projectName: project.name,\n firstLine: cliConfig.projectDeployment.errors.environmentNotReady.firstLine,\n secondLine: cliConfig.projectDeployment.errors.environmentNotReady.secondLine,\n });\n logger.log(environmentCreationErrorFactory(environmentErrorMessage));\n return;\n }\n case 413:\n logger.error(\n 'The project you are trying to upload is too big. Please remove unnecessary files and try again.'\n );\n return;\n default:\n break;\n }\n }\n logger.error('An error occurred while deploying the project. Please try again later.');\n}\n\nasync function getProject(ctx: CLIContext) {\n const { project } = await local.retrieve();\n if (!project) {\n try {\n const projectResponse = await createProjectAction(ctx);\n if (projectResponse) {\n const { project: projectSaved } = await local.retrieve();\n return projectSaved;\n }\n } catch (e: any) {\n ctx.logger.error('An error occurred while deploying the project. Please try again later.');\n ctx.logger.debug(e);\n process.exit(1);\n }\n }\n return project;\n}\n\nasync function getConfig({\n ctx,\n cloudApiService,\n}: {\n ctx: CLIContext;\n cloudApiService: CloudApiService;\n}): Promise<CloudCliConfig | null> {\n try {\n const { data: cliConfig } = await cloudApiService.config();\n return cliConfig;\n } catch (e) {\n ctx.logger.debug('Failed to get cli config', e);\n return null;\n }\n}\n\nfunction validateEnvironment(ctx: CLIContext, environment: string, environments: string[]): void {\n if (!environments.includes(environment)) {\n ctx.logger.error(`Environment ${environment} does not exist.`);\n process.exit(1);\n }\n}\n\nasync function getTargetEnvironment(\n ctx: CLIContext,\n opts: CmdOptions,\n project: Omit<ProjectInfo, 'id'>,\n environments: string[]\n): Promise<string> {\n if (opts.env) {\n validateEnvironment(ctx, opts.env, environments);\n return opts.env;\n }\n\n if (project.targetEnvironment) {\n return project.targetEnvironment;\n }\n\n if (environments.length > 1) {\n return promptForEnvironment(environments);\n }\n\n return environments[0];\n}\n\nfunction hasPendingOrLiveDeployment(\n environments: EnvironmentDetails[],\n targetEnvironment: string\n): boolean {\n const environment = environments.find((env) => env.name === targetEnvironment);\n if (!environment) {\n throw new Error(`Environment details ${targetEnvironment} not found.`);\n }\n return environment.hasPendingDeployment || environment.hasLiveDeployment || false;\n}\n\nexport default async (ctx: CLIContext, opts: CmdOptions) => {\n const { getValidToken } = await tokenServiceFactory(ctx);\n const token = await getValidToken(ctx, promptLogin);\n if (!token) {\n return;\n }\n\n const project = await getProject(ctx);\n if (!project) {\n process.exit(1);\n }\n\n const cloudApiService = await cloudApiFactory(ctx, token);\n let projectData;\n let environments: string[];\n let environmentsDetails: EnvironmentDetails[];\n\n try {\n const {\n data: { data, metadata },\n } = await cloudApiService.getProject({ name: project.name });\n projectData = data;\n environments = projectData.environments;\n environmentsDetails = projectData.environmentsDetails;\n const isProjectSuspended = projectData.suspendedAt;\n\n if (isProjectSuspended) {\n ctx.logger.log(\n '\\n Oops! This project has been suspended. \\n\\n Please reactivate it from the dashboard to continue deploying: '\n );\n ctx.logger.log(chalk.underline(`${metadata.dashboardUrls.project}`));\n return;\n }\n } catch (e: Error | unknown) {\n if (e instanceof AxiosError && e.response?.data) {\n if (e.response.status === 404) {\n ctx.logger.warn(\n `The project associated with this folder does not exist in Strapi Cloud. \\nPlease link your local project to an existing Strapi Cloud project using the ${chalk.cyan(\n 'link'\n )} command before deploying.`\n );\n } else {\n ctx.logger.error(e.response.data);\n }\n } else {\n ctx.logger.error(\n \"An error occurred while retrieving the project's information. Please try again later.\"\n );\n }\n ctx.logger.debug(e);\n return;\n }\n\n await trackEvent(ctx, cloudApiService, 'willDeployWithCLI', {\n projectInternalName: project.name,\n });\n\n const notificationService = notificationServiceFactory(ctx);\n const buildLogsService = buildLogsServiceFactory(ctx);\n\n const cliConfig = await getConfig({ ctx, cloudApiService });\n if (!cliConfig) {\n ctx.logger.error(\n 'An error occurred while retrieving data from Strapi Cloud. Please check your network or try again later.'\n );\n return;\n }\n\n let maxSize: number = parseInt(cliConfig.maxProjectFileSize, 10);\n if (Number.isNaN(maxSize)) {\n ctx.logger.debug(\n 'An error occurred while parsing the maxProjectFileSize. Using default value.'\n );\n maxSize = 100000000;\n }\n\n project.targetEnvironment = await getTargetEnvironment(ctx, opts, project, environments);\n\n if (!opts.force) {\n const shouldDisplayWarning = hasPendingOrLiveDeployment(\n environmentsDetails,\n project.targetEnvironment\n );\n if (shouldDisplayWarning) {\n ctx.logger.log(boxen(cliConfig.projectDeployment.confirmationText, boxenOptions));\n const { confirm } = await inquirer.prompt([\n {\n type: 'confirm',\n name: 'confirm',\n message: `Do you want to proceed with deployment to ${chalk.cyan(projectData.displayName)} on ${chalk.cyan(project.targetEnvironment)} environment?`,\n },\n ]);\n if (!confirm) {\n process.exit(1);\n }\n }\n }\n\n const buildId = await upload(ctx, project, cliConfig, token, maxSize);\n\n if (!buildId) {\n return;\n }\n\n let notifications: ReturnType<typeof notificationService> | null = null;\n\n try {\n ctx.logger.log(\n `∷ Deploying project to ${chalk.cyan(project.targetEnvironment ?? `production`)} environment...`\n );\n\n notifications = notificationService(\n `${apiConfig.apiBaseUrl}/${VERSION}/notifications`,\n token,\n cliConfig\n );\n\n await buildLogsService(`${apiConfig.apiBaseUrl}/${VERSION}/logs/${buildId}`, token, cliConfig);\n const dashboardUrlLine =\n chalk.cyan(' → ') +\n chalk.cyan.underline(`${apiConfig.dashboardBaseUrl}/projects/${project.name}/deployments`);\n ctx.logger.log(\n boxen(`Project and deployment logs ready at:\\n${dashboardUrlLine}`, {\n padding: 1,\n margin: 1,\n borderStyle: 'round',\n borderColor: 'white',\n titleAlignment: 'left',\n })\n );\n } catch (e: Error | unknown) {\n ctx.logger.debug(e);\n if (e instanceof Error) {\n ctx.logger.error(e.message);\n } else {\n ctx.logger.error('An error occurred while deploying the project. Please try again later.');\n }\n } finally {\n if (notifications) {\n notifications.close();\n }\n }\n};\n"],"names":["boxenOptions","padding","margin","align","borderColor","borderStyle","QUIT_OPTION","promptForEnvironment","environments","choices","map","env","name","value","selectedEnvironment","inquirer","prompt","type","message","chalk","grey","process","exit","upload","ctx","project","cliConfig","token","maxProjectFileSize","cloudApi","cloudApiFactory","storagePath","getTmpStoragePath","projectFolder","path","resolve","cwd","packageJson","loadPkg","logger","error","compressSpinner","spinner","start","indent","hashname","crypto","createHash","update","digest","compressedFilename","debug","compressFilesToTar","succeed","e","fail","tarFilePath","fileStats","fse","stat","size","log","remove","progressBar","data","deploy","filePath","onUploadProgress","progressEvent","total","percentage","Math","round","loaded","stop","green","bold","build_id","handleUploadError","response","status","environmentErrorMessage","environmentErrorMessageFactory","projectName","firstLine","projectDeployment","errors","environmentNotReady","secondLine","environmentCreationErrorFactory","getProject","local","projectResponse","createProjectAction","projectSaved","getConfig","cloudApiService","config","validateEnvironment","environment","includes","getTargetEnvironment","opts","targetEnvironment","length","hasPendingOrLiveDeployment","find","Error","hasPendingDeployment","hasLiveDeployment","getValidToken","tokenServiceFactory","promptLogin","projectData","environmentsDetails","metadata","isProjectSuspended","suspendedAt","underline","dashboardUrls","AxiosError","warn","cyan","trackEvent","projectInternalName","notificationService","notificationServiceFactory","buildLogsService","buildLogsServiceFactory","maxSize","parseInt","Number","isNaN","force","shouldDisplayWarning","boxen","confirmationText","confirm","displayName","buildId","notifications","apiConfig","apiBaseUrl","VERSION","dashboardUrlLine","dashboardBaseUrl","titleAlignment","close"],"mappings":"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"}
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var name = "@strapi/cloud-cli";
6
- var version = "5.18.1";
6
+ var version = "5.20.0";
7
7
  var description = "Commands to interact with the Strapi Cloud";
8
8
  var keywords = [
9
9
  "strapi",
@@ -50,7 +50,7 @@ var scripts = {
50
50
  watch: "run -T rollup -c -w"
51
51
  };
52
52
  var dependencies = {
53
- "@strapi/utils": "5.18.1",
53
+ "@strapi/utils": "5.20.0",
54
54
  axios: "1.8.4",
55
55
  boxen: "5.1.2",
56
56
  chalk: "4.1.2",
@@ -75,8 +75,8 @@ var devDependencies = {
75
75
  "@types/cli-progress": "3.11.5",
76
76
  "@types/eventsource": "1.1.15",
77
77
  "@types/lodash": "^4.14.191",
78
- "eslint-config-custom": "5.18.1",
79
- tsconfig: "5.18.1"
78
+ "eslint-config-custom": "5.20.0",
79
+ tsconfig: "5.20.0"
80
80
  };
81
81
  var engines = {
82
82
  node: ">=18.0.0 <=22.x.x",
@@ -1,5 +1,5 @@
1
1
  var name = "@strapi/cloud-cli";
2
- var version = "5.18.1";
2
+ var version = "5.20.0";
3
3
  var description = "Commands to interact with the Strapi Cloud";
4
4
  var keywords = [
5
5
  "strapi",
@@ -46,7 +46,7 @@ var scripts = {
46
46
  watch: "run -T rollup -c -w"
47
47
  };
48
48
  var dependencies = {
49
- "@strapi/utils": "5.18.1",
49
+ "@strapi/utils": "5.20.0",
50
50
  axios: "1.8.4",
51
51
  boxen: "5.1.2",
52
52
  chalk: "4.1.2",
@@ -71,8 +71,8 @@ var devDependencies = {
71
71
  "@types/cli-progress": "3.11.5",
72
72
  "@types/eventsource": "1.1.15",
73
73
  "@types/lodash": "^4.14.191",
74
- "eslint-config-custom": "5.18.1",
75
- tsconfig: "5.18.1"
74
+ "eslint-config-custom": "5.20.0",
75
+ tsconfig: "5.20.0"
76
76
  };
77
77
  var engines = {
78
78
  node: ">=18.0.0 <=22.x.x",
@@ -1 +1 @@
1
- {"version":3,"file":"build-logs.d.ts","sourceRoot":"","sources":["../../src/services/build-logs.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,KAAK,cAAc,EAAE,MAAM,UAAU,CAAC;AAE3D,QAAA,MAAM,uBAAuB,eAAgB,UAAU,WAClC,MAAM,SAAS,MAAM,aAAa,cAAc,qBAqEpE,CAAC;AAEF,OAAO,EAAE,uBAAuB,EAAE,CAAC"}
1
+ {"version":3,"file":"build-logs.d.ts","sourceRoot":"","sources":["../../src/services/build-logs.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,KAAK,cAAc,EAAE,MAAM,UAAU,CAAC;AAE3D,QAAA,MAAM,uBAAuB,eAAgB,UAAU,WAClC,MAAM,SAAS,MAAM,aAAa,cAAc,qBAuEpE,CAAC;AAEF,OAAO,EAAE,uBAAuB,EAAE,CAAC"}
@@ -10,8 +10,8 @@ const buildLogsServiceFactory = ({ logger })=>{
10
10
  let timeoutId = null;
11
11
  let retries = 0;
12
12
  const connect = (url)=>{
13
- const spinner = logger.spinner('Connecting to server to get build logs');
14
- spinner.start();
13
+ const logsSpinner = logger.spinner('Connecting to the server to get build logs\n').start();
14
+ logsSpinner.indent = 1;
15
15
  const es = new EventSource(`${url}`, {
16
16
  headers: {
17
17
  Authorization: `Bearer ${token}`
@@ -25,8 +25,8 @@ const buildLogsServiceFactory = ({ logger })=>{
25
25
  const resetTimeout = ()=>{
26
26
  clearExistingTimeout();
27
27
  timeoutId = setTimeout(()=>{
28
- if (spinner.isSpinning) {
29
- spinner.fail('We were unable to connect to the server to get build logs at this time. This could be due to a temporary issue.');
28
+ if (logsSpinner.isSpinning) {
29
+ logsSpinner.fail('We were unable to connect to the server to get build logs at this time. This could be due to a temporary issue.');
30
30
  }
31
31
  es.close();
32
32
  reject(new Error('Connection timed out'));
@@ -41,8 +41,8 @@ const buildLogsServiceFactory = ({ logger })=>{
41
41
  resolve(null);
42
42
  });
43
43
  es.addEventListener('log', (event)=>{
44
- if (spinner.isSpinning) {
45
- spinner.succeed();
44
+ if (logsSpinner.isSpinning) {
45
+ logsSpinner.succeed();
46
46
  }
47
47
  resetTimeout();
48
48
  const data = JSON.parse(event.data);
@@ -51,7 +51,7 @@ const buildLogsServiceFactory = ({ logger })=>{
51
51
  es.onerror = async ()=>{
52
52
  retries += 1;
53
53
  if (retries > MAX_RETRIES) {
54
- spinner.fail('We were unable to connect to the server to get build logs at this time.');
54
+ logsSpinner.fail('We were unable to connect to the server to get build logs at this time.');
55
55
  es.close();
56
56
  clearExistingTimeout(); // Important to clear the event loop from remaining timeout - avoid to wait for nothing while the timeout is running
57
57
  reject(new Error('Max retries reached'));
@@ -1 +1 @@
1
- {"version":3,"file":"build-logs.js","sources":["../../src/services/build-logs.ts"],"sourcesContent":["import EventSource from 'eventsource';\nimport { CLIContext, type CloudCliConfig } from '../types';\n\nconst buildLogsServiceFactory = ({ logger }: CLIContext) => {\n return async (url: string, token: string, cliConfig: CloudCliConfig) => {\n const CONN_TIMEOUT = Number(cliConfig.buildLogsConnectionTimeout);\n const MAX_RETRIES = Number(cliConfig.buildLogsMaxRetries);\n\n return new Promise((resolve, reject) => {\n let timeoutId: NodeJS.Timeout | null = null;\n let retries = 0;\n\n const connect = (url: string) => {\n const spinner = logger.spinner('Connecting to server to get build logs');\n spinner.start();\n const es = new EventSource(`${url}`, {\n headers: {\n Authorization: `Bearer ${token}`,\n },\n });\n\n const clearExistingTimeout = () => {\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n };\n\n const resetTimeout = () => {\n clearExistingTimeout();\n timeoutId = setTimeout(() => {\n if (spinner.isSpinning) {\n spinner.fail(\n 'We were unable to connect to the server to get build logs at this time. This could be due to a temporary issue.'\n );\n }\n es.close();\n reject(new Error('Connection timed out'));\n }, CONN_TIMEOUT);\n };\n\n es.onopen = resetTimeout;\n\n es.addEventListener('finished', (event) => {\n const data = JSON.parse(event.data);\n logger.log(data.msg);\n es.close();\n clearExistingTimeout();\n resolve(null);\n });\n\n es.addEventListener('log', (event) => {\n if (spinner.isSpinning) {\n spinner.succeed();\n }\n resetTimeout();\n const data = JSON.parse(event.data);\n logger.log(data.msg);\n });\n\n es.onerror = async () => {\n retries += 1;\n if (retries > MAX_RETRIES) {\n spinner.fail('We were unable to connect to the server to get build logs at this time.');\n es.close();\n clearExistingTimeout(); // Important to clear the event loop from remaining timeout - avoid to wait for nothing while the timeout is running\n reject(new Error('Max retries reached'));\n }\n };\n };\n\n connect(url);\n });\n };\n};\n\nexport { buildLogsServiceFactory };\n"],"names":["buildLogsServiceFactory","logger","url","token","cliConfig","CONN_TIMEOUT","Number","buildLogsConnectionTimeout","MAX_RETRIES","buildLogsMaxRetries","Promise","resolve","reject","timeoutId","retries","connect","spinner","start","es","EventSource","headers","Authorization","clearExistingTimeout","clearTimeout","resetTimeout","setTimeout","isSpinning","fail","close","Error","onopen","addEventListener","event","data","JSON","parse","log","msg","succeed","onerror"],"mappings":"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"}
1
+ {"version":3,"file":"build-logs.js","sources":["../../src/services/build-logs.ts"],"sourcesContent":["import EventSource from 'eventsource';\nimport { CLIContext, type CloudCliConfig } from '../types';\n\nconst buildLogsServiceFactory = ({ logger }: CLIContext) => {\n return async (url: string, token: string, cliConfig: CloudCliConfig) => {\n const CONN_TIMEOUT = Number(cliConfig.buildLogsConnectionTimeout);\n const MAX_RETRIES = Number(cliConfig.buildLogsMaxRetries);\n\n return new Promise((resolve, reject) => {\n let timeoutId: NodeJS.Timeout | null = null;\n let retries = 0;\n\n const connect = (url: string) => {\n const logsSpinner = logger.spinner('Connecting to the server to get build logs\\n').start();\n logsSpinner.indent = 1;\n const es = new EventSource(`${url}`, {\n headers: {\n Authorization: `Bearer ${token}`,\n },\n });\n\n const clearExistingTimeout = () => {\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n };\n\n const resetTimeout = () => {\n clearExistingTimeout();\n timeoutId = setTimeout(() => {\n if (logsSpinner.isSpinning) {\n logsSpinner.fail(\n 'We were unable to connect to the server to get build logs at this time. This could be due to a temporary issue.'\n );\n }\n es.close();\n reject(new Error('Connection timed out'));\n }, CONN_TIMEOUT);\n };\n\n es.onopen = resetTimeout;\n\n es.addEventListener('finished', (event) => {\n const data = JSON.parse(event.data);\n logger.log(data.msg);\n es.close();\n clearExistingTimeout();\n resolve(null);\n });\n\n es.addEventListener('log', (event) => {\n if (logsSpinner.isSpinning) {\n logsSpinner.succeed();\n }\n resetTimeout();\n const data = JSON.parse(event.data);\n logger.log(data.msg);\n });\n\n es.onerror = async () => {\n retries += 1;\n if (retries > MAX_RETRIES) {\n logsSpinner.fail(\n 'We were unable to connect to the server to get build logs at this time.'\n );\n es.close();\n clearExistingTimeout(); // Important to clear the event loop from remaining timeout - avoid to wait for nothing while the timeout is running\n reject(new Error('Max retries reached'));\n }\n };\n };\n\n connect(url);\n });\n };\n};\n\nexport { buildLogsServiceFactory };\n"],"names":["buildLogsServiceFactory","logger","url","token","cliConfig","CONN_TIMEOUT","Number","buildLogsConnectionTimeout","MAX_RETRIES","buildLogsMaxRetries","Promise","resolve","reject","timeoutId","retries","connect","logsSpinner","spinner","start","indent","es","EventSource","headers","Authorization","clearExistingTimeout","clearTimeout","resetTimeout","setTimeout","isSpinning","fail","close","Error","onopen","addEventListener","event","data","JSON","parse","log","msg","succeed","onerror"],"mappings":"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"}
@@ -8,8 +8,8 @@ const buildLogsServiceFactory = ({ logger })=>{
8
8
  let timeoutId = null;
9
9
  let retries = 0;
10
10
  const connect = (url)=>{
11
- const spinner = logger.spinner('Connecting to server to get build logs');
12
- spinner.start();
11
+ const logsSpinner = logger.spinner('Connecting to the server to get build logs\n').start();
12
+ logsSpinner.indent = 1;
13
13
  const es = new EventSource(`${url}`, {
14
14
  headers: {
15
15
  Authorization: `Bearer ${token}`
@@ -23,8 +23,8 @@ const buildLogsServiceFactory = ({ logger })=>{
23
23
  const resetTimeout = ()=>{
24
24
  clearExistingTimeout();
25
25
  timeoutId = setTimeout(()=>{
26
- if (spinner.isSpinning) {
27
- spinner.fail('We were unable to connect to the server to get build logs at this time. This could be due to a temporary issue.');
26
+ if (logsSpinner.isSpinning) {
27
+ logsSpinner.fail('We were unable to connect to the server to get build logs at this time. This could be due to a temporary issue.');
28
28
  }
29
29
  es.close();
30
30
  reject(new Error('Connection timed out'));
@@ -39,8 +39,8 @@ const buildLogsServiceFactory = ({ logger })=>{
39
39
  resolve(null);
40
40
  });
41
41
  es.addEventListener('log', (event)=>{
42
- if (spinner.isSpinning) {
43
- spinner.succeed();
42
+ if (logsSpinner.isSpinning) {
43
+ logsSpinner.succeed();
44
44
  }
45
45
  resetTimeout();
46
46
  const data = JSON.parse(event.data);
@@ -49,7 +49,7 @@ const buildLogsServiceFactory = ({ logger })=>{
49
49
  es.onerror = async ()=>{
50
50
  retries += 1;
51
51
  if (retries > MAX_RETRIES) {
52
- spinner.fail('We were unable to connect to the server to get build logs at this time.');
52
+ logsSpinner.fail('We were unable to connect to the server to get build logs at this time.');
53
53
  es.close();
54
54
  clearExistingTimeout(); // Important to clear the event loop from remaining timeout - avoid to wait for nothing while the timeout is running
55
55
  reject(new Error('Max retries reached'));
@@ -1 +1 @@
1
- {"version":3,"file":"build-logs.mjs","sources":["../../src/services/build-logs.ts"],"sourcesContent":["import EventSource from 'eventsource';\nimport { CLIContext, type CloudCliConfig } from '../types';\n\nconst buildLogsServiceFactory = ({ logger }: CLIContext) => {\n return async (url: string, token: string, cliConfig: CloudCliConfig) => {\n const CONN_TIMEOUT = Number(cliConfig.buildLogsConnectionTimeout);\n const MAX_RETRIES = Number(cliConfig.buildLogsMaxRetries);\n\n return new Promise((resolve, reject) => {\n let timeoutId: NodeJS.Timeout | null = null;\n let retries = 0;\n\n const connect = (url: string) => {\n const spinner = logger.spinner('Connecting to server to get build logs');\n spinner.start();\n const es = new EventSource(`${url}`, {\n headers: {\n Authorization: `Bearer ${token}`,\n },\n });\n\n const clearExistingTimeout = () => {\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n };\n\n const resetTimeout = () => {\n clearExistingTimeout();\n timeoutId = setTimeout(() => {\n if (spinner.isSpinning) {\n spinner.fail(\n 'We were unable to connect to the server to get build logs at this time. This could be due to a temporary issue.'\n );\n }\n es.close();\n reject(new Error('Connection timed out'));\n }, CONN_TIMEOUT);\n };\n\n es.onopen = resetTimeout;\n\n es.addEventListener('finished', (event) => {\n const data = JSON.parse(event.data);\n logger.log(data.msg);\n es.close();\n clearExistingTimeout();\n resolve(null);\n });\n\n es.addEventListener('log', (event) => {\n if (spinner.isSpinning) {\n spinner.succeed();\n }\n resetTimeout();\n const data = JSON.parse(event.data);\n logger.log(data.msg);\n });\n\n es.onerror = async () => {\n retries += 1;\n if (retries > MAX_RETRIES) {\n spinner.fail('We were unable to connect to the server to get build logs at this time.');\n es.close();\n clearExistingTimeout(); // Important to clear the event loop from remaining timeout - avoid to wait for nothing while the timeout is running\n reject(new Error('Max retries reached'));\n }\n };\n };\n\n connect(url);\n });\n };\n};\n\nexport { buildLogsServiceFactory };\n"],"names":["buildLogsServiceFactory","logger","url","token","cliConfig","CONN_TIMEOUT","Number","buildLogsConnectionTimeout","MAX_RETRIES","buildLogsMaxRetries","Promise","resolve","reject","timeoutId","retries","connect","spinner","start","es","EventSource","headers","Authorization","clearExistingTimeout","clearTimeout","resetTimeout","setTimeout","isSpinning","fail","close","Error","onopen","addEventListener","event","data","JSON","parse","log","msg","succeed","onerror"],"mappings":"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"}
1
+ {"version":3,"file":"build-logs.mjs","sources":["../../src/services/build-logs.ts"],"sourcesContent":["import EventSource from 'eventsource';\nimport { CLIContext, type CloudCliConfig } from '../types';\n\nconst buildLogsServiceFactory = ({ logger }: CLIContext) => {\n return async (url: string, token: string, cliConfig: CloudCliConfig) => {\n const CONN_TIMEOUT = Number(cliConfig.buildLogsConnectionTimeout);\n const MAX_RETRIES = Number(cliConfig.buildLogsMaxRetries);\n\n return new Promise((resolve, reject) => {\n let timeoutId: NodeJS.Timeout | null = null;\n let retries = 0;\n\n const connect = (url: string) => {\n const logsSpinner = logger.spinner('Connecting to the server to get build logs\\n').start();\n logsSpinner.indent = 1;\n const es = new EventSource(`${url}`, {\n headers: {\n Authorization: `Bearer ${token}`,\n },\n });\n\n const clearExistingTimeout = () => {\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n };\n\n const resetTimeout = () => {\n clearExistingTimeout();\n timeoutId = setTimeout(() => {\n if (logsSpinner.isSpinning) {\n logsSpinner.fail(\n 'We were unable to connect to the server to get build logs at this time. This could be due to a temporary issue.'\n );\n }\n es.close();\n reject(new Error('Connection timed out'));\n }, CONN_TIMEOUT);\n };\n\n es.onopen = resetTimeout;\n\n es.addEventListener('finished', (event) => {\n const data = JSON.parse(event.data);\n logger.log(data.msg);\n es.close();\n clearExistingTimeout();\n resolve(null);\n });\n\n es.addEventListener('log', (event) => {\n if (logsSpinner.isSpinning) {\n logsSpinner.succeed();\n }\n resetTimeout();\n const data = JSON.parse(event.data);\n logger.log(data.msg);\n });\n\n es.onerror = async () => {\n retries += 1;\n if (retries > MAX_RETRIES) {\n logsSpinner.fail(\n 'We were unable to connect to the server to get build logs at this time.'\n );\n es.close();\n clearExistingTimeout(); // Important to clear the event loop from remaining timeout - avoid to wait for nothing while the timeout is running\n reject(new Error('Max retries reached'));\n }\n };\n };\n\n connect(url);\n });\n };\n};\n\nexport { buildLogsServiceFactory };\n"],"names":["buildLogsServiceFactory","logger","url","token","cliConfig","CONN_TIMEOUT","Number","buildLogsConnectionTimeout","MAX_RETRIES","buildLogsMaxRetries","Promise","resolve","reject","timeoutId","retries","connect","logsSpinner","spinner","start","indent","es","EventSource","headers","Authorization","clearExistingTimeout","clearTimeout","resetTimeout","setTimeout","isSpinning","fail","close","Error","onopen","addEventListener","event","data","JSON","parse","log","msg","succeed","onerror"],"mappings":";;AAGA,MAAMA,uBAA0B,GAAA,CAAC,EAAEC,MAAM,EAAc,GAAA;IACrD,OAAO,OAAOC,KAAaC,KAAeC,EAAAA,SAAAA,GAAAA;QACxC,MAAMC,YAAAA,GAAeC,MAAOF,CAAAA,SAAAA,CAAUG,0BAA0B,CAAA;QAChE,MAAMC,WAAAA,GAAcF,MAAOF,CAAAA,SAAAA,CAAUK,mBAAmB,CAAA;QAExD,OAAO,IAAIC,OAAQ,CAAA,CAACC,OAASC,EAAAA,MAAAA,GAAAA;AAC3B,YAAA,IAAIC,SAAmC,GAAA,IAAA;AACvC,YAAA,IAAIC,OAAU,GAAA,CAAA;AAEd,YAAA,MAAMC,UAAU,CAACb,GAAAA,GAAAA;AACf,gBAAA,MAAMc,WAAcf,GAAAA,MAAAA,CAAOgB,OAAO,CAAC,gDAAgDC,KAAK,EAAA;AACxFF,gBAAAA,WAAAA,CAAYG,MAAM,GAAG,CAAA;AACrB,gBAAA,MAAMC,KAAK,IAAIC,WAAAA,CAAY,CAAC,EAAEnB,GAAAA,CAAI,CAAC,EAAE;oBACnCoB,OAAS,EAAA;AACPC,wBAAAA,aAAAA,EAAe,CAAC,OAAO,EAAEpB,KAAAA,CAAM;AACjC;AACF,iBAAA,CAAA;AAEA,gBAAA,MAAMqB,oBAAuB,GAAA,IAAA;AAC3B,oBAAA,IAAIX,SAAW,EAAA;wBACbY,YAAaZ,CAAAA,SAAAA,CAAAA;AACf;AACF,iBAAA;AAEA,gBAAA,MAAMa,YAAe,GAAA,IAAA;AACnBF,oBAAAA,oBAAAA,EAAAA;AACAX,oBAAAA,SAAAA,GAAYc,UAAW,CAAA,IAAA;wBACrB,IAAIX,WAAAA,CAAYY,UAAU,EAAE;AAC1BZ,4BAAAA,WAAAA,CAAYa,IAAI,CACd,iHAAA,CAAA;AAEJ;AACAT,wBAAAA,EAAAA,CAAGU,KAAK,EAAA;AACRlB,wBAAAA,MAAAA,CAAO,IAAImB,KAAM,CAAA,sBAAA,CAAA,CAAA;qBAChB1B,EAAAA,YAAAA,CAAAA;AACL,iBAAA;AAEAe,gBAAAA,EAAAA,CAAGY,MAAM,GAAGN,YAAAA;gBAEZN,EAAGa,CAAAA,gBAAgB,CAAC,UAAA,EAAY,CAACC,KAAAA,GAAAA;AAC/B,oBAAA,MAAMC,IAAOC,GAAAA,IAAAA,CAAKC,KAAK,CAACH,MAAMC,IAAI,CAAA;oBAClClC,MAAOqC,CAAAA,GAAG,CAACH,IAAAA,CAAKI,GAAG,CAAA;AACnBnB,oBAAAA,EAAAA,CAAGU,KAAK,EAAA;AACRN,oBAAAA,oBAAAA,EAAAA;oBACAb,OAAQ,CAAA,IAAA,CAAA;AACV,iBAAA,CAAA;gBAEAS,EAAGa,CAAAA,gBAAgB,CAAC,KAAA,EAAO,CAACC,KAAAA,GAAAA;oBAC1B,IAAIlB,WAAAA,CAAYY,UAAU,EAAE;AAC1BZ,wBAAAA,WAAAA,CAAYwB,OAAO,EAAA;AACrB;AACAd,oBAAAA,YAAAA,EAAAA;AACA,oBAAA,MAAMS,IAAOC,GAAAA,IAAAA,CAAKC,KAAK,CAACH,MAAMC,IAAI,CAAA;oBAClClC,MAAOqC,CAAAA,GAAG,CAACH,IAAAA,CAAKI,GAAG,CAAA;AACrB,iBAAA,CAAA;AAEAnB,gBAAAA,EAAAA,CAAGqB,OAAO,GAAG,UAAA;oBACX3B,OAAW,IAAA,CAAA;AACX,oBAAA,IAAIA,UAAUN,WAAa,EAAA;AACzBQ,wBAAAA,WAAAA,CAAYa,IAAI,CACd,yEAAA,CAAA;AAEFT,wBAAAA,EAAAA,CAAGU,KAAK,EAAA;AACRN,wBAAAA,oBAAAA,EAAAA,CAAAA;AACAZ,wBAAAA,MAAAA,CAAO,IAAImB,KAAM,CAAA,qBAAA,CAAA,CAAA;AACnB;AACF,iBAAA;AACF,aAAA;YAEAhB,OAAQb,CAAAA,GAAAA,CAAAA;AACV,SAAA,CAAA;AACF,KAAA;AACF;;;;"}
@@ -1,6 +1,6 @@
1
1
  import { type AxiosResponse } from 'axios';
2
2
  import type { CLIContext, CloudCliConfig, TrackPayload } from '../types';
3
- export declare const VERSION = "v2";
3
+ export declare const VERSION = "v3";
4
4
  export type ProjectInfo = {
5
5
  id: string;
6
6
  name: string;
@@ -61,6 +61,11 @@ export type GetProjectResponse = {
61
61
  export type CreateTrialResponse = {
62
62
  licenseKey: string;
63
63
  };
64
+ export type CreateProjectResponse = {
65
+ name: string;
66
+ environmentInternalName: string;
67
+ url?: string;
68
+ };
64
69
  export interface CloudApiService {
65
70
  deploy(deployInput: {
66
71
  filePath: string;
@@ -75,7 +80,7 @@ export interface CloudApiService {
75
80
  }) => void;
76
81
  }): Promise<AxiosResponse<DeployResponse>>;
77
82
  createProject(createProjectInput: ProjectInput): Promise<{
78
- data: ProjectInput;
83
+ data: CreateProjectResponse;
79
84
  status: number;
80
85
  }>;
81
86
  getUserInfo(): Promise<AxiosResponse>;
@@ -1 +1 @@
1
- {"version":3,"file":"cli-api.d.ts","sourceRoot":"","sources":["../../src/services/cli-api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli-api.d.ts","sourceRoot":"","sources":["../../src/services/cli-api.ts"],"names":[],"mappings":"AAAA,OAAc,EAAE,KAAK,aAAa,EAAE,MAAM,OAAO,CAAC;AAIlD,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAKzE,eAAO,MAAM,OAAO,OAAO,CAAC;AAE5B,MAAM,MAAM,WAAW,GAAG;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEtD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,iBAAiB,EAAE,OAAO,CAAC;IAC3B,oBAAoB,EAAE,OAAO,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;AAEnD,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,IAAI,EAAE;QACJ,IAAI,EAAE,eAAe,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;KACjD,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,IAAI,EAAE;QACJ,IAAI,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;KAC7C,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACzC,IAAI,EAAE;QACJ,IAAI,EAAE,kBAAkB,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;KACpD,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE;QACJ,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,OAAO,EAAE,OAAO,CAAC;QACjB,YAAY,EAAE,MAAM,EAAE,CAAC;QACvB,mBAAmB,EAAE,kBAAkB,EAAE,CAAC;KAC3C,CAAC;IACF,QAAQ,EAAE;QACR,aAAa,EAAE;YACb,OAAO,EAAE,MAAM,CAAC;YAChB,WAAW,EAAE,MAAM,CAAC;SACrB,CAAC;KACH,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,uBAAuB,EAAE,MAAM,CAAC;IAChC,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,WAAW,eAAe;IAC9B,MAAM,CACJ,WAAW,EAAE;QACX,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,iBAAiB,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;KACvD,EACD,EACE,gBAAgB,GACjB,EAAE;QACD,gBAAgB,EAAE,CAAC,aAAa,EAAE;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,KAAK,CAAC,EAAE,MAAM,CAAA;SAAE,KAAK,IAAI,CAAC;KAC/E,GACA,OAAO,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,CAAC;IAE1C,aAAa,CAAC,kBAAkB,EAAE,YAAY,GAAG,OAAO,CAAC;QACvD,IAAI,EAAE,qBAAqB,CAAC;QAC5B,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;IAEH,WAAW,IAAI,OAAO,CAAC,aAAa,CAAC,CAAC;IAEtC,MAAM,IAAI,OAAO,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,CAAC;IAEjD,YAAY,IAAI,OAAO,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC,CAAC;IAE7D,gBAAgB,IAAI,OAAO,CAAC,aAAa,CAAC,wBAAwB,CAAC,CAAC,CAAC;IAErE,gBAAgB,CAAC,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,aAAa,CAAC,wBAAwB,CAAC,CAAC,CAAC;IAE9F,oBAAoB,CAAC,OAAO,EAAE;QAC5B,IAAI,EAAE,MAAM,CAAC;KACd,GAAG,OAAO,CAAC,aAAa,CAAC,4BAA4B,CAAC,CAAC,CAAC;IAEzD,UAAU,CAAC,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAElF,WAAW,CAAC,gBAAgB,EAAE;QAC5B,aAAa,EAAE,MAAM,CAAC;KACvB,GAAG,OAAO,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAEhD,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;CAC5E;AAED,wBAAsB,eAAe,CACnC,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAA;CAAE,EAC5C,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,eAAe,CAAC,CAuL1B"}
@@ -7,7 +7,7 @@ var api = require('../config/api.js');
7
7
  var local = require('../config/local.js');
8
8
  var _package = require('../package.json.js');
9
9
 
10
- const VERSION = 'v2';
10
+ const VERSION = 'v3';
11
11
  async function cloudApiFactory({ logger }, token) {
12
12
  const localConfig = await local.getLocalConfig();
13
13
  const customHeaders = {
@@ -51,8 +51,7 @@ async function cloudApiFactory({ logger }, token) {
51
51
  data: {
52
52
  id: response.data.id,
53
53
  name: response.data.name,
54
- nodeVersion: response.data.nodeVersion,
55
- region: response.data.region
54
+ environmentInternalName: response.data.environmentInternalName
56
55
  },
57
56
  status: response.status
58
57
  };