@hubspot/cli 5.1.4-beta.3 → 5.1.4-beta.5

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 (66) hide show
  1. package/commands/accounts/clean.js +2 -2
  2. package/commands/accounts/info.js +1 -1
  3. package/commands/accounts/list.js +1 -4
  4. package/commands/auth.js +6 -2
  5. package/commands/cms/convertFields.js +2 -2
  6. package/commands/cms/lighthouseScore.js +3 -9
  7. package/commands/config/set/defaultMode.js +3 -3
  8. package/commands/create/api-sample.js +1 -0
  9. package/commands/create/website-theme.js +1 -0
  10. package/commands/customObject/schema/create.js +5 -2
  11. package/commands/customObject/schema/fetch.js +2 -2
  12. package/commands/customObject/schema/update.js +5 -2
  13. package/commands/feedback.js +1 -4
  14. package/commands/functions/deploy.js +1 -1
  15. package/commands/functions/list.js +1 -5
  16. package/commands/init.js +7 -3
  17. package/commands/list.js +1 -4
  18. package/commands/logs.js +1 -1
  19. package/commands/module/marketplace-validate.js +1 -1
  20. package/commands/project/dev.js +4 -7
  21. package/commands/project/listBuilds.js +1 -4
  22. package/commands/project/logs.js +5 -6
  23. package/commands/project/upload.js +2 -5
  24. package/commands/project/watch.js +2 -5
  25. package/commands/theme/marketplace-validate.js +1 -1
  26. package/commands/theme/preview.js +18 -2
  27. package/commands/upload.js +5 -2
  28. package/commands/watch.js +1 -1
  29. package/lang/en.lyaml +23 -6
  30. package/lib/DevServerManager.js +8 -3
  31. package/lib/LocalDevManager.js +9 -6
  32. package/lib/__tests__/commonOpts.js +10 -8
  33. package/lib/__tests__/serverlessLogs.js +2 -2
  34. package/lib/__tests__/validation.js +0 -1
  35. package/lib/commonOpts.js +14 -2
  36. package/lib/constants.js +84 -0
  37. package/lib/errorHandlers/apiErrors.js +4 -2
  38. package/lib/errorHandlers/overrideErrors.js +95 -0
  39. package/lib/filesystem.js +3 -1
  40. package/lib/links.js +4 -5
  41. package/lib/oauth.js +3 -1
  42. package/lib/process.js +4 -6
  43. package/lib/projectStructure.js +27 -18
  44. package/lib/projects.js +8 -46
  45. package/lib/projectsWatch.js +5 -3
  46. package/lib/prompts/createProjectPrompt.js +3 -4
  47. package/lib/prompts/feedbackPrompt.js +1 -1
  48. package/lib/prompts/personalAccessKeyPrompt.js +1 -1
  49. package/lib/prompts/projectAddPrompt.js +1 -1
  50. package/lib/sandboxCreate.js +1 -1
  51. package/lib/sandboxSync.js +1 -1
  52. package/lib/sandboxes.js +1 -1
  53. package/lib/serverlessLogs.js +2 -2
  54. package/lib/ui/git.js +28 -0
  55. package/lib/{ui.js → ui/index.js} +6 -5
  56. package/lib/ui/serverlessFunctionLogs.js +103 -0
  57. package/lib/{supportHyperlinks.js → ui/supportHyperlinks.js} +1 -1
  58. package/lib/{supportsColor.js → ui/supportsColor.js} +1 -1
  59. package/lib/ui/table.js +70 -0
  60. package/lib/upload.js +3 -1
  61. package/lib/usageTracking.js +3 -1
  62. package/lib/validation.js +10 -6
  63. package/package.json +6 -6
  64. /package/lib/{CliProgressMultibarManager.js → ui/CliProgressMultibarManager.js} +0 -0
  65. /package/lib/{SpinniesManager.js → ui/SpinniesManager.js} +0 -0
  66. /package/lib/{spinniesUtils.js → ui/spinniesUtils.js} +0 -0
@@ -15,8 +15,8 @@ const {
15
15
  } = require('../../lib/commonOpts');
16
16
  const { getAccountName } = require('../../lib/sandboxes');
17
17
  const { promptUser } = require('../../lib/prompts/promptUtils');
18
- const { getTableContents } = require('@hubspot/local-dev-lib/logging/table');
19
- const SpinniesManager = require('../../lib/SpinniesManager');
18
+ const { getTableContents } = require('../../lib/ui/table');
19
+ const SpinniesManager = require('../../lib/ui/SpinniesManager');
20
20
  const { getConfig, deleteAccount } = require('@hubspot/local-dev-lib/config');
