@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
|
@@ -6,21 +6,20 @@ import { getHubSpotWebsiteOrigin } from '@hubspot/local-dev-lib/urls';
|
|
|
6
6
|
import { listPrompt } from '../../lib/prompts/promptUtils.js';
|
|
7
7
|
import { logError } from '../../lib/errorHandlers/index.js';
|
|
8
8
|
import { checkAndConvertToJson } from '../../lib/validation.js';
|
|
9
|
-
import { trackCommandUsage } from '../../lib/usageTracking.js';
|
|
10
9
|
import { commands } from '../../lang/en.js';
|
|
11
10
|
import { EXIT_CODES } from '../../lib/enums/exitCodes.js';
|
|
12
11
|
import { isSchemaDefinition } from '../../lib/customObject.js';
|
|
12
|
+
import { makeYargsHandlerWithUsageTracking } from '../../lib/yargs/makeYargsHandlerWithUsageTracking.js';
|
|
13
13
|
import { makeYargsBuilder } from '../../lib/yargsUtils.js';
|
|
14
14
|
const command = 'update-schema [name]';
|
|
15
15
|
const describe = commands.customObject.subcommands.updateSchema.describe;
|
|
16
16
|
async function handler(args) {
|
|
17
|
-
const { path, name: providedName, derivedAccountId } = args;
|
|
18
|
-
trackCommandUsage('custom-object-schema-update', {}, derivedAccountId);
|
|
17
|
+
const { path, name: providedName, derivedAccountId, exit } = args;
|
|
19
18
|
const filePath = getAbsoluteFilePath(path);
|
|
20
19
|
const schemaJson = checkAndConvertToJson(filePath);
|
|
21
20
|
if (!isSchemaDefinition(schemaJson)) {
|
|
22
21
|
uiLogger.error(commands.customObject.subcommands.updateSchema.errors.invalidSchema);
|
|
23
|
-
|
|
22
|
+
return exit(EXIT_CODES.ERROR);
|
|
24
23
|
}
|
|
25
24
|
let name = providedName;
|
|
26
25
|
try {
|
|
@@ -64,7 +63,7 @@ const builder = makeYargsBuilder(schemaUpdateBuilder, command, describe, {
|
|
|
64
63
|
const updateSchemaCommand = {
|
|
65
64
|
command,
|
|
66
65
|
describe,
|
|
67
|
-
handler,
|
|
66
|
+
handler: makeYargsHandlerWithUsageTracking('custom-object-schema-update', handler),
|
|
68
67
|
builder,
|
|
69
68
|
};
|
|
70
69
|
export default updateSchemaCommand;
|
package/commands/doctor.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import path from 'path';
|
|
2
2
|
import fs from 'fs';
|
|
3
|
-
import { trackCommandMetadataUsage
|
|
3
|
+
import { trackCommandMetadataUsage } from '../lib/usageTracking.js';
|
|
4
4
|
import { Doctor } from '../lib/doctor/Doctor.js';
|
|
5
5
|
import { EXIT_CODES } from '../lib/enums/exitCodes.js';
|
|
6
6
|
import { getCwd } from '@hubspot/local-dev-lib/path';
|
|
7
|
+
import { makeYargsHandlerWithUsageTracking } from '../lib/yargs/makeYargsHandlerWithUsageTracking.js';
|
|
7
8
|
import { makeYargsBuilder } from '../lib/yargsUtils.js';
|
|
8
9
|
import { uiLogger } from '../lib/ui/logger.js';
|
|
9
10
|
import { removeAnsiCodes } from '../lib/ui/removeAnsiCodes.js';
|
|
@@ -12,9 +13,8 @@ import { getErrorMessage } from '../lib/errorHandlers/index.js';
|
|
|
12
13
|
const command = 'doctor';
|
|
13
14
|
const describe = commands.doctor.describe;
|
|
14
15
|
const handler = async (args) => {
|
|
15
|
-
const { outputDir } = args;
|
|
16
|
+
const { outputDir, exit } = args;
|
|
16
17
|
const doctor = new Doctor();
|
|
17
|
-
trackCommandUsage(command, undefined, doctor.accountId || undefined);
|
|
18
18
|
const output = await doctor.diagnose();
|
|
19
19
|
const totalCount = (output?.errorCount || 0) + (output?.warningCount || 0);
|
|
20
20
|
if (totalCount > 0) {
|
|
@@ -26,9 +26,9 @@ const handler = async (args) => {
|
|
|
26
26
|
}
|
|
27
27
|
else {
|
|
28
28
|
uiLogger.error(commands.doctor.errors.generatingDiagnosis);
|
|
29
|
-
return
|
|
29
|
+
return exit(EXIT_CODES.ERROR);
|
|
30
30
|
}
|
|
31
|
-
return
|
|
31
|
+
return exit(EXIT_CODES.SUCCESS);
|
|
32
32
|
}
|
|
33
33
|
let outputDirPath = outputDir;
|
|
34
34
|
if (!path.isAbsolute(outputDirPath)) {
|
|
@@ -47,9 +47,9 @@ const handler = async (args) => {
|
|
|
47
47
|
}
|
|
48
48
|
catch (e) {
|
|
49
49
|
uiLogger.error(commands.doctor.errors.unableToWriteOutputFile(outputFile, getErrorMessage(e)));
|
|
50
|
-
return
|
|
50
|
+
return exit(EXIT_CODES.ERROR);
|
|
51
51
|
}
|
|
52
|
-
return
|
|
52
|
+
return exit(EXIT_CODES.SUCCESS);
|
|
53
53
|
};
|
|
54
54
|
function doctorBuilder(yargs) {
|
|
55
55
|
yargs.option('output-dir', {
|
|
@@ -64,7 +64,7 @@ const builder = makeYargsBuilder(doctorBuilder, command, describe, {
|
|
|
64
64
|
const doctorCommand = {
|
|
65
65
|
command,
|
|
66
66
|
describe,
|
|
67
|
-
handler,
|
|
67
|
+
handler: makeYargsHandlerWithUsageTracking('doctor', handler),
|
|
68
68
|
builder,
|
|
69
69
|
};
|
|
70
70
|
export default doctorCommand;
|
package/commands/feedback.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import open from 'open';
|
|
2
2
|
import { confirmPrompt } from '../lib/prompts/promptUtils.js';
|
|
3
|
+
import { makeYargsHandlerWithUsageTracking } from '../lib/yargs/makeYargsHandlerWithUsageTracking.js';
|
|
3
4
|
import { makeYargsBuilder } from '../lib/yargsUtils.js';
|
|
4
5
|
import { EXIT_CODES } from '../lib/enums/exitCodes.js';
|
|
5
6
|
import { commands } from '../lang/en.js';
|
|
@@ -7,15 +8,16 @@ import { uiLogger } from '../lib/ui/logger.js';
|
|
|
7
8
|
import { FEEDBACK_URL } from '../lib/constants.js';
|
|
8
9
|
const command = 'feedback';
|
|
9
10
|
const describe = commands.project.feedback.describe;
|
|
10
|
-
async function handler() {
|
|
11
|
+
async function handler(args) {
|
|
12
|
+
const { exit } = args;
|
|
11
13
|
const shouldOpen = await confirmPrompt(commands.project.feedback.openPrompt);
|
|
12
14
|
if (!shouldOpen) {
|
|
13
15
|
uiLogger.log(commands.project.feedback.error(FEEDBACK_URL));
|
|
14
|
-
|
|
16
|
+
return exit(EXIT_CODES.SUCCESS);
|
|
15
17
|
}
|
|
16
18
|
open(FEEDBACK_URL, { url: true });
|
|
17
19
|
uiLogger.success(commands.project.feedback.success(FEEDBACK_URL));
|
|
18
|
-
|
|
20
|
+
return exit(EXIT_CODES.SUCCESS);
|
|
19
21
|
}
|
|
20
22
|
function feedbackBuilder(yargs) {
|
|
21
23
|
return yargs;
|
|
@@ -26,7 +28,7 @@ const builder = makeYargsBuilder(feedbackBuilder, command, describe, {
|
|
|
26
28
|
const feedbackCommand = {
|
|
27
29
|
command,
|
|
28
30
|
describe,
|
|
29
|
-
handler,
|
|
31
|
+
handler: makeYargsHandlerWithUsageTracking('feedback', handler),
|
|
30
32
|
builder,
|
|
31
33
|
};
|
|
32
34
|
export default feedbackCommand;
|
|
@@ -1,29 +1,28 @@
|
|
|
1
1
|
import { downloadFileOrFolder } from '@hubspot/local-dev-lib/fileManager';
|
|
2
2
|
import { uiLogger } from '../../lib/ui/logger.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 { EXIT_CODES } from '../../lib/enums/exitCodes.js';
|
|
7
6
|
import { logError } from '../../lib/errorHandlers/index.js';
|
|
8
7
|
import { addOverwriteOptions } from '../../lib/commonOpts.js';
|
|
8
|
+
import { makeYargsHandlerWithUsageTracking } from '../../lib/yargs/makeYargsHandlerWithUsageTracking.js';
|
|
9
9
|
import { makeYargsBuilder } from '../../lib/yargsUtils.js';
|
|
10
10
|
const command = 'fetch <src> [dest]';
|
|
11
11
|
const describe = commands.filemanager.subcommands.fetch.describe;
|
|
12
12
|
async function handler(args) {
|
|
13
|
-
const { src, includeArchived, derivedAccountId, overwrite } = args;
|
|
13
|
+
const { src, includeArchived, derivedAccountId, overwrite, exit } = args;
|
|
14
14
|
if (typeof src !== 'string') {
|
|
15
15
|
uiLogger.error(commands.filemanager.subcommands.fetch.errors.sourceRequired);
|
|
16
|
-
|
|
16
|
+
return exit(EXIT_CODES.ERROR);
|
|
17
17
|
}
|
|
18
18
|
const dest = resolveLocalPath(args.dest);
|
|
19
|
-
trackCommandUsage('filemanager-fetch', {}, derivedAccountId);
|
|
20
19
|
try {
|
|
21
20
|
// Fetch and write file/folder.
|
|
22
21
|
await downloadFileOrFolder(derivedAccountId, src, dest, overwrite, includeArchived || false);
|
|
23
22
|
}
|
|
24
23
|
catch (err) {
|
|
25
24
|
logError(err);
|
|
26
|
-
|
|
25
|
+
return exit(EXIT_CODES.ERROR);
|
|
27
26
|
}
|
|
28
27
|
}
|
|
29
28
|
function fileManagerFetchBuilder(yargs) {
|
|
@@ -52,7 +51,7 @@ const builder = makeYargsBuilder(fileManagerFetchBuilder, command, describe, {
|
|
|
52
51
|
const fileManagerFetchCommand = {
|
|
53
52
|
command,
|
|
54
53
|
describe,
|
|
55
|
-
handler,
|
|
54
|
+
handler: makeYargsHandlerWithUsageTracking('filemanager-fetch', handler),
|
|
56
55
|
builder,
|
|
57
56
|
};
|
|
58
57
|
export default fileManagerFetchCommand;
|
|
@@ -7,14 +7,14 @@ import { uiLogger } from '../../lib/ui/logger.js';
|
|
|
7
7
|
import { validateSrcAndDestPaths } from '@hubspot/local-dev-lib/cms/modules';
|
|
8
8
|
import { shouldIgnoreFile } from '@hubspot/local-dev-lib/ignoreRules';
|
|
9
9
|
import { ApiErrorContext, logError } from '../../lib/errorHandlers/index.js';
|
|
10
|
-
import { trackCommandUsage } from '../../lib/usageTracking.js';
|
|
11
10
|
import { commands } from '../../lang/en.js';
|
|
12
11
|
import { EXIT_CODES } from '../../lib/enums/exitCodes.js';
|
|
12
|
+
import { makeYargsHandlerWithUsageTracking } from '../../lib/yargs/makeYargsHandlerWithUsageTracking.js';
|
|
13
13
|
import { makeYargsBuilder } from '../../lib/yargsUtils.js';
|
|
14
14
|
const command = 'upload <src> <dest>';
|
|
15
15
|
const describe = commands.filemanager.subcommands.upload.describe;
|
|
16
16
|
async function handler(args) {
|
|
17
|
-
const { src, dest, derivedAccountId } = args;
|
|
17
|
+
const { src, dest, derivedAccountId, addUsageMetadata, exit } = args;
|
|
18
18
|
const absoluteSrcPath = path.resolve(getCwd(), src);
|
|
19
19
|
let stats;
|
|
20
20
|
try {
|
|
@@ -33,11 +33,11 @@ async function handler(args) {
|
|
|
33
33
|
return;
|
|
34
34
|
}
|
|
35
35
|
const normalizedDest = convertToUnixPath(dest);
|
|
36
|
-
|
|
36
|
+
addUsageMetadata({ type: stats.isFile() ? 'file' : 'folder' });
|
|
37
37
|
const srcDestIssues = await validateSrcAndDestPaths({ isLocal: true, path: src }, { isHubSpot: true, path: dest });
|
|
38
38
|
if (srcDestIssues.length) {
|
|
39
39
|
srcDestIssues.forEach(({ message }) => uiLogger.error(message));
|
|
40
|
-
|
|
40
|
+
return exit(EXIT_CODES.ERROR);
|
|
41
41
|
}
|
|
42
42
|
if (stats.isFile()) {
|
|
43
43
|
if (shouldIgnoreFile(absoluteSrcPath)) {
|
|
@@ -91,7 +91,7 @@ const builder = makeYargsBuilder(fileManagerUploadBuilder, command, describe, {
|
|
|
91
91
|
const fileManagerUploadCommand = {
|
|
92
92
|
command,
|
|
93
93
|
describe,
|
|
94
|
-
handler,
|
|
94
|
+
handler: makeYargsHandlerWithUsageTracking('filemanager-upload', handler),
|
|
95
95
|
builder,
|
|
96
96
|
};
|
|
97
97
|
export default fileManagerUploadCommand;
|
package/commands/getStarted.js
CHANGED
|
@@ -13,8 +13,9 @@ import { projectNameAndDestPrompt } from '../lib/prompts/projectNameAndDestPromp
|
|
|
13
13
|
import { promptUser } from '../lib/prompts/promptUtils.js';
|
|
14
14
|
import { uiAccountDescription, uiFeatureHighlight, uiInfoSection, } from '../lib/ui/index.js';
|
|
15
15
|
import { uiLogger } from '../lib/ui/logger.js';
|
|
16
|
-
import { trackCommandMetadataUsage
|
|
16
|
+
import { trackCommandMetadataUsage } from '../lib/usageTracking.js';
|
|
17
17
|
import { makeYargsBuilder } from '../lib/yargsUtils.js';
|
|
18
|
+
import { makeYargsHandlerWithUsageTracking } from '../lib/yargs/makeYargsHandlerWithUsageTracking.js';
|
|
18
19
|
import { isV2Project } from '../lib/projects/platformVersion.js';
|
|
19
20
|
import { pollProjectBuildAndDeploy } from '../lib/projects/pollProjectBuildAndDeploy.js';
|
|
20
21
|
import { fetchPublicAppsForPortal } from '@hubspot/local-dev-lib/api/appsDev';
|
|
@@ -26,9 +27,8 @@ import { runGetStartedV2 } from '../lib/getStarted/getStartedV2.js';
|
|
|
26
27
|
const command = 'get-started';
|
|
27
28
|
const describe = commands.getStarted.describe;
|
|
28
29
|
async function handler(args) {
|
|
29
|
-
const { derivedAccountId } = args;
|
|
30
|
+
const { derivedAccountId, exit } = args;
|
|
30
31
|
const env = getConfigAccountEnvironment(derivedAccountId);
|
|
31
|
-
await trackCommandUsage('get-started', {}, derivedAccountId);
|
|
32
32
|
const accountName = uiAccountDescription(derivedAccountId);
|
|
33
33
|
if (args.v2) {
|
|
34
34
|
try {
|
|
@@ -37,13 +37,11 @@ async function handler(args) {
|
|
|
37
37
|
name: args.name,
|
|
38
38
|
dest: args.dest,
|
|
39
39
|
});
|
|
40
|
-
|
|
41
|
-
return;
|
|
40
|
+
return exit(EXIT_CODES.SUCCESS);
|
|
42
41
|
}
|
|
43
42
|
catch (error) {
|
|
44
43
|
logError(error);
|
|
45
|
-
|
|
46
|
-
return;
|
|
44
|
+
return exit(EXIT_CODES.ERROR);
|
|
47
45
|
}
|
|
48
46
|
}
|
|
49
47
|
uiInfoSection(commands.getStarted.startTitle, () => {
|
|
@@ -92,7 +90,7 @@ async function handler(args) {
|
|
|
92
90
|
openLink(derivedAccountId, 'design-manager');
|
|
93
91
|
}
|
|
94
92
|
}
|
|
95
|
-
|
|
93
|
+
return exit(EXIT_CODES.SUCCESS);
|
|
96
94
|
}
|
|
97
95
|
else {
|
|
98
96
|
uiLogger.log(' ');
|
|
@@ -110,7 +108,7 @@ async function handler(args) {
|
|
|
110
108
|
}, derivedAccountId);
|
|
111
109
|
uiLogger.log(' ');
|
|
112
110
|
uiLogger.error(commands.project.create.errors.cannotNestProjects(existingProjectDir));
|
|
113
|
-
|
|
111
|
+
return exit(EXIT_CODES.ERROR);
|
|
114
112
|
}
|
|
115
113
|
// 4. Clone the project template from GitHub
|
|
116
114
|
try {
|
|
@@ -131,7 +129,7 @@ async function handler(args) {
|
|
|
131
129
|
debugError(err);
|
|
132
130
|
uiLogger.log(' ');
|
|
133
131
|
uiLogger.error(commands.project.create.errors.failedToDownloadProject);
|
|
134
|
-
|
|
132
|
+
return exit(EXIT_CODES.ERROR);
|
|
135
133
|
}
|
|
136
134
|
const projectConfigPath = path.join(projectDest, PROJECT_CONFIG_FILE);
|
|
137
135
|
const parsedConfigFile = JSON.parse(fs.readFileSync(projectConfigPath).toString());
|
|
@@ -177,7 +175,7 @@ async function handler(args) {
|
|
|
177
175
|
}, derivedAccountId);
|
|
178
176
|
uiLogger.log(' ');
|
|
179
177
|
uiLogger.error(commands.getStarted.errors.configFileNotFound);
|
|
180
|
-
|
|
178
|
+
return exit(EXIT_CODES.ERROR);
|
|
181
179
|
}
|
|
182
180
|
try {
|
|
183
181
|
validateProjectConfig(newProjectConfig, newProjectDir);
|
|
@@ -191,7 +189,7 @@ async function handler(args) {
|
|
|
191
189
|
}, derivedAccountId);
|
|
192
190
|
uiLogger.log(' ');
|
|
193
191
|
uiLogger.error(error.message);
|
|
194
|
-
|
|
192
|
+
return exit(EXIT_CODES.ERROR);
|
|
195
193
|
}
|
|
196
194
|
throw error;
|
|
197
195
|
}
|
|
@@ -268,13 +266,13 @@ async function handler(args) {
|
|
|
268
266
|
uiLogger.log(' ');
|
|
269
267
|
uiLogger.error(commands.getStarted.errors.uploadFailed);
|
|
270
268
|
debugError(err);
|
|
271
|
-
|
|
269
|
+
return exit(EXIT_CODES.ERROR);
|
|
272
270
|
}
|
|
273
271
|
}
|
|
274
272
|
else {
|
|
275
273
|
uiLogger.log(' ');
|
|
276
274
|
uiFeatureHighlight(['projectUploadCommand', 'projectDevCommand']);
|
|
277
|
-
|
|
275
|
+
return exit(EXIT_CODES.SUCCESS);
|
|
278
276
|
}
|
|
279
277
|
}
|
|
280
278
|
// Track successful completion of get-started command
|
|
@@ -282,7 +280,7 @@ async function handler(args) {
|
|
|
282
280
|
successful: true,
|
|
283
281
|
step: 'command-completed',
|
|
284
282
|
}, derivedAccountId);
|
|
285
|
-
|
|
283
|
+
return exit(EXIT_CODES.SUCCESS);
|
|
286
284
|
}
|
|
287
285
|
function getStartedBuilder(yargs) {
|
|
288
286
|
yargs.options({
|
|
@@ -316,7 +314,7 @@ const builder = makeYargsBuilder(getStartedBuilder, command, commands.getStarted
|
|
|
316
314
|
const getStartedCommand = {
|
|
317
315
|
command,
|
|
318
316
|
describe,
|
|
319
|
-
handler,
|
|
317
|
+
handler: makeYargsHandlerWithUsageTracking('get-started', handler),
|
|
320
318
|
builder,
|
|
321
319
|
};
|
|
322
320
|
export default getStartedCommand;
|
package/commands/hubdb/clear.js
CHANGED
|
@@ -1,17 +1,16 @@
|
|
|
1
1
|
import { uiLogger } from '../../lib/ui/logger.js';
|
|
2
2
|
import { logError } from '../../lib/errorHandlers/index.js';
|
|
3
|
-
import {
|
|
3
|
+
import { isPromptExitError } from '../../lib/errors/PromptExitError.js';
|
|
4
4
|
import { clearHubDbTableRows } from '@hubspot/local-dev-lib/hubdb';
|
|
5
5
|
import { publishTable } from '@hubspot/local-dev-lib/api/hubdb';
|
|
6
6
|
import { selectHubDBTablePrompt } from '../../lib/prompts/selectHubDBTablePrompt.js';
|
|
7
|
-
import { trackCommandUsage } from '../../lib/usageTracking.js';
|
|
8
7
|
import { commands } from '../../lang/en.js';
|
|
8
|
+
import { makeYargsHandlerWithUsageTracking } from '../../lib/yargs/makeYargsHandlerWithUsageTracking.js';
|
|
9
9
|
import { makeYargsBuilder } from '../../lib/yargsUtils.js';
|
|
10
10
|
const command = 'clear [table-id]';
|
|
11
11
|
const describe = commands.hubdb.subcommands.clear.describe;
|
|
12
12
|
async function handler(args) {
|
|
13
13
|
const { derivedAccountId } = args;
|
|
14
|
-
trackCommandUsage('hubdb-clear', {}, derivedAccountId);
|
|
15
14
|
try {
|
|
16
15
|
const { tableId } = 'tableId' in args
|
|
17
16
|
? args
|
|
@@ -30,8 +29,8 @@ async function handler(args) {
|
|
|
30
29
|
}
|
|
31
30
|
}
|
|
32
31
|
catch (e) {
|
|
33
|
-
if (e
|
|
34
|
-
|
|
32
|
+
if (isPromptExitError(e)) {
|
|
33
|
+
throw e;
|
|
35
34
|
}
|
|
36
35
|
logError(e);
|
|
37
36
|
}
|
|
@@ -52,7 +51,7 @@ const builder = makeYargsBuilder(hubdbClearBuilder, command, describe, {
|
|
|
52
51
|
const hubdbClearCommand = {
|
|
53
52
|
command,
|
|
54
53
|
describe,
|
|
55
|
-
handler,
|
|
54
|
+
handler: makeYargsHandlerWithUsageTracking('hubdb-clear', handler),
|
|
56
55
|
builder,
|
|
57
56
|
};
|
|
58
57
|
export default hubdbClearCommand;
|
package/commands/hubdb/create.js
CHANGED
|
@@ -5,9 +5,9 @@ import { getCwd, untildify, isValidPath } from '@hubspot/local-dev-lib/path';
|
|
|
5
5
|
import { createHubDbTable } from '@hubspot/local-dev-lib/hubdb';
|
|
6
6
|
import { promptUser } from '../../lib/prompts/promptUtils.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';
|
|
10
|
+
import { makeYargsHandlerWithUsageTracking } from '../../lib/yargs/makeYargsHandlerWithUsageTracking.js';
|
|
11
11
|
import { makeYargsBuilder } from '../../lib/yargsUtils.js';
|
|
12
12
|
const command = 'create';
|
|
13
13
|
const describe = commands.hubdb.subcommands.create.describe;
|
|
@@ -33,8 +33,7 @@ function selectPathPrompt(options) {
|
|
|
33
33
|
]);
|
|
34
34
|
}
|
|
35
35
|
async function handler(args) {
|
|
36
|
-
const { derivedAccountId } = args;
|
|
37
|
-
trackCommandUsage('hubdb-create', {}, derivedAccountId);
|
|
36
|
+
const { derivedAccountId, exit } = args;
|
|
38
37
|
let filePath;
|
|
39
38
|
try {
|
|
40
39
|
filePath =
|
|
@@ -42,7 +41,7 @@ async function handler(args) {
|
|
|
42
41
|
? path.resolve(getCwd(), args.path)
|
|
43
42
|
: path.resolve(getCwd(), (await selectPathPrompt(args)).path);
|
|
44
43
|
if (!checkAndConvertToJson(filePath)) {
|
|
45
|
-
|
|
44
|
+
return exit(EXIT_CODES.ERROR);
|
|
46
45
|
}
|
|
47
46
|
const table = await createHubDbTable(derivedAccountId, path.resolve(getCwd(), filePath));
|
|
48
47
|
uiLogger.success(commands.hubdb.subcommands.create.success.create(table.tableId, derivedAccountId, table.rowCount));
|
|
@@ -68,7 +67,7 @@ const builder = makeYargsBuilder(hubdbCreateBuilder, command, describe, {
|
|
|
68
67
|
const hubdbCreateCommand = {
|
|
69
68
|
command,
|
|
70
69
|
describe,
|
|
71
|
-
handler,
|
|
70
|
+
handler: makeYargsHandlerWithUsageTracking('hubdb-create', handler),
|
|
72
71
|
builder,
|
|
73
72
|
};
|
|
74
73
|
export default hubdbCreateCommand;
|
package/commands/hubdb/delete.js
CHANGED
|
@@ -1,18 +1,17 @@
|
|
|
1
1
|
import { uiLogger } from '../../lib/ui/logger.js';
|
|
2
2
|
import { logError } from '../../lib/errorHandlers/index.js';
|
|
3
|
-
import {
|
|
3
|
+
import { isPromptExitError } from '../../lib/errors/PromptExitError.js';
|
|
4
4
|
import { deleteTable } from '@hubspot/local-dev-lib/api/hubdb';
|
|
5
|
-
import { trackCommandUsage } from '../../lib/usageTracking.js';
|
|
6
5
|
import { selectHubDBTablePrompt } from '../../lib/prompts/selectHubDBTablePrompt.js';
|
|
7
6
|
import { promptUser } from '../../lib/prompts/promptUtils.js';
|
|
8
7
|
import { EXIT_CODES } from '../../lib/enums/exitCodes.js';
|
|
9
8
|
import { commands } from '../../lang/en.js';
|
|
9
|
+
import { makeYargsHandlerWithUsageTracking } from '../../lib/yargs/makeYargsHandlerWithUsageTracking.js';
|
|
10
10
|
import { makeYargsBuilder } from '../../lib/yargsUtils.js';
|
|
11
11
|
const command = 'delete [table-id]';
|
|
12
12
|
const describe = commands.hubdb.subcommands.delete.describe;
|
|
13
13
|
async function handler(args) {
|
|
14
|
-
const { force, derivedAccountId } = args;
|
|
15
|
-
trackCommandUsage('hubdb-delete', {}, derivedAccountId);
|
|
14
|
+
const { force, derivedAccountId, exit } = args;
|
|
16
15
|
try {
|
|
17
16
|
const { tableId } = 'tableId' in args && args.tableId
|
|
18
17
|
? args
|
|
@@ -27,16 +26,16 @@ async function handler(args) {
|
|
|
27
26
|
message: commands.hubdb.subcommands.delete.shouldDeleteTable(tableId),
|
|
28
27
|
});
|
|
29
28
|
if (!shouldDeleteTable) {
|
|
30
|
-
|
|
29
|
+
return exit(EXIT_CODES.SUCCESS);
|
|
31
30
|
}
|
|
32
31
|
}
|
|
33
32
|
await deleteTable(derivedAccountId, tableId);
|
|
34
33
|
uiLogger.success(commands.hubdb.subcommands.delete.success.delete(tableId, derivedAccountId));
|
|
35
|
-
|
|
34
|
+
return exit(EXIT_CODES.SUCCESS);
|
|
36
35
|
}
|
|
37
36
|
catch (e) {
|
|
38
|
-
if (e
|
|
39
|
-
|
|
37
|
+
if (isPromptExitError(e)) {
|
|
38
|
+
throw e;
|
|
40
39
|
}
|
|
41
40
|
uiLogger.error(commands.hubdb.subcommands.delete.errors.delete(args.tableId || ''));
|
|
42
41
|
logError(e);
|
|
@@ -62,7 +61,7 @@ const builder = makeYargsBuilder(hubdbDeleteBuilder, command, describe, {
|
|
|
62
61
|
const hubdbDeleteCommand = {
|
|
63
62
|
command,
|
|
64
63
|
describe,
|
|
65
|
-
handler,
|
|
64
|
+
handler: makeYargsHandlerWithUsageTracking('hubdb-delete', handler),
|
|
66
65
|
builder,
|
|
67
66
|
};
|
|
68
67
|
export default hubdbDeleteCommand;
|
package/commands/hubdb/fetch.js
CHANGED
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
import { uiLogger } from '../../lib/ui/logger.js';
|
|
2
2
|
import { logError } from '../../lib/errorHandlers/index.js';
|
|
3
|
-
import {
|
|
3
|
+
import { isPromptExitError } from '../../lib/errors/PromptExitError.js';
|
|
4
4
|
import { downloadHubDbTable } from '@hubspot/local-dev-lib/hubdb';
|
|
5
5
|
import { selectHubDBTablePrompt } from '../../lib/prompts/selectHubDBTablePrompt.js';
|
|
6
|
-
import { trackCommandUsage } from '../../lib/usageTracking.js';
|
|
7
6
|
import { commands } from '../../lang/en.js';
|
|
7
|
+
import { makeYargsHandlerWithUsageTracking } from '../../lib/yargs/makeYargsHandlerWithUsageTracking.js';
|
|
8
8
|
import { makeYargsBuilder } from '../../lib/yargsUtils.js';
|
|
9
9
|
const command = 'fetch [table-id] [dest]';
|
|
10
10
|
const describe = commands.hubdb.subcommands.fetch.describe;
|
|
11
11
|
async function handler(args) {
|
|
12
12
|
const { derivedAccountId } = args;
|
|
13
|
-
trackCommandUsage('hubdb-fetch', {}, derivedAccountId);
|
|
14
13
|
try {
|
|
15
14
|
const promptAnswers = await selectHubDBTablePrompt({
|
|
16
15
|
accountId: derivedAccountId,
|
|
@@ -23,8 +22,8 @@ async function handler(args) {
|
|
|
23
22
|
uiLogger.success(commands.hubdb.subcommands.fetch.success.fetch(tableId, filePath));
|
|
24
23
|
}
|
|
25
24
|
catch (e) {
|
|
26
|
-
if (e
|
|
27
|
-
|
|
25
|
+
if (isPromptExitError(e)) {
|
|
26
|
+
throw e;
|
|
28
27
|
}
|
|
29
28
|
logError(e);
|
|
30
29
|
}
|
|
@@ -49,7 +48,7 @@ const builder = makeYargsBuilder(hubdbFetchBuilder, command, describe, {
|
|
|
49
48
|
const hubdbFetchCommand = {
|
|
50
49
|
command,
|
|
51
50
|
describe,
|
|
52
|
-
handler,
|
|
51
|
+
handler: makeYargsHandlerWithUsageTracking('hubdb-fetch', handler),
|
|
53
52
|
builder,
|
|
54
53
|
};
|
|
55
54
|
export default hubdbFetchCommand;
|
package/commands/hubdb/list.js
CHANGED
|
@@ -1,23 +1,17 @@
|
|
|
1
1
|
import { fetchTables } from '@hubspot/local-dev-lib/api/hubdb';
|
|
2
|
+
import { makeYargsHandlerWithUsageTracking } from '../../lib/yargs/makeYargsHandlerWithUsageTracking.js';
|
|
2
3
|
import { EXIT_CODES } from '../../lib/enums/exitCodes.js';
|
|
3
4
|
import { uiLogger } from '../../lib/ui/logger.js';
|
|
4
5
|
import { logError } from '../../lib/errorHandlers/index.js';
|
|
5
6
|
import { commands } from '../../lang/en.js';
|
|
6
7
|
import { makeYargsBuilder } from '../../lib/yargsUtils.js';
|
|
7
|
-
import { trackCommandUsage } from '../../lib/usageTracking.js';
|
|
8
8
|
import { renderTable } from '../../ui/render.js';
|
|
9
9
|
import { getBaseHubSpotUrlForAccount } from '../../lib/projects/urls.js';
|
|
10
10
|
const command = ['list', 'ls'];
|
|
11
11
|
const describe = commands.hubdb.subcommands.list.describe;
|
|
12
12
|
async function getTableData(accountId) {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
return response.data;
|
|
16
|
-
}
|
|
17
|
-
catch (err) {
|
|
18
|
-
logError(err);
|
|
19
|
-
process.exit(EXIT_CODES.ERROR);
|
|
20
|
-
}
|
|
13
|
+
const response = await fetchTables(accountId);
|
|
14
|
+
return response.data;
|
|
21
15
|
}
|
|
22
16
|
// stripping the types and unnecessary fields so this data can be turned into a UI table
|
|
23
17
|
function mapTablesToUI(tables) {
|
|
@@ -30,9 +24,17 @@ function mapTablesToUI(tables) {
|
|
|
30
24
|
]);
|
|
31
25
|
}
|
|
32
26
|
async function handler(args) {
|
|
33
|
-
const { derivedAccountId } = args;
|
|
34
|
-
|
|
35
|
-
|
|
27
|
+
const { derivedAccountId, exit } = args;
|
|
28
|
+
let tableData;
|
|
29
|
+
try {
|
|
30
|
+
tableData = await getTableData(derivedAccountId);
|
|
31
|
+
}
|
|
32
|
+
catch (err) {
|
|
33
|
+
logError(err);
|
|
34
|
+
return exit(EXIT_CODES.ERROR);
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
const { results: tables, total } = tableData;
|
|
36
38
|
const tableUIData = mapTablesToUI(tables);
|
|
37
39
|
const tableHeader = [
|
|
38
40
|
commands.hubdb.subcommands.list.labels.id,
|
|
@@ -58,7 +60,7 @@ async function handler(args) {
|
|
|
58
60
|
else {
|
|
59
61
|
uiLogger.log(commands.hubdb.subcommands.list.noTables(derivedAccountId));
|
|
60
62
|
}
|
|
61
|
-
|
|
63
|
+
return exit(EXIT_CODES.SUCCESS);
|
|
62
64
|
}
|
|
63
65
|
function hubdbListBuilder(yargs) {
|
|
64
66
|
yargs.example([['$0 hubdb list']]);
|
|
@@ -73,7 +75,7 @@ const builder = makeYargsBuilder(hubdbListBuilder, command, describe, {
|
|
|
73
75
|
const hubdbListCommand = {
|
|
74
76
|
command,
|
|
75
77
|
describe,
|
|
76
|
-
handler,
|
|
78
|
+
handler: makeYargsHandlerWithUsageTracking('hubdb-list', handler),
|
|
77
79
|
builder,
|
|
78
80
|
};
|
|
79
81
|
export default hubdbListCommand;
|
package/commands/init.js
CHANGED
|
@@ -12,14 +12,15 @@ import { setCLILogLevel } from '../lib/commonOpts.js';
|
|
|
12
12
|
import { makeYargsBuilder } from '../lib/yargsUtils.js';
|
|
13
13
|
import { handleExit } from '../lib/process.js';
|
|
14
14
|
import { debugError, logError } from '../lib/errorHandlers/index.js';
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
15
|
+
import { isPromptExitError } from '../lib/errors/PromptExitError.js';
|
|
16
|
+
import { trackAuthAction } from '../lib/usageTracking.js';
|
|
17
17
|
import { promptUser } from '../lib/prompts/promptUtils.js';
|
|
18
18
|
import { OAUTH_FLOW, personalAccessKeyPrompt, } from '../lib/prompts/personalAccessKeyPrompt.js';
|
|
19
19
|
import { cliAccountNamePrompt } from '../lib/prompts/accountNamePrompt.js';
|
|
20
20
|
import { authenticateWithOauth } from '../lib/oauth.js';
|
|
21
21
|
import { EXIT_CODES } from '../lib/enums/exitCodes.js';
|
|
22
22
|
import { uiCommandReference, uiFeatureHighlight } from '../lib/ui/index.js';
|
|
23
|
+
import { makeYargsHandlerWithUsageTracking } from '../lib/yargs/makeYargsHandlerWithUsageTracking.js';
|
|
23
24
|
import { uiLogger } from '../lib/ui/logger.js';
|
|
24
25
|
import { commands } from '../lang/en.js';
|
|
25
26
|
import { parseStringToNumber } from '../lib/parsing.js';
|
|
@@ -62,7 +63,7 @@ async function oauthConfigCreationFlow(env) {
|
|
|
62
63
|
}
|
|
63
64
|
catch (e) {
|
|
64
65
|
logError(e);
|
|
65
|
-
|
|
66
|
+
throw e;
|
|
66
67
|
}
|
|
67
68
|
return oauthAccount;
|
|
68
69
|
}
|
|
@@ -73,7 +74,7 @@ const AUTH_TYPE_NAMES = {
|
|
|
73
74
|
const command = 'init';
|
|
74
75
|
const describe = commands.init.describe;
|
|
75
76
|
async function handler(args) {
|
|
76
|
-
const { authType: authTypeFlagValue, c: configFlagValue, disableTracking, userProvidedAccount, } = args;
|
|
77
|
+
const { authType: authTypeFlagValue, c: configFlagValue, disableTracking, userProvidedAccount, exit, addUsageMetadata, } = args;
|
|
77
78
|
let parsedUserProvidedAccountId;
|
|
78
79
|
try {
|
|
79
80
|
if (userProvidedAccount) {
|
|
@@ -82,7 +83,7 @@ async function handler(args) {
|
|
|
82
83
|
}
|
|
83
84
|
catch (err) {
|
|
84
85
|
uiLogger.error(commands.init.errors.invalidAccountIdProvided);
|
|
85
|
-
|
|
86
|
+
return exit(EXIT_CODES.ERROR);
|
|
86
87
|
}
|
|
87
88
|
const authType = (authTypeFlagValue && authTypeFlagValue.toLowerCase()) ||
|
|
88
89
|
PERSONAL_ACCESS_KEY_AUTH_METHOD.value;
|
|
@@ -94,22 +95,18 @@ async function handler(args) {
|
|
|
94
95
|
}
|
|
95
96
|
catch (err) { }
|
|
96
97
|
setCLILogLevel(args);
|
|
97
|
-
|
|
98
|
-
trackCommandUsage('init', {
|
|
99
|
-
authType,
|
|
100
|
-
});
|
|
101
|
-
}
|
|
98
|
+
addUsageMetadata({ authType });
|
|
102
99
|
const env = args.qa ? ENVIRONMENTS.QA : ENVIRONMENTS.PROD;
|
|
103
100
|
// Only check for global config if user is not providing a custom config path
|
|
104
101
|
if (!configFlagValue && globalConfigFileExists()) {
|
|
105
102
|
uiLogger.error(commands.init.errors.globalConfigFileExists);
|
|
106
|
-
|
|
103
|
+
return exit(EXIT_CODES.ERROR);
|
|
107
104
|
}
|
|
108
105
|
// Check if the specific config file path already exists
|
|
109
106
|
if (existingConfigPath && existsSync(existingConfigPath)) {
|
|
110
107
|
uiLogger.error(commands.init.errors.configFileExists(existingConfigPath));
|
|
111
108
|
uiLogger.info(commands.init.logs.updateConfig);
|
|
112
|
-
|
|
109
|
+
return exit(EXIT_CODES.ERROR);
|
|
113
110
|
}
|
|
114
111
|
if (!disableTracking) {
|
|
115
112
|
await trackAuthAction('init', authType, TRACKING_STATUS.STARTED, parsedUserProvidedAccountId);
|
|
@@ -148,17 +145,17 @@ async function handler(args) {
|
|
|
148
145
|
if (!disableTracking) {
|
|
149
146
|
await trackAuthAction('init', authType, TRACKING_STATUS.COMPLETE, accountId);
|
|
150
147
|
}
|
|
151
|
-
|
|
148
|
+
return exit(EXIT_CODES.SUCCESS);
|
|
152
149
|
}
|
|
153
150
|
catch (err) {
|
|
154
|
-
if (err
|
|
155
|
-
|
|
151
|
+
if (isPromptExitError(err)) {
|
|
152
|
+
throw err;
|
|
156
153
|
}
|
|
157
154
|
logError(err);
|
|
158
155
|
if (!disableTracking) {
|
|
159
156
|
await trackAuthAction('init', authType, TRACKING_STATUS.ERROR, parsedUserProvidedAccountId);
|
|
160
157
|
}
|
|
161
|
-
|
|
158
|
+
return exit(EXIT_CODES.ERROR);
|
|
162
159
|
}
|
|
163
160
|
}
|
|
164
161
|
function initBuilder(yargs) {
|
|
@@ -194,7 +191,7 @@ const builder = makeYargsBuilder(initBuilder, command, commands.init.verboseDesc
|
|
|
194
191
|
const initCommand = {
|
|
195
192
|
command,
|
|
196
193
|
describe,
|
|
197
|
-
handler,
|
|
194
|
+
handler: makeYargsHandlerWithUsageTracking('init', handler),
|
|
198
195
|
builder,
|
|
199
196
|
};
|
|
200
197
|
export default initCommand;
|