@hubspot/cli 4.1.8-beta.2 → 4.1.8-beta.4

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 (108) hide show
  1. package/bin/cli.js +1 -1
  2. package/commands/accounts/info.js +1 -1
  3. package/commands/accounts/list.js +1 -1
  4. package/commands/accounts/remove.js +1 -1
  5. package/commands/accounts/rename.js +1 -1
  6. package/commands/accounts/use.js +1 -1
  7. package/commands/accounts.js +1 -1
  8. package/commands/auth.js +1 -1
  9. package/commands/cms/convertFields.js +1 -1
  10. package/commands/cms/lighthouseScore.js +1 -1
  11. package/commands/cms.js +1 -1
  12. package/commands/config/set/allowUsageTracking.js +1 -1
  13. package/commands/config/set/defaultMode.js +1 -1
  14. package/commands/config/set/httpTimeout.js +1 -1
  15. package/commands/config/set.js +1 -1
  16. package/commands/config.js +1 -1
  17. package/commands/create/api-sample.js +1 -1
  18. package/commands/create/module.js +1 -1
  19. package/commands/create/template.js +1 -1
  20. package/commands/create.js +1 -1
  21. package/commands/customObject/create.js +1 -1
  22. package/commands/customObject/schema/create.js +1 -1
  23. package/commands/customObject/schema/delete.js +1 -1
  24. package/commands/customObject/schema/fetch-all.js +1 -1
  25. package/commands/customObject/schema/fetch.js +1 -1
  26. package/commands/customObject/schema/list.js +1 -1
  27. package/commands/customObject/schema/update.js +1 -1
  28. package/commands/customObject/schema.js +1 -1
  29. package/commands/customObject.js +1 -1
  30. package/commands/feedback.js +1 -1
  31. package/commands/fetch.js +1 -1
  32. package/commands/filemanager/fetch.js +1 -1
  33. package/commands/filemanager/upload.js +1 -1
  34. package/commands/filemanager.js +1 -1
  35. package/commands/functions/deploy.js +1 -1
  36. package/commands/functions/list.js +1 -1
  37. package/commands/functions/server.js +1 -1
  38. package/commands/functions.js +1 -1
  39. package/commands/hubdb/clear.js +1 -1
  40. package/commands/hubdb/create.js +1 -1
  41. package/commands/hubdb/delete.js +1 -1
  42. package/commands/hubdb/fetch.js +1 -1
  43. package/commands/hubdb.js +1 -1
  44. package/commands/init.js +1 -1
  45. package/commands/lint.js +1 -1
  46. package/commands/list.js +1 -1
  47. package/commands/logs.js +1 -1
  48. package/commands/module/marketplace-validate.js +1 -1
  49. package/commands/module.js +1 -1
  50. package/commands/mv.js +1 -1
  51. package/commands/open.js +1 -1
  52. package/commands/project/add.js +1 -1
  53. package/commands/project/create.js +1 -1
  54. package/commands/project/deploy.js +1 -1
  55. package/commands/project/dev.js +31 -9
  56. package/commands/project/download.js +1 -1
  57. package/commands/project/logs.js +1 -1
  58. package/commands/project/open.js +1 -1
  59. package/commands/project/upload.js +1 -1
  60. package/commands/project/watch.js +1 -1
  61. package/commands/remove.js +1 -1
  62. package/commands/sandbox/create.js +22 -2
  63. package/commands/sandbox/delete.js +1 -1
  64. package/commands/sandbox/sync.js +1 -1
  65. package/commands/secrets/addSecret.js +1 -1
  66. package/commands/secrets/deleteSecret.js +1 -1
  67. package/commands/secrets/listSecrets.js +1 -1
  68. package/commands/secrets/updateSecret.js +1 -1
  69. package/commands/secrets.js +1 -1
  70. package/commands/theme/marketplace-validate.js +1 -1
  71. package/commands/theme.js +1 -1
  72. package/commands/upload.js +1 -1
  73. package/commands/watch.js +1 -1
  74. package/lang/en.lyaml +1205 -0
  75. package/lib/DevServerManager.js +74 -0
  76. package/lib/LocalDevManager.js +41 -30
  77. package/lib/commonOpts.js +1 -1
  78. package/lib/interpolation.js +137 -0
  79. package/lib/interpolationHelpers.js +23 -0
  80. package/lib/lang.js +95 -0
  81. package/lib/marketplace-validate.js +1 -1
  82. package/lib/projects.js +1 -1
  83. package/lib/prompts/accountsPrompt.js +1 -1
  84. package/lib/prompts/buildIdPrompt.js +1 -1
  85. package/lib/prompts/cmsFieldPrompt.js +1 -1
  86. package/lib/prompts/createApiSamplePrompt.js +1 -1
  87. package/lib/prompts/createFunctionPrompt.js +1 -1
  88. package/lib/prompts/createModulePrompt.js +1 -1
  89. package/lib/prompts/createProjectPrompt.js +1 -1
  90. package/lib/prompts/createTemplatePrompt.js +1 -1
  91. package/lib/prompts/downloadProjectPrompt.js +1 -1
  92. package/lib/prompts/enterAccountNamePrompt.js +1 -1
  93. package/lib/prompts/feedbackPrompt.js +1 -1
  94. package/lib/prompts/folderOverwritePrompt.js +1 -1
  95. package/lib/prompts/personalAccessKeyPrompt.js +1 -1
  96. package/lib/prompts/projectAddPrompt.js +1 -1
  97. package/lib/prompts/projectDevTargetAccountPrompt.js +1 -1
  98. package/lib/prompts/projectNamePrompt.js +1 -1
  99. package/lib/prompts/projectsLogsPrompt.js +1 -1
  100. package/lib/prompts/sandboxesPrompt.js +1 -1
  101. package/lib/prompts/secretPrompt.js +1 -1
  102. package/lib/prompts/setAsDefaultAccountPrompt.js +1 -1
  103. package/lib/prompts/uploadPrompt.js +1 -1
  104. package/lib/sandbox-create.js +1 -1
  105. package/lib/sandbox-sync.js +1 -1
  106. package/lib/sandboxes.js +1 -1
  107. package/lib/ui.js +7 -4
  108. package/package.json +8 -5
