@hubspot/cli 6.1.1 → 6.2.1

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 (86) hide show
  1. package/bin/cli.js +2 -2
  2. package/commands/accounts/clean.js +5 -7
  3. package/commands/auth.js +5 -5
  4. package/commands/cms/convertFields.js +2 -2
  5. package/commands/cms/lighthouseScore.js +47 -36
  6. package/commands/create/api-sample.js +2 -4
  7. package/commands/create/function.js +2 -2
  8. package/commands/create/module.js +2 -2
  9. package/commands/create/template.js +2 -2
  10. package/commands/create.js +3 -5
  11. package/commands/customObject/create.js +2 -2
  12. package/commands/customObject/schema/create.js +4 -4
  13. package/commands/customObject/schema/delete.js +2 -3
  14. package/commands/customObject/schema/fetch-all.js +2 -5
  15. package/commands/customObject/schema/fetch.js +2 -4
  16. package/commands/customObject/schema/list.js +2 -4
  17. package/commands/customObject/schema/update.js +4 -4
  18. package/commands/fetch.js +2 -2
  19. package/commands/filemanager/fetch.js +2 -2
  20. package/commands/filemanager/upload.js +3 -7
  21. package/commands/functions/deploy.js +26 -23
  22. package/commands/functions/list.js +3 -6
  23. package/commands/hubdb/clear.js +5 -3
  24. package/commands/hubdb/create.js +2 -2
  25. package/commands/hubdb/delete.js +2 -2
  26. package/commands/hubdb/fetch.js +2 -2
  27. package/commands/init.js +4 -7
  28. package/commands/lint.js +2 -2
  29. package/commands/list.js +4 -6
  30. package/commands/logs.js +6 -3
  31. package/commands/mv.js +3 -6
  32. package/commands/project/__tests__/deploy.test.js +37 -26
  33. package/commands/project/__tests__/logs.test.js +4 -5
  34. package/commands/project/add.js +2 -2
  35. package/commands/project/cloneApp.js +11 -9
  36. package/commands/project/create.js +2 -6
  37. package/commands/project/deploy.js +9 -12
  38. package/commands/project/dev.js +6 -5
  39. package/commands/project/download.js +7 -9
  40. package/commands/project/listBuilds.js +8 -12
  41. package/commands/project/logs.js +2 -2
  42. package/commands/project/migrateApp.js +20 -15
  43. package/commands/project/upload.js +4 -10
  44. package/commands/project/watch.js +8 -13
  45. package/commands/remove.js +2 -5
  46. package/commands/sandbox/create.js +4 -6
  47. package/commands/sandbox/delete.js +6 -12
  48. package/commands/secrets/addSecret.js +2 -5
  49. package/commands/secrets/deleteSecret.js +2 -5
  50. package/commands/secrets/listSecrets.js +5 -6
  51. package/commands/secrets/updateSecret.js +2 -5
  52. package/commands/theme/preview.js +2 -5
  53. package/commands/upload.js +3 -7
  54. package/commands/watch.js +3 -7
  55. package/lang/en.lyaml +14 -18
  56. package/lib/LocalDevManager.js +8 -6
  57. package/lib/__tests__/downloadProjectPrompt.test.js +1 -1
  58. package/lib/__tests__/projectLogsManager.test.js +19 -17
  59. package/lib/__tests__/serverlessLogs.test.js +13 -9
  60. package/lib/buildAccount.js +10 -10
  61. package/lib/developerTestAccounts.js +27 -27
  62. package/lib/errorHandlers/index.js +101 -0
  63. package/lib/errorHandlers/{overrideErrors.js → suppressError.js} +7 -7
  64. package/lib/hasFeature.js +15 -0
  65. package/lib/localDev.js +32 -19
  66. package/lib/marketplace-validate.js +3 -3
  67. package/lib/oauth.js +1 -1
  68. package/lib/polling.js +1 -1
  69. package/lib/projectLogsManager.js +3 -4
  70. package/lib/projectStructure.js +2 -2
  71. package/lib/projects.js +42 -29
  72. package/lib/projectsWatch.js +7 -12
  73. package/lib/prompts/createProjectPrompt.js +14 -5
  74. package/lib/prompts/downloadProjectPrompt.js +3 -6
  75. package/lib/prompts/projectDevTargetAccountPrompt.js +8 -6
  76. package/lib/prompts/selectPublicAppPrompt.js +5 -3
  77. package/lib/sandboxSync.js +7 -7
  78. package/lib/sandboxes.js +11 -7
  79. package/lib/schema.js +2 -2
  80. package/lib/serverlessLogs.js +67 -15
  81. package/lib/upload.js +2 -2
  82. package/lib/validation.js +2 -2
  83. package/package.json +8 -9
  84. package/lib/errorHandlers/apiErrors.js +0 -145
  85. package/lib/errorHandlers/fileSystemErrors.js +0 -20
  86. package/lib/errorHandlers/standardErrors.js +0 -103