21
21
  const {
22
22
  isSpecifiedHubSpotAuthError,
@@ -8,7 +8,7 @@ const {
8
8
  } = require('../../lib/commonOpts');
9
9
  const { loadAndValidateOptions } = require('../../lib/validation');
10
10
  const { i18n } = require('../../lib/lang');
11
- const { getTableContents } = require('@hubspot/local-dev-lib/logging/table');
11
+ const { getTableContents } = require('../../lib/ui/table');
12
12
 
13
13
  const i18nKey = 'cli.commands.accounts.subcommands.info';
14
14
  exports.describe = i18n(`${i18nKey}.describe`);
@@ -1,9 +1,6 @@
1
1
  const { logger } = require('@hubspot/local-dev-lib/logger');
2
2
  const { getConfig, getConfigPath } = require('@hubspot/local-dev-lib/config');
3
- const {
4
- getTableContents,
5
- getTableHeader,
6
- } = require('@hubspot/local-dev-lib/logging/table');
3
+ const { getTableContents, getTableHeader } = require('../../lib/ui/table');
7
4
 
8
5
  const {
9
6
  addConfigOptions,
package/commands/auth.js CHANGED
@@ -1,11 +1,15 @@
1
- const { checkAndWarnGitInclusion } = require('@hubspot/cli-lib');
1
+ const { checkAndWarnGitInclusion } = require('../lib/ui/git');
2
2
  const { logger } = require('@hubspot/local-dev-lib/logger');
3
3
  const {
4
4
  OAUTH_AUTH_METHOD,
5
5
  PERSONAL_ACCESS_KEY_AUTH_METHOD,
6
+ } = require('@hubspot/local-dev-lib/constants/auth');
7
+ const {
6
8
  ENVIRONMENTS,
9
+ } = require('@hubspot/local-dev-lib/constants/environments');
10
+ const {
7
11
  DEFAULT_HUBSPOT_CONFIG_YAML_FILE_NAME,
8
- } = require('@hubspot/cli-lib/lib/constants');
12
+ } = require('@hubspot/local-dev-lib/constants/config');
9
13
  const { i18n } = require('../lib/lang');
10
14
  const {
11
15
  getAccessToken,
@@ -9,7 +9,7 @@ const { i18n } = require('../../lib/lang');
9
9
  const {
10
10
  FieldsJs,
11
11
  isConvertableFieldJs,
12
- } = require('@hubspot/cli-lib/lib/handleFieldsJs');
12
+ } = require('@hubspot/local-dev-lib/cms/handleFieldsJs');
13
13
 
14
14
  const { trackConvertFieldsUsage } = require('../../lib/usageTracking');
15
15
  const { logErrorInstance } = require('../../lib/errorHandlers/standardErrors');
@@ -85,7 +85,7 @@ exports.handler = async options => {
85
85
  };
86
86
 
87
87
  exports.builder = yargs => {
88
- yargs.positional('src', {
88
+ yargs.option('src', {
89
89
  describe: i18n(`${i18nKey}.positionals.src.describe`),
90
90
  type: 'string',
91
91
  });
@@ -1,4 +1,4 @@
1
- const SpinniesManager = require('../../lib/SpinniesManager');
1
+ const SpinniesManager = require('../../lib/ui/SpinniesManager');
2
2
  const {
3
3
  addAccountOptions,
4
4
  addConfigOptions,
@@ -6,10 +6,7 @@ const {
6
6
  getAccountId,
7
7
  } = require('../../lib/commonOpts');
8
8
  const { logger } = require('@hubspot/local-dev-lib/logger');
9
- const {
10
- getTableContents,
11
- getTableHeader,
12
- } = require('@hubspot/local-dev-lib/logging/table');
9
+ const { getTableContents, getTableHeader } = require('../../lib/ui/table');
13
10
  const { loadAndValidateOptions } = require('../../lib/validation');
14
11
  const { promptUser } = require('../../lib/prompts/promptUtils');
15
12
  const { i18n } = require('../../lib/lang');
@@ -19,10 +16,7 @@ const {
19
16
  getLighthouseScoreStatus,
20
17
  getLighthouseScore,
21
18
  } = require('@hubspot/local-dev-lib/api/lighthouseScore');
22
- const {
23
- HUBSPOT_FOLDER,
24
- MARKETPLACE_FOLDER,
25
- } = require('@hubspot/cli-lib/lib/constants');
19
+ const { HUBSPOT_FOLDER, MARKETPLACE_FOLDER } = require('../../lib/constants');
26
20
  const { uiLink } = require('../../lib/ui');
27
21
  const { EXIT_CODES } = require('../../lib/enums/exitCodes');
28
22
 
@@ -1,6 +1,6 @@
1
1
  const { logger } = require('@hubspot/local-dev-lib/logger');
2
2
  const { updateDefaultMode } = require('@hubspot/local-dev-lib/config');
3
- const { Mode } = require('@hubspot/cli-lib');
3
+ const { MODE } = require('@hubspot/local-dev-lib/constants/files');
4
4
  const { commaSeparatedValues } = require('@hubspot/local-dev-lib/text');
5
5
  const { trackCommandUsage } = require('../../../lib/usageTracking');
6
6
  const { promptUser } = require('../../../lib/prompts/promptUtils');
@@ -8,7 +8,7 @@ const { i18n } = require('../../../lib/lang');
8
8
 
9
9
  const i18nKey = 'cli.commands.config.subcommands.set.options.defaultMode';
10
10
 
11
- const ALL_MODES = Object.values(Mode);
11
+ const ALL_MODES = Object.values(MODE);
12
12
 
13
13
  const selectMode = async () => {
14
14
  const { mode } = await promptUser([
@@ -19,7 +19,7 @@ const selectMode = async () => {
19
19
  pageSize: 20,
20
20
  message: i18n(`${i18nKey}.promptMessage`),
21
21
  choices: ALL_MODES,
22
- default: Mode.publish,
22
+ default: MODE.publish,
23
23
  },
24
24
  ]);
25
25
 
@@ -9,6 +9,7 @@ const path = require('path');
9
9
  const fs = require('fs-extra');
10
10
  const ora = require('ora');
11
11
  const { fetchJsonFromRepository } = require('@hubspot/cli-lib/github');
12
+ // TODO: Swap to local-dev-lib after swapping github utils dep
12
13
  const { GITHUB_RELEASE_TYPES } = require('@hubspot/cli-lib/lib/constants');
13
14
  const { cloneGitHubRepo } = require('@hubspot/cli-lib/github');
14
15
  const { i18n } = require('../../lib/lang');
@@ -1,4 +1,5 @@
1
1
  const { cloneGitHubRepo } = require('@hubspot/cli-lib/github');
2
+ // TODO: Swap to local-dev-lib after swapping github utils dep
2
3
  const { GITHUB_RELEASE_TYPES } = require('@hubspot/cli-lib/lib/constants');
3
4
  const { getIsInProject } = require('../../lib/projects');
4
5
 
@@ -11,7 +11,10 @@ const {
11
11
  getEnv,
12
12
  isConfigFlagEnabled,
13
13
  } = require('@hubspot/local-dev-lib/config');
14
- const { ENVIRONMENTS, ConfigFlags } = require('@hubspot/cli-lib/lib/constants');
14
+ const {
15
+ ENVIRONMENTS,
16
+ } = require('@hubspot/local-dev-lib/constants/environments');
17
+ const { CONFIG_FLAGS } = require('../../../lib/constants');
15
18
  const {
16
19
  createObjectSchema,
17
20
  } = require('@hubspot/local-dev-lib/api/customObjects');
@@ -44,7 +47,7 @@ exports.handler = async options => {
44
47
  }
45
48
 
46
49
  try {
47
- if (isConfigFlagEnabled(ConfigFlags.USE_CUSTOM_OBJECT_HUBFILE)) {
50
+ if (isConfigFlagEnabled(CONFIG_FLAGS.USE_CUSTOM_OBJECT_HUBFILE)) {
48
51
  await createSchemaFromHubFile(accountId, filePath);
49
52
  logger.success(
50
53
  i18n(`${i18nKey}.success.schemaCreated`, {
@@ -4,7 +4,7 @@ const { logger } = require('@hubspot/local-dev-lib/logger');
4
4
  const {
5
5
  logErrorInstance,
6
6
  } = require('../../../lib/errorHandlers/standardErrors');
7
- const { ConfigFlags } = require('@hubspot/cli-lib/lib/constants');
7
+ const { CONFIG_FLAGS } = require('../../../lib/constants');
8
8
  const {
9
9
  downloadSchema,
10
10
  getResolvedPath,
@@ -33,7 +33,7 @@ exports.handler = async options => {
33
33
  trackCommandUsage('custom-object-schema-fetch', null, accountId);
34
34
 
35
35
  try {
36
- if (isConfigFlagEnabled(ConfigFlags.USE_CUSTOM_OBJECT_HUBFILE)) {
36
+ if (isConfigFlagEnabled(CONFIG_FLAGS.USE_CUSTOM_OBJECT_HUBFILE)) {
37
37
  const fullpath = path.resolve(getCwd(), dest);
38
38
  await fetchSchema(accountId, name, fullpath);
39
39
  logger.success(
@@ -1,13 +1,16 @@
1
1
  const { logger } = require('@hubspot/local-dev-lib/logger');
2
2
  const { logApiErrorInstance } = require('../../../lib/errorHandlers/apiErrors');
3
3
  const { getAbsoluteFilePath } = require('@hubspot/local-dev-lib/path');
4
+ const {
5
+ ENVIRONMENTS,
6
+ } = require('@hubspot/local-dev-lib/constants/environments');
4
7
  const {
5
8
  checkAndConvertToJson,
6
9
  loadAndValidateOptions,
7
10
  } = require('../../../lib/validation');
8
11
  const { trackCommandUsage } = require('../../../lib/usageTracking');
9
12
  const { addTestingOptions, getAccountId } = require('../../../lib/commonOpts');
10
- const { ENVIRONMENTS, ConfigFlags } = require('@hubspot/cli-lib/lib/constants');
13
+ const { CONFIG_FLAGS } = require('../../../lib/constants');
11
14
  const {
12
15
  getEnv,
13
16
  isConfigFlagEnabled,
@@ -44,7 +47,7 @@ exports.handler = async options => {
44
47
  }
45
48
 
46
49
  try {
47
- if (isConfigFlagEnabled(ConfigFlags.USE_CUSTOM_OBJECT_HUBFILE)) {
50
+ if (isConfigFlagEnabled(CONFIG_FLAGS.USE_CUSTOM_OBJECT_HUBFILE)) {
48
51
  await updateSchemaFromHubFile(accountId, filePath);
49
52
  logger.success(
50
53
  i18n(`${i18nKey}.success.update`, {
@@ -1,10 +1,7 @@
1
1
  const open = require('open');
2
2
 
3
3
  const { i18n } = require('../lib/lang');
4
- const {
5
- FEEDBACK_OPTIONS,
6
- FEEDBACK_URLS,
7
- } = require('@hubspot/cli-lib/lib/constants');
4
+ const { FEEDBACK_OPTIONS, FEEDBACK_URLS } = require('../lib/constants');
8
5
  const { logger } = require('@hubspot/local-dev-lib/logger');
9
6
 
10
7
  const {
@@ -10,7 +10,7 @@ const {
10
10
  logApiErrorInstance,
11
11
  ApiErrorContext,
12
12
  } = require('../../lib/errorHandlers/apiErrors');
13
- const { POLLING_DELAY } = require('@hubspot/cli-lib/lib/constants');
13
+ const { POLLING_DELAY } = require('../../lib/constants');
14
14
  const { logger } = require('@hubspot/local-dev-lib/logger');
15
15
  const {
16
16
  buildPackage,
@@ -5,11 +5,7 @@ const {
5
5
  ApiErrorContext,
6
6
  } = require('../../lib/errorHandlers/apiErrors');
7
7
  const { getFunctionArrays } = require('../../lib/getFunctionArrays');
8
- const {
9
- getTableContents,
10
- getTableHeader,
11
- } = require('@hubspot/local-dev-lib/logging/table');
12
-
8
+ const { getTableContents, getTableHeader } = require('../../lib/ui/table');
13
9
  const {
14
10
  addConfigOptions,
15
11
  addAccountOptions,
package/commands/init.js CHANGED
@@ -16,11 +16,15 @@ const {
16
16
  debugErrorAndContext,
17
17
  } = require('../lib/errorHandlers/standardErrors');
18
18
  const {
19
- DEFAULT_HUBSPOT_CONFIG_YAML_FILE_NAME,
20
- PERSONAL_ACCESS_KEY_AUTH_METHOD,
21
19
  OAUTH_AUTH_METHOD,
20
+ PERSONAL_ACCESS_KEY_AUTH_METHOD,
21
+ } = require('@hubspot/local-dev-lib/constants/auth');
22
+ const {
22
23
  ENVIRONMENTS,
23
- } = require('@hubspot/cli-lib/lib/constants');
24
+ } = require('@hubspot/local-dev-lib/constants/environments');
25
+ const {
26
+ DEFAULT_HUBSPOT_CONFIG_YAML_FILE_NAME,
27
+ } = require('@hubspot/local-dev-lib/constants/config');
24
28
  const { i18n } = require('../lib/lang');
25
29
  const { logger } = require('@hubspot/local-dev-lib/logger');
26
30
  const {
package/commands/list.js CHANGED
@@ -16,10 +16,7 @@ const {
16
16
  const {
17
17
  getDirectoryContentsByPath,
18
18
  } = require('@hubspot/local-dev-lib/api/fileMapper');
19
- const {
20
- HUBSPOT_FOLDER,
21
- MARKETPLACE_FOLDER,
22
- } = require('@hubspot/cli-lib/lib/constants');
19
+ const { HUBSPOT_FOLDER, MARKETPLACE_FOLDER } = require('../lib/constants');
23
20
  const { loadAndValidateOptions } = require('../lib/validation');
24
21
  const { i18n } = require('../lib/lang');
25
22
 
package/commands/logs.js CHANGED
@@ -6,7 +6,7 @@ const {
6
6
  } = require('../lib/commonOpts');
7
7
  const { trackCommandUsage } = require('../lib/usageTracking');
8
8
  const { logger } = require('@hubspot/local-dev-lib/logger');
9
- const { outputLogs } = require('@hubspot/cli-lib/lib/logs');
9
+ const { outputLogs } = require('../lib/ui/serverlessFunctionLogs');
10
10
  const {
11
11
  getFunctionLogs,
12
12
  getLatestFunctionLog,
@@ -1,4 +1,4 @@
1
- const SpinniesManager = require('../../lib/SpinniesManager');
1
+ const SpinniesManager = require('../../lib/ui/SpinniesManager');
2
2
  const {
3
3
  addConfigOptions,
4
4
  addAccountOptions,
@@ -27,7 +27,6 @@ const {
27
27
  ensureProjectExists,
28
28
  handleProjectUpload,
29
29
  pollProjectBuildAndDeploy,
30
- showPlatformVersionWarning,
31
30
  validateProjectConfig,
32
31
  } = require('../../lib/projects');
33
32
  const { EXIT_CODES } = require('../../lib/enums/exitCodes');
@@ -42,7 +41,7 @@ const {
42
41
  selectTargetAccountPrompt,
43
42
  confirmDefaultAccountPrompt,
44
43
  } = require('../../lib/prompts/projectDevTargetAccountPrompt');
45
- const SpinniesManager = require('../../lib/SpinniesManager');
44
+ const SpinniesManager = require('../../lib/ui/SpinniesManager');
46
45
  const LocalDevManager = require('../../lib/LocalDevManager');
47
46
  const { isSandbox, getSandboxTypeAsString } = require('../../lib/sandboxes');
48
47
  const { sandboxNamePrompt } = require('../../lib/prompts/sandboxesPrompt');
@@ -54,8 +53,8 @@ const { getValidEnv } = require('@hubspot/local-dev-lib/environment');
54
53
  const {
55
54
  PROJECT_BUILD_TEXT,
56
55
  PROJECT_DEPLOY_TEXT,
57
- ERROR_TYPES,
58
- } = require('@hubspot/cli-lib/lib/constants');
56
+ PROJECT_ERROR_TYPES,
57
+ } = require('../../lib/constants');
59
58
 
60
59
  const { buildSandbox } = require('../../lib/sandboxCreate');
61
60
  const { syncSandbox } = require('../../lib/sandboxSync');
@@ -264,8 +263,6 @@ exports.handler = async options => {
264
263
  }
265
264
 
266
265
  if (shouldCreateProject) {
267
- await showPlatformVersionWarning(accountId, projectConfig);
268
-
269
266
  SpinniesManager.add('createProject', {
270
267
  text: i18n(`${i18nKey}.status.creatingProject`, {
271
268
  accountIdentifier: uiAccountDescription(targetAccountId),
@@ -310,7 +307,7 @@ exports.handler = async options => {
310
307
  if (initialUploadResult.uploadError) {
311
308
  if (
312
309
  isSpecifiedError(initialUploadResult.uploadError, {
313
- subCategory: ERROR_TYPES.PROJECT_LOCKED,
310
+ subCategory: PROJECT_ERROR_TYPES.PROJECT_LOCKED,
314
311
  })
315
312
  ) {
316
313
  logger.log();
@@ -17,10 +17,7 @@ const {
17
17
  fetchProject,
18
18
  fetchProjectBuilds,
19
19
  } = require('@hubspot/local-dev-lib/api/projects');
20
- const {
21
- getTableContents,
22
- getTableHeader,
23
- } = require('@hubspot/local-dev-lib/logging/table');
20
+ const { getTableContents, getTableHeader } = require('../../lib/ui/table');
24
21
  const { getCwd } = require('@hubspot/local-dev-lib/path');
25
22
  const { uiBetaTag, uiLink } = require('../../lib/ui');
26
23
  const { loadAndValidateOptions } = require('../../lib/validation');
@@ -1,6 +1,8 @@
1
1
  const { getEnv } = require('@hubspot/local-dev-lib/config');
2
2
  const { getHubSpotWebsiteOrigin } = require('@hubspot/local-dev-lib/urls');
3
- const { ENVIRONMENTS } = require('@hubspot/cli-lib/lib/constants');
3
+ const {
4
+ ENVIRONMENTS,
5
+ } = require('@hubspot/local-dev-lib/constants/environments');
4
6
  const {
5
7
  addAccountOptions,
6
8
  addConfigOptions,
@@ -9,15 +11,12 @@ const {
9
11
  } = require('../../lib/commonOpts');
10
12
  const { trackCommandUsage } = require('../../lib/usageTracking');
11
13
  const { logger } = require('@hubspot/local-dev-lib/logger');
12
- // const { outputLogs } = require('@hubspot/cli-lib/lib/logs');
14
+ // const { outputLogs } = require('../../lib/ui/serverlessFunctionLogs');
13
15
  const {
14
16
  fetchProject,
15
17
  fetchDeployComponentsMetadata,
16
18
  } = require('@hubspot/local-dev-lib/api/projects');
17
- const {
18
- getTableContents,
19
- getTableHeader,
20
- } = require('@hubspot/local-dev-lib/logging/table');
19
+ const { getTableContents, getTableHeader } = require('../../lib/ui/table');
21
20
  // const {
22
21
  // logApiErrorInstance,
23
22
  // ApiErrorContext,
@@ -16,11 +16,10 @@ const {
16
16
  logFeedbackMessage,
17
17
  validateProjectConfig,
18
18
  pollProjectBuildAndDeploy,
19
- showPlatformVersionWarning,
20
19
  } = require('../../lib/projects');
21
20
  const { i18n } = require('../../lib/lang');
22
21
  const { getAccountConfig } = require('@hubspot/local-dev-lib/config');
23
- const { ERROR_TYPES } = require('@hubspot/cli-lib/lib/constants');
22
+ const { PROJECT_ERROR_TYPES } = require('../../lib/constants');
24
23
  const {
25
24
  logApiErrorInstance,
26
25
  ApiErrorContext,
@@ -47,8 +46,6 @@ exports.handler = async options => {
47
46
 
48
47
  validateProjectConfig(projectConfig, projectDir);
49
48
 
50
- await showPlatformVersionWarning(accountId, projectConfig);
51
-
52
49
  await ensureProjectExists(accountId, projectConfig.name, {
53
50
  forceCreate,
54
51
  uploadCommand: true,
@@ -66,7 +63,7 @@ exports.handler = async options => {
66
63
  if (result.uploadError) {
67
64
  if (
68
65
  isSpecifiedError(result.uploadError, {
69
- subCategory: ERROR_TYPES.PROJECT_LOCKED,
66
+ subCategory: PROJECT_ERROR_TYPES.PROJECT_LOCKED,
70
67
  })
71
68
  ) {
72
69
  logger.log();
@@ -5,7 +5,7 @@ const {
5
5
  ApiErrorContext,
6
6
  } = require('../../lib/errorHandlers/apiErrors');
7
7
  const { logger } = require('@hubspot/local-dev-lib/logger');
8
- const { ERROR_TYPES } = require('@hubspot/cli-lib/lib/constants');
8
+ const { PROJECT_ERROR_TYPES } = require('../../lib/constants');
9
9
  const {
10
10
  addAccountOptions,
11
11
  addConfigOptions,
@@ -22,7 +22,6 @@ const {
22
22
  pollDeployStatus,
23
23
  validateProjectConfig,
24
24
  logFeedbackMessage,
25
- showPlatformVersionWarning,
26
25
  } = require('../../lib/projects');
27
26
  const {
28
27
  cancelStagedBuild,
@@ -67,7 +66,7 @@ const handleUserInput = (accountId, projectName, currentBuildId) => {
67
66
  } catch (err) {
68
67
  if (
69
68
  isSpecifiedError(err, {
70
- subCategory: ERROR_TYPES.BUILD_NOT_IN_PROGRESS,
69
+ subCategory: PROJECT_ERROR_TYPES.BUILD_NOT_IN_PROGRESS,
71
70
  })
72
71
  ) {
73
72
  process.exit(EXIT_CODES.SUCCESS);
@@ -104,8 +103,6 @@ exports.handler = async options => {
104
103
 
105
104
  validateProjectConfig(projectConfig, projectDir);
106
105
 
107
- await showPlatformVersionWarning(accountId, projectConfig);
108
-
109
106
  await ensureProjectExists(accountId, projectConfig.name);
110
107
 
111
108
  try {
@@ -1,4 +1,4 @@
1
- const SpinniesManager = require('../../lib/SpinniesManager');
1
+ const SpinniesManager = require('../../lib/ui/SpinniesManager');
2
2
  const {
3
3
  addConfigOptions,
4
4
  addAccountOptions,
@@ -21,6 +21,10 @@ const {
21
21
  ApiErrorContext,
22
22
  logApiUploadErrorInstance,
23
23
  } = require('../../lib/errorHandlers/apiErrors');
24
+ const { handleExit, handleKeypress } = require('../../lib/process');
25
+
26
+ exports.command = 'preview [--src] [--dest]';
27
+ exports.describe = false; // i18n(`${i18nKey}.describe`) - Hiding command
24
28
 
25
29
  const validateSrcPath = src => {
26
30
  const logInvalidPath = () => {
@@ -43,8 +47,19 @@ const validateSrcPath = src => {
43
47
  return true;
44
48
  };
45
49
 
46
- exports.command = 'preview [--src] [--dest]';
47
- exports.describe = false; // i18n(`${i18nKey}.describe`) - Hiding command
50
+ const handleUserInput = () => {
51
+ const onTerminate = () => {
52
+ logger.log(i18n(`${i18nKey}.logs.processExited`));
53
+ process.exit(EXIT_CODES.SUCCESS);
54
+ };
55
+
56
+ handleExit(onTerminate);
57
+ handleKeypress(key => {
58
+ if ((key.ctrl && key.name === 'c') || key.name === 'q') {
59
+ onTerminate();
60
+ }
61
+ });
62
+ };
48
63
 
49
64
  exports.handler = async options => {
50
65
  const { notify, skipUpload, noSsl, port, debug } = options;
@@ -131,6 +146,7 @@ exports.handler = async options => {
131
146
  port,
132
147
  debug,
133
148
  uploadOptions,
149
+ handleUserInput,
134
150
  });
135
151
  };
136
152
 
@@ -1,6 +1,9 @@
1
1
  const fs = require('fs');
2
2
  const path = require('path');
3
- const { uploadFolder, hasUploadErrors } = require('@hubspot/cli-lib');
3
+ const {
4
+ uploadFolder,
5
+ hasUploadErrors,
6
+ } = require('@hubspot/local-dev-lib/cms/uploadFolder');
4
7
  const {
5
8
  getFileMapperQueryValues,
6
9
  } = require('@hubspot/local-dev-lib/fileMapper');
@@ -46,7 +49,7 @@ const {
46
49
  FieldsJs,
47
50
  isConvertableFieldJs,
48
51
  cleanupTmpDirSync,
49
- } = require('@hubspot/cli-lib/lib/handleFieldsJs');
52
+ } = require('@hubspot/local-dev-lib/cms/handleFieldsJS');
50
53
 
51
54
  exports.command = 'upload [--src] [--dest]';
52
55
  exports.describe = i18n(`${i18nKey}.describe`);
package/commands/watch.js CHANGED
@@ -1,7 +1,7 @@
1
1
  const fs = require('fs');
2
2
  const path = require('path');
3
3
 
4
- const { watch } = require('@hubspot/cli-lib');
4
+ const { watch } = require('@hubspot/local-dev-lib/cms/watch');
5
5
  const { getCwd } = require('@hubspot/local-dev-lib/path');
6
6
  const { logger } = require('@hubspot/local-dev-lib/logger');
7
7
 
package/lang/en.lyaml CHANGED
@@ -221,7 +221,7 @@ en:
221
221
  schemaViewable: "Schema can be viewed at {{ url }}"
222
222
  delete:
223
223
  describe: "Delete a custom object schema"
224
- error:
224
+ errors:
225
225
  delete: "Unable to delete {{ name }}"
226
226
  examples:
227
227
  default: "Delete \"schemaName\" schema"
@@ -908,6 +908,8 @@ en:
908
908
  start: "Starting..."
909
909
  uploading: "Uploading..."
910
910
  finish: "Complete!"
911
+ logs:
912
+ processExited: "Stopping dev server..."
911
913
  convertFields:
912
914
  describe: "Converts a specific JavaScript fields file of a module or theme to JSON"
913
915
  positionals:
@@ -981,11 +983,6 @@ en:
981
983
  logFeedbackMessage:
982
984
  feedbackHeader: "We'd love to hear your feedback!"
983
985
  feedbackMessage: "How are you liking the new projects and developer tools? \n > Run `{{#yellow}}hs feedback{{/yellow}}` to let us know what you think!\n"
984
- showPlatformVersionWarning:
985
- docsLink: "Projects platform versioning (BETA)"
986
- noPlatformVersion: "No platformVersion found in hsproject.json. Falling back to version \"{{ defaultVersion }}\". Starting Mar 31, 2024, new project builds without a specified version will no longer be supported. To update your project to the latest version, see {{ docsLink }}."
987
- noPlatformVersionAlt: "No platformVersion found in hsproject.json. Falling back to default version. Starting Mar 31, 2024, new project builds without a specified version will no longer be supported. To update your project to the latest version, see {{ docsLink }}."
988
- deprecatedVersion: "Starting Mar 31, 2024, new project builds with platformVersion 2023.1 or unspecified versions will no longer be supported. It's recommended that you update your project to the latest version. For more info, see {{ docsLink }}."
989
986
  ui:
990
987
  betaTag: "{{#bold}}[BETA]{{/bold}}"
991
988
  betaWarning:
@@ -1037,6 +1034,17 @@ en:
1037
1034
  linkText: "HubSpot's sample projects"
1038
1035
  url: "https://developers.hubspot.com/docs/platform/sample-projects?utm_source=cli&utm_content=project_create_whats_next"
1039
1036
  message: "See {{ link }}"
1037
+ git:
1038
+ securityIssue: "Security Issue Detected"
1039
+ configFileTracked: "The HubSpot config file can be tracked by git."
1040
+ fileName: "File: \"{{ configPath }}\""
1041
+ remediate: "To remediate:"
1042
+ moveConfig: "- Move the config file to your home directory: '{{ homeDir }}'"
1043
+ addGitignore: "- Add gitignore pattern '{{ configPath }}' to a .gitignore file in root of your repository."
1044
+ noRemote: "- Ensure that the config file has not already been pushed to a remote repository."
1045
+ checkFailed: "Unable to determine if config file is properly ignored by git."
1046
+ serverlessFunctionLogs:
1047
+ unableToProcessLog: "Unable to process log {{ log }}"
1040
1048
  commonOpts:
1041
1049
  options:
1042
1050
  portal:
@@ -1342,6 +1350,15 @@ en:
1342
1350
  portalMissingScope: "Your account does not have access to this action. Talk to an account admin to request it."
1343
1351
  userMissingScope: "You don't have access to this action. Ask an account admin to change your permissions in Users & Teams settings."
1344
1352
  genericMissingScope: "Your access key does not allow this action. Please generate a new access key by running `hs auth personalaccesskey`."
1353
+ overrideErrors:
1354
+ platformVersionErrors:
1355
+ header: "Platform version update required"
1356
+ unspecifiedPlatformVersion: "Projects with an {{#bold}}{{platformVersion}}{{/bold}} are no longer supported."
1357
+ platformVersionRetired: "Projects with {{#bold}} platformVersion {{ platformVersion }}{{/bold}} are no longer supported."
1358
+ nonExistentPlatformVersion: "Projects with {{#bold}} platformVersion {{ platformVersion }}{{/bold}} are not supported."
1359
+ updateProject: "Please update your project to the latest version and try again."
1360
+ docsLink: "Projects platform versioning (BETA)"
1361
+ betaLink: "For more info, see {{ docsLink }}."
1345
1362
 
1346
1363
 
1347
1364
 
@@ -18,7 +18,8 @@ const { getAccountConfig } = require('@hubspot/local-dev-lib/config');
18
18
  const i18nKey = 'cli.lib.DevServerManager';
19
19
 
20
20
  const SERVER_KEYS = {
21
- app: 'app',
21
+ privateApp: 'privateApp',
22
+ publicApp: 'publicApp',
22
23
  };
23
24
 
24
25
  class DevServerManager {
@@ -29,8 +30,12 @@ class DevServerManager {
29
30
  this.server = null;
30
31
  this.path = null;
31
32
  this.devServers = {
32
- [SERVER_KEYS.app]: {
33
- componentType: COMPONENT_TYPES.app,
33
+ [SERVER_KEYS.privateApp]: {
34
+ componentType: COMPONENT_TYPES.privateApp,
35
+ serverInterface: DevModeInterface,
36
+ },
37
+ [SERVER_KEYS.publicApp]: {
38
+ componentType: COMPONENT_TYPES.publicApp,
34
39
  serverInterface: DevModeInterface,
35
40
  },
36
41
  };