@@ -7,7 +7,7 @@ const {
7
7
  } = require('../../lib/commonOpts');
8
8
  const { trackCommandUsage } = require('../../lib/usageTracking');
9
9
  const { loadAndValidateOptions } = require('../../lib/validation');
10
- const { i18n } = require('@hubspot/cli-lib/lib/lang');
10
+ const { i18n } = require('../../lib/lang');
11
11
  const { logger } = require('@hubspot/cli-lib/logger');
12
12
  const { getConfigAccounts } = require('@hubspot/cli-lib/lib/config');
13
13
  const { createProject, fetchProject } = require('@hubspot/cli-lib/api/dfs');
@@ -40,10 +40,14 @@ const { getValidEnv } = require('@hubspot/cli-lib/lib/environment');
40
40
  const { logErrorInstance } = require('@hubspot/cli-lib/errorHandlers');
41
41
  const { buildSandbox } = require('../../lib/sandbox-create');
42
42
  const { syncSandbox } = require('../../lib/sandbox-sync');
43
+ const { getHubSpotWebsiteOrigin } = require('@hubspot/cli-lib/lib/urls');
44
+ const {
45
+ isMissingScopeError,
46
+ } = require('@hubspot/cli-lib/errorHandlers/apiErrors');
43
47
 
44
48
  const i18nKey = 'cli.commands.project.subcommands.dev';
45
49
 
46
- exports.command = 'dev [--account] [--mockServers]';
50
+ exports.command = 'dev [--account] [--port]';
47
51
  exports.describe = null; //i18n(`${i18nKey}.describe`);
48
52
 