@@ -40,13 +40,13 @@ const {
40
40
  const {
41
41
  confirmDefaultAccountIsTarget,
42
42
  suggestRecommendedNestedAccount,
43
- checkIfAppDeveloperAccount,
43
+ checkIfDefaultAccountIsSupported,
44
44
  createSandboxForLocalDev,
45
45
  createDeveloperTestAccountForLocalDev,
46
46
  createNewProjectForLocalDev,
47
47
  createInitialBuildForNewProject,
48
48
  useExistingDevTestAccount,
49
- validateAccountOption,
49
+ checkIfAccountFlagIsSupported,
50
50
  checkIfParentAccountIsAuthed,
51
51
  } = require('../../lib/localDev');
52
52
 
@@ -111,12 +111,15 @@ exports.handler = async options => {
111
111
  // The account that we are locally testing against
112
112
  let targetTestingAccountId = options.account ? accountId : null;
113
113
 
114
+ // Check that the default account or flag option is valid for the type of app in this project
114
115
  if (options.account) {
115
- validateAccountOption(accountConfig, hasPublicApps);
116
+ checkIfAccountFlagIsSupported(accountConfig, hasPublicApps);
116
117
 
117
118
  if (hasPublicApps) {
118
119
  targetProjectAccountId = accountConfig.parentAccountId;
119
120
  }
121
+ } else {
122
+ checkIfDefaultAccountIsSupported(accountConfig, hasPublicApps);
120
123
  }
121
124
 
122
125
  // The user is targeting an account type that we recommend developing on
@@ -131,8 +134,6 @@ exports.handler = async options => {
131
134
  } else {
132
135
  targetProjectAccountId = accountId;
133
136
  }
134
- } else if (!targetProjectAccountId && hasPublicApps) {
135
- checkIfAppDeveloperAccount(accountConfig);
136
137
  }
137
138
 
138
139
  let createNewSandbox = false;
@@ -7,10 +7,7 @@ const {
7
7
  } = require('../../lib/commonOpts');
8
8
  const { trackCommandUsage } = require('../../lib/usageTracking');
9
9
  const { getCwd, sanitizeFileName } = require('@hubspot/local-dev-lib/path');
10
- const {
11
- logApiErrorInstance,
12
- ApiErrorContext,
13
- } = require('../../lib/errorHandlers/apiErrors');
10
+ const { logError, ApiErrorContext } = require('../../lib/errorHandlers/index');
14
11
  const { logger } = require('@hubspot/local-dev-lib/logger');
15
12
  const { extractZipArchive } = require('@hubspot/local-dev-lib/archive');
16
13
  const {
@@ -75,9 +72,10 @@ exports.handler = async options => {
75
72
  let buildNumberToDownload = buildNumber;
76
73
 
77
74
  if (!buildNumberToDownload) {
78
- let projectBuildsResult;
79
-
80
- projectBuildsResult = await fetchProjectBuilds(accountId, projectName);
75
+ const { data: projectBuildsResult } = await fetchProjectBuilds(
76
+ accountId,
77
+ projectName
78
+ );
81
79
 
82
80
  const { results: projectBuilds } = projectBuildsResult;
83
81
 
@@ -87,7 +85,7 @@ exports.handler = async options => {
87
85
  }
88
86
  }
89
87
 
90
- const zippedProject = await downloadProject(
88
+ const { data: zippedProject } = await downloadProject(
91
89
  accountId,
92
90
  projectName,
93
91
  buildNumberToDownload
@@ -108,7 +106,7 @@ exports.handler = async options => {
108
106
  );
109
107
  process.exit(EXIT_CODES.SUCCESS);
110
108
  } catch (e) {
111
- logApiErrorInstance(
109
+ logError(
112
110
  e,
113
111
  new ApiErrorContext({ accountId, request: 'project download' })
114
112
  );
@@ -8,10 +8,7 @@ const {
8
8
  } = require('../../lib/commonOpts');
9
9
  const { trackCommandUsage } = require('../../lib/usageTracking');
10
10
  const { i18n } = require('../../lib/lang');
11
- const {
12
- logApiErrorInstance,
13
- ApiErrorContext,
14
- } = require('../../lib/errorHandlers/apiErrors');
11
+ const { logError, ApiErrorContext } = require('../../lib/errorHandlers/index');
15
12
  const { logger } = require('@hubspot/local-dev-lib/logger');
16
13
  const {
17
14
  fetchProject,
@@ -28,6 +25,7 @@ const {
28
25
  } = require('../../lib/projects');
29
26
  const moment = require('moment');
30
27
  const { promptUser } = require('../../lib/prompts/promptUtils');
28
+ const { isHubSpotHttpError } = require('@hubspot/local-dev-lib/errors/index');
31
29
 
32
30
  const i18nKey = 'commands.project.subcommands.listBuilds';
33
31
 
@@ -50,11 +48,9 @@ exports.handler = async options => {
50
48
  logger.debug(`Fetching builds for project at path: ${projectPath}`);
51
49
 
52
50
  const fetchAndDisplayBuilds = async (project, options) => {
53
- const { results, paging } = await fetchProjectBuilds(
54
- accountId,
55
- project.name,
56
- options
57
- );
51
+ const {
52
+ data: { results, paging },
53
+ } = await fetchProjectBuilds(accountId, project.name, options);
58
54
  const currentDeploy = project.deployedBuildId;
59
55
  if (options && options.after) {
60
56
  logger.log(
@@ -120,14 +116,14 @@ exports.handler = async options => {
120
116
  };
121
117
 
122
118
  try {
123
- const project = await fetchProject(accountId, projectConfig.name);
119
+ const { data: project } = await fetchProject(accountId, projectConfig.name);
124
120
 
125
121
  await fetchAndDisplayBuilds(project, { limit });
126
122
  } catch (e) {
127
- if (e.response && e.response.status === 404) {
123
+ if (isHubSpotHttpError(e) && e.status === 404) {
128
124
  logger.error(`Project ${projectConfig.name} not found. `);
129
125
  } else {
130
- logApiErrorInstance(
126
+ logError(
131
127
  e,
132
128
  new ApiErrorContext({ accountId, projectName: projectConfig.name })
133
129
  );
@@ -10,7 +10,7 @@ const {
10
10
  const { trackCommandUsage } = require('../../lib/usageTracking');
11
11
  const { logger } = require('@hubspot/local-dev-lib/logger');
12
12
  const { getTableContents, getTableHeader } = require('../../lib/ui/table');
13
- const { logApiErrorInstance } = require('../../lib/errorHandlers/apiErrors');
13
+ const { logError } = require('../../lib/errorHandlers/');
14
14
 
15
15
  const { loadAndValidateOptions } = require('../../lib/validation');
16
16
  const { uiBetaTag, uiLine, uiLink } = require('../../lib/ui');
@@ -103,7 +103,7 @@ exports.handler = async options => {
103
103
 
104
104
  logPreamble();
105
105
  } catch (e) {
106
- logApiErrorInstance(e, {
106
+ logError(e, {
107
107
  accountId: getAccountId(),
108
108
  projectName: ProjectLogsManager.projectName,
109
109
  });
@@ -26,10 +26,7 @@ const {
26
26
  uiAccountDescription,
27
27
  } = require('../../lib/ui');
28
28
  const SpinniesManager = require('../../lib/ui/SpinniesManager');
29
- const {
30
- logApiErrorInstance,
31
- ApiErrorContext,
32
- } = require('../../lib/errorHandlers/apiErrors');
29
+ const { logError, ApiErrorContext } = require('../../lib/errorHandlers/index');
33
30
  const { EXIT_CODES } = require('../../lib/enums/exitCodes');
34
31
  const { promptUser } = require('../../lib/prompts/promptUtils');
35
32
  const { isAppDeveloperAccount } = require('../../lib/accountTypes');
@@ -96,7 +93,10 @@ exports.handler = async options => {
96
93
  });
97
94
 
98
95
  try {
99
- const selectedApp = await fetchPublicAppMetadata(appId, accountId);
96
+ const { data: selectedApp } = await fetchPublicAppMetadata(
97
+ appId,
98
+ accountId
99
+ );
100
100
  // preventProjectMigrations returns true if we have not added app to allowlist config.
101
101
  // listingInfo will only exist for marketplace apps
102
102
  const preventProjectMigrations = selectedApp.preventProjectMigrations;
@@ -106,7 +106,7 @@ exports.handler = async options => {
106
106
  process.exit(EXIT_CODES.ERROR);
107
107
  }
108
108
  } catch (error) {
109
- logApiErrorInstance(error, new ApiErrorContext({ accountId }));
109
+ logError(error, new ApiErrorContext({ accountId }));
110
110
  process.exit(EXIT_CODES.ERROR);
111
111
  }
112
112
 
@@ -136,7 +136,7 @@ exports.handler = async options => {
136
136
  process.exit(EXIT_CODES.ERROR);
137
137
  }
138
138
  } catch (error) {
139
- logApiErrorInstance(error, new ApiErrorContext({ accountId }));
139
+ logError(error, new ApiErrorContext({ accountId }));
140
140
  process.exit(EXIT_CODES.ERROR);
141
141
  }
142
142
 
@@ -180,7 +180,11 @@ exports.handler = async options => {
180
180
  }
181
181
  });
182
182
 
183
- const migrateResponse = await migrateApp(accountId, appId, projectName);
183
+ const { data: migrateResponse } = await migrateApp(
184
+ accountId,
185
+ appId,
186
+ projectName
187
+ );
184
188
  const { id } = migrateResponse;
185
189
  const pollResponse = await poll(checkMigrationStatus, accountId, id);
186
190
  const { status, project } = pollResponse;
@@ -189,7 +193,11 @@ exports.handler = async options => {
189
193
  const { env } = getAccountConfig(accountId);
190
194
  const baseUrl = getHubSpotWebsiteOrigin(env);
191
195
 
192
- const zippedProject = await downloadProject(accountId, projectName, 1);
196
+ const { data: zippedProject } = await downloadProject(
197
+ accountId,
198
+ projectName,
199
+ 1
200
+ );
193
201
 
194
202
  await extractZipArchive(
195
203
  zippedProject,
@@ -232,13 +240,10 @@ exports.handler = async options => {
232
240
  text: i18n(`${i18nKey}.migrationStatus.failure`),
233
241
  failColor: 'white',
234
242
  });
235
- // Migrations endpoints return a response object with an errors property. The errors property contains an array of errors.
236
- if (error.errors && Array.isArray(error.errors)) {
237
- error.errors.forEach(e =>
238
- logApiErrorInstance(e, new ApiErrorContext({ accountId }))
239
- );
243
+ if (error.errors) {
244
+ error.errors.forEach(logError);
240
245
  } else {
241
- logApiErrorInstance(error, new ApiErrorContext({ accountId }));
246
+ logError(error, new ApiErrorContext({ accountId }));
242
247
  }
243
248
 
244
249
  process.exit(EXIT_CODES.ERROR);
@@ -20,12 +20,9 @@ const {
20
20
  } = require('../../lib/projects');
21
21
  const { i18n } = require('../../lib/lang');
22
22
  const { getAccountConfig } = require('@hubspot/local-dev-lib/config');
23
- const { isSpecifiedError } = require('@hubspot/local-dev-lib/errors/apiErrors');
23
+ const { isSpecifiedError } = require('@hubspot/local-dev-lib/errors/index');
24
24
  const { PROJECT_ERROR_TYPES } = require('../../lib/constants');
25
- const {
26
- logApiErrorInstance,
27
- ApiErrorContext,
28
- } = require('../../lib/errorHandlers/apiErrors');
25
+ const { logError, ApiErrorContext } = require('../../lib/errorHandlers/index');
29
26
  const { EXIT_CODES } = require('../../lib/enums/exitCodes');
30
27
 
31
28
  const i18nKey = 'commands.project.subcommands.upload';
@@ -71,7 +68,7 @@ exports.handler = async options => {
71
68
  logger.error(i18n(`${i18nKey}.errors.projectLockedError`));
72
69
  logger.log();
73
70
  } else {
74
- logApiErrorInstance(
71
+ logError(
75
72
  result.uploadError,
76
73
  new ApiErrorContext({
77
74
  accountId,
@@ -102,10 +99,7 @@ exports.handler = async options => {
102
99
  process.exit(EXIT_CODES.SUCCESS);
103
100
  }
104
101
  } catch (e) {
105
- logApiErrorInstance(
106
- e,
107
- new ApiErrorContext({ accountId, request: 'project upload' })
108
- );
102
+ logError(e, new ApiErrorContext({ accountId, request: 'project upload' }));
109
103
  process.exit(EXIT_CODES.ERROR);
110
104
  }
111
105
  };
@@ -1,9 +1,6 @@
1
1
  const { i18n } = require('../../lib/lang');
2
2
  const { createWatcher } = require('../../lib/projectsWatch');
3
- const {
4
- logApiErrorInstance,
5
- ApiErrorContext,
6
- } = require('../../lib/errorHandlers/apiErrors');
3
+ const { logError, ApiErrorContext } = require('../../lib/errorHandlers/index');
7
4
  const { logger } = require('@hubspot/local-dev-lib/logger');
8
5
  const { PROJECT_ERROR_TYPES } = require('../../lib/constants');
9
6
  const {
@@ -27,7 +24,7 @@ const {
27
24
  cancelStagedBuild,
28
25
  fetchProjectBuilds,
29
26
  } = require('@hubspot/local-dev-lib/api/projects');
30
- const { isSpecifiedError } = require('@hubspot/local-dev-lib/errors/apiErrors');
27
+ const { isSpecifiedError } = require('@hubspot/local-dev-lib/errors/index');
31
28
  const { loadAndValidateOptions } = require('../../lib/validation');
32
29
  const { EXIT_CODES } = require('../../lib/enums/exitCodes');
33
30
  const { handleKeypress, handleExit } = require('../../lib/process');
@@ -71,7 +68,7 @@ const handleUserInput = (accountId, projectName, currentBuildId) => {
71
68
  ) {
72
69
  process.exit(EXIT_CODES.SUCCESS);
73
70
  } else {
74
- logApiErrorInstance(err, new ApiErrorContext({ accountId }));
71
+ logError(err, new ApiErrorContext({ accountId }));
75
72
  process.exit(EXIT_CODES.ERROR);
76
73
  }
77
74
  }
@@ -103,11 +100,9 @@ exports.handler = async options => {
103
100
  await ensureProjectExists(accountId, projectConfig.name);
104
101
 
105
102
  try {
106
- const { results: builds } = await fetchProjectBuilds(
107
- accountId,
108
- projectConfig.name,
109
- options
110
- );
103
+ const {
104
+ data: { results: builds },
105
+ } = await fetchProjectBuilds(accountId, projectConfig.name, options);
111
106
  const hasNoBuilds = !builds || !builds.length;
112
107
 
113
108
  const startWatching = async () => {
@@ -139,7 +134,7 @@ exports.handler = async options => {
139
134
  logger.error(i18n(`${i18nKey}.errors.projectLockedError`));
140
135
  logger.log();
141
136
  } else {
142
- logApiErrorInstance(
137
+ logError(
143
138
  result.uploadError,
144
139
  new ApiErrorContext({
145
140
  accountId,
@@ -153,7 +148,7 @@ exports.handler = async options => {
153
148
  await startWatching();
154
149
  }
155
150
  } catch (e) {
156
- logApiErrorInstance(e, new ApiErrorContext({ accountId }));
151
+ logError(e, new ApiErrorContext({ accountId }));
157
152
  }
158
153
  };
159
154
 
@@ -1,9 +1,6 @@
1
1
  const { deleteFile } = require('@hubspot/local-dev-lib/api/fileMapper');
2
2
  const { logger } = require('@hubspot/local-dev-lib/logger');
3
- const {
4
- logApiErrorInstance,
5
- ApiErrorContext,
6
- } = require('../lib/errorHandlers/apiErrors');
3
+ const { logError, ApiErrorContext } = require('../lib/errorHandlers/index');
7
4
 
8
5
  const {
9
6
  addConfigOptions,
@@ -36,7 +33,7 @@ exports.handler = async options => {
36
33
  logger.error(
37
34
  i18n(`${i18nKey}.errors.deleteFailed`, { accountId, path: hsPath })
38
35
  );
39
- logApiErrorInstance(
36
+ logError(
40
37
  error,
41
38
  new ApiErrorContext({
42
39
  accountId,
@@ -22,10 +22,8 @@ const { trackCommandUsage } = require('../../lib/usageTracking');
22
22
  const { sandboxTypePrompt } = require('../../lib/prompts/sandboxesPrompt');
23
23
  const { promptUser } = require('../../lib/prompts/promptUtils');
24
24
  const { syncSandbox } = require('../../lib/sandboxSync');
25
- const { logErrorInstance } = require('../../lib/errorHandlers/standardErrors');
26
- const {
27
- isMissingScopeError,
28
- } = require('@hubspot/local-dev-lib/errors/apiErrors');
25
+ const { logError } = require('../../lib/errorHandlers/index');
26
+ const { isMissingScopeError } = require('@hubspot/local-dev-lib/errors/index');
29
27
  const { getHubSpotWebsiteOrigin } = require('@hubspot/local-dev-lib/urls');
30
28
  const {
31
29
  HUBSPOT_ACCOUNT_TYPES,
@@ -102,7 +100,7 @@ exports.handler = async options => {
102
100
  })
103
101
  );
104
102
  } else {
105
- logErrorInstance(err);
103
+ logError(err);
106
104
  }
107
105
  process.exit(EXIT_CODES.ERROR);
108
106
  }
@@ -167,7 +165,7 @@ exports.handler = async options => {
167
165
  }
168
166
  await handleSyncSandbox(availableSyncTasks);
169
167
  } catch (err) {
170
- logErrorInstance(err);
168
+ logError(err);
171
169
  throw err;
172
170
  }
173
171
 
@@ -8,15 +8,9 @@ const {
8
8
  const { logger } = require('@hubspot/local-dev-lib/logger');
9
9
  const { trackCommandUsage } = require('../../lib/usageTracking');
10
10
  const { loadAndValidateOptions } = require('../../lib/validation');
11
- const {
12
- logErrorInstance,
13
- debugErrorAndContext,
14
- } = require('../../lib/errorHandlers/standardErrors');
15
- const {
16
- isSpecifiedError,
17
- isSpecifiedHubSpotAuthError,
18
- } = require('@hubspot/local-dev-lib/errors/apiErrors');
19
- const { deleteSandbox } = require('@hubspot/local-dev-lib/sandboxes');
11
+ const { logError, debugError } = require('../../lib/errorHandlers/index');
12
+ const { isSpecifiedError } = require('@hubspot/local-dev-lib/errors/index');
13
+ const { deleteSandbox } = require('@hubspot/local-dev-lib/api/sandboxHubs');
20
14
  const { i18n } = require('../../lib/lang');
21
15
  const { deleteSandboxPrompt } = require('../../lib/prompts/sandboxesPrompt');
22
16
  const {
@@ -169,9 +163,9 @@ exports.handler = async options => {
169
163
  }
170
164
  process.exit(EXIT_CODES.SUCCESS);
171
165
  } catch (err) {
172
- debugErrorAndContext(err);
166
+ debugError(err);
173
167
 
174
- if (isSpecifiedHubSpotAuthError(err, { statusCode: 401 })) {
168
+ if (isSpecifiedError(err, { statusCode: 401 })) {
175
169
  // Intercept invalid key error
176
170
  // This command uses the parent portal PAK to delete a sandbox, so we must specify which account needs a new key
177
171
  logger.log('');
@@ -221,7 +215,7 @@ exports.handler = async options => {
221
215
  }
222
216
  process.exit(EXIT_CODES.SUCCESS);
223
217
  } else {
224
- logErrorInstance(err);
218
+ logError(err);
225
219
  }
226
220
  process.exit(EXIT_CODES.ERROR);
227
221
  }
@@ -1,8 +1,5 @@
1
1
  const { logger } = require('@hubspot/local-dev-lib/logger');
2
- const {
3
- logApiErrorInstance,
4
- ApiErrorContext,
5
- } = require('../../lib/errorHandlers/apiErrors');
2
+ const { logError, ApiErrorContext } = require('../../lib/errorHandlers/index');
6
3
  const { addSecret } = require('@hubspot/local-dev-lib/api/secrets');
7
4
 
8
5
  const { loadAndValidateOptions } = require('../../lib/validation');
@@ -47,7 +44,7 @@ exports.handler = async options => {
47
44
  secretName,
48
45
  })
49
46
  );
50
- logApiErrorInstance(
47
+ logError(
51
48
  err,
52
49
  new ApiErrorContext({
53
50
  request: 'add secret',
@@ -1,8 +1,5 @@
1
1
  const { logger } = require('@hubspot/local-dev-lib/logger');
2
- const {
3
- ApiErrorContext,
4
- logApiErrorInstance,
5
- } = require('../../lib/errorHandlers/apiErrors');
2
+ const { ApiErrorContext, logError } = require('../../lib/errorHandlers/index');
6
3
  const { deleteSecret } = require('@hubspot/local-dev-lib/api/secrets');
7
4
 
8
5
  const { loadAndValidateOptions } = require('../../lib/validation');
@@ -44,7 +41,7 @@ exports.handler = async options => {
44
41
  secretName,
45
42
  })
46
43
  );
47
- logApiErrorInstance(
44
+ logError(
48
45
  err,
49
46
  new ApiErrorContext({
50
47
  request: 'delete a secret',
@@ -1,8 +1,5 @@
1
1
  const { logger } = require('@hubspot/local-dev-lib/logger');
2
- const {
3
- logApiErrorInstance,
4
- ApiErrorContext,
5
- } = require('../../lib/errorHandlers/apiErrors');
2
+ const { logError, ApiErrorContext } = require('../../lib/errorHandlers/index');
6
3
  const { fetchSecrets } = require('@hubspot/local-dev-lib/api/secrets');
7
4
 
8
5
  const { loadAndValidateOptions } = require('../../lib/validation');
@@ -29,7 +26,9 @@ exports.handler = async options => {
29
26
  trackCommandUsage('secrets-list', null, accountId);
30
27
 
31
28
  try {
32
- const { results } = await fetchSecrets(accountId);
29
+ const {
30
+ data: { results },
31
+ } = await fetchSecrets(accountId);
33
32
  const groupLabel = i18n(`${i18nKey}.groupLabel`, {
34
33
  accountIdentifier: uiAccountDescription(accountId),
35
34
  });
@@ -38,7 +37,7 @@ exports.handler = async options => {
38
37
  logger.groupEnd(groupLabel);
39
38
  } catch (err) {
40
39
  logger.error(i18n(`${i18nKey}.errors.list`));
41
- logApiErrorInstance(
40
+ logError(
42
41
  err,
43
42
  new ApiErrorContext({
44
43
  request: 'add secret',
@@ -1,8 +1,5 @@
1
1
  const { logger } = require('@hubspot/local-dev-lib/logger');
2
- const {
3
- ApiErrorContext,
4
- logApiErrorInstance,
5
- } = require('../../lib/errorHandlers/apiErrors');
2
+ const { ApiErrorContext, logError } = require('../../lib/errorHandlers/index');
6
3
  const { updateSecret } = require('@hubspot/local-dev-lib/api/secrets');
7
4
 
8
5
  const { loadAndValidateOptions } = require('../../lib/validation');
@@ -48,7 +45,7 @@ exports.handler = async options => {
48
45
  secretName,
49
46
  })
50
47
  );
51
- logApiErrorInstance(
48
+ logError(
52
49
  err,
53
50
  new ApiErrorContext({
54
51
  request: 'update secret',
@@ -21,10 +21,7 @@ const {
21
21
  FILE_UPLOAD_RESULT_TYPES,
22
22
  } = require('@hubspot/local-dev-lib/constants/files');
23
23
  const cliProgress = require('cli-progress');
24
- const {
25
- ApiErrorContext,
26
- logApiUploadErrorInstance,
27
- } = require('../../lib/errorHandlers/apiErrors');
24
+ const { ApiErrorContext, logError } = require('../../lib/errorHandlers/index');
28
25
  const { handleExit, handleKeypress } = require('../../lib/process');
29
26
  const { getThemeJSONPath } = require('@hubspot/local-dev-lib/cms/themes');
30
27
  const { getProjectConfig } = require('../../lib/projects');
@@ -160,7 +157,7 @@ exports.handler = async options => {
160
157
  results.forEach(result => {
161
158
  if (result.resultType == FILE_UPLOAD_RESULT_TYPES.FAILURE) {
162
159
  logger.error('Uploading file "%s" to "%s" failed', result.file, dest);
163
- logApiUploadErrorInstance(
160
+ logError(
164
161
  result.error,
165
162
  new ApiErrorContext({
166
163
  accountId,
@@ -14,11 +14,7 @@ const {
14
14
  isAllowedExtension,
15
15
  } = require('@hubspot/local-dev-lib/path');
16
16
  const { logger } = require('@hubspot/local-dev-lib/logger');
17
- const {
18
- ApiErrorContext,
19
- logApiUploadErrorInstance,
20
- } = require('../lib/errorHandlers/apiErrors');
21
- const { logErrorInstance } = require('../lib/errorHandlers/standardErrors');
17
+ const { ApiErrorContext, logError } = require('../lib/errorHandlers/index');
22
18
  const {
23
19
  validateSrcAndDestPaths,
24
20
  } = require('@hubspot/local-dev-lib/cms/modules');
@@ -182,7 +178,7 @@ exports.handler = async options => {
182
178
  src,
183
179
  })
184
180
  );
185
- logApiUploadErrorInstance(
181
+ logError(
186
182
  error,
187
183
  new ApiErrorContext({
188
184
  accountId,
@@ -270,7 +266,7 @@ exports.handler = async options => {
270
266
  src,
271
267
  })
272
268
  );
273
- logErrorInstance(error, {
269
+ logError(error, {
274
270
  accountId,
275
271
  });
276
272
  process.exit(EXIT_CODES.WARNING);
package/commands/watch.js CHANGED
@@ -18,11 +18,7 @@ const { validateMode, loadAndValidateOptions } = require('../lib/validation');
18
18
  const { trackCommandUsage } = require('../lib/usageTracking');
19
19
  const { i18n } = require('../lib/lang');
20
20
  const { getUploadableFileList } = require('../lib/upload');
21
- const { logErrorInstance } = require('../lib/errorHandlers/standardErrors');
22
- const {
23
- logApiUploadErrorInstance,
24
- ApiErrorContext,
25
- } = require('../lib/errorHandlers/apiErrors');
21
+ const { logError, ApiErrorContext } = require('../lib/errorHandlers/index');
26
22
  const i18nKey = 'commands.watch';
27
23
 
28
24
  const { EXIT_CODES } = require('../lib/enums/exitCodes');
@@ -99,7 +95,7 @@ exports.handler = async options => {
99
95
  accountId,
100
96
  })
101
97
  );
102
- logErrorInstance(error, {
98
+ logError(error, {
103
99
  accountId,
104
100
  });
105
101
  };
@@ -112,7 +108,7 @@ exports.handler = async options => {
112
108
  accountId,
113
109
  })
114
110
  );
115
- logApiUploadErrorInstance(
111
+ logError(
116
112
  error,
117
113
  new ApiErrorContext({
118
114
  accountId,