@hubspot/cli 7.4.7-experimental.0 → 7.4.7
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 +14 -4
- package/api/migrate.js +16 -2
- package/bin/cli.js +8 -183
- package/commands/account/auth.d.ts +10 -0
- package/commands/account/auth.js +188 -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 +6 -6
- package/commands/app/migrate.js +62 -45
- package/commands/app.js +0 -2
- package/commands/auth.js +14 -11
- package/commands/cms/lighthouseScore.js +7 -3
- package/commands/cms.js +1 -2
- package/commands/completion.js +2 -3
- 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/create/website-theme.js +1 -1
- package/commands/create.js +7 -8
- 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/customObject.js +3 -4
- package/commands/doctor.js +5 -6
- package/commands/feedback.js +7 -8
- package/commands/fetch.js +6 -7
- package/commands/filemanager.js +1 -2
- package/commands/function.js +1 -2
- package/commands/hubdb/clear.js +5 -6
- package/commands/hubdb/create.js +7 -8
- package/commands/hubdb/delete.js +8 -7
- package/commands/hubdb/fetch.js +4 -5
- package/commands/hubdb.js +1 -2
- package/commands/init.js +18 -20
- package/commands/lint.js +3 -4
- package/commands/list.js +5 -6
- package/commands/logs.js +12 -13
- package/commands/module/marketplace-validate.js +5 -6
- package/commands/module.js +1 -3
- package/commands/mv.js +4 -5
- package/commands/open.js +4 -5
- package/commands/project/add.d.ts +3 -7
- package/commands/project/add.js +28 -23
- package/commands/project/cloneApp.d.ts +6 -8
- package/commands/project/cloneApp.js +49 -45
- package/commands/project/create.d.ts +10 -1
- package/commands/project/create.js +85 -63
- package/commands/project/deploy.d.ts +3 -6
- package/commands/project/deploy.js +27 -25
- package/commands/project/dev/deprecatedFlow.js +32 -25
- package/commands/project/dev/index.d.ts +4 -2
- package/commands/project/dev/index.js +31 -18
- package/commands/project/dev/unifiedFlow.js +10 -11
- package/commands/project/download.d.ts +3 -7
- package/commands/project/download.js +18 -19
- package/commands/project/installDeps.d.ts +6 -1
- package/commands/project/installDeps.js +48 -32
- package/commands/project/listBuilds.d.ts +3 -7
- package/commands/project/listBuilds.js +32 -27
- package/commands/project/logs.d.ts +10 -1
- package/commands/project/logs.js +73 -65
- package/commands/project/migrate.d.ts +6 -0
- package/commands/project/migrate.js +71 -0
- package/commands/project/migrateApp.d.ts +3 -8
- package/commands/project/migrateApp.js +23 -20
- package/commands/project/open.d.ts +3 -7
- package/commands/project/open.js +29 -21
- package/commands/project/upload.d.ts +9 -1
- package/commands/project/upload.js +78 -54
- package/commands/project/watch.d.ts +6 -1
- package/commands/project/watch.js +95 -61
- package/commands/project.d.ts +3 -1
- package/commands/project.js +47 -35
- package/commands/remove.js +7 -5
- package/commands/sandbox/create.js +10 -11
- package/commands/sandbox/delete.js +18 -19
- package/commands/sandbox.js +1 -2
- package/commands/secret/addSecret.js +5 -6
- package/commands/secret/deleteSecret.js +12 -9
- package/commands/secret/listSecret.js +3 -4
- package/commands/secret/updateSecret.js +9 -8
- package/commands/secret.js +1 -2
- package/commands/theme/generate-selectors.js +5 -6
- package/commands/theme/marketplace-validate.js +5 -6
- package/commands/theme/preview.js +16 -16
- package/commands/theme.js +1 -2
- package/commands/upload.js +23 -24
- package/commands/watch.js +18 -19
- package/lang/en.d.ts +2806 -0
- package/lang/en.js +2659 -3300
- package/lang/en.lyaml +98 -41
- package/lib/accountTypes.d.ts +1 -0
- package/lib/accountTypes.js +12 -0
- package/lib/app/migrate.d.ts +10 -4
- package/lib/app/migrate.js +208 -94
- package/lib/app/migrate_legacy.d.ts +2 -2
- package/lib/app/migrate_legacy.js +10 -7
- package/lib/buildAccount.d.ts +1 -2
- package/lib/buildAccount.js +11 -10
- package/lib/commonOpts.d.ts +3 -4
- package/lib/commonOpts.js +46 -18
- package/lib/configMigrate.d.ts +2 -0
- package/lib/configMigrate.js +104 -0
- package/lib/configOptions.js +11 -10
- package/lib/constants.d.ts +4 -0
- package/lib/constants.js +5 -1
- package/lib/dependencyManagement.js +2 -2
- package/lib/doctor/Diagnosis.d.ts +1 -2
- package/lib/doctor/Diagnosis.js +19 -16
- package/lib/doctor/DiagnosticInfoBuilder.d.ts +2 -1
- package/lib/doctor/DiagnosticInfoBuilder.js +10 -9
- package/lib/doctor/Doctor.d.ts +1 -0
- package/lib/doctor/Doctor.js +57 -44
- package/lib/errorHandlers/index.js +6 -7
- package/lib/errorHandlers/suppressError.js +6 -7
- package/lib/generateSelectors.js +1 -2
- package/lib/hasFeature.d.ts +3 -1
- 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 +123 -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/oauth.js +1 -2
- package/lib/process.js +1 -2
- package/lib/projects/ProjectLogsManager.d.ts +1 -1
- package/lib/projects/ProjectLogsManager.js +16 -21
- package/lib/projects/buildAndDeploy.js +28 -39
- package/lib/projects/config.d.ts +9 -0
- package/lib/projects/config.js +79 -0
- package/lib/projects/create.js +5 -6
- package/lib/projects/ensureProjectExists.d.ts +11 -0
- package/lib/projects/ensureProjectExists.js +97 -0
- package/lib/{DevServerManager.d.ts → projects/localDev/DevServerManager.d.ts} +1 -1
- package/lib/{DevServerManager.js → projects/localDev/DevServerManager.js} +6 -6
- package/lib/{DevServerManagerV2.d.ts → projects/localDev/DevServerManagerV2.d.ts} +1 -1
- package/lib/{DevServerManagerV2.js → projects/localDev/DevServerManagerV2.js} +3 -4
- package/lib/{LocalDevManager.d.ts → projects/localDev/LocalDevManager.d.ts} +1 -1
- package/lib/{LocalDevManager.js → projects/localDev/LocalDevManager.js} +49 -82
- package/lib/{LocalDevManagerV2.d.ts → projects/localDev/LocalDevManagerV2.d.ts} +2 -2
- package/lib/{LocalDevManagerV2.js → projects/localDev/LocalDevManagerV2.js} +43 -75
- package/lib/{localDev.d.ts → projects/localDev/helpers.d.ts} +5 -4
- package/lib/{localDev.js → projects/localDev/helpers.js} +97 -114
- package/lib/projects/ui.d.ts +1 -0
- package/lib/projects/ui.js +15 -0
- package/lib/projects/upload.d.ts +13 -2
- package/lib/projects/upload.js +18 -34
- package/lib/projects/urls.d.ts +1 -0
- package/lib/projects/urls.js +6 -0
- package/lib/projects/watch.d.ts +1 -1
- package/lib/projects/watch.js +21 -18
- package/lib/prompts/accountNamePrompt.js +16 -13
- package/lib/prompts/accountsPrompt.js +1 -2
- package/lib/prompts/cmsFieldPrompt.js +1 -2
- package/lib/prompts/createApiSamplePrompt.js +4 -5
- package/lib/prompts/createFunctionPrompt.js +13 -14
- package/lib/prompts/createModulePrompt.js +8 -9
- package/lib/prompts/createProjectPrompt.d.ts +11 -4
- package/lib/prompts/createProjectPrompt.js +14 -9
- package/lib/prompts/createTemplatePrompt.js +1 -2
- package/lib/prompts/downloadProjectPrompt.js +3 -4
- package/lib/prompts/installPublicAppPrompt.js +6 -5
- package/lib/prompts/personalAccessKeyPrompt.js +17 -18
- package/lib/prompts/previewPrompt.js +5 -6
- package/lib/prompts/projectAddPrompt.js +4 -5
- package/lib/prompts/projectDevTargetAccountPrompt.js +11 -12
- package/lib/prompts/projectNamePrompt.js +5 -6
- package/lib/prompts/projectsLogsPrompt.js +3 -2
- package/lib/prompts/promptUtils.d.ts +1 -1
- package/lib/prompts/sandboxesPrompt.js +5 -6
- package/lib/prompts/secretPrompt.js +2 -3
- package/lib/prompts/selectHubDBTablePrompt.js +11 -8
- package/lib/prompts/selectPublicAppPrompt.js +6 -7
- package/lib/prompts/setAsDefaultAccountPrompt.js +1 -2
- package/lib/prompts/uploadPrompt.js +4 -5
- package/lib/sandboxSync.js +15 -14
- package/lib/sandboxes.js +12 -13
- package/lib/serverlessLogs.js +4 -6
- package/lib/ui/SpinniesManager.d.ts +1 -1
- package/lib/ui/boxen.d.ts +5 -0
- package/lib/ui/boxen.js +30 -0
- package/lib/ui/git.js +8 -9
- package/lib/ui/index.d.ts +4 -2
- package/lib/ui/index.js +16 -16
- package/lib/ui/logger.d.ts +10 -0
- package/lib/ui/logger.js +15 -0
- package/lib/ui/serverlessFunctionLogs.js +2 -3
- package/lib/ui/spinniesUtils.d.ts +5 -5
- package/lib/yargsUtils.d.ts +1 -1
- package/package.json +7 -6
- package/types/Yargs.d.ts +5 -11
- package/lib/projects/index.d.ts +0 -20
- package/lib/projects/index.js +0 -195
package/commands/mv.js
CHANGED
|
@@ -12,7 +12,6 @@ const usageTracking_1 = require("../lib/usageTracking");
|
|
|
12
12
|
const filesystem_1 = require("../lib/filesystem");
|
|
13
13
|
const lang_1 = require("../lib/lang");
|
|
14
14
|
const ui_1 = require("../lib/ui");
|
|
15
|
-
const i18nKey = 'commands.mv';
|
|
16
15
|
function getCorrectedDestPath(srcPath, destPath) {
|
|
17
16
|
if (!(0, filesystem_1.isPathFolder)(srcPath)) {
|
|
18
17
|
return destPath;
|
|
@@ -21,26 +20,26 @@ function getCorrectedDestPath(srcPath, destPath) {
|
|
|
21
20
|
return `${destPath}/${srcPath.split('/').pop()}`;
|
|
22
21
|
}
|
|
23
22
|
exports.command = 'mv <srcPath> <destPath>';
|
|
24
|
-
exports.describe = (0, ui_1.uiBetaTag)((0, lang_1.i18n)(
|
|
23
|
+
exports.describe = (0, ui_1.uiBetaTag)((0, lang_1.i18n)(`commands.mv.describe`), false);
|
|
25
24
|
async function handler(args) {
|
|
26
25
|
const { srcPath, destPath, derivedAccountId } = args;
|
|
27
26
|
(0, usageTracking_1.trackCommandUsage)('mv', undefined, derivedAccountId);
|
|
28
27
|
try {
|
|
29
28
|
await (0, fileMapper_1.moveFile)(derivedAccountId, srcPath, getCorrectedDestPath(srcPath, destPath));
|
|
30
|
-
logger_1.logger.success((0, lang_1.i18n)(
|
|
29
|
+
logger_1.logger.success((0, lang_1.i18n)(`commands.mv.move`, {
|
|
31
30
|
accountId: derivedAccountId,
|
|
32
31
|
destPath,
|
|
33
32
|
srcPath,
|
|
34
33
|
}));
|
|
35
34
|
}
|
|
36
35
|
catch (error) {
|
|
37
|
-
logger_1.logger.error((0, lang_1.i18n)(
|
|
36
|
+
logger_1.logger.error((0, lang_1.i18n)(`commands.mv.errors.moveFailed`, {
|
|
38
37
|
accountId: derivedAccountId,
|
|
39
38
|
destPath,
|
|
40
39
|
srcPath,
|
|
41
40
|
}));
|
|
42
41
|
if ((0, index_1.isSpecifiedError)(error, { statusCode: 409 })) {
|
|
43
|
-
logger_1.logger.error((0, lang_1.i18n)(
|
|
42
|
+
logger_1.logger.error((0, lang_1.i18n)(`commands.mv.errors.sourcePathExists`, {
|
|
44
43
|
destPath,
|
|
45
44
|
srcPath,
|
|
46
45
|
}));
|
package/commands/open.js
CHANGED
|
@@ -9,7 +9,6 @@ const links_1 = require("../lib/links");
|
|
|
9
9
|
const promptUtils_1 = require("../lib/prompts/promptUtils");
|
|
10
10
|
const lang_1 = require("../lib/lang");
|
|
11
11
|
const exitCodes_1 = require("../lib/enums/exitCodes");
|
|
12
|
-
const i18nKey = 'commands.open';
|
|
13
12
|
const separator = ' => ';
|
|
14
13
|
async function createListPrompt(accountId) {
|
|
15
14
|
return (0, promptUtils_1.promptUser)([
|
|
@@ -17,14 +16,14 @@ async function createListPrompt(accountId) {
|
|
|
17
16
|
type: 'rawlist',
|
|
18
17
|
name: 'open',
|
|
19
18
|
pageSize: 20,
|
|
20
|
-
message: (0, lang_1.i18n)(
|
|
19
|
+
message: (0, lang_1.i18n)('commands.open.selectLink'),
|
|
21
20
|
choices: (0, links_1.getSiteLinksAsArray)(accountId).map(l => `${l.shortcut}${separator}${l.url}`),
|
|
22
21
|
filter: val => val.split(separator)[0],
|
|
23
22
|
},
|
|
24
23
|
]);
|
|
25
24
|
}
|
|
26
25
|
exports.command = 'open [shortcut]';
|
|
27
|
-
exports.describe = (0, lang_1.i18n)(
|
|
26
|
+
exports.describe = (0, lang_1.i18n)('commands.open.describe');
|
|
28
27
|
async function handler(args) {
|
|
29
28
|
const { shortcut, list, derivedAccountId } = args;
|
|
30
29
|
(0, usageTracking_1.trackCommandUsage)('open', undefined, derivedAccountId);
|
|
@@ -46,12 +45,12 @@ function builder(yargs) {
|
|
|
46
45
|
(0, commonOpts_1.addUseEnvironmentOptions)(yargs);
|
|
47
46
|
(0, commonOpts_1.addGlobalOptions)(yargs);
|
|
48
47
|
yargs.positional('[shortcut]', {
|
|
49
|
-
describe: (0, lang_1.i18n)(
|
|
48
|
+
describe: (0, lang_1.i18n)('commands.open.positionals.shortcut.describe'),
|
|
50
49
|
type: 'string',
|
|
51
50
|
});
|
|
52
51
|
yargs.option('list', {
|
|
53
52
|
alias: 'l',
|
|
54
|
-
describe: (0, lang_1.i18n)(
|
|
53
|
+
describe: (0, lang_1.i18n)('commands.open.options.list.describe'),
|
|
55
54
|
type: 'boolean',
|
|
56
55
|
});
|
|
57
56
|
yargs.example([
|
|
@@ -1,11 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { CommonArgs } from '../../types/Yargs';
|
|
3
|
-
export declare const command = "add";
|
|
4
|
-
export declare const describe: string;
|
|
1
|
+
import { YargsCommandModule, CommonArgs } from '../../types/Yargs';
|
|
5
2
|
type ProjectAddArgs = CommonArgs & {
|
|
6
3
|
type: string;
|
|
7
4
|
name: string;
|
|
8
5
|
};
|
|
9
|
-
|
|
10
|
-
export
|
|
11
|
-
export {};
|
|
6
|
+
declare const projectAddCommand: YargsCommandModule<unknown, ProjectAddArgs>;
|
|
7
|
+
export default projectAddCommand;
|
package/commands/project/add.js
CHANGED
|
@@ -3,8 +3,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.builder = exports.describe = exports.command = void 0;
|
|
7
|
-
exports.handler = handler;
|
|
8
6
|
const path_1 = __importDefault(require("path"));
|
|
9
7
|
const logger_1 = require("@hubspot/local-dev-lib/logger");
|
|
10
8
|
const github_1 = require("@hubspot/local-dev-lib/github");
|
|
@@ -12,7 +10,7 @@ const errorHandlers_1 = require("../../lib/errorHandlers");
|
|
|
12
10
|
const usageTracking_1 = require("../../lib/usageTracking");
|
|
13
11
|
const lang_1 = require("../../lib/lang");
|
|
14
12
|
const projectAddPrompt_1 = require("../../lib/prompts/projectAddPrompt");
|
|
15
|
-
const
|
|
13
|
+
const config_1 = require("../../lib/projects/config");
|
|
16
14
|
const create_1 = require("../../lib/projects/create");
|
|
17
15
|
const structure_1 = require("../../lib/projects/structure");
|
|
18
16
|
const Projects_1 = require("../../types/Projects");
|
|
@@ -20,15 +18,14 @@ const ui_1 = require("../../lib/ui");
|
|
|
20
18
|
const constants_1 = require("../../lib/constants");
|
|
21
19
|
const exitCodes_1 = require("../../lib/enums/exitCodes");
|
|
22
20
|
const yargsUtils_1 = require("../../lib/yargsUtils");
|
|
23
|
-
const
|
|
24
|
-
|
|
25
|
-
exports.describe = (0, ui_1.uiBetaTag)((0, lang_1.i18n)(`${i18nKey}.describe`), false);
|
|
21
|
+
const command = 'add';
|
|
22
|
+
const describe = (0, ui_1.uiBetaTag)((0, lang_1.i18n)(`commands.project.subcommands.add.describe`), false);
|
|
26
23
|
async function handler(args) {
|
|
27
24
|
const { derivedAccountId } = args;
|
|
28
25
|
(0, usageTracking_1.trackCommandUsage)('project-add', undefined, derivedAccountId);
|
|
29
|
-
const { projectConfig, projectDir } = await (0,
|
|
26
|
+
const { projectConfig, projectDir } = await (0, config_1.getProjectConfig)();
|
|
30
27
|
if (!projectDir || !projectConfig) {
|
|
31
|
-
logger_1.logger.error((0, lang_1.i18n)(
|
|
28
|
+
logger_1.logger.error((0, lang_1.i18n)(`commands.project.subcommands.add.error.locationInProject`));
|
|
32
29
|
process.exit(exitCodes_1.EXIT_CODES.ERROR);
|
|
33
30
|
}
|
|
34
31
|
// We currently only support adding private apps to projects
|
|
@@ -41,11 +38,11 @@ async function handler(args) {
|
|
|
41
38
|
(0, errorHandlers_1.debugError)(err);
|
|
42
39
|
}
|
|
43
40
|
if (projectContainsPublicApp) {
|
|
44
|
-
logger_1.logger.error((0, lang_1.i18n)(
|
|
41
|
+
logger_1.logger.error((0, lang_1.i18n)(`commands.project.subcommands.add.error.projectContainsPublicApp`));
|
|
45
42
|
process.exit(exitCodes_1.EXIT_CODES.ERROR);
|
|
46
43
|
}
|
|
47
44
|
logger_1.logger.log('');
|
|
48
|
-
logger_1.logger.log((0, lang_1.i18n)(
|
|
45
|
+
logger_1.logger.log((0, lang_1.i18n)(`commands.project.subcommands.add.creatingComponent`, {
|
|
49
46
|
projectName: projectConfig.name,
|
|
50
47
|
}));
|
|
51
48
|
logger_1.logger.log('');
|
|
@@ -61,12 +58,12 @@ async function handler(args) {
|
|
|
61
58
|
(0, errorHandlers_1.debugError)(err);
|
|
62
59
|
}
|
|
63
60
|
if (!latestRepoReleaseTag) {
|
|
64
|
-
logger_1.logger.error((0, lang_1.i18n)(
|
|
61
|
+
logger_1.logger.error((0, lang_1.i18n)(`commands.project.subcommands.add.error.failedToFetchComponentList`));
|
|
65
62
|
process.exit(exitCodes_1.EXIT_CODES.ERROR);
|
|
66
63
|
}
|
|
67
64
|
const components = await (0, create_1.getProjectComponentListFromRepo)(latestRepoReleaseTag);
|
|
68
65
|
if (!components.length) {
|
|
69
|
-
logger_1.logger.error((0, lang_1.i18n)(
|
|
66
|
+
logger_1.logger.error((0, lang_1.i18n)(`commands.project.subcommands.add.error.failedToFetchComponentList`));
|
|
70
67
|
process.exit(exitCodes_1.EXIT_CODES.ERROR);
|
|
71
68
|
}
|
|
72
69
|
const projectAddPromptResponse = await (0, projectAddPrompt_1.projectAddPrompt)(components, args);
|
|
@@ -78,13 +75,13 @@ async function handler(args) {
|
|
|
78
75
|
hideLogs: true,
|
|
79
76
|
});
|
|
80
77
|
logger_1.logger.log('');
|
|
81
|
-
logger_1.logger.success((0, lang_1.i18n)(
|
|
78
|
+
logger_1.logger.success((0, lang_1.i18n)(`commands.project.subcommands.add.success`, {
|
|
82
79
|
componentName: projectAddPromptResponse.name,
|
|
83
80
|
}));
|
|
84
81
|
}
|
|
85
82
|
catch (error) {
|
|
86
83
|
(0, errorHandlers_1.debugError)(error);
|
|
87
|
-
logger_1.logger.error((0, lang_1.i18n)(
|
|
84
|
+
logger_1.logger.error((0, lang_1.i18n)(`commands.project.subcommands.add.error.failedToDownloadComponent`));
|
|
88
85
|
process.exit(exitCodes_1.EXIT_CODES.ERROR);
|
|
89
86
|
}
|
|
90
87
|
process.exit(exitCodes_1.EXIT_CODES.SUCCESS);
|
|
@@ -92,27 +89,35 @@ async function handler(args) {
|
|
|
92
89
|
function projectAddBuilder(yargs) {
|
|
93
90
|
yargs.options({
|
|
94
91
|
type: {
|
|
95
|
-
describe: (0, lang_1.i18n)(
|
|
92
|
+
describe: (0, lang_1.i18n)(`commands.project.subcommands.add.options.type.describe`),
|
|
96
93
|
type: 'string',
|
|
97
94
|
},
|
|
98
95
|
name: {
|
|
99
|
-
describe: (0, lang_1.i18n)(
|
|
96
|
+
describe: (0, lang_1.i18n)(`commands.project.subcommands.add.options.name.describe`),
|
|
100
97
|
type: 'string',
|
|
101
98
|
},
|
|
102
99
|
});
|
|
103
|
-
yargs.example([
|
|
100
|
+
yargs.example([
|
|
101
|
+
[
|
|
102
|
+
'$0 project add',
|
|
103
|
+
(0, lang_1.i18n)(`commands.project.subcommands.add.examples.default`),
|
|
104
|
+
],
|
|
105
|
+
]);
|
|
104
106
|
yargs.example([
|
|
105
107
|
[
|
|
106
108
|
'$0 project add --name="my-component" --type="components/example-app"',
|
|
107
|
-
(0, lang_1.i18n)(
|
|
109
|
+
(0, lang_1.i18n)(`commands.project.subcommands.add.examples.withFlags`),
|
|
108
110
|
],
|
|
109
111
|
]);
|
|
110
112
|
return yargs;
|
|
111
113
|
}
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
114
|
+
const builder = (0, yargsUtils_1.makeYargsBuilder)(projectAddBuilder, command, describe, {
|
|
115
|
+
useGlobalOptions: true,
|
|
116
|
+
});
|
|
117
|
+
const projectAddCommand = {
|
|
118
|
+
command,
|
|
119
|
+
describe,
|
|
117
120
|
handler,
|
|
121
|
+
builder,
|
|
118
122
|
};
|
|
123
|
+
exports.default = projectAddCommand;
|
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
export declare const builder: (yargs: Argv) => Argv<CloneAppArgs>;
|
|
8
|
-
declare const cloneAppCommand: CommandModule<unknown, CloneAppArgs>;
|
|
1
|
+
import { AccountArgs, CommonArgs, ConfigArgs, EnvironmentArgs, YargsCommandModule } from '../../types/Yargs';
|
|
2
|
+
export type CloneAppArgs = ConfigArgs & EnvironmentArgs & AccountArgs & CommonArgs & {
|
|
3
|
+
dest: string;
|
|
4
|
+
appId: number;
|
|
5
|
+
};
|
|
6
|
+
declare const cloneAppCommand: YargsCommandModule<unknown, CloneAppArgs>;
|
|
9
7
|
export default cloneAppCommand;
|
|
@@ -3,50 +3,48 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.builder = exports.handler = exports.deprecated = exports.describe = exports.command = void 0;
|
|
7
|
-
const ui_1 = require("../../lib/ui");
|
|
8
6
|
const path_1 = __importDefault(require("path"));
|
|
9
7
|
const fs_1 = __importDefault(require("fs"));
|
|
10
|
-
const commonOpts_1 = require("../../lib/commonOpts");
|
|
11
8
|
const usageTracking_1 = require("../../lib/usageTracking");
|
|
12
9
|
const lang_1 = require("../../lib/lang");
|
|
13
10
|
const selectPublicAppPrompt_1 = require("../../lib/prompts/selectPublicAppPrompt");
|
|
14
11
|
const createProjectPrompt_1 = require("../../lib/prompts/createProjectPrompt");
|
|
15
12
|
const polling_1 = require("../../lib/polling");
|
|
16
|
-
const ui_2 = require("../../lib/ui");
|
|
17
13
|
const errorHandlers_1 = require("../../lib/errorHandlers");
|
|
18
14
|
const exitCodes_1 = require("../../lib/enums/exitCodes");
|
|
19
15
|
const accountTypes_1 = require("../../lib/accountTypes");
|
|
20
|
-
const
|
|
16
|
+
const config_1 = require("../../lib/projects/config");
|
|
21
17
|
const constants_1 = require("../../lib/constants");
|
|
22
|
-
const
|
|
18
|
+
const projects_1 = require("@hubspot/local-dev-lib/api/projects");
|
|
23
19
|
const path_2 = require("@hubspot/local-dev-lib/path");
|
|
24
20
|
const logger_1 = require("@hubspot/local-dev-lib/logger");
|
|
25
21
|
const archive_1 = require("@hubspot/local-dev-lib/archive");
|
|
26
|
-
const
|
|
22
|
+
const config_2 = require("@hubspot/local-dev-lib/config");
|
|
27
23
|
const SpinniesManager_1 = __importDefault(require("../../lib/ui/SpinniesManager"));
|
|
28
24
|
const migrate_1 = require("../../lib/app/migrate");
|
|
29
|
-
const
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
const
|
|
34
|
-
|
|
25
|
+
const yargsUtils_1 = require("../../lib/yargsUtils");
|
|
26
|
+
const ui_1 = require("../../lib/ui");
|
|
27
|
+
const command = 'clone-app';
|
|
28
|
+
const describe = (0, ui_1.uiDeprecatedTag)((0, lang_1.i18n)(`commands.project.subcommands.cloneApp.describe`), false);
|
|
29
|
+
const deprecated = true;
|
|
30
|
+
async function handler(args) {
|
|
31
|
+
const { derivedAccountId } = args;
|
|
35
32
|
await (0, usageTracking_1.trackCommandUsage)('clone-app', {}, derivedAccountId);
|
|
36
|
-
const accountConfig = (0,
|
|
37
|
-
const accountName = (0,
|
|
33
|
+
const accountConfig = (0, config_2.getAccountConfig)(derivedAccountId);
|
|
34
|
+
const accountName = (0, ui_1.uiAccountDescription)(derivedAccountId);
|
|
38
35
|
if (!accountConfig) {
|
|
39
36
|
throw new Error((0, lang_1.i18n)(`commands.projects.subcommands.cloneApp.errors.noAccountConfig`));
|
|
40
37
|
}
|
|
41
|
-
|
|
42
|
-
|
|
38
|
+
const defaultAccountIsUnified = await (0, accountTypes_1.isUnifiedAccount)(accountConfig);
|
|
39
|
+
if (!(0, accountTypes_1.isAppDeveloperAccount)(accountConfig) && !defaultAccountIsUnified) {
|
|
40
|
+
(0, migrate_1.logInvalidAccountError)();
|
|
43
41
|
process.exit(exitCodes_1.EXIT_CODES.SUCCESS);
|
|
44
42
|
}
|
|
45
43
|
let appId;
|
|
46
44
|
let projectName;
|
|
47
45
|
let projectDest;
|
|
48
46
|
try {
|
|
49
|
-
appId =
|
|
47
|
+
appId = args.appId;
|
|
50
48
|
if (!appId) {
|
|
51
49
|
const appIdResponse = await (0, selectPublicAppPrompt_1.selectPublicAppPrompt)({
|
|
52
50
|
accountId: derivedAccountId,
|
|
@@ -55,7 +53,7 @@ const handler = async (options) => {
|
|
|
55
53
|
});
|
|
56
54
|
appId = appIdResponse.appId;
|
|
57
55
|
}
|
|
58
|
-
const createProjectPromptResponse = await (0, createProjectPrompt_1.createProjectPrompt)(
|
|
56
|
+
const createProjectPromptResponse = await (0, createProjectPrompt_1.createProjectPrompt)(args);
|
|
59
57
|
projectName = createProjectPromptResponse.name;
|
|
60
58
|
projectDest = createProjectPromptResponse.dest;
|
|
61
59
|
}
|
|
@@ -67,17 +65,17 @@ const handler = async (options) => {
|
|
|
67
65
|
try {
|
|
68
66
|
SpinniesManager_1.default.init();
|
|
69
67
|
SpinniesManager_1.default.add('cloneApp', {
|
|
70
|
-
text: (0, lang_1.i18n)(
|
|
68
|
+
text: (0, lang_1.i18n)(`commands.project.subcommands.cloneApp.cloneStatus.inProgress`),
|
|
71
69
|
});
|
|
72
|
-
const { data: { exportId }, } = await (0,
|
|
73
|
-
const { status } = await (0, polling_1.poll)(() => (0,
|
|
70
|
+
const { data: { exportId }, } = await (0, projects_1.cloneApp)(derivedAccountId, appId);
|
|
71
|
+
const { status } = await (0, polling_1.poll)(() => (0, projects_1.checkCloneStatus)(derivedAccountId, exportId));
|
|
74
72
|
if (status === 'SUCCESS') {
|
|
75
73
|
// Ensure correct project folder structure exists
|
|
76
74
|
const baseDestPath = path_1.default.resolve((0, path_2.getCwd)(), projectDest);
|
|
77
75
|
const absoluteDestPath = path_1.default.resolve(baseDestPath, 'src', 'app');
|
|
78
76
|
fs_1.default.mkdirSync(absoluteDestPath, { recursive: true });
|
|
79
77
|
// Extract zipped app files and place them in correct directory
|
|
80
|
-
const { data: zippedApp } = await (0,
|
|
78
|
+
const { data: zippedApp } = await (0, projects_1.downloadClonedProject)(derivedAccountId, exportId);
|
|
81
79
|
await (0, archive_1.extractZipArchive)(zippedApp, (0, path_2.sanitizeFileName)(projectName), absoluteDestPath, {
|
|
82
80
|
includesRootDir: true,
|
|
83
81
|
hideLogs: true,
|
|
@@ -89,17 +87,19 @@ const handler = async (options) => {
|
|
|
89
87
|
srcDir: 'src',
|
|
90
88
|
platformVersion: '2023.2',
|
|
91
89
|
};
|
|
92
|
-
const success = (0,
|
|
90
|
+
const success = (0, config_1.writeProjectConfig)(configPath, configContent);
|
|
93
91
|
SpinniesManager_1.default.succeed('cloneApp', {
|
|
94
|
-
text: (0, lang_1.i18n)(
|
|
92
|
+
text: (0, lang_1.i18n)(`commands.project.subcommands.cloneApp.cloneStatus.done`),
|
|
95
93
|
succeedColor: 'white',
|
|
96
94
|
});
|
|
97
95
|
if (!success) {
|
|
98
|
-
logger_1.logger.error((0, lang_1.i18n)(
|
|
96
|
+
logger_1.logger.error((0, lang_1.i18n)(`commands.project.subcommands.cloneApp.errors.couldNotWriteConfigPath`), configPath);
|
|
99
97
|
}
|
|
100
98
|
logger_1.logger.log('');
|
|
101
|
-
(0,
|
|
102
|
-
logger_1.logger.success((0, lang_1.i18n)(
|
|
99
|
+
(0, ui_1.uiLine)();
|
|
100
|
+
logger_1.logger.success((0, lang_1.i18n)(`commands.project.subcommands.cloneApp.cloneStatus.success`, {
|
|
101
|
+
dest: projectDest,
|
|
102
|
+
}));
|
|
103
103
|
logger_1.logger.log('');
|
|
104
104
|
process.exit(exitCodes_1.EXIT_CODES.SUCCESS);
|
|
105
105
|
}
|
|
@@ -107,7 +107,7 @@ const handler = async (options) => {
|
|
|
107
107
|
catch (error) {
|
|
108
108
|
await (0, usageTracking_1.trackCommandMetadataUsage)('clone-app', { successful: false }, derivedAccountId);
|
|
109
109
|
SpinniesManager_1.default.fail('cloneApp', {
|
|
110
|
-
text: (0, lang_1.i18n)(
|
|
110
|
+
text: (0, lang_1.i18n)(`commands.project.subcommands.cloneApp.cloneStatus.failure`),
|
|
111
111
|
failColor: 'white',
|
|
112
112
|
});
|
|
113
113
|
// Migrations endpoints return a response object with an errors property. The errors property contains an array of errors.
|
|
@@ -123,33 +123,37 @@ const handler = async (options) => {
|
|
|
123
123
|
}
|
|
124
124
|
await (0, usageTracking_1.trackCommandMetadataUsage)('clone-app', { successful: true }, derivedAccountId);
|
|
125
125
|
process.exit(exitCodes_1.EXIT_CODES.SUCCESS);
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
const builder = (yargs) => {
|
|
126
|
+
}
|
|
127
|
+
function cloneAppBuilder(yargs) {
|
|
129
128
|
yargs.options({
|
|
130
129
|
dest: {
|
|
131
|
-
describe: (0, lang_1.i18n)(
|
|
130
|
+
describe: (0, lang_1.i18n)(`commands.project.subcommands.cloneApp.options.dest.describe`),
|
|
132
131
|
type: 'string',
|
|
133
132
|
},
|
|
134
133
|
'app-id': {
|
|
135
|
-
describe: (0, lang_1.i18n)(
|
|
134
|
+
describe: (0, lang_1.i18n)(`commands.project.subcommands.cloneApp.options.appId.describe`),
|
|
136
135
|
type: 'number',
|
|
137
136
|
},
|
|
138
137
|
});
|
|
139
138
|
yargs.example([
|
|
140
|
-
[
|
|
139
|
+
[
|
|
140
|
+
'$0 project clone-app',
|
|
141
|
+
(0, lang_1.i18n)(`commands.project.subcommands.cloneApp.examples.default`),
|
|
142
|
+
],
|
|
141
143
|
]);
|
|
142
|
-
(0, commonOpts_1.addConfigOptions)(yargs);
|
|
143
|
-
(0, commonOpts_1.addAccountOptions)(yargs);
|
|
144
|
-
(0, commonOpts_1.addUseEnvironmentOptions)(yargs);
|
|
145
144
|
return yargs;
|
|
146
|
-
}
|
|
147
|
-
|
|
145
|
+
}
|
|
146
|
+
const builder = (0, yargsUtils_1.makeYargsBuilder)(cloneAppBuilder, command, describe, {
|
|
147
|
+
useGlobalOptions: true,
|
|
148
|
+
useAccountOptions: true,
|
|
149
|
+
useConfigOptions: true,
|
|
150
|
+
useEnvironmentOptions: true,
|
|
151
|
+
});
|
|
148
152
|
const cloneAppCommand = {
|
|
149
|
-
command
|
|
150
|
-
describe
|
|
151
|
-
handler
|
|
152
|
-
builder
|
|
153
|
-
deprecated
|
|
153
|
+
command,
|
|
154
|
+
describe,
|
|
155
|
+
handler,
|
|
156
|
+
builder,
|
|
157
|
+
deprecated,
|
|
154
158
|
};
|
|
155
159
|
exports.default = cloneAppCommand;
|
|
@@ -1 +1,10 @@
|
|
|
1
|
-
|
|
1
|
+
import { RepoPath } from '@hubspot/local-dev-lib/types/Github';
|
|
2
|
+
import { AccountArgs, CommonArgs, ConfigArgs, EnvironmentArgs, YargsCommandModule } from '../../types/Yargs';
|
|
3
|
+
type ProjectCreateArgs = CommonArgs & ConfigArgs & AccountArgs & EnvironmentArgs & {
|
|
4
|
+
name?: string;
|
|
5
|
+
dest?: string;
|
|
6
|
+
templateSource?: RepoPath;
|
|
7
|
+
template?: string;
|
|
8
|
+
};
|
|
9
|
+
declare const projectCreateCommand: YargsCommandModule<unknown, ProjectCreateArgs>;
|
|
10
|
+
export default projectCreateCommand;
|