49
53
  exports.handler = async options => {
@@ -114,7 +118,23 @@ exports.handler = async options => {
114
118
  try {
115
119
  await validateSandboxUsageLimits(accountConfig, DEVELOPER_SANDBOX, env);
116
120
  } catch (err) {
117
- logErrorInstance(err);
121
+ if (isMissingScopeError(err)) {
122
+ logger.error(
123
+ i18n('cli.lib.sandbox.create.failure.scopes.message', {
124
+ accountName: accountConfig.name || accountId,
125
+ })
126
+ );
127
+ const websiteOrigin = getHubSpotWebsiteOrigin(env);
128
+ const url = `${websiteOrigin}/personal-access-key/${accountId}`;
129
+ logger.info(
130
+ i18n('cli.lib.sandbox.create.failure.scopes.instructions', {
131
+ accountName: accountConfig.name || accountId,
132
+ url,
133
+ })
134
+ );
135
+ } else {
136
+ logErrorInstance(err);
137
+ }
118
138
  process.exit(EXIT_CODES.ERROR);
119
139
  }
120
140
  try {
@@ -228,7 +248,9 @@ exports.handler = async options => {
228
248
  });
229
249
 
230
250
  let result;
231
- if (uploadPermission === UPLOAD_PERMISSIONS.always) {
251
+ // Create an initial build if the project was newly created in the account or if
252
+ // our upload permission is set to "always"
253
+ if (!projectExists || uploadPermission === UPLOAD_PERMISSIONS.always) {
232
254
  result = await handleProjectUpload(
233
255
  targetAccountId,
234
256
  projectConfig,
@@ -249,11 +271,11 @@ exports.handler = async options => {
249
271
 
250
272
  const LocalDev = new LocalDevManager({
251
273
  debug: options.debug,
252
- mockServers: options.mockServers,
253
274
  projectConfig,
254
275
  projectDir,
255
276
  targetAccountId,
256
277
  uploadPermission,
278
+ port: options.port,
257
279
  });
258
280
 
259
281
  await LocalDev.start();
@@ -267,11 +289,11 @@ exports.builder = yargs => {
267
289
  addUseEnvironmentOptions(yargs, true);
268
290
  addTestingOptions(yargs, true);
269
291
 
270
- yargs.option('mockServers', {
271
- describe: 'mock servers',
272
- type: 'boolean',
273
- default: false,
292
+ yargs.option('port', {
293
+ describe: i18n(`${i18nKey}.options.port.describe`),
294
+ type: 'number',
274
295
  });
296
+
275
297
  yargs.example([['$0 project dev', i18n(`${i18nKey}.examples.default`)]]);
276
298
 
277
299
  return yargs;
@@ -25,7 +25,7 @@ const { loadAndValidateOptions } = require('../../lib/validation');
25
25
  const {
26
26
  downloadProjectPrompt,
27
27
  } = require('../../lib/prompts/downloadProjectPrompt');
28
- const { i18n } = require('@hubspot/cli-lib/lib/lang');
28
+ const { i18n } = require('../../lib/lang');
29
29
 
30
30
  const i18nKey = 'cli.commands.project.subcommands.download';
31
31
  const { EXIT_CODES } = require('../../lib/enums/exitCodes');
@@ -31,7 +31,7 @@ const { loadAndValidateOptions } = require('../../lib/validation');
31
31
  const { uiLine, uiLink } = require('../../lib/ui');
32
32
  const { projectLogsPrompt } = require('../../lib/prompts/projectsLogsPrompt');
33
33
  const { tailLogs } = require('../../lib/serverlessLogs');
34
- const { i18n } = require('@hubspot/cli-lib/lib/lang');
34
+ const { i18n } = require('../../lib/lang');
35
35
  const { EXIT_CODES } = require('../../lib/enums/exitCodes');
36
36
 
37
37
  const i18nKey = 'cli.commands.project.subcommands.logs';
@@ -8,7 +8,7 @@ const {
8
8
  } = require('../../lib/commonOpts');
9
9
  const { trackCommandUsage } = require('../../lib/usageTracking');
10
10
  const { loadAndValidateOptions } = require('../../lib/validation');
11
- const { i18n } = require('@hubspot/cli-lib/lib/lang');
11
+ const { i18n } = require('../../lib/lang');
12
12
  const { logger } = require('@hubspot/cli-lib/logger');
13
13
  const {
14
14
  getProjectConfig,
@@ -17,7 +17,7 @@ const {
17
17
  validateProjectConfig,
18
18
  pollProjectBuildAndDeploy,
19
19
  } = require('../../lib/projects');
20
- const { i18n } = require('@hubspot/cli-lib/lib/lang');
20
+ const { i18n } = require('../../lib/lang');
21
21
  const { getAccountConfig } = require('@hubspot/cli-lib');
22
22
  const { EXIT_CODES } = require('../../lib/enums/exitCodes');
23
23
 
@@ -1,4 +1,4 @@
1
- const { i18n } = require('@hubspot/cli-lib/lib/lang');
1
+ const { i18n } = require('../../lib/lang');
2
2
  const { createWatcher } = require('@hubspot/cli-lib/projectsWatch');
3
3
  const {
4
4
  logApiErrorInstance,
@@ -13,7 +13,7 @@ const {
13
13
  } = require('../lib/commonOpts');
14
14
  const { loadAndValidateOptions } = require('../lib/validation');
15
15
  const { trackCommandUsage } = require('../lib/usageTracking');
16
- const { i18n } = require('@hubspot/cli-lib/lib/lang');
16
+ const { i18n } = require('../lib/lang');
17
17
 
18
18
  const i18nKey = 'cli.commands.remove';
19
19
 
@@ -6,7 +6,7 @@ const {
6
6
  addTestingOptions,
7
7
  } = require('../../lib/commonOpts');
8
8
  const { loadAndValidateOptions } = require('../../lib/validation');
9
- const { i18n } = require('@hubspot/cli-lib/lib/lang');
9
+ const { i18n } = require('../../lib/lang');
10
10
  const { EXIT_CODES } = require('../../lib/enums/exitCodes');
11
11
  const { getAccountConfig, getEnv } = require('@hubspot/cli-lib');
12
12
  const { buildSandbox } = require('../../lib/sandbox-create');
@@ -30,6 +30,10 @@ const {
30
30
  const { promptUser } = require('../../lib/prompts/promptUtils');
31
31
  const { syncSandbox } = require('../../lib/sandbox-sync');
32
32
  const { logErrorInstance } = require('@hubspot/cli-lib/errorHandlers');
33
+ const {
34
+ isMissingScopeError,
35
+ } = require('@hubspot/cli-lib/errorHandlers/apiErrors');
36
+ const { getHubSpotWebsiteOrigin } = require('@hubspot/cli-lib/lib/urls');
33
37
 
34
38
  const i18nKey = 'cli.commands.sandbox.subcommands.create';
35
39
 
@@ -79,7 +83,23 @@ exports.handler = async options => {
79
83
  try {
80
84
  await validateSandboxUsageLimits(accountConfig, sandboxType, env);
81
85
  } catch (err) {
82
- logErrorInstance(err);
86
+ if (isMissingScopeError(err)) {
87
+ logger.error(
88
+ i18n('cli.lib.sandbox.create.failure.scopes.message', {
89
+ accountName: accountConfig.name || accountId,
90
+ })
91
+ );
92
+ const websiteOrigin = getHubSpotWebsiteOrigin(env);
93
+ const url = `${websiteOrigin}/personal-access-key/${accountId}`;
94
+ logger.info(
95
+ i18n('cli.lib.sandbox.create.failure.scopes.instructions', {
96
+ accountName: accountConfig.name || accountId,
97
+ url,
98
+ })
99
+ );
100
+ } else {
101
+ logErrorInstance(err);
102
+ }
83
103
  trackCommandUsage('sandbox-create', { successful: false }, accountId);
84
104
  process.exit(EXIT_CODES.ERROR);
85
105
  }
@@ -13,7 +13,7 @@ const {
13
13
  } = require('@hubspot/cli-lib/errorHandlers/standardErrors');
14
14
  const { logErrorInstance } = require('@hubspot/cli-lib/errorHandlers');
15
15
  const { deleteSandbox } = require('@hubspot/cli-lib/sandboxes');
16
- const { i18n } = require('@hubspot/cli-lib/lib/lang');
16
+ const { i18n } = require('../../lib/lang');
17
17
  const { getConfig, getEnv, getAccountConfig } = require('@hubspot/cli-lib');
18
18
  const { deleteSandboxPrompt } = require('../../lib/prompts/sandboxesPrompt');
19
19
  const {
@@ -8,7 +8,7 @@ const {
8
8
  const { trackCommandUsage } = require('../../lib/usageTracking');
9
9
  const { logger } = require('@hubspot/cli-lib/logger');
10
10
  const { loadAndValidateOptions } = require('../../lib/validation');
11
- const { i18n } = require('@hubspot/cli-lib/lib/lang');
11
+ const { i18n } = require('../../lib/lang');
12
12
  const { EXIT_CODES } = require('../../lib/enums/exitCodes');
13
13
  const { getAccountConfig, getEnv } = require('@hubspot/cli-lib');
14
14
  const { getHubSpotWebsiteOrigin } = require('@hubspot/cli-lib/lib/urls');
@@ -16,7 +16,7 @@ const {
16
16
  } = require('../../lib/commonOpts');
17
17
  const { uiAccountDescription } = require('../../lib/ui');
18
18
  const { secretValuePrompt } = require('../../lib/prompts/secretPrompt');
19
- const { i18n } = require('@hubspot/cli-lib/lib/lang');
19
+ const { i18n } = require('../../lib/lang');
20
20
 
21
21
  const i18nKey = 'cli.commands.secrets.subcommands.add';
22
22
 
@@ -15,7 +15,7 @@ const {
15
15
  addUseEnvironmentOptions,
16
16
  getAccountId,
17
17
  } = require('../../lib/commonOpts');
18
- const { i18n } = require('@hubspot/cli-lib/lib/lang');
18
+ const { i18n } = require('../../lib/lang');
19
19
 
20
20
  const i18nKey = 'cli.commands.secrets.subcommands.delete';
21
21
 
@@ -15,7 +15,7 @@ const {
15
15
  addUseEnvironmentOptions,
16
16
  getAccountId,
17
17
  } = require('../../lib/commonOpts');
18
- const { i18n } = require('@hubspot/cli-lib/lib/lang');
18
+ const { i18n } = require('../../lib/lang');
19
19
 
20
20
  const i18nKey = 'cli.commands.secrets.subcommands.list';
21
21
 
@@ -16,7 +16,7 @@ const {
16
16
  getAccountId,
17
17
  } = require('../../lib/commonOpts');
18
18
  const { secretValuePrompt } = require('../../lib/prompts/secretPrompt');
19
- const { i18n } = require('@hubspot/cli-lib/lib/lang');
19
+ const { i18n } = require('../../lib/lang');
20
20
 
21
21
  const i18nKey = 'cli.commands.secrets.subcommands.update';
22
22
 
@@ -4,7 +4,7 @@ const addSecretCommand = require('./secrets/addSecret');
4
4
  const listSecretsCommand = require('./secrets/listSecrets');
5
5
  const deleteSecretCommand = require('./secrets/deleteSecret');
6
6
  const updateSecretCommand = require('./secrets/updateSecret');
7
- const { i18n } = require('@hubspot/cli-lib/lib/lang');
7
+ const { i18n } = require('../lib/lang');
8
8
 
9
9
  const i18nKey = 'cli.commands.secrets';
10
10
 
@@ -15,7 +15,7 @@ const {
15
15
  processValidationErrors,
16
16
  displayValidationResults,
17
17
  } = require('../../lib/marketplace-validate');
18
- const { i18n } = require('@hubspot/cli-lib/lib/lang');
18
+ const { i18n } = require('../../lib/lang');
19
19
 
20
20
  const i18nKey = 'cli.commands.theme.subcommands.marketplaceValidate';
21
21
 
package/commands/theme.js CHANGED
@@ -1,6 +1,6 @@
1
1
  const marketplaceValidate = require('./theme/marketplace-validate');
2
2
  const { addConfigOptions, addAccountOptions } = require('../lib/commonOpts');
3
- const { i18n } = require('@hubspot/cli-lib/lib/lang');
3
+ const { i18n } = require('../lib/lang');
4
4
 
5
5
  const i18nKey = 'cli.commands.theme';
6
6
 
@@ -33,7 +33,7 @@ const {
33
33
  getThemePreviewUrl,
34
34
  getThemeJSONPath,
35
35
  } = require('@hubspot/cli-lib/lib/files');
36
- const { i18n } = require('@hubspot/cli-lib/lib/lang');
36
+ const { i18n } = require('../lib/lang');
37
37
  const i18nKey = 'cli.commands.upload';
38
38
  const { EXIT_CODES } = require('../lib/enums/exitCodes');
39
39
  const {
package/commands/watch.js CHANGED
@@ -16,7 +16,7 @@ const {
16
16
  const { uploadPrompt } = require('../lib/prompts/uploadPrompt');
17
17
  const { validateMode, loadAndValidateOptions } = require('../lib/validation');
18
18
  const { trackCommandUsage } = require('../lib/usageTracking');
19
- const { i18n } = require('@hubspot/cli-lib/lib/lang');
19
+ const { i18n } = require('../lib/lang');
20
20
  const { getUploadableFileList } = require('../lib/upload');
21
21
 
22
22
  const i18nKey = 'cli.commands.watch';