@hubspot/cli 8.0.10-experimental.7 → 8.0.11-experimental.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.
- package/bin/cli.js +2 -0
- package/commands/account/auth.js +12 -22
- package/commands/account/clean.js +5 -6
- package/commands/account/createOverride.js +7 -7
- package/commands/account/info.js +2 -1
- package/commands/account/list.js +3 -5
- package/commands/account/remove.js +2 -3
- package/commands/account/removeOverride.js +8 -10
- package/commands/account/rename.js +5 -6
- package/commands/account/use.js +8 -19
- package/commands/api.d.ts +10 -0
- package/commands/api.js +164 -0
- package/commands/app/migrate.js +8 -8
- package/commands/app/secret/add.js +6 -7
- package/commands/app/secret/delete.js +9 -10
- package/commands/app/secret/list.js +6 -7
- package/commands/app/secret/update.js +8 -9
- package/commands/auth.js +12 -12
- package/commands/cms/app/create.js +9 -5
- package/commands/cms/convertFields.js +8 -8
- package/commands/cms/delete.js +2 -3
- package/commands/cms/fetch.js +7 -7
- package/commands/cms/function/create.js +9 -5
- package/commands/cms/function/deploy.js +2 -3
- package/commands/cms/function/list.js +11 -7
- package/commands/cms/function/logs.js +17 -23
- package/commands/cms/function/server.js +2 -3
- package/commands/cms/getReactModule.js +7 -8
- package/commands/cms/lighthouseScore.js +25 -24
- package/commands/cms/lint.js +4 -5
- package/commands/cms/list.js +5 -6
- package/commands/cms/module/create.js +9 -5
- package/commands/cms/module/marketplace-validate.js +7 -8
- package/commands/cms/mv.js +2 -3
- package/commands/cms/template/create.js +10 -6
- package/commands/cms/theme/create.js +5 -5
- package/commands/cms/theme/generate-selectors.js +5 -4
- package/commands/cms/theme/marketplace-validate.js +8 -9
- package/commands/cms/theme/preview.js +16 -8
- package/commands/cms/upload.js +15 -12
- package/commands/cms/watch.js +5 -5
- package/commands/cms/webpack/create.js +5 -5
- package/commands/completion.js +3 -5
- package/commands/config/migrate.js +6 -7
- package/commands/config/set.js +5 -6
- package/commands/customObject/create.js +4 -5
- package/commands/customObject/createSchema.js +4 -5
- package/commands/customObject/deleteSchema.js +4 -5
- package/commands/customObject/fetchAllSchemas.js +2 -3
- package/commands/customObject/fetchSchema.js +2 -3
- package/commands/customObject/listSchemas.js +2 -3
- package/commands/customObject/updateSchema.js +4 -5
- package/commands/doctor.js +8 -8
- package/commands/feedback.js +6 -4
- package/commands/filemanager/fetch.js +5 -6
- package/commands/filemanager/upload.js +5 -5
- package/commands/getStarted.js +14 -16
- package/commands/hubdb/clear.js +5 -6
- package/commands/hubdb/create.js +4 -5
- package/commands/hubdb/delete.js +8 -9
- package/commands/hubdb/fetch.js +5 -6
- package/commands/hubdb/list.js +16 -14
- package/commands/init.js +14 -17
- package/commands/mcp/setup.js +5 -6
- package/commands/mcp/start.js +2 -3
- package/commands/open.js +4 -5
- package/commands/project/add.js +10 -5
- package/commands/project/create.js +10 -10
- package/commands/project/delete.d.ts +7 -0
- package/commands/project/delete.js +74 -0
- package/commands/project/deploy.js +36 -34
- package/commands/project/dev/deprecatedFlow.js +42 -15
- package/commands/project/dev/index.d.ts +3 -3
- package/commands/project/dev/index.js +24 -30
- package/commands/project/dev/unifiedFlow.js +37 -14
- package/commands/project/download.js +10 -11
- package/commands/project/info.d.ts +4 -0
- package/commands/project/info.js +67 -0
- package/commands/project/installDeps.js +9 -6
- package/commands/project/lint.js +11 -8
- package/commands/project/list.js +14 -14
- package/commands/project/listBuilds.js +8 -6
- package/commands/project/logs.js +5 -6
- package/commands/project/migrate.js +8 -8
- package/commands/project/open.js +5 -6
- package/commands/project/profile/add.js +12 -8
- package/commands/project/profile/delete.js +15 -11
- package/commands/project/updateDeps.js +9 -6
- package/commands/project/upload.js +31 -17
- package/commands/project/validate.js +11 -11
- package/commands/project/watch.js +20 -20
- package/commands/project.js +4 -0
- package/commands/sandbox/create.js +15 -15
- package/commands/sandbox/delete.js +13 -14
- package/commands/secret/addSecret.js +6 -7
- package/commands/secret/deleteSecret.js +5 -6
- package/commands/secret/listSecret.js +2 -3
- package/commands/secret/updateSecret.js +4 -5
- package/commands/testAccount/create.d.ts +1 -1
- package/commands/testAccount/create.js +20 -16
- package/commands/testAccount/createConfig.js +7 -8
- package/commands/testAccount/delete.js +27 -18
- package/commands/testAccount/importData.js +6 -7
- package/commands/upgrade.js +9 -10
- package/lang/en.d.ts +123 -5
- package/lang/en.js +121 -6
- package/lib/accountAuth.js +2 -2
- package/lib/buildAccount.js +3 -3
- package/lib/constants.d.ts +0 -1
- package/lib/constants.js +0 -1
- package/lib/doctor/Diagnosis.js +5 -5
- package/lib/errorHandlers/index.js +4 -3
- package/lib/errorHandlers/suppressError.js +4 -0
- package/lib/errors/PromptExitError.d.ts +4 -2
- package/lib/errors/PromptExitError.js +3 -0
- package/lib/hasFeature.js +1 -2
- package/lib/middleware/autoUpdateMiddleware.js +6 -3
- package/lib/process.d.ts +1 -1
- package/lib/process.js +10 -3
- package/lib/projects/create/v2.js +1 -2
- package/lib/projects/delete.d.ts +13 -0
- package/lib/projects/delete.js +193 -0
- package/lib/projects/localDev/AppDevModeInterface.js +11 -11
- package/lib/projects/localDev/DevServerManager_DEPRECATED.d.ts +3 -1
- package/lib/projects/localDev/DevServerManager_DEPRECATED.js +2 -2
- package/lib/projects/localDev/DevSessionManager.d.ts +6 -3
- package/lib/projects/localDev/DevSessionManager.js +31 -19
- package/lib/projects/localDev/LocalDevManager_DEPRECATED.d.ts +3 -0
- package/lib/projects/localDev/LocalDevManager_DEPRECATED.js +16 -12
- package/lib/projects/localDev/LocalDevProcess.js +6 -5
- package/lib/projects/localDev/LocalDevState.d.ts +3 -2
- package/lib/projects/localDev/LocalDevState.js +3 -1
- package/lib/projects/localDev/helpers/account.d.ts +4 -3
- package/lib/projects/localDev/helpers/account.js +16 -19
- package/lib/projects/localDev/helpers/process.d.ts +1 -1
- package/lib/projects/localDev/helpers/process.js +4 -10
- package/lib/projects/localDev/helpers/project.d.ts +4 -3
- package/lib/projects/localDev/helpers/project.js +31 -15
- package/lib/projects/projectInfo.d.ts +5 -0
- package/lib/projects/projectInfo.js +82 -0
- package/lib/projects/projectProfiles.d.ts +1 -2
- package/lib/projects/projectProfiles.js +5 -17
- package/lib/projects/upload.js +19 -0
- package/lib/projects/workspaces.d.ts +42 -0
- package/lib/projects/workspaces.js +350 -0
- package/lib/prompts/createApiSamplePrompt.js +4 -0
- package/lib/prompts/projectProfilePrompt.d.ts +2 -0
- package/lib/prompts/projectProfilePrompt.js +46 -0
- package/lib/prompts/promptUtils.js +3 -2
- package/lib/prompts/selectHubDBTablePrompt.js +2 -2
- package/lib/prompts/selectPublicAppForMigrationPrompt.js +2 -2
- package/lib/theme/cmsDevServerProcess.d.ts +2 -0
- package/lib/theme/cmsDevServerProcess.js +7 -6
- package/lib/ui/SpinniesManager.d.ts +1 -0
- package/lib/ui/SpinniesManager.js +20 -6
- package/lib/ui/spinniesUtils.d.ts +0 -1
- package/lib/ui/spinniesUtils.js +6 -16
- package/lib/usageTracking.d.ts +3 -4
- package/lib/yargs/makeYargsBuilder.d.ts +13 -0
- package/lib/yargs/makeYargsBuilder.js +33 -0
- package/lib/yargs/makeYargsHandlerWithUsageTracking.d.ts +3 -0
- package/lib/yargs/makeYargsHandlerWithUsageTracking.js +95 -0
- package/lib/yargs/strictEnforceBoolean.d.ts +1 -0
- package/lib/yargs/strictEnforceBoolean.js +13 -0
- package/lib/yargsUtils.d.ts +3 -16
- package/lib/yargsUtils.js +3 -48
- package/package.json +5 -4
- package/types/LocalDev.d.ts +5 -0
- package/types/Projects.d.ts +19 -0
- package/types/Yargs.d.ts +18 -1
|
@@ -2,6 +2,7 @@ import fs from 'fs';
|
|
|
2
2
|
import { commands } from '../../../lang/en.js';
|
|
3
3
|
import { findFieldsJsonPath, combineThemeCss, setPreviewSelectors, generateInheritedSelectors, generateSelectorsMap, getMaxFieldsDepth, } from '../../../lib/generateSelectors.js';
|
|
4
4
|
import { EXIT_CODES } from '../../../lib/enums/exitCodes.js';
|
|
5
|
+
import { makeYargsHandlerWithUsageTracking } from '../../../lib/yargs/makeYargsHandlerWithUsageTracking.js';
|
|
5
6
|
import { makeYargsBuilder } from '../../../lib/yargsUtils.js';
|
|
6
7
|
import { uiLogger } from '../../../lib/ui/logger.js';
|
|
7
8
|
const HUBL_EXPRESSION_REGEX = new RegExp(/{%\s*(.*)\s*%}/, 'g');
|
|
@@ -16,12 +17,12 @@ const THEME_PATH_REGEX = new RegExp(/=\s*.*(theme\.(\w|\.)*)/, 'i');
|
|
|
16
17
|
const command = 'generate-selectors <path>';
|
|
17
18
|
const describe = commands.cms.subcommands.theme.subcommands.generateSelectors.describe;
|
|
18
19
|
async function handler(args) {
|
|
19
|
-
const { path } = args;
|
|
20
|
+
const { path, exit } = args;
|
|
20
21
|
const fieldsJsonPath = findFieldsJsonPath(path);
|
|
21
22
|
if (!fieldsJsonPath) {
|
|
22
23
|
uiLogger.error(commands.cms.subcommands.theme.subcommands.generateSelectors.errors
|
|
23
24
|
.fieldsNotFound);
|
|
24
|
-
|
|
25
|
+
return exit(EXIT_CODES.ERROR);
|
|
25
26
|
}
|
|
26
27
|
let fieldsJson = JSON.parse(fs.readFileSync(fieldsJsonPath, 'utf-8'));
|
|
27
28
|
let cssString = combineThemeCss(path) ?? '';
|
|
@@ -132,7 +133,7 @@ async function handler(args) {
|
|
|
132
133
|
if (!Object.keys(finalMap).length) {
|
|
133
134
|
uiLogger.error(commands.cms.subcommands.theme.subcommands.generateSelectors.errors
|
|
134
135
|
.noSelectorsFound);
|
|
135
|
-
|
|
136
|
+
return exit(EXIT_CODES.ERROR);
|
|
136
137
|
}
|
|
137
138
|
Object.keys(finalMap).forEach(themeFieldKey => {
|
|
138
139
|
const fieldKey = themeFieldKey.split('.');
|
|
@@ -165,7 +166,7 @@ const builder = makeYargsBuilder(themeSelectorBuilder, command, describe, {
|
|
|
165
166
|
const themeSelectorsCommand = {
|
|
166
167
|
command,
|
|
167
168
|
describe,
|
|
168
|
-
handler,
|
|
169
|
+
handler: makeYargsHandlerWithUsageTracking('generate-selectors', handler),
|
|
169
170
|
builder,
|
|
170
171
|
};
|
|
171
172
|
export default themeSelectorsCommand;
|
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
import SpinniesManager from '../../../lib/ui/SpinniesManager.js';
|
|
2
|
-
import { trackCommandUsage } from '../../../lib/usageTracking.js';
|
|
3
2
|
import { kickOffValidation, pollForValidationFinish, fetchValidationResults, hasProcessValidationErrors, displayValidationResults, } from '../../../lib/marketplaceValidate.js';
|
|
4
3
|
import { commands } from '../../../lang/en.js';
|
|
5
|
-
import { makeYargsBuilder } from '../../../lib/yargsUtils.js';
|
|
6
4
|
import { EXIT_CODES } from '../../../lib/enums/exitCodes.js';
|
|
5
|
+
import { makeYargsHandlerWithUsageTracking } from '../../../lib/yargs/makeYargsHandlerWithUsageTracking.js';
|
|
6
|
+
import { makeYargsBuilder } from '../../../lib/yargsUtils.js';
|
|
7
7
|
import { logError } from '../../../lib/errorHandlers/index.js';
|
|
8
8
|
const command = 'marketplace-validate <path>';
|
|
9
9
|
const describe = commands.cms.subcommands.theme.subcommands.marketplaceValidate.describe;
|
|
10
10
|
async function handler(args) {
|
|
11
|
-
const { path, derivedAccountId } = args;
|
|
12
|
-
trackCommandUsage('validate', {}, derivedAccountId);
|
|
11
|
+
const { path, derivedAccountId, exit } = args;
|
|
13
12
|
SpinniesManager.add('marketplaceValidation', {
|
|
14
13
|
text: commands.cms.subcommands.theme.subcommands.marketplaceValidate.logs.validatingTheme(path),
|
|
15
14
|
});
|
|
@@ -21,7 +20,7 @@ async function handler(args) {
|
|
|
21
20
|
}
|
|
22
21
|
catch (e) {
|
|
23
22
|
logError(e);
|
|
24
|
-
|
|
23
|
+
return exit(EXIT_CODES.ERROR);
|
|
25
24
|
}
|
|
26
25
|
SpinniesManager.remove('marketplaceValidation');
|
|
27
26
|
let validationResults;
|
|
@@ -30,15 +29,15 @@ async function handler(args) {
|
|
|
30
29
|
}
|
|
31
30
|
catch (e) {
|
|
32
31
|
logError(e);
|
|
33
|
-
|
|
32
|
+
return exit(EXIT_CODES.ERROR);
|
|
34
33
|
}
|
|
35
34
|
const hasErrors = hasProcessValidationErrors(commands.cms.subcommands.theme.subcommands.marketplaceValidate.errors
|
|
36
35
|
.invalidPath, validationResults);
|
|
37
36
|
if (hasErrors) {
|
|
38
|
-
|
|
37
|
+
return exit(EXIT_CODES.ERROR);
|
|
39
38
|
}
|
|
40
39
|
displayValidationResults(commands.cms.subcommands.theme.subcommands.marketplaceValidate.results, validationResults);
|
|
41
|
-
|
|
40
|
+
return exit(EXIT_CODES.SUCCESS);
|
|
42
41
|
}
|
|
43
42
|
function themeValidateBuilder(yargs) {
|
|
44
43
|
yargs.positional('path', {
|
|
@@ -58,7 +57,7 @@ const builder = makeYargsBuilder(themeValidateBuilder, command, describe, {
|
|
|
58
57
|
const themeValidateCommand = {
|
|
59
58
|
command,
|
|
60
59
|
describe,
|
|
61
|
-
handler,
|
|
60
|
+
handler: makeYargsHandlerWithUsageTracking('validate', handler),
|
|
62
61
|
builder,
|
|
63
62
|
};
|
|
64
63
|
export default themeValidateCommand;
|
|
@@ -4,12 +4,13 @@ import { commands } from '../../../lang/en.js';
|
|
|
4
4
|
import { getCwd } from '@hubspot/local-dev-lib/path';
|
|
5
5
|
import { getThemeJSONPath } from '@hubspot/local-dev-lib/cms/themes';
|
|
6
6
|
import { spawnDevServer } from '../../../lib/theme/cmsDevServerProcess.js';
|
|
7
|
-
import {
|
|
7
|
+
import { logError } from '../../../lib/errorHandlers/index.js';
|
|
8
8
|
import { previewPrompt, previewProjectPrompt, } from '../../../lib/prompts/previewPrompt.js';
|
|
9
9
|
import { EXIT_CODES } from '../../../lib/enums/exitCodes.js';
|
|
10
10
|
import { getProjectConfig } from '../../../lib/projects/config.js';
|
|
11
11
|
import { findProjectComponents } from '../../../lib/projects/structure.js';
|
|
12
12
|
import { ComponentTypes } from '../../../types/Projects.js';
|
|
13
|
+
import { makeYargsHandlerWithUsageTracking } from '../../../lib/yargs/makeYargsHandlerWithUsageTracking.js';
|
|
13
14
|
import { makeYargsBuilder } from '../../../lib/yargsUtils.js';
|
|
14
15
|
import { uiLogger } from '../../../lib/ui/logger.js';
|
|
15
16
|
const command = 'preview [--src] [--dest]';
|
|
@@ -42,7 +43,7 @@ async function determineSrcAndDest(args) {
|
|
|
42
43
|
dest = args.dest || previewPromptAnswers.dest;
|
|
43
44
|
absoluteSrc = path.resolve(getCwd(), src);
|
|
44
45
|
if (!dest || !validateSrcPath(absoluteSrc)) {
|
|
45
|
-
|
|
46
|
+
throw new Error(commands.cms.subcommands.theme.subcommands.preview.errors.invalidPath(src));
|
|
46
47
|
}
|
|
47
48
|
}
|
|
48
49
|
else {
|
|
@@ -52,9 +53,8 @@ async function determineSrcAndDest(args) {
|
|
|
52
53
|
const projectComponents = await findProjectComponents(projectDir);
|
|
53
54
|
const themeComponents = projectComponents.filter(c => c.type === ComponentTypes.HublTheme);
|
|
54
55
|
if (themeComponents.length === 0) {
|
|
55
|
-
|
|
56
|
+
throw new Error(commands.cms.subcommands.theme.subcommands.preview.errors
|
|
56
57
|
.noThemeComponents);
|
|
57
|
-
process.exit(EXIT_CODES.ERROR);
|
|
58
58
|
}
|
|
59
59
|
const answer = await previewProjectPrompt(themeComponents);
|
|
60
60
|
themeJsonPath = `${answer.themeComponentPath}/theme.json`;
|
|
@@ -67,9 +67,16 @@ async function determineSrcAndDest(args) {
|
|
|
67
67
|
return { absoluteSrc, dest };
|
|
68
68
|
}
|
|
69
69
|
async function handler(args) {
|
|
70
|
-
const { derivedAccountId, noSsl, resetSession, port, generateFieldsTypes } = args;
|
|
71
|
-
|
|
72
|
-
|
|
70
|
+
const { derivedAccountId, noSsl, resetSession, port, generateFieldsTypes, exit, } = args;
|
|
71
|
+
let absoluteSrc;
|
|
72
|
+
let dest;
|
|
73
|
+
try {
|
|
74
|
+
({ absoluteSrc, dest } = await determineSrcAndDest(args));
|
|
75
|
+
}
|
|
76
|
+
catch (error) {
|
|
77
|
+
logError(error);
|
|
78
|
+
return exit(EXIT_CODES.ERROR);
|
|
79
|
+
}
|
|
73
80
|
// Spawn dev server in isolated subprocess to avoid React version conflicts
|
|
74
81
|
// File listing and progress bars are handled within the subprocess
|
|
75
82
|
await spawnDevServer({
|
|
@@ -80,6 +87,7 @@ async function handler(args) {
|
|
|
80
87
|
generateFieldsTypes,
|
|
81
88
|
resetSession: resetSession || false,
|
|
82
89
|
dest,
|
|
90
|
+
exit,
|
|
83
91
|
});
|
|
84
92
|
}
|
|
85
93
|
function themePreviewBuilder(yargs) {
|
|
@@ -120,7 +128,7 @@ const builder = makeYargsBuilder(themePreviewBuilder, command, describe, {
|
|
|
120
128
|
const themePreviewCommand = {
|
|
121
129
|
command,
|
|
122
130
|
describe,
|
|
123
|
-
handler,
|
|
131
|
+
handler: makeYargsHandlerWithUsageTracking('preview', handler),
|
|
124
132
|
builder,
|
|
125
133
|
};
|
|
126
134
|
export default themePreviewCommand;
|
package/commands/cms/upload.js
CHANGED
|
@@ -13,10 +13,10 @@ import { getCmsPublishMode } from '../../lib/commonOpts.js';
|
|
|
13
13
|
import { uploadPrompt } from '../../lib/prompts/uploadPrompt.js';
|
|
14
14
|
import { confirmPrompt } from '../../lib/prompts/promptUtils.js';
|
|
15
15
|
import { validateCmsPublishMode } from '../../lib/validation.js';
|
|
16
|
-
import { trackCommandUsage } from '../../lib/usageTracking.js';
|
|
17
16
|
import { getUploadableFileList } from '../../lib/upload.js';
|
|
18
17
|
import { commands } from '../../lang/en.js';
|
|
19
18
|
import { EXIT_CODES } from '../../lib/enums/exitCodes.js';
|
|
19
|
+
import { makeYargsHandlerWithUsageTracking } from '../../lib/yargs/makeYargsHandlerWithUsageTracking.js';
|
|
20
20
|
import { makeYargsBuilder } from '../../lib/yargsUtils.js';
|
|
21
21
|
import { uiLogger } from '../../lib/ui/logger.js';
|
|
22
22
|
const command = 'upload [src] [dest]';
|
|
@@ -29,10 +29,10 @@ function logThemePreview(filePath, accountId) {
|
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
31
|
async function handler(args) {
|
|
32
|
+
const { derivedAccountId, exit, addUsageMetadata } = args;
|
|
32
33
|
if (!validateCmsPublishMode(args)) {
|
|
33
|
-
|
|
34
|
+
return exit(EXIT_CODES.WARNING);
|
|
34
35
|
}
|
|
35
|
-
const { derivedAccountId } = args;
|
|
36
36
|
const cmsPublishMode = getCmsPublishMode(args);
|
|
37
37
|
const uploadPromptAnswers = await uploadPrompt(args);
|
|
38
38
|
const src = args.src || uploadPromptAnswers.src;
|
|
@@ -74,11 +74,14 @@ async function handler(args) {
|
|
|
74
74
|
return;
|
|
75
75
|
}
|
|
76
76
|
const normalizedDest = convertToUnixPath(dest);
|
|
77
|
-
|
|
77
|
+
addUsageMetadata({
|
|
78
|
+
mode: cmsPublishMode,
|
|
79
|
+
type: stats.isFile() ? 'file' : 'folder',
|
|
80
|
+
});
|
|
78
81
|
const srcDestIssues = await validateSrcAndDestPaths({ isLocal: true, path: src }, { isHubSpot: true, path: dest });
|
|
79
82
|
if (srcDestIssues.length) {
|
|
80
83
|
srcDestIssues.forEach(({ message }) => uiLogger.error(message));
|
|
81
|
-
|
|
84
|
+
return exit(EXIT_CODES.WARNING);
|
|
82
85
|
}
|
|
83
86
|
if (stats.isFile()) {
|
|
84
87
|
if (!isAllowedExtension(src) && !convertFields) {
|
|
@@ -94,14 +97,14 @@ async function handler(args) {
|
|
|
94
97
|
uiLogger.success(commands.cms.subcommands.upload.success.fileUploaded(src, normalizedDest, derivedAccountId));
|
|
95
98
|
logThemePreview(src, derivedAccountId);
|
|
96
99
|
})
|
|
97
|
-
.catch(error => {
|
|
100
|
+
.catch(async (error) => {
|
|
98
101
|
uiLogger.error(commands.cms.subcommands.upload.errors.uploadFailed(src, normalizedDest));
|
|
99
102
|
logError(error, new ApiErrorContext({
|
|
100
103
|
accountId: derivedAccountId,
|
|
101
104
|
request: normalizedDest,
|
|
102
105
|
payload: src,
|
|
103
106
|
}));
|
|
104
|
-
|
|
107
|
+
return exit(EXIT_CODES.WARNING);
|
|
105
108
|
})
|
|
106
109
|
.finally(() => {
|
|
107
110
|
if (!convertFields)
|
|
@@ -140,22 +143,22 @@ async function handler(args) {
|
|
|
140
143
|
fieldOptions: args.fieldOptions ?? undefined,
|
|
141
144
|
saveOutput: args.saveOutput,
|
|
142
145
|
}, filePaths)
|
|
143
|
-
.then(results => {
|
|
146
|
+
.then(async (results) => {
|
|
144
147
|
if (!hasUploadErrors(results)) {
|
|
145
148
|
uiLogger.success(commands.cms.subcommands.upload.success.uploadComplete(dest));
|
|
146
149
|
logThemePreview(src, derivedAccountId);
|
|
147
150
|
}
|
|
148
151
|
else {
|
|
149
152
|
uiLogger.error(commands.cms.subcommands.upload.errors.someFilesFailed(dest));
|
|
150
|
-
|
|
153
|
+
return exit(EXIT_CODES.WARNING);
|
|
151
154
|
}
|
|
152
155
|
})
|
|
153
|
-
.catch(error => {
|
|
156
|
+
.catch(async (error) => {
|
|
154
157
|
uiLogger.error(commands.cms.subcommands.upload.errors.uploadFailed(src, dest));
|
|
155
158
|
logError(error, {
|
|
156
159
|
accountId: derivedAccountId,
|
|
157
160
|
});
|
|
158
|
-
|
|
161
|
+
return exit(EXIT_CODES.WARNING);
|
|
159
162
|
});
|
|
160
163
|
}
|
|
161
164
|
}
|
|
@@ -206,7 +209,7 @@ const builder = makeYargsBuilder(uploadBuilder, command, describe, {
|
|
|
206
209
|
const uploadCommand = {
|
|
207
210
|
command,
|
|
208
211
|
describe,
|
|
209
|
-
handler,
|
|
212
|
+
handler: makeYargsHandlerWithUsageTracking('upload', handler),
|
|
210
213
|
builder,
|
|
211
214
|
};
|
|
212
215
|
export default uploadCommand;
|
package/commands/cms/watch.js
CHANGED
|
@@ -5,19 +5,19 @@ import { getCwd } from '@hubspot/local-dev-lib/path';
|
|
|
5
5
|
import { getCmsPublishMode } from '../../lib/commonOpts.js';
|
|
6
6
|
import { uploadPrompt } from '../../lib/prompts/uploadPrompt.js';
|
|
7
7
|
import { validateCmsPublishMode } from '../../lib/validation.js';
|
|
8
|
-
import { trackCommandUsage } from '../../lib/usageTracking.js';
|
|
9
8
|
import { commands } from '../../lang/en.js';
|
|
10
9
|
import { getUploadableFileList } from '../../lib/upload.js';
|
|
11
10
|
import { logError, ApiErrorContext } from '../../lib/errorHandlers/index.js';
|
|
12
11
|
import { EXIT_CODES } from '../../lib/enums/exitCodes.js';
|
|
13
12
|
import { makeYargsBuilder } from '../../lib/yargsUtils.js';
|
|
13
|
+
import { makeYargsHandlerWithUsageTracking } from '../../lib/yargs/makeYargsHandlerWithUsageTracking.js';
|
|
14
14
|
import { uiLogger } from '../../lib/ui/logger.js';
|
|
15
15
|
const command = 'watch [src] [dest]';
|
|
16
16
|
const describe = commands.cms.subcommands.watch.describe;
|
|
17
17
|
const handler = async (args) => {
|
|
18
|
-
const { remove, initialUpload, notify, derivedAccountId } = args;
|
|
18
|
+
const { remove, initialUpload, notify, derivedAccountId, exit, addUsageMetadata, } = args;
|
|
19
19
|
if (!validateCmsPublishMode(args)) {
|
|
20
|
-
|
|
20
|
+
return exit(EXIT_CODES.ERROR);
|
|
21
21
|
}
|
|
22
22
|
const cmsPublishMode = getCmsPublishMode(args);
|
|
23
23
|
const uploadPromptAnswers = await uploadPrompt(args);
|
|
@@ -43,7 +43,7 @@ const handler = async (args) => {
|
|
|
43
43
|
if (initialUpload) {
|
|
44
44
|
filesToUpload = await getUploadableFileList(absoluteSrcPath, args.convertFields);
|
|
45
45
|
}
|
|
46
|
-
|
|
46
|
+
addUsageMetadata({ mode: cmsPublishMode });
|
|
47
47
|
const onUploadFolderError = (error) => {
|
|
48
48
|
uiLogger.error(commands.cms.subcommands.watch.errors.folderFailed(src, dest, derivedAccountId));
|
|
49
49
|
logError(error, {
|
|
@@ -126,7 +126,7 @@ const builder = makeYargsBuilder(watchBuilder, command, describe, {
|
|
|
126
126
|
const watchCommand = {
|
|
127
127
|
command,
|
|
128
128
|
describe,
|
|
129
|
-
handler,
|
|
129
|
+
handler: makeYargsHandlerWithUsageTracking('watch', handler),
|
|
130
130
|
builder,
|
|
131
131
|
};
|
|
132
132
|
export default watchCommand;
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import fs from 'fs-extra';
|
|
2
2
|
import { logError } from '../../../lib/errorHandlers/index.js';
|
|
3
3
|
import { resolveLocalPath } from '../../../lib/filesystem.js';
|
|
4
|
-
import { trackCommandUsage } from '../../../lib/usageTracking.js';
|
|
5
4
|
import { commands } from '../../../lang/en.js';
|
|
6
5
|
import { uiLogger } from '../../../lib/ui/logger.js';
|
|
7
6
|
import { makeYargsBuilder } from '../../../lib/yargsUtils.js';
|
|
7
|
+
import { makeYargsHandlerWithUsageTracking } from '../../../lib/yargs/makeYargsHandlerWithUsageTracking.js';
|
|
8
8
|
import { EXIT_CODES } from '../../../lib/enums/exitCodes.js';
|
|
9
9
|
import assets from '../../../lib/cmsAssets/index.js';
|
|
10
10
|
const command = 'create [dest]';
|
|
11
11
|
const describe = commands.cms.subcommands.webpack.subcommands.create.describe;
|
|
12
12
|
async function handler(args) {
|
|
13
|
-
const { dest,
|
|
13
|
+
const { dest, exit, addUsageMetadata } = args;
|
|
14
14
|
const assetType = 'webpack-serverless';
|
|
15
|
-
|
|
15
|
+
addUsageMetadata({ assetType });
|
|
16
16
|
const asset = assets[assetType];
|
|
17
17
|
const argsToPass = {
|
|
18
18
|
commandArgs: args,
|
|
@@ -35,7 +35,7 @@ async function handler(args) {
|
|
|
35
35
|
}
|
|
36
36
|
catch (e) {
|
|
37
37
|
logError(e);
|
|
38
|
-
|
|
38
|
+
return exit(EXIT_CODES.ERROR);
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
41
|
function webpackCreateBuilder(yargs) {
|
|
@@ -53,6 +53,6 @@ const webpackCreateCommand = {
|
|
|
53
53
|
command,
|
|
54
54
|
describe,
|
|
55
55
|
builder,
|
|
56
|
-
handler,
|
|
56
|
+
handler: makeYargsHandlerWithUsageTracking('create', handler),
|
|
57
57
|
};
|
|
58
58
|
export default webpackCreateCommand;
|
package/commands/completion.js
CHANGED
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
import yargsParser from 'yargs-parser';
|
|
2
2
|
import { commands } from '../lang/en.js';
|
|
3
|
-
import { trackCommandUsage } from '../lib/usageTracking.js';
|
|
4
3
|
import { makeYargsBuilder } from '../lib/yargsUtils.js';
|
|
4
|
+
import { makeYargsHandlerWithUsageTracking } from '../lib/yargs/makeYargsHandlerWithUsageTracking.js';
|
|
5
5
|
const command = 'completion';
|
|
6
6
|
const describe = commands.completion.describe;
|
|
7
|
-
async function handler() {
|
|
8
|
-
await trackCommandUsage('completion');
|
|
9
|
-
}
|
|
7
|
+
async function handler() { }
|
|
10
8
|
function completionBuilder(yargs) {
|
|
11
9
|
const { help } = yargsParser(process.argv.slice(2));
|
|
12
10
|
if (!help) {
|
|
@@ -21,7 +19,7 @@ const builder = makeYargsBuilder(completionBuilder, command, describe);
|
|
|
21
19
|
const completionCommand = {
|
|
22
20
|
command,
|
|
23
21
|
describe,
|
|
24
|
-
handler,
|
|
22
|
+
handler: makeYargsHandlerWithUsageTracking('completion', handler),
|
|
25
23
|
builder,
|
|
26
24
|
};
|
|
27
25
|
export default completionCommand;
|
|
@@ -1,26 +1,25 @@
|
|
|
1
1
|
import fs from 'fs';
|
|
2
2
|
import { localConfigFileExists, globalConfigFileExists, } from '@hubspot/local-dev-lib/config';
|
|
3
3
|
import { handleMigration, handleMerge } from '../../lib/configMigrate.js';
|
|
4
|
+
import { makeYargsHandlerWithUsageTracking } from '../../lib/yargs/makeYargsHandlerWithUsageTracking.js';
|
|
4
5
|
import { logError } from '../../lib/errorHandlers/index.js';
|
|
5
6
|
import { EXIT_CODES } from '../../lib/enums/exitCodes.js';
|
|
6
7
|
import { makeYargsBuilder } from '../../lib/yargsUtils.js';
|
|
7
|
-
import { trackCommandUsage } from '../../lib/usageTracking.js';
|
|
8
8
|
import { uiLogger } from '../../lib/ui/logger.js';
|
|
9
9
|
import { commands } from '../../lang/en.js';
|
|
10
10
|
const describe = commands.config.subcommands.migrate.describe;
|
|
11
11
|
const command = 'migrate';
|
|
12
12
|
async function handler(args) {
|
|
13
|
-
const {
|
|
14
|
-
trackCommandUsage('config-migrate', {}, derivedAccountId);
|
|
13
|
+
const { config: configPath, force, exit } = args;
|
|
15
14
|
if (configPath && !fs.existsSync(configPath)) {
|
|
16
15
|
uiLogger.error(commands.config.subcommands.migrate.errors.configNotFound(configPath));
|
|
17
|
-
|
|
16
|
+
return exit(EXIT_CODES.ERROR);
|
|
18
17
|
}
|
|
19
18
|
const deprecatedConfigExists = localConfigFileExists();
|
|
20
19
|
const globalConfigExists = globalConfigFileExists();
|
|
21
20
|
if (!deprecatedConfigExists) {
|
|
22
21
|
uiLogger.error(commands.config.subcommands.migrate.errors.noConfigToMigrate);
|
|
23
|
-
|
|
22
|
+
return exit(EXIT_CODES.ERROR);
|
|
24
23
|
}
|
|
25
24
|
let success = false;
|
|
26
25
|
try {
|
|
@@ -34,7 +33,7 @@ async function handler(args) {
|
|
|
34
33
|
catch (error) {
|
|
35
34
|
logError(error);
|
|
36
35
|
}
|
|
37
|
-
|
|
36
|
+
return exit(success ? EXIT_CODES.SUCCESS : EXIT_CODES.ERROR);
|
|
38
37
|
}
|
|
39
38
|
function configMigrateBuilder(yargs) {
|
|
40
39
|
return yargs
|
|
@@ -64,7 +63,7 @@ const builder = makeYargsBuilder(configMigrateBuilder, command, commands.config.
|
|
|
64
63
|
const configMigrateCommand = {
|
|
65
64
|
command,
|
|
66
65
|
describe,
|
|
67
|
-
handler,
|
|
66
|
+
handler: makeYargsHandlerWithUsageTracking('config-migrate', handler),
|
|
68
67
|
builder,
|
|
69
68
|
};
|
|
70
69
|
export default configMigrateCommand;
|
package/commands/config/set.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { trackCommandUsage } from '../../lib/usageTracking.js';
|
|
2
1
|
import { promptUser } from '../../lib/prompts/promptUtils.js';
|
|
3
2
|
import { EXIT_CODES } from '../../lib/enums/exitCodes.js';
|
|
4
3
|
import { setDefaultCmsPublishMode, setHttpTimeout, setAllowUsageTracking, setAllowAutoUpdates, setAutoOpenBrowser, } from '../../lib/configOptions.js';
|
|
4
|
+
import { makeYargsHandlerWithUsageTracking } from '../../lib/yargs/makeYargsHandlerWithUsageTracking.js';
|
|
5
5
|
import { commands } from '../../lang/en.js';
|
|
6
6
|
import { makeYargsBuilder, strictEnforceBoolean, } from '../../lib/yargsUtils.js';
|
|
7
7
|
import { logError } from '../../lib/errorHandlers/index.js';
|
|
@@ -47,8 +47,7 @@ async function handleConfigUpdate(accountId, args) {
|
|
|
47
47
|
}
|
|
48
48
|
}
|
|
49
49
|
async function handler(args) {
|
|
50
|
-
const { derivedAccountId, allowAutoUpdates, allowUsageTracking, defaultCmsPublishMode, httpTimeout, autoOpenBrowser, } = args;
|
|
51
|
-
trackCommandUsage('config-set', {}, derivedAccountId);
|
|
50
|
+
const { derivedAccountId, allowAutoUpdates, allowUsageTracking, defaultCmsPublishMode, httpTimeout, autoOpenBrowser, exit, } = args;
|
|
52
51
|
try {
|
|
53
52
|
if (allowAutoUpdates !== undefined ||
|
|
54
53
|
allowUsageTracking !== undefined ||
|
|
@@ -64,9 +63,9 @@ async function handler(args) {
|
|
|
64
63
|
}
|
|
65
64
|
catch (err) {
|
|
66
65
|
logError(err);
|
|
67
|
-
|
|
66
|
+
return exit(EXIT_CODES.ERROR);
|
|
68
67
|
}
|
|
69
|
-
|
|
68
|
+
return exit(EXIT_CODES.SUCCESS);
|
|
70
69
|
}
|
|
71
70
|
function configSetBuilder(yargs) {
|
|
72
71
|
yargs
|
|
@@ -135,7 +134,7 @@ const builder = makeYargsBuilder(configSetBuilder, command, describe, {
|
|
|
135
134
|
const configSetCommand = {
|
|
136
135
|
command,
|
|
137
136
|
describe,
|
|
138
|
-
handler,
|
|
137
|
+
handler: makeYargsHandlerWithUsageTracking('config-set', handler),
|
|
139
138
|
builder,
|
|
140
139
|
};
|
|
141
140
|
export default configSetCommand;
|
|
@@ -4,18 +4,17 @@ import { inputPrompt } from '../../lib/prompts/promptUtils.js';
|
|
|
4
4
|
import { logError } from '../../lib/errorHandlers/index.js';
|
|
5
5
|
import { getAbsoluteFilePath } from '@hubspot/local-dev-lib/path';
|
|
6
6
|
import { checkAndConvertToJson } from '../../lib/validation.js';
|
|
7
|
-
import { trackCommandUsage } from '../../lib/usageTracking.js';
|
|
8
7
|
import { commands } from '../../lang/en.js';
|
|
9
8
|
import { EXIT_CODES } from '../../lib/enums/exitCodes.js';
|
|
10
9
|
import { isObjectDefinition } from '../../lib/customObject.js';
|
|
10
|
+
import { makeYargsHandlerWithUsageTracking } from '../../lib/yargs/makeYargsHandlerWithUsageTracking.js';
|
|
11
11
|
import { makeYargsBuilder } from '../../lib/yargsUtils.js';
|
|
12
12
|
const command = 'create [name]';
|
|
13
13
|
const describe = commands.customObject.subcommands.create.describe;
|
|
14
14
|
async function handler(args) {
|
|
15
|
-
const { path, name: providedName, derivedAccountId } = args;
|
|
15
|
+
const { path, name: providedName, derivedAccountId, exit } = args;
|
|
16
16
|
let definitionPath = path;
|
|
17
17
|
let name = providedName;
|
|
18
|
-
trackCommandUsage('custom-object-batch-create', {}, derivedAccountId);
|
|
19
18
|
if (!name) {
|
|
20
19
|
name = await inputPrompt(commands.customObject.subcommands.create.inputName);
|
|
21
20
|
}
|
|
@@ -26,7 +25,7 @@ async function handler(args) {
|
|
|
26
25
|
const objectJson = checkAndConvertToJson(filePath);
|
|
27
26
|
if (!isObjectDefinition(objectJson)) {
|
|
28
27
|
uiLogger.error(commands.customObject.subcommands.create.errors.invalidObjectDefinition);
|
|
29
|
-
|
|
28
|
+
return exit(EXIT_CODES.ERROR);
|
|
30
29
|
}
|
|
31
30
|
try {
|
|
32
31
|
await batchCreateObjects(derivedAccountId, name, objectJson);
|
|
@@ -58,7 +57,7 @@ const builder = makeYargsBuilder(customObjectCreateBuilder, command, describe, {
|
|
|
58
57
|
const customObjectCreateCommand = {
|
|
59
58
|
command,
|
|
60
59
|
describe,
|
|
61
|
-
handler,
|
|
60
|
+
handler: makeYargsHandlerWithUsageTracking('custom-object-batch-create', handler),
|
|
62
61
|
builder,
|
|
63
62
|
};
|
|
64
63
|
export default customObjectCreateCommand;
|
|
@@ -5,21 +5,20 @@ import { createObjectSchema } from '@hubspot/local-dev-lib/api/customObjects';
|
|
|
5
5
|
import { getHubSpotWebsiteOrigin } from '@hubspot/local-dev-lib/urls';
|
|
6
6
|
import { logError } from '../../lib/errorHandlers/index.js';
|
|
7
7
|
import { checkAndConvertToJson } from '../../lib/validation.js';
|
|
8
|
-
import { trackCommandUsage } from '../../lib/usageTracking.js';
|
|
9
8
|
import { commands } from '../../lang/en.js';
|
|
10
9
|
import { EXIT_CODES } from '../../lib/enums/exitCodes.js';
|
|
11
10
|
import { isSchemaDefinition } from '../../lib/customObject.js';
|
|
11
|
+
import { makeYargsHandlerWithUsageTracking } from '../../lib/yargs/makeYargsHandlerWithUsageTracking.js';
|
|
12
12
|
import { makeYargsBuilder } from '../../lib/yargsUtils.js';
|
|
13
13
|
const command = 'create-schema';
|
|
14
14
|
const describe = commands.customObject.subcommands.createSchema.describe;
|
|
15
15
|
async function handler(args) {
|
|
16
|
-
const { path, derivedAccountId } = args;
|
|
17
|
-
trackCommandUsage('custom-object-schema-create', {}, derivedAccountId);
|
|
16
|
+
const { path, derivedAccountId, exit } = args;
|
|
18
17
|
const filePath = getAbsoluteFilePath(path);
|
|
19
18
|
const schemaJson = checkAndConvertToJson(filePath);
|
|
20
19
|
if (!isSchemaDefinition(schemaJson)) {
|
|
21
20
|
uiLogger.error(commands.customObject.subcommands.createSchema.errors.invalidSchema);
|
|
22
|
-
|
|
21
|
+
return exit(EXIT_CODES.ERROR);
|
|
23
22
|
}
|
|
24
23
|
try {
|
|
25
24
|
const { data } = await createObjectSchema(derivedAccountId, schemaJson);
|
|
@@ -49,7 +48,7 @@ const builder = makeYargsBuilder(schemaCreateBuilder, command, describe, {
|
|
|
49
48
|
const createSchemaCommand = {
|
|
50
49
|
command,
|
|
51
50
|
describe,
|
|
52
|
-
handler,
|
|
51
|
+
handler: makeYargsHandlerWithUsageTracking('custom-object-schema-create', handler),
|
|
53
52
|
builder,
|
|
54
53
|
};
|
|
55
54
|
export default createSchemaCommand;
|
|
@@ -2,15 +2,14 @@ import { fetchObjectSchemas, deleteObjectSchema, } from '@hubspot/local-dev-lib/
|
|
|
2
2
|
import { EXIT_CODES } from '../../lib/enums/exitCodes.js';
|
|
3
3
|
import { confirmPrompt, listPrompt } from '../../lib/prompts/promptUtils.js';
|
|
4
4
|
import { uiLogger } from '../../lib/ui/logger.js';
|
|
5
|
-
import { trackCommandUsage } from '../../lib/usageTracking.js';
|
|
6
5
|
import { commands } from '../../lang/en.js';
|
|
7
6
|
import { logError } from '../../lib/errorHandlers/index.js';
|
|
7
|
+
import { makeYargsHandlerWithUsageTracking } from '../../lib/yargs/makeYargsHandlerWithUsageTracking.js';
|
|
8
8
|
import { makeYargsBuilder } from '../../lib/yargsUtils.js';
|
|
9
9
|
const command = 'delete-schema [name]';
|
|
10
10
|
const describe = commands.customObject.subcommands.deleteSchema.describe;
|
|
11
11
|
async function handler(args) {
|
|
12
|
-
const { name: providedName, force, derivedAccountId } = args;
|
|
13
|
-
trackCommandUsage('custom-object-schema-delete', {}, derivedAccountId);
|
|
12
|
+
const { name: providedName, force, derivedAccountId, exit } = args;
|
|
14
13
|
let name;
|
|
15
14
|
try {
|
|
16
15
|
const { data: { results }, } = await fetchObjectSchemas(derivedAccountId);
|
|
@@ -25,7 +24,7 @@ async function handler(args) {
|
|
|
25
24
|
(await confirmPrompt(commands.customObject.subcommands.deleteSchema.confirmDelete(name)));
|
|
26
25
|
if (!shouldDelete) {
|
|
27
26
|
uiLogger.info(commands.customObject.subcommands.deleteSchema.deleteCancelled(name));
|
|
28
|
-
return
|
|
27
|
+
return exit(EXIT_CODES.SUCCESS);
|
|
29
28
|
}
|
|
30
29
|
await deleteObjectSchema(derivedAccountId, name);
|
|
31
30
|
uiLogger.success(commands.customObject.subcommands.deleteSchema.success.delete(name));
|
|
@@ -63,7 +62,7 @@ const builder = makeYargsBuilder(schemaDeleteBuilder, command, describe, {
|
|
|
63
62
|
const deleteSchemaCommand = {
|
|
64
63
|
command,
|
|
65
64
|
describe,
|
|
66
|
-
handler,
|
|
65
|
+
handler: makeYargsHandlerWithUsageTracking('custom-object-schema-delete', handler),
|
|
67
66
|
builder,
|
|
68
67
|
};
|
|
69
68
|
export default deleteSchemaCommand;
|
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
import { uiLogger } from '../../lib/ui/logger.js';
|
|
2
2
|
import { downloadSchemas, getResolvedPath, } from '@hubspot/local-dev-lib/customObjects';
|
|
3
3
|
import { inputPrompt } from '../../lib/prompts/promptUtils.js';
|
|
4
|
-
import { trackCommandUsage } from '../../lib/usageTracking.js';
|
|
5
4
|
import { commands } from '../../lang/en.js';
|
|
6
5
|
import { logSchemas } from '../../lib/schema.js';
|
|
7
6
|
import { logError } from '../../lib/errorHandlers/index.js';
|
|
7
|
+
import { makeYargsHandlerWithUsageTracking } from '../../lib/yargs/makeYargsHandlerWithUsageTracking.js';
|
|
8
8
|
import { makeYargsBuilder } from '../../lib/yargsUtils.js';
|
|
9
9
|
const command = 'fetch-all-schemas [dest]';
|
|
10
10
|
const describe = commands.customObject.subcommands.fetchAllSchemas.describe;
|
|
11
11
|
async function handler(args) {
|
|
12
12
|
const { derivedAccountId, dest: providedDest } = args;
|
|
13
|
-
trackCommandUsage('custom-object-schema-fetch-all', {}, derivedAccountId);
|
|
14
13
|
try {
|
|
15
14
|
const dest = providedDest ||
|
|
16
15
|
(await inputPrompt(commands.customObject.subcommands.fetchAllSchemas.inputDest));
|
|
@@ -51,7 +50,7 @@ const builder = makeYargsBuilder(schemaFetchAllBuilder, command, describe, {
|
|
|
51
50
|
const fetchAllSchemasCommand = {
|
|
52
51
|
command,
|
|
53
52
|
describe,
|
|
54
|
-
handler,
|
|
53
|
+
handler: makeYargsHandlerWithUsageTracking('custom-object-schema-fetch-all', handler),
|
|
55
54
|
builder,
|
|
56
55
|
};
|
|
57
56
|
export default fetchAllSchemasCommand;
|
|
@@ -2,15 +2,14 @@ import { fetchObjectSchemas } from '@hubspot/local-dev-lib/api/customObjects';
|
|
|
2
2
|
import { uiLogger } from '../../lib/ui/logger.js';
|
|
3
3
|
import { downloadSchema, getResolvedPath, } from '@hubspot/local-dev-lib/customObjects';
|
|
4
4
|
import { inputPrompt, listPrompt } from '../../lib/prompts/promptUtils.js';
|
|
5
|
-
import { trackCommandUsage } from '../../lib/usageTracking.js';
|
|
6
5
|
import { commands } from '../../lang/en.js';
|
|
7
6
|
import { logError } from '../../lib/errorHandlers/index.js';
|
|
7
|
+
import { makeYargsHandlerWithUsageTracking } from '../../lib/yargs/makeYargsHandlerWithUsageTracking.js';
|
|
8
8
|
import { makeYargsBuilder } from '../../lib/yargsUtils.js';
|
|
9
9
|
const command = 'fetch-schema [name] [dest]';
|
|
10
10
|
const describe = commands.customObject.subcommands.fetchSchema.describe;
|
|
11
11
|
async function handler(args) {
|
|
12
12
|
const { name: providedName, dest: providedDest, derivedAccountId } = args;
|
|
13
|
-
trackCommandUsage('custom-object-schema-fetch', {}, derivedAccountId);
|
|
14
13
|
let name;
|
|
15
14
|
try {
|
|
16
15
|
const { data: { results }, } = await fetchObjectSchemas(derivedAccountId);
|
|
@@ -61,7 +60,7 @@ const builder = makeYargsBuilder(schemaFetchBuilder, command, describe, {
|
|
|
61
60
|
const fetchSchemaCommand = {
|
|
62
61
|
command,
|
|
63
62
|
describe,
|
|
64
|
-
handler,
|
|
63
|
+
handler: makeYargsHandlerWithUsageTracking('custom-object-schema-fetch', handler),
|
|
65
64
|
builder,
|
|
66
65
|
};
|
|
67
66
|
export default fetchSchemaCommand;
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
import { uiLogger } from '../../lib/ui/logger.js';
|
|
2
2
|
import { logError } from '../../lib/errorHandlers/index.js';
|
|
3
|
-
import { trackCommandUsage } from '../../lib/usageTracking.js';
|
|
4
3
|
import { listSchemas } from '../../lib/schema.js';
|
|
5
4
|
import { commands } from '../../lang/en.js';
|
|
5
|
+
import { makeYargsHandlerWithUsageTracking } from '../../lib/yargs/makeYargsHandlerWithUsageTracking.js';
|
|
6
6
|
import { makeYargsBuilder } from '../../lib/yargsUtils.js';
|
|
7
7
|
const command = 'list-schemas';
|
|
8
8
|
const describe = commands.customObject.subcommands.listSchemas.describe;
|
|
9
9
|
async function handler(args) {
|
|
10
10
|
const { derivedAccountId } = args;
|
|
11
|
-
trackCommandUsage('custom-object-schema-list', {}, derivedAccountId);
|
|
12
11
|
try {
|
|
13
12
|
await listSchemas(derivedAccountId);
|
|
14
13
|
}
|
|
@@ -29,7 +28,7 @@ const builder = makeYargsBuilder(schemaListBuilder, command, describe, {
|
|
|
29
28
|
const listSchemasCommand = {
|
|
30
29
|
command,
|
|
31
30
|
describe,
|
|
32
|
-
handler,
|
|
31
|
+
handler: makeYargsHandlerWithUsageTracking('custom-object-schema-list', handler),
|
|
33
32
|
builder,
|
|
34
33
|
};
|
|
35
34
|
export default listSchemasCommand;
|