@hubspot/cli 7.4.2-experimental.0 → 7.4.2
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/api/migrate.d.ts +62 -0
- package/api/migrate.js +61 -0
- package/bin/cli.js +8 -183
- package/commands/account/auth.d.ts +10 -0
- package/commands/account/auth.js +168 -0
- package/commands/account/clean.js +38 -5
- package/commands/account/createOverride.d.ts +10 -0
- package/commands/account/createOverride.js +104 -0
- package/commands/account/info.js +38 -4
- package/commands/account/list.js +23 -5
- package/commands/account/remove.js +36 -2
- package/commands/account/removeOverride.d.ts +10 -0
- package/commands/account/removeOverride.js +76 -0
- package/commands/account/use.js +25 -3
- package/commands/account.js +7 -2
- package/commands/app/migrate.d.ts +4 -4
- package/commands/app/migrate.js +10 -4
- package/commands/auth.js +6 -2
- package/commands/cms/lighthouseScore.js +6 -2
- package/commands/config/migrate.d.ts +10 -0
- package/commands/config/migrate.js +84 -0
- package/commands/config/set.d.ts +10 -0
- package/commands/config/set.js +34 -29
- package/commands/config.d.ts +4 -1
- package/commands/config.js +45 -11
- package/commands/create/api-sample.js +3 -1
- package/commands/customObject/schema/delete.js +4 -1
- package/commands/customObject/schema/fetch-all.js +2 -1
- package/commands/customObject/schema/fetch.js +2 -1
- package/commands/init.js +9 -10
- package/commands/project/cloneApp.d.ts +5 -1
- package/commands/project/cloneApp.js +1 -1
- package/commands/project/dev/index.js +1 -1
- package/commands/project/installDeps.d.ts +9 -1
- package/commands/project/installDeps.js +43 -30
- package/commands/project/logs.d.ts +13 -1
- package/commands/project/logs.js +69 -62
- package/commands/project/migrate.d.ts +11 -0
- package/commands/project/migrate.js +54 -0
- package/commands/project/migrateApp.d.ts +4 -4
- package/commands/project/upload.d.ts +12 -0
- package/commands/project/upload.js +62 -49
- package/commands/project/watch.js +12 -0
- package/commands/project.js +2 -0
- package/lang/en.d.ts +2840 -0
- package/lang/en.js +2647 -3301
- package/lang/en.lyaml +100 -40
- package/lib/app/migrate.d.ts +10 -6
- package/lib/app/migrate.js +157 -232
- package/lib/app/migrate_legacy.d.ts +4 -0
- package/lib/app/migrate_legacy.js +131 -0
- package/lib/configMigrate.d.ts +2 -0
- package/lib/configMigrate.js +104 -0
- package/lib/doctor/Diagnosis.d.ts +1 -2
- package/lib/doctor/Diagnosis.js +10 -6
- package/lib/doctor/DiagnosticInfoBuilder.d.ts +1 -0
- package/lib/doctor/DiagnosticInfoBuilder.js +1 -0
- package/lib/doctor/Doctor.d.ts +1 -0
- package/lib/doctor/Doctor.js +18 -0
- package/lib/middleware/__test__/configMiddleware.test.d.ts +1 -0
- package/lib/middleware/__test__/configMiddleware.test.js +194 -0
- package/lib/middleware/__test__/gitMiddleware.test.d.ts +1 -0
- package/lib/middleware/__test__/gitMiddleware.test.js +76 -0
- package/lib/middleware/__test__/notificationsMiddleware.test.d.ts +1 -0
- package/lib/middleware/__test__/notificationsMiddleware.test.js +10 -0
- package/lib/middleware/__test__/requestMiddleware.test.d.ts +1 -0
- package/lib/middleware/__test__/requestMiddleware.test.js +20 -0
- package/lib/middleware/__test__/utils.test.d.ts +1 -0
- package/lib/middleware/__test__/utils.test.js +53 -0
- package/lib/middleware/__test__/yargsChecksMiddleware.test.d.ts +1 -0
- package/lib/middleware/__test__/yargsChecksMiddleware.test.js +81 -0
- package/lib/middleware/configMiddleware.d.ts +13 -0
- package/lib/middleware/configMiddleware.js +116 -0
- package/lib/middleware/fireAlarmMiddleware.d.ts +4 -0
- package/lib/middleware/fireAlarmMiddleware.js +137 -0
- package/lib/middleware/gitMiddleware.d.ts +2 -0
- package/lib/middleware/gitMiddleware.js +14 -0
- package/lib/middleware/notificationsMiddleware.d.ts +1 -0
- package/lib/middleware/notificationsMiddleware.js +38 -0
- package/lib/middleware/requestMiddleware.d.ts +1 -0
- package/lib/middleware/requestMiddleware.js +11 -0
- package/lib/middleware/utils.d.ts +8 -0
- package/lib/middleware/utils.js +17 -0
- package/lib/middleware/yargsChecksMiddleware.d.ts +4 -0
- package/lib/middleware/yargsChecksMiddleware.js +24 -0
- package/lib/projects/ProjectLogsManager.d.ts +1 -1
- package/lib/projects/ProjectLogsManager.js +1 -1
- package/lib/projects/index.d.ts +4 -3
- package/lib/projects/upload.d.ts +1 -1
- package/lib/ui/SpinniesManager.d.ts +1 -1
- package/lib/ui/index.d.ts +1 -0
- package/lib/ui/index.js +5 -0
- package/lib/ui/spinniesUtils.d.ts +5 -5
- package/package.json +7 -6
- package/types/Yargs.d.ts +0 -10
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ArgumentsCamelCase, Argv, CommandModule } from 'yargs';
|
|
2
|
+
import { AccountArgs, CommonArgs, ConfigArgs, EnvironmentArgs } from '../../types/Yargs';
|
|
3
|
+
export type ProjectMigrateArgs = CommonArgs & AccountArgs & EnvironmentArgs & ConfigArgs & {
|
|
4
|
+
platformVersion: string;
|
|
5
|
+
};
|
|
6
|
+
export declare const command = "migrate";
|
|
7
|
+
export declare const describe: undefined;
|
|
8
|
+
export declare function handler(options: ArgumentsCamelCase<ProjectMigrateArgs>): Promise<void>;
|
|
9
|
+
export declare function builder(yargs: Argv): Argv<ProjectMigrateArgs>;
|
|
10
|
+
declare const migrateAppCommand: CommandModule<unknown, ProjectMigrateArgs>;
|
|
11
|
+
export default migrateAppCommand;
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.describe = exports.command = void 0;
|
|
4
|
+
exports.handler = handler;
|
|
5
|
+
exports.builder = builder;
|
|
6
|
+
const lang_1 = require("../../lib/lang");
|
|
7
|
+
const logger_1 = require("@hubspot/local-dev-lib/logger");
|
|
8
|
+
const commonOpts_1 = require("../../lib/commonOpts");
|
|
9
|
+
const migrate_1 = require("../../lib/app/migrate");
|
|
10
|
+
const projects_1 = require("../../lib/projects");
|
|
11
|
+
const projects_2 = require("@hubspot/local-dev-lib/constants/projects");
|
|
12
|
+
const errorHandlers_1 = require("../../lib/errorHandlers");
|
|
13
|
+
const exitCodes_1 = require("../../lib/enums/exitCodes");
|
|
14
|
+
exports.command = 'migrate';
|
|
15
|
+
exports.describe = undefined; // i18n('commands.project.subcommands.migrate.noProjectConfig')
|
|
16
|
+
async function handler(options) {
|
|
17
|
+
const projectConfig = await (0, projects_1.getProjectConfig)();
|
|
18
|
+
if (!projectConfig.projectConfig) {
|
|
19
|
+
logger_1.logger.error((0, lang_1.i18n)('commands.project.subcommands.migrate.errors.noProjectConfig'));
|
|
20
|
+
return process.exit(exitCodes_1.EXIT_CODES.ERROR);
|
|
21
|
+
}
|
|
22
|
+
const { derivedAccountId } = options;
|
|
23
|
+
try {
|
|
24
|
+
await (0, migrate_1.migrateApp2025_2)(derivedAccountId, {
|
|
25
|
+
...options,
|
|
26
|
+
name: projectConfig?.projectConfig?.name,
|
|
27
|
+
platformVersion: options.platformVersion,
|
|
28
|
+
}, projectConfig);
|
|
29
|
+
}
|
|
30
|
+
catch (error) {
|
|
31
|
+
(0, errorHandlers_1.logError)(error);
|
|
32
|
+
return process.exit(exitCodes_1.EXIT_CODES.ERROR);
|
|
33
|
+
}
|
|
34
|
+
return process.exit(exitCodes_1.EXIT_CODES.SUCCESS);
|
|
35
|
+
}
|
|
36
|
+
function builder(yargs) {
|
|
37
|
+
(0, commonOpts_1.addConfigOptions)(yargs);
|
|
38
|
+
(0, commonOpts_1.addAccountOptions)(yargs);
|
|
39
|
+
(0, commonOpts_1.addGlobalOptions)(yargs);
|
|
40
|
+
yargs.option('platform-version', {
|
|
41
|
+
type: 'string',
|
|
42
|
+
choices: Object.values(projects_2.PLATFORM_VERSIONS),
|
|
43
|
+
default: projects_2.PLATFORM_VERSIONS.v2025_2,
|
|
44
|
+
hidden: true,
|
|
45
|
+
});
|
|
46
|
+
return yargs;
|
|
47
|
+
}
|
|
48
|
+
const migrateAppCommand = {
|
|
49
|
+
command: exports.command,
|
|
50
|
+
describe: exports.describe,
|
|
51
|
+
handler,
|
|
52
|
+
builder,
|
|
53
|
+
};
|
|
54
|
+
exports.default = migrateAppCommand;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { ArgumentsCamelCase, Argv, CommandModule } from 'yargs';
|
|
2
|
-
import {
|
|
2
|
+
import { MigrateAppArgs } from '../../lib/app/migrate';
|
|
3
3
|
export declare const command = "migrate-app";
|
|
4
4
|
export declare const describe: string | undefined;
|
|
5
5
|
export declare const deprecated = true;
|
|
6
|
-
export declare function handler(yargs: ArgumentsCamelCase<
|
|
7
|
-
export declare function builder(yargs: Argv): Argv<
|
|
8
|
-
declare const migrateAppCommand: CommandModule<unknown,
|
|
6
|
+
export declare function handler(yargs: ArgumentsCamelCase<MigrateAppArgs>): Promise<void>;
|
|
7
|
+
export declare function builder(yargs: Argv): Argv<MigrateAppArgs>;
|
|
8
|
+
declare const migrateAppCommand: CommandModule<unknown, MigrateAppArgs>;
|
|
9
9
|
export default migrateAppCommand;
|
|
@@ -1 +1,13 @@
|
|
|
1
|
+
import { Argv, ArgumentsCamelCase } from 'yargs';
|
|
2
|
+
import { CommonArgs } from '../../types/Yargs';
|
|
3
|
+
export declare const command = "upload";
|
|
4
|
+
export declare const describe: string;
|
|
5
|
+
type ProjectUploadArgs = CommonArgs & {
|
|
6
|
+
forceCreate: boolean;
|
|
7
|
+
message: string;
|
|
8
|
+
m: string;
|
|
9
|
+
skipValidation: boolean;
|
|
10
|
+
};
|
|
11
|
+
export declare function handler(args: ArgumentsCamelCase<ProjectUploadArgs>): Promise<void>;
|
|
12
|
+
export declare const builder: (yargs: Argv) => Promise<Argv<ProjectUploadArgs>>;
|
|
1
13
|
export {};
|
|
@@ -1,83 +1,88 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
const
|
|
10
|
-
const
|
|
11
|
-
const
|
|
12
|
-
const
|
|
13
|
-
const
|
|
14
|
-
const
|
|
15
|
-
const
|
|
16
|
-
const
|
|
17
|
-
const
|
|
18
|
-
const
|
|
6
|
+
exports.builder = exports.describe = exports.command = void 0;
|
|
7
|
+
exports.handler = handler;
|
|
8
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
9
|
+
const logger_1 = require("@hubspot/local-dev-lib/logger");
|
|
10
|
+
const config_1 = require("@hubspot/local-dev-lib/config");
|
|
11
|
+
const index_1 = require("@hubspot/local-dev-lib/errors/index");
|
|
12
|
+
const buildAndDeploy_1 = require("../../lib/projects/buildAndDeploy");
|
|
13
|
+
const ui_1 = require("../../lib/ui");
|
|
14
|
+
const usageTracking_1 = require("../../lib/usageTracking");
|
|
15
|
+
const projects_1 = require("../../lib/projects");
|
|
16
|
+
const upload_1 = require("../../lib/projects/upload");
|
|
17
|
+
const buildAndDeploy_2 = require("../../lib/projects/buildAndDeploy");
|
|
18
|
+
const lang_1 = require("../../lib/lang");
|
|
19
|
+
const constants_1 = require("../../lib/constants");
|
|
20
|
+
const index_2 = require("../../lib/errorHandlers/index");
|
|
21
|
+
const exitCodes_1 = require("../../lib/enums/exitCodes");
|
|
22
|
+
const yargsUtils_1 = require("../../lib/yargsUtils");
|
|
19
23
|
const i18nKey = 'commands.project.subcommands.upload';
|
|
20
24
|
exports.command = 'upload';
|
|
21
|
-
exports.describe = uiBetaTag(i18n(`${i18nKey}.describe`), false);
|
|
22
|
-
|
|
23
|
-
const { forceCreate, message, derivedAccountId, skipValidation } =
|
|
24
|
-
const accountConfig = getAccountConfig(derivedAccountId);
|
|
25
|
+
exports.describe = (0, ui_1.uiBetaTag)((0, lang_1.i18n)(`${i18nKey}.describe`), false);
|
|
26
|
+
async function handler(args) {
|
|
27
|
+
const { forceCreate, message, derivedAccountId, skipValidation } = args;
|
|
28
|
+
const accountConfig = (0, config_1.getAccountConfig)(derivedAccountId);
|
|
25
29
|
const accountType = accountConfig && accountConfig.accountType;
|
|
26
|
-
const { projectConfig, projectDir } = await getProjectConfig();
|
|
27
|
-
trackCommandUsage('project-upload', { type: accountType }, derivedAccountId);
|
|
28
|
-
validateProjectConfig(projectConfig, projectDir);
|
|
29
|
-
await ensureProjectExists(derivedAccountId, projectConfig.name, {
|
|
30
|
+
const { projectConfig, projectDir } = await (0, projects_1.getProjectConfig)();
|
|
31
|
+
(0, usageTracking_1.trackCommandUsage)('project-upload', { type: accountType }, derivedAccountId);
|
|
32
|
+
(0, projects_1.validateProjectConfig)(projectConfig, projectDir);
|
|
33
|
+
await (0, projects_1.ensureProjectExists)(derivedAccountId, projectConfig.name, {
|
|
30
34
|
forceCreate,
|
|
31
35
|
uploadCommand: true,
|
|
32
36
|
});
|
|
33
37
|
try {
|
|
34
|
-
const { result, uploadError } = await handleProjectUpload(derivedAccountId, projectConfig, projectDir, pollProjectBuildAndDeploy, message, useV3Api(projectConfig
|
|
38
|
+
const { result, uploadError } = await (0, upload_1.handleProjectUpload)(derivedAccountId, projectConfig, projectDir, buildAndDeploy_2.pollProjectBuildAndDeploy, message, (0, buildAndDeploy_1.useV3Api)(projectConfig.platformVersion), skipValidation);
|
|
35
39
|
if (uploadError) {
|
|
36
|
-
if (isSpecifiedError(uploadError, {
|
|
37
|
-
subCategory: PROJECT_ERROR_TYPES.PROJECT_LOCKED,
|
|
40
|
+
if ((0, index_1.isSpecifiedError)(uploadError, {
|
|
41
|
+
subCategory: constants_1.PROJECT_ERROR_TYPES.PROJECT_LOCKED,
|
|
38
42
|
})) {
|
|
39
|
-
logger.log();
|
|
40
|
-
logger.error(i18n(`${i18nKey}.errors.projectLockedError`));
|
|
41
|
-
logger.log();
|
|
43
|
+
logger_1.logger.log();
|
|
44
|
+
logger_1.logger.error((0, lang_1.i18n)(`${i18nKey}.errors.projectLockedError`));
|
|
45
|
+
logger_1.logger.log();
|
|
42
46
|
}
|
|
43
47
|
else {
|
|
44
|
-
logError(uploadError, new ApiErrorContext({
|
|
48
|
+
(0, index_2.logError)(uploadError, new index_2.ApiErrorContext({
|
|
45
49
|
accountId: derivedAccountId,
|
|
46
50
|
request: 'project upload',
|
|
47
51
|
}));
|
|
48
52
|
}
|
|
49
|
-
process.exit(EXIT_CODES.ERROR);
|
|
53
|
+
process.exit(exitCodes_1.EXIT_CODES.ERROR);
|
|
50
54
|
}
|
|
51
|
-
if (result.succeeded && !result.buildResult.isAutoDeployEnabled) {
|
|
52
|
-
logger.log(
|
|
55
|
+
if (result && result.succeeded && !result.buildResult.isAutoDeployEnabled) {
|
|
56
|
+
logger_1.logger.log(chalk_1.default.bold((0, lang_1.i18n)(`${i18nKey}.logs.buildSucceeded`, {
|
|
53
57
|
buildId: result.buildId,
|
|
54
58
|
})));
|
|
55
|
-
logger.log(i18n(`${i18nKey}.logs.autoDeployDisabled`, {
|
|
56
|
-
deployCommand: uiCommandReference(`hs project deploy --build=${result.buildId}`),
|
|
59
|
+
logger_1.logger.log((0, lang_1.i18n)(`${i18nKey}.logs.autoDeployDisabled`, {
|
|
60
|
+
deployCommand: (0, ui_1.uiCommandReference)(`hs project deploy --build=${result.buildId}`),
|
|
57
61
|
}));
|
|
58
|
-
logFeedbackMessage(result.buildId);
|
|
59
|
-
await displayWarnLogs(derivedAccountId, projectConfig.name, result.buildId);
|
|
60
|
-
process.exit(EXIT_CODES.SUCCESS);
|
|
62
|
+
(0, projects_1.logFeedbackMessage)(result.buildId);
|
|
63
|
+
await (0, buildAndDeploy_2.displayWarnLogs)(derivedAccountId, projectConfig.name, result.buildId);
|
|
64
|
+
process.exit(exitCodes_1.EXIT_CODES.SUCCESS);
|
|
61
65
|
}
|
|
62
66
|
}
|
|
63
67
|
catch (e) {
|
|
64
|
-
logError(e, new ApiErrorContext({
|
|
68
|
+
(0, index_2.logError)(e, new index_2.ApiErrorContext({
|
|
65
69
|
accountId: derivedAccountId,
|
|
66
70
|
request: 'project upload',
|
|
67
71
|
}));
|
|
68
|
-
process.exit(EXIT_CODES.ERROR);
|
|
72
|
+
process.exit(exitCodes_1.EXIT_CODES.ERROR);
|
|
69
73
|
}
|
|
70
|
-
|
|
71
|
-
|
|
74
|
+
process.exit(exitCodes_1.EXIT_CODES.SUCCESS);
|
|
75
|
+
}
|
|
76
|
+
function projectUploadBuilder(yargs) {
|
|
72
77
|
yargs.options({
|
|
73
78
|
'force-create': {
|
|
74
|
-
describe: i18n(`${i18nKey}.options.forceCreate.describe`),
|
|
79
|
+
describe: (0, lang_1.i18n)(`${i18nKey}.options.forceCreate.describe`),
|
|
75
80
|
type: 'boolean',
|
|
76
81
|
default: false,
|
|
77
82
|
},
|
|
78
83
|
message: {
|
|
79
84
|
alias: 'm',
|
|
80
|
-
describe: i18n(`${i18nKey}.options.message.describe`),
|
|
85
|
+
describe: (0, lang_1.i18n)(`${i18nKey}.options.message.describe`),
|
|
81
86
|
type: 'string',
|
|
82
87
|
default: '',
|
|
83
88
|
},
|
|
@@ -87,9 +92,17 @@ exports.builder = yargs => {
|
|
|
87
92
|
default: false,
|
|
88
93
|
},
|
|
89
94
|
});
|
|
90
|
-
yargs.example([['$0 project upload', i18n(`${i18nKey}.examples.default`)]]);
|
|
91
|
-
addConfigOptions(yargs);
|
|
92
|
-
addAccountOptions(yargs);
|
|
93
|
-
addUseEnvironmentOptions(yargs);
|
|
95
|
+
yargs.example([['$0 project upload', (0, lang_1.i18n)(`${i18nKey}.examples.default`)]]);
|
|
94
96
|
return yargs;
|
|
97
|
+
}
|
|
98
|
+
exports.builder = (0, yargsUtils_1.makeYargsBuilder)(projectUploadBuilder, exports.command, exports.describe, {
|
|
99
|
+
useConfigOptions: true,
|
|
100
|
+
useAccountOptions: true,
|
|
101
|
+
useEnvironmentOptions: true,
|
|
102
|
+
});
|
|
103
|
+
module.exports = {
|
|
104
|
+
command: exports.command,
|
|
105
|
+
describe: exports.describe,
|
|
106
|
+
builder: exports.builder,
|
|
107
|
+
handler,
|
|
95
108
|
};
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
// @ts-nocheck
|
|
4
|
+
const { uiLink } = require('../../lib/ui');
|
|
5
|
+
const { useV3Api } = require('../../lib/projects/buildAndDeploy');
|
|
6
|
+
const { uiCommandReference } = require('../../lib/ui');
|
|
4
7
|
const { i18n } = require('../../lib/lang');
|
|
5
8
|
const { createWatcher } = require('../../lib/projects/watch');
|
|
6
9
|
const { logError, ApiErrorContext } = require('../../lib/errorHandlers/index');
|
|
@@ -61,6 +64,15 @@ exports.handler = async (options) => {
|
|
|
61
64
|
const { initialUpload, derivedAccountId } = options;
|
|
62
65
|
trackCommandUsage('project-watch', null, derivedAccountId);
|
|
63
66
|
const { projectConfig, projectDir } = await getProjectConfig();
|
|
67
|
+
if (useV3Api(projectConfig?.platformVersion)) {
|
|
68
|
+
logger.error(i18n(`commands.project.subcommands.watch.errors.v3ApiError`, {
|
|
69
|
+
command: uiCommandReference('hs project watch'),
|
|
70
|
+
newCommand: uiCommandReference('hs project dev'),
|
|
71
|
+
platformVersion: projectConfig.platformVersion,
|
|
72
|
+
linkToDocs: uiLink('How to develop locally.', 'https://developers.hubspot.com/docs/guides/crm/ui-extensions/local-development'),
|
|
73
|
+
}));
|
|
74
|
+
return process.exit(EXIT_CODES.ERROR);
|
|
75
|
+
}
|
|
64
76
|
validateProjectConfig(projectConfig, projectDir);
|
|
65
77
|
await ensureProjectExists(derivedAccountId, projectConfig.name);
|
|
66
78
|
try {
|
package/commands/project.js
CHANGED
|
@@ -15,6 +15,7 @@ const open = require('./project/open');
|
|
|
15
15
|
const dev = require('./project/dev');
|
|
16
16
|
const add = require('./project/add');
|
|
17
17
|
const migrateApp = require('./project/migrateApp');
|
|
18
|
+
const migrate = require('./project/migrate');
|
|
18
19
|
const cloneApp = require('./project/cloneApp');
|
|
19
20
|
const installDeps = require('./project/installDeps');
|
|
20
21
|
const i18nKey = 'commands.project';
|
|
@@ -34,6 +35,7 @@ exports.builder = yargs => {
|
|
|
34
35
|
.command(download)
|
|
35
36
|
.command(open)
|
|
36
37
|
.command(migrateApp)
|
|
38
|
+
.command(migrate)
|
|
37
39
|
.command(cloneApp)
|
|
38
40
|
.command(installDeps)
|
|
39
41
|
.demandCommand(1, '');
|