@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
|
@@ -6,31 +6,31 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
const path_1 = __importDefault(require("path"));
|
|
7
7
|
const chokidar_1 = __importDefault(require("chokidar"));
|
|
8
8
|
const chalk_1 = __importDefault(require("chalk"));
|
|
9
|
-
const logger_1 = require("@hubspot/local-dev-lib/logger");
|
|
10
9
|
const localDevAuth_1 = require("@hubspot/local-dev-lib/api/localDevAuth");
|
|
11
10
|
const appsDev_1 = require("@hubspot/local-dev-lib/api/appsDev");
|
|
12
11
|
const config_1 = require("@hubspot/local-dev-lib/config");
|
|
13
|
-
const
|
|
14
|
-
const
|
|
12
|
+
const logger_1 = require("@hubspot/local-dev-lib/logger");
|
|
13
|
+
const constants_1 = require("../../constants");
|
|
14
|
+
const SpinniesManager_1 = __importDefault(require("../../ui/SpinniesManager"));
|
|
15
15
|
const DevServerManager_1 = __importDefault(require("./DevServerManager"));
|
|
16
|
-
const exitCodes_1 = require("
|
|
17
|
-
const urls_1 = require("
|
|
18
|
-
const
|
|
19
|
-
const structure_1 = require("
|
|
20
|
-
const Projects_1 = require("
|
|
21
|
-
const ui_1 = require("
|
|
22
|
-
const index_1 = require("
|
|
23
|
-
const installPublicAppPrompt_1 = require("
|
|
24
|
-
const promptUtils_1 = require("
|
|
25
|
-
const
|
|
26
|
-
const
|
|
16
|
+
const exitCodes_1 = require("../../enums/exitCodes");
|
|
17
|
+
const urls_1 = require("../../projects/urls");
|
|
18
|
+
const helpers_1 = require("./helpers");
|
|
19
|
+
const structure_1 = require("../../projects/structure");
|
|
20
|
+
const Projects_1 = require("../../../types/Projects");
|
|
21
|
+
const ui_1 = require("../../ui");
|
|
22
|
+
const index_1 = require("../../errorHandlers/index");
|
|
23
|
+
const installPublicAppPrompt_1 = require("../../prompts/installPublicAppPrompt");
|
|
24
|
+
const promptUtils_1 = require("../../prompts/promptUtils");
|
|
25
|
+
const process_1 = require("../../process");
|
|
26
|
+
const en_1 = require("../../../lang/en");
|
|
27
|
+
const logger_2 = require("../../ui/logger");
|
|
27
28
|
const WATCH_EVENTS = {
|
|
28
29
|
add: 'add',
|
|
29
30
|
change: 'change',
|
|
30
31
|
unlink: 'unlink',
|
|
31
32
|
unlinkDir: 'unlinkDir',
|
|
32
33
|
};
|
|
33
|
-
const i18nKey = 'lib.LocalDevManager';
|
|
34
34
|
class LocalDevManager {
|
|
35
35
|
targetAccountId;
|
|
36
36
|
targetProjectAccountId;
|
|
@@ -69,15 +69,13 @@ class LocalDevManager {
|
|
|
69
69
|
this.mostRecentUploadWarning = null;
|
|
70
70
|
this.projectSourceDir = path_1.default.join(this.projectDir, this.projectConfig.srcDir);
|
|
71
71
|
if (!this.targetAccountId || !this.projectConfig || !this.projectDir) {
|
|
72
|
-
|
|
72
|
+
logger_2.uiLogger.log(en_1.lib.LocalDevManager.failedToInitialize);
|
|
73
73
|
process.exit(exitCodes_1.EXIT_CODES.ERROR);
|
|
74
74
|
}
|
|
75
75
|
}
|
|
76
76
|
async setActiveApp(appUid) {
|
|
77
77
|
if (!appUid) {
|
|
78
|
-
|
|
79
|
-
devCommand: (0, ui_1.uiCommandReference)('hs project dev'),
|
|
80
|
-
}));
|
|
78
|
+
logger_2.uiLogger.error(en_1.lib.LocalDevManager.missingUid);
|
|
81
79
|
process.exit(exitCodes_1.EXIT_CODES.ERROR);
|
|
82
80
|
}
|
|
83
81
|
this.activeApp =
|
|
@@ -115,14 +113,10 @@ class LocalDevManager {
|
|
|
115
113
|
return;
|
|
116
114
|
}
|
|
117
115
|
(0, ui_1.uiLine)();
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
installCount: this.publicAppActiveInstalls,
|
|
121
|
-
accountText: this.publicAppActiveInstalls === 1 ? 'account' : 'accounts',
|
|
122
|
-
}));
|
|
123
|
-
logger_1.logger.log((0, lang_1.i18n)(`${i18nKey}.activeInstallWarning.explanation`));
|
|
116
|
+
logger_2.uiLogger.warn(en_1.lib.LocalDevManager.activeInstallWarning.installCount(this.activePublicAppData.name, this.publicAppActiveInstalls, this.publicAppActiveInstalls === 1 ? 'account' : 'accounts'));
|
|
117
|
+
logger_2.uiLogger.log(en_1.lib.LocalDevManager.activeInstallWarning.explanation);
|
|
124
118
|
(0, ui_1.uiLine)();
|
|
125
|
-
const proceed = await (0, promptUtils_1.confirmPrompt)(
|
|
119
|
+
const proceed = await (0, promptUtils_1.confirmPrompt)(en_1.lib.LocalDevManager.activeInstallWarning.confirmationPrompt, { defaultAnswer: false });
|
|
126
120
|
if (!proceed) {
|
|
127
121
|
process.exit(exitCodes_1.EXIT_CODES.SUCCESS);
|
|
128
122
|
}
|
|
@@ -132,12 +126,8 @@ class LocalDevManager {
|
|
|
132
126
|
SpinniesManager_1.default.init();
|
|
133
127
|
// Local dev currently relies on the existence of a deployed build in the target account
|
|
134
128
|
if (!this.deployedBuild) {
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
accountIdentifier: (0, ui_1.uiAccountDescription)(this.targetProjectAccountId),
|
|
138
|
-
uploadCommand: this.getUploadCommand(),
|
|
139
|
-
}));
|
|
140
|
-
logger_1.logger.log();
|
|
129
|
+
logger_2.uiLogger.error(en_1.lib.LocalDevManager.noDeployedBuild(this.projectConfig.name, (0, ui_1.uiAccountDescription)(this.targetProjectAccountId), this.getUploadCommand()));
|
|
130
|
+
logger_2.uiLogger.log('');
|
|
141
131
|
process.exit(exitCodes_1.EXIT_CODES.SUCCESS);
|
|
142
132
|
}
|
|
143
133
|
const setupSucceeded = await this.devServerSetup();
|
|
@@ -147,21 +137,18 @@ class LocalDevManager {
|
|
|
147
137
|
else if (!this.debug) {
|
|
148
138
|
console.clear();
|
|
149
139
|
}
|
|
150
|
-
(0, ui_1.uiBetaTag)(
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
projectName: this.projectConfig.name,
|
|
156
|
-
})));
|
|
157
|
-
logger_1.logger.log((0, ui_1.uiLink)((0, lang_1.i18n)(`${i18nKey}.viewProjectLink`), (0, urls_1.getProjectDetailUrl)(this.projectConfig.name, this.targetProjectAccountId) || ''));
|
|
140
|
+
(0, ui_1.uiBetaTag)(en_1.lib.LocalDevManager.betaMessage);
|
|
141
|
+
logger_2.uiLogger.log((0, ui_1.uiLink)(en_1.lib.LocalDevManager.learnMoreLocalDevServer, 'https://developers.hubspot.com/docs/platform/project-cli-commands#start-a-local-development-server'));
|
|
142
|
+
logger_2.uiLogger.log('');
|
|
143
|
+
logger_2.uiLogger.log(chalk_1.default.hex(ui_1.UI_COLORS.SORBET)(en_1.lib.LocalDevManager.running(this.projectConfig.name, (0, ui_1.uiAccountDescription)(this.targetAccountId))));
|
|
144
|
+
logger_2.uiLogger.log((0, ui_1.uiLink)(en_1.lib.LocalDevManager.viewProjectLink, (0, urls_1.getProjectDetailUrl)(this.projectConfig.name, this.targetProjectAccountId) || ''));
|
|
158
145
|
if (this.activeApp?.type === Projects_1.ComponentTypes.PublicApp) {
|
|
159
|
-
|
|
146
|
+
logger_2.uiLogger.log((0, ui_1.uiLink)(en_1.lib.LocalDevManager.viewTestAccountLink, (0, helpers_1.getAccountHomeUrl)(this.targetAccountId)));
|
|
160
147
|
}
|
|
161
|
-
|
|
162
|
-
|
|
148
|
+
logger_2.uiLogger.log('');
|
|
149
|
+
logger_2.uiLogger.log(en_1.lib.LocalDevManager.quitHelper);
|
|
163
150
|
(0, ui_1.uiLine)();
|
|
164
|
-
|
|
151
|
+
logger_2.uiLogger.log('');
|
|
165
152
|
await this.devServerStart();
|
|
166
153
|
// Initialize project file watcher to detect configuration file changes
|
|
167
154
|
this.startWatching();
|
|
@@ -174,7 +161,7 @@ class LocalDevManager {
|
|
|
174
161
|
async stop(showProgress = true) {
|
|
175
162
|
if (showProgress) {
|
|
176
163
|
SpinniesManager_1.default.add('cleanupMessage', {
|
|
177
|
-
text:
|
|
164
|
+
text: en_1.lib.LocalDevManager.exitingStart,
|
|
178
165
|
});
|
|
179
166
|
}
|
|
180
167
|
await this.stopWatching();
|
|
@@ -182,14 +169,14 @@ class LocalDevManager {
|
|
|
182
169
|
if (!cleanupSucceeded) {
|
|
183
170
|
if (showProgress) {
|
|
184
171
|
SpinniesManager_1.default.fail('cleanupMessage', {
|
|
185
|
-
text:
|
|
172
|
+
text: en_1.lib.LocalDevManager.exitingFail,
|
|
186
173
|
});
|
|
187
174
|
}
|
|
188
175
|
process.exit(exitCodes_1.EXIT_CODES.ERROR);
|
|
189
176
|
}
|
|
190
177
|
if (showProgress) {
|
|
191
178
|
SpinniesManager_1.default.succeed('cleanupMessage', {
|
|
192
|
-
text:
|
|
179
|
+
text: en_1.lib.LocalDevManager.exitingSucceed,
|
|
193
180
|
});
|
|
194
181
|
}
|
|
195
182
|
process.exit(exitCodes_1.EXIT_CODES.SUCCESS);
|
|
@@ -227,31 +214,22 @@ class LocalDevManager {
|
|
|
227
214
|
(0, structure_1.componentIsPublicApp)(this.activeApp) &&
|
|
228
215
|
this.publicAppActiveInstalls &&
|
|
229
216
|
this.publicAppActiveInstalls > 0
|
|
230
|
-
?
|
|
231
|
-
|
|
232
|
-
installText: this.publicAppActiveInstalls === 1 ? 'install' : 'installs',
|
|
233
|
-
})
|
|
234
|
-
: (0, lang_1.i18n)(`${i18nKey}.uploadWarning.defaultWarning`);
|
|
217
|
+
? en_1.lib.LocalDevManager.uploadWarning.defaultPublicAppWarning(this.publicAppActiveInstalls, this.publicAppActiveInstalls === 1 ? 'install' : 'installs')
|
|
218
|
+
: en_1.lib.LocalDevManager.uploadWarning.defaultWarning;
|
|
235
219
|
}
|
|
236
220
|
// Avoid logging the warning to the console if it is currently the most
|
|
237
221
|
// recently logged warning. We do not want to spam the console with the same message.
|
|
238
222
|
if (!this.uploadWarnings[warning]) {
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
command: (0, ui_1.uiCommandReference)('hs project dev'),
|
|
243
|
-
}));
|
|
223
|
+
logger_2.uiLogger.log('');
|
|
224
|
+
logger_2.uiLogger.warn(en_1.lib.LocalDevManager.uploadWarning.header(warning));
|
|
225
|
+
logger_2.uiLogger.log(en_1.lib.LocalDevManager.uploadWarning.stopDev);
|
|
244
226
|
if (this.isGithubLinked) {
|
|
245
|
-
|
|
227
|
+
logger_2.uiLogger.log(en_1.lib.LocalDevManager.uploadWarning.pushToGithub);
|
|
246
228
|
}
|
|
247
229
|
else {
|
|
248
|
-
|
|
249
|
-
command: this.getUploadCommand(),
|
|
250
|
-
}));
|
|
230
|
+
logger_2.uiLogger.log(en_1.lib.LocalDevManager.uploadWarning.runUpload(this.getUploadCommand()));
|
|
251
231
|
}
|
|
252
|
-
|
|
253
|
-
command: (0, ui_1.uiCommandReference)('hs project dev'),
|
|
254
|
-
}));
|
|
232
|
+
logger_2.uiLogger.log(en_1.lib.LocalDevManager.uploadWarning.restartDev);
|
|
255
233
|
this.mostRecentUploadWarning = warning;
|
|
256
234
|
this.uploadWarnings[warning] = true;
|
|
257
235
|
}
|
|
@@ -281,21 +259,19 @@ class LocalDevManager {
|
|
|
281
259
|
if (Object.values(Projects_1.ComponentTypes).includes(type)) {
|
|
282
260
|
const cardConfigs = (0, structure_1.getAppCardConfigs)(config, path);
|
|
283
261
|
if (!deployedComponentNames.includes(config.name)) {
|
|
284
|
-
missingComponents.push(`${
|
|
262
|
+
missingComponents.push(`${en_1.lib.LocalDevManager.uploadWarning.appLabel} ${config.name}`);
|
|
285
263
|
}
|
|
286
264
|
cardConfigs.forEach(cardConfig => {
|
|
287
265
|
if (cardConfig.data &&
|
|
288
266
|
cardConfig.data.title &&
|
|
289
267
|
!deployedComponentNames.includes(cardConfig.data.title)) {
|
|
290
|
-
missingComponents.push(`${
|
|
268
|
+
missingComponents.push(`${en_1.lib.LocalDevManager.uploadWarning.uiExtensionLabel} ${cardConfig.data.title}`);
|
|
291
269
|
}
|
|
292
270
|
});
|
|
293
271
|
}
|
|
294
272
|
});
|
|
295
273
|
if (missingComponents.length) {
|
|
296
|
-
this.logUploadWarning(
|
|
297
|
-
missingComponents: missingComponents.join(', '),
|
|
298
|
-
}));
|
|
274
|
+
this.logUploadWarning(en_1.lib.LocalDevManager.uploadWarning.missingComponents(missingComponents.join(', ')));
|
|
299
275
|
}
|
|
300
276
|
}
|
|
301
277
|
startWatching() {
|
|
@@ -348,9 +324,7 @@ class LocalDevManager {
|
|
|
348
324
|
if (this.debug) {
|
|
349
325
|
logger_1.logger.error(e);
|
|
350
326
|
}
|
|
351
|
-
|
|
352
|
-
message: e instanceof Error ? e.message : '',
|
|
353
|
-
}));
|
|
327
|
+
logger_2.uiLogger.error(en_1.lib.LocalDevManager.devServer.setupError(e instanceof Error ? e.message : ''));
|
|
354
328
|
return false;
|
|
355
329
|
}
|
|
356
330
|
}
|
|
@@ -365,9 +339,7 @@ class LocalDevManager {
|
|
|
365
339
|
if (this.debug) {
|
|
366
340
|
logger_1.logger.error(e);
|
|
367
341
|
}
|
|
368
|
-
|
|
369
|
-
message: e instanceof Error ? e.message : '',
|
|
370
|
-
}));
|
|
342
|
+
logger_2.uiLogger.error(en_1.lib.LocalDevManager.devServer.startError(e instanceof Error ? e.message : ''));
|
|
371
343
|
process.exit(exitCodes_1.EXIT_CODES.ERROR);
|
|
372
344
|
}
|
|
373
345
|
}
|
|
@@ -379,9 +351,7 @@ class LocalDevManager {
|
|
|
379
351
|
if (this.debug) {
|
|
380
352
|
logger_1.logger.error(e);
|
|
381
353
|
}
|
|
382
|
-
|
|
383
|
-
message: e instanceof Error ? e.message : '',
|
|
384
|
-
}));
|
|
354
|
+
logger_2.uiLogger.error(en_1.lib.LocalDevManager.devServer.fileChangeError(e instanceof Error ? e.message : ''));
|
|
385
355
|
}
|
|
386
356
|
}
|
|
387
357
|
async devServerCleanup() {
|
|
@@ -393,12 +363,9 @@ class LocalDevManager {
|
|
|
393
363
|
if (this.debug) {
|
|
394
364
|
logger_1.logger.error(e);
|
|
395
365
|
}
|
|
396
|
-
|
|
397
|
-
message: e instanceof Error ? e.message : '',
|
|
398
|
-
}));
|
|
366
|
+
logger_2.uiLogger.error(en_1.lib.LocalDevManager.devServer.cleanupError(e instanceof Error ? e.message : ''));
|
|
399
367
|
return false;
|
|
400
368
|
}
|
|
401
369
|
}
|
|
402
370
|
}
|
|
403
371
|
exports.default = LocalDevManager;
|
|
404
|
-
module.exports = LocalDevManager;
|
|
@@ -2,9 +2,9 @@ import { FSWatcher } from 'chokidar';
|
|
|
2
2
|
import { Build } from '@hubspot/local-dev-lib/types/Build';
|
|
3
3
|
import { PublicApp } from '@hubspot/local-dev-lib/types/Apps';
|
|
4
4
|
import { Environment } from '@hubspot/local-dev-lib/types/Config';
|
|
5
|
-
import { ProjectConfig } from '
|
|
5
|
+
import { ProjectConfig } from '../../../types/Projects';
|
|
6
6
|
import { IntermediateRepresentationNodeLocalDev } from '@hubspot/project-parsing-lib/src/lib/types';
|
|
7
|
-
import { AppIRNode } from '
|
|
7
|
+
import { AppIRNode } from '../../../types/ProjectComponents';
|
|
8
8
|
type LocalDevManagerConstructorOptions = {
|
|
9
9
|
targetProjectAccountId: number;
|
|
10
10
|
targetTestingAccountId: number;
|
|
@@ -11,25 +11,25 @@ const localDevAuth_1 = require("@hubspot/local-dev-lib/api/localDevAuth");
|
|
|
11
11
|
const appsDev_1 = require("@hubspot/local-dev-lib/api/appsDev");
|
|
12
12
|
const config_1 = require("@hubspot/local-dev-lib/config");
|
|
13
13
|
const project_parsing_lib_1 = require("@hubspot/project-parsing-lib");
|
|
14
|
-
const constants_1 = require("
|
|
15
|
-
const SpinniesManager_1 = __importDefault(require("
|
|
14
|
+
const constants_1 = require("../../constants");
|
|
15
|
+
const SpinniesManager_1 = __importDefault(require("../../ui/SpinniesManager"));
|
|
16
16
|
const DevServerManagerV2_1 = __importDefault(require("./DevServerManagerV2"));
|
|
17
|
-
const exitCodes_1 = require("
|
|
18
|
-
const urls_1 = require("
|
|
19
|
-
const structure_1 = require("
|
|
20
|
-
const ui_1 = require("
|
|
21
|
-
const index_1 = require("
|
|
22
|
-
const installPublicAppPrompt_1 = require("
|
|
23
|
-
const promptUtils_1 = require("
|
|
24
|
-
const
|
|
25
|
-
const
|
|
17
|
+
const exitCodes_1 = require("../../enums/exitCodes");
|
|
18
|
+
const urls_1 = require("../../projects/urls");
|
|
19
|
+
const structure_1 = require("../../projects/structure");
|
|
20
|
+
const ui_1 = require("../../ui");
|
|
21
|
+
const index_1 = require("../../errorHandlers/index");
|
|
22
|
+
const installPublicAppPrompt_1 = require("../../prompts/installPublicAppPrompt");
|
|
23
|
+
const promptUtils_1 = require("../../prompts/promptUtils");
|
|
24
|
+
const process_1 = require("../../process");
|
|
25
|
+
const en_1 = require("../../../lang/en");
|
|
26
|
+
const logger_2 = require("../../ui/logger");
|
|
26
27
|
const WATCH_EVENTS = {
|
|
27
28
|
add: 'add',
|
|
28
29
|
change: 'change',
|
|
29
30
|
unlink: 'unlink',
|
|
30
31
|
unlinkDir: 'unlinkDir',
|
|
31
32
|
};
|
|
32
|
-
const i18nKey = 'lib.LocalDevManager';
|
|
33
33
|
class LocalDevManagerV2 {
|
|
34
34
|
targetProjectAccountId;
|
|
35
35
|
targetTestingAccountId;
|
|
@@ -69,15 +69,13 @@ class LocalDevManagerV2 {
|
|
|
69
69
|
if (!this.targetProjectAccountId ||
|
|
70
70
|
!this.projectConfig ||
|
|
71
71
|
!this.projectDir) {
|
|
72
|
-
|
|
72
|
+
logger_2.uiLogger.log(en_1.lib.LocalDevManager.failedToInitialize);
|
|
73
73
|
process.exit(exitCodes_1.EXIT_CODES.ERROR);
|
|
74
74
|
}
|
|
75
75
|
}
|
|
76
76
|
async setActiveApp(appUid) {
|
|
77
77
|
if (!appUid) {
|
|
78
|
-
|
|
79
|
-
devCommand: (0, ui_1.uiCommandReference)('hs project dev'),
|
|
80
|
-
}));
|
|
78
|
+
logger_2.uiLogger.error(en_1.lib.LocalDevManager.missingUid);
|
|
81
79
|
process.exit(exitCodes_1.EXIT_CODES.ERROR);
|
|
82
80
|
}
|
|
83
81
|
const app = Object.values(this.projectNodes).find(component => component.uid === appUid) || null;
|
|
@@ -113,14 +111,10 @@ class LocalDevManagerV2 {
|
|
|
113
111
|
return;
|
|
114
112
|
}
|
|
115
113
|
(0, ui_1.uiLine)();
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
installCount: this.publicAppActiveInstalls,
|
|
119
|
-
accountText: this.publicAppActiveInstalls === 1 ? 'account' : 'accounts',
|
|
120
|
-
}));
|
|
121
|
-
logger_1.logger.log((0, lang_1.i18n)(`${i18nKey}.activeInstallWarning.explanation`));
|
|
114
|
+
logger_2.uiLogger.warn(en_1.lib.LocalDevManager.activeInstallWarning.installCount(this.activePublicAppData.name, this.publicAppActiveInstalls, this.publicAppActiveInstalls === 1 ? 'account' : 'accounts'));
|
|
115
|
+
logger_2.uiLogger.log(en_1.lib.LocalDevManager.activeInstallWarning.explanation);
|
|
122
116
|
(0, ui_1.uiLine)();
|
|
123
|
-
const proceed = await (0, promptUtils_1.confirmPrompt)(
|
|
117
|
+
const proceed = await (0, promptUtils_1.confirmPrompt)(en_1.lib.LocalDevManager.activeInstallWarning.confirmationPrompt, { defaultAnswer: false });
|
|
124
118
|
if (!proceed) {
|
|
125
119
|
process.exit(exitCodes_1.EXIT_CODES.SUCCESS);
|
|
126
120
|
}
|
|
@@ -130,12 +124,8 @@ class LocalDevManagerV2 {
|
|
|
130
124
|
SpinniesManager_1.default.init();
|
|
131
125
|
// Local dev currently relies on the existence of a deployed build in the target account
|
|
132
126
|
if (!this.deployedBuild) {
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
accountIdentifier: (0, ui_1.uiAccountDescription)(this.targetProjectAccountId),
|
|
136
|
-
uploadCommand: this.getUploadCommand(),
|
|
137
|
-
}));
|
|
138
|
-
logger_1.logger.log();
|
|
127
|
+
logger_2.uiLogger.error(en_1.lib.LocalDevManager.noDeployedBuild(this.projectConfig.name, (0, ui_1.uiAccountDescription)(this.targetProjectAccountId), this.getUploadCommand()));
|
|
128
|
+
logger_2.uiLogger.log('');
|
|
139
129
|
process.exit(exitCodes_1.EXIT_CODES.SUCCESS);
|
|
140
130
|
}
|
|
141
131
|
const setupSucceeded = await this.devServerSetup();
|
|
@@ -145,18 +135,15 @@ class LocalDevManagerV2 {
|
|
|
145
135
|
else if (!this.debug) {
|
|
146
136
|
console.clear();
|
|
147
137
|
}
|
|
148
|
-
(0, ui_1.uiBetaTag)(
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
logger_1.logger.log((0, ui_1.uiLink)((0, lang_1.i18n)(`${i18nKey}.viewProjectLink`), (0, urls_1.getProjectDetailUrl)(this.projectConfig.name, this.targetProjectAccountId) || ''));
|
|
156
|
-
logger_1.logger.log();
|
|
157
|
-
logger_1.logger.log((0, lang_1.i18n)(`${i18nKey}.quitHelper`));
|
|
138
|
+
(0, ui_1.uiBetaTag)(en_1.lib.LocalDevManager.betaMessage);
|
|
139
|
+
logger_2.uiLogger.log((0, ui_1.uiLink)(en_1.lib.LocalDevManager.learnMoreLocalDevServer, 'https://developers.hubspot.com/docs/platform/project-cli-commands#start-a-local-development-server'));
|
|
140
|
+
logger_2.uiLogger.log('');
|
|
141
|
+
logger_2.uiLogger.log(chalk_1.default.hex(ui_1.UI_COLORS.SORBET)(en_1.lib.LocalDevManager.running(this.projectConfig.name, (0, ui_1.uiAccountDescription)(this.targetProjectAccountId))));
|
|
142
|
+
logger_2.uiLogger.log((0, ui_1.uiLink)(en_1.lib.LocalDevManager.viewProjectLink, (0, urls_1.getProjectDetailUrl)(this.projectConfig.name, this.targetProjectAccountId) || ''));
|
|
143
|
+
logger_2.uiLogger.log('');
|
|
144
|
+
logger_2.uiLogger.log(en_1.lib.LocalDevManager.quitHelper);
|
|
158
145
|
(0, ui_1.uiLine)();
|
|
159
|
-
|
|
146
|
+
logger_2.uiLogger.log('');
|
|
160
147
|
await this.devServerStart();
|
|
161
148
|
// Initialize project file watcher to detect configuration file changes
|
|
162
149
|
this.startWatching();
|
|
@@ -169,7 +156,7 @@ class LocalDevManagerV2 {
|
|
|
169
156
|
async stop(showProgress = true) {
|
|
170
157
|
if (showProgress) {
|
|
171
158
|
SpinniesManager_1.default.add('cleanupMessage', {
|
|
172
|
-
text:
|
|
159
|
+
text: en_1.lib.LocalDevManager.exitingStart,
|
|
173
160
|
});
|
|
174
161
|
}
|
|
175
162
|
await this.stopWatching();
|
|
@@ -177,14 +164,14 @@ class LocalDevManagerV2 {
|
|
|
177
164
|
if (!cleanupSucceeded) {
|
|
178
165
|
if (showProgress) {
|
|
179
166
|
SpinniesManager_1.default.fail('cleanupMessage', {
|
|
180
|
-
text:
|
|
167
|
+
text: en_1.lib.LocalDevManager.exitingFail,
|
|
181
168
|
});
|
|
182
169
|
}
|
|
183
170
|
process.exit(exitCodes_1.EXIT_CODES.ERROR);
|
|
184
171
|
}
|
|
185
172
|
if (showProgress) {
|
|
186
173
|
SpinniesManager_1.default.succeed('cleanupMessage', {
|
|
187
|
-
text:
|
|
174
|
+
text: en_1.lib.LocalDevManager.exitingSucceed,
|
|
188
175
|
});
|
|
189
176
|
}
|
|
190
177
|
process.exit(exitCodes_1.EXIT_CODES.SUCCESS);
|
|
@@ -217,31 +204,22 @@ class LocalDevManagerV2 {
|
|
|
217
204
|
if (!warning) {
|
|
218
205
|
warning =
|
|
219
206
|
this.publicAppActiveInstalls && this.publicAppActiveInstalls > 0
|
|
220
|
-
?
|
|
221
|
-
|
|
222
|
-
accountText: this.publicAppActiveInstalls === 1 ? 'account' : 'accounts',
|
|
223
|
-
})
|
|
224
|
-
: (0, lang_1.i18n)(`${i18nKey}.uploadWarning.defaultWarning`);
|
|
207
|
+
? en_1.lib.LocalDevManager.uploadWarning.defaultMarketplaceAppWarning(this.publicAppActiveInstalls, this.publicAppActiveInstalls === 1 ? 'account' : 'accounts')
|
|
208
|
+
: en_1.lib.LocalDevManager.uploadWarning.defaultWarning;
|
|
225
209
|
}
|
|
226
210
|
// Avoid logging the warning to the console if it is currently the most
|
|
227
211
|
// recently logged warning. We do not want to spam the console with the same message.
|
|
228
212
|
if (!this.uploadWarnings[warning]) {
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
command: (0, ui_1.uiCommandReference)('hs project dev'),
|
|
233
|
-
}));
|
|
213
|
+
logger_2.uiLogger.log('');
|
|
214
|
+
logger_2.uiLogger.warn(en_1.lib.LocalDevManager.uploadWarning.header(warning));
|
|
215
|
+
logger_2.uiLogger.log(en_1.lib.LocalDevManager.uploadWarning.stopDev);
|
|
234
216
|
if (this.isGithubLinked) {
|
|
235
|
-
|
|
217
|
+
logger_2.uiLogger.log(en_1.lib.LocalDevManager.uploadWarning.pushToGithub);
|
|
236
218
|
}
|
|
237
219
|
else {
|
|
238
|
-
|
|
239
|
-
command: this.getUploadCommand(),
|
|
240
|
-
}));
|
|
220
|
+
logger_2.uiLogger.log(en_1.lib.LocalDevManager.uploadWarning.runUpload(this.getUploadCommand()));
|
|
241
221
|
}
|
|
242
|
-
|
|
243
|
-
command: (0, ui_1.uiCommandReference)('hs project dev'),
|
|
244
|
-
}));
|
|
222
|
+
logger_2.uiLogger.log(en_1.lib.LocalDevManager.uploadWarning.restartDev);
|
|
245
223
|
this.mostRecentUploadWarning = warning;
|
|
246
224
|
this.uploadWarnings[warning] = true;
|
|
247
225
|
}
|
|
@@ -273,9 +251,7 @@ class LocalDevManagerV2 {
|
|
|
273
251
|
}
|
|
274
252
|
});
|
|
275
253
|
if (missingProjectNodes.length) {
|
|
276
|
-
this.logUploadWarning(
|
|
277
|
-
missingComponents: missingProjectNodes.join(', '),
|
|
278
|
-
}));
|
|
254
|
+
this.logUploadWarning(en_1.lib.LocalDevManager.uploadWarning.missingComponents(missingProjectNodes.join(', ')));
|
|
279
255
|
}
|
|
280
256
|
}
|
|
281
257
|
startWatching() {
|
|
@@ -322,9 +298,7 @@ class LocalDevManagerV2 {
|
|
|
322
298
|
if (this.debug) {
|
|
323
299
|
logger_1.logger.error(e);
|
|
324
300
|
}
|
|
325
|
-
|
|
326
|
-
message: e instanceof Error ? e.message : '',
|
|
327
|
-
}));
|
|
301
|
+
logger_2.uiLogger.error(en_1.lib.LocalDevManager.devServer.setupError(e instanceof Error ? e.message : ''));
|
|
328
302
|
return false;
|
|
329
303
|
}
|
|
330
304
|
}
|
|
@@ -339,9 +313,7 @@ class LocalDevManagerV2 {
|
|
|
339
313
|
if (this.debug) {
|
|
340
314
|
logger_1.logger.error(e);
|
|
341
315
|
}
|
|
342
|
-
|
|
343
|
-
message: e instanceof Error ? e.message : '',
|
|
344
|
-
}));
|
|
316
|
+
logger_2.uiLogger.error(en_1.lib.LocalDevManager.devServer.startError(e instanceof Error ? e.message : ''));
|
|
345
317
|
process.exit(exitCodes_1.EXIT_CODES.ERROR);
|
|
346
318
|
}
|
|
347
319
|
}
|
|
@@ -353,9 +325,7 @@ class LocalDevManagerV2 {
|
|
|
353
325
|
if (this.debug) {
|
|
354
326
|
logger_1.logger.error(e);
|
|
355
327
|
}
|
|
356
|
-
|
|
357
|
-
message: e instanceof Error ? e.message : '',
|
|
358
|
-
}));
|
|
328
|
+
logger_2.uiLogger.error(en_1.lib.LocalDevManager.devServer.fileChangeError(e instanceof Error ? e.message : ''));
|
|
359
329
|
}
|
|
360
330
|
}
|
|
361
331
|
async devServerCleanup() {
|
|
@@ -367,9 +337,7 @@ class LocalDevManagerV2 {
|
|
|
367
337
|
if (this.debug) {
|
|
368
338
|
logger_1.logger.error(e);
|
|
369
339
|
}
|
|
370
|
-
|
|
371
|
-
message: e instanceof Error ? e.message : '',
|
|
372
|
-
}));
|
|
340
|
+
logger_2.uiLogger.error(en_1.lib.LocalDevManager.devServer.cleanupError(e instanceof Error ? e.message : ''));
|
|
373
341
|
return false;
|
|
374
342
|
}
|
|
375
343
|
}
|
|
@@ -2,11 +2,11 @@ import { CLIAccount } from '@hubspot/local-dev-lib/types/Accounts';
|
|
|
2
2
|
import { Environment } from '@hubspot/local-dev-lib/types/Config';
|
|
3
3
|
import { DeveloperTestAccount } from '@hubspot/local-dev-lib/types/developerTestAccounts';
|
|
4
4
|
import { Project } from '@hubspot/local-dev-lib/types/Project';
|
|
5
|
-
import { ProjectConfig } from '../types/Projects';
|
|
6
|
-
import { ProjectDevTargetAccountPromptResponse } from '../types/Prompts';
|
|
7
5
|
import { Build } from '@hubspot/local-dev-lib/types/Build';
|
|
6
|
+
import { ProjectConfig } from '../../../types/Projects';
|
|
7
|
+
import { ProjectDevTargetAccountPromptResponse } from '../../../types/Prompts';
|
|
8
8
|
export declare function confirmDefaultAccountIsTarget(accountConfig: CLIAccount): Promise<void>;
|
|
9
|
-
export declare function checkIfDefaultAccountIsSupported(accountConfig: CLIAccount, hasPublicApps: boolean): void
|
|
9
|
+
export declare function checkIfDefaultAccountIsSupported(accountConfig: CLIAccount, hasPublicApps: boolean): Promise<void>;
|
|
10
10
|
export declare function checkIfParentAccountIsAuthed(accountConfig: CLIAccount): void;
|
|
11
11
|
export declare function checkIfAccountFlagIsSupported(accountConfig: CLIAccount, hasPublicApps: boolean): void;
|
|
12
12
|
export declare function suggestRecommendedNestedAccount(accounts: CLIAccount[], accountConfig: CLIAccount, hasPublicApps: boolean): Promise<ProjectDevTargetAccountPromptResponse>;
|
|
@@ -14,5 +14,6 @@ export declare function createSandboxForLocalDev(accountId: number, accountConfi
|
|
|
14
14
|
export declare function createDeveloperTestAccountForLocalDev(accountId: number, accountConfig: CLIAccount, env: Environment): Promise<number>;
|
|
15
15
|
export declare function useExistingDevTestAccount(env: Environment, account: DeveloperTestAccount): Promise<void>;
|
|
16
16
|
export declare function createNewProjectForLocalDev(projectConfig: ProjectConfig, targetAccountId: number, shouldCreateWithoutConfirmation: boolean, hasPublicApps: boolean): Promise<Project>;
|
|
17
|
-
export declare function createInitialBuildForNewProject(projectConfig: ProjectConfig, projectDir: string, targetAccountId: number,
|
|
17
|
+
export declare function createInitialBuildForNewProject(projectConfig: ProjectConfig, projectDir: string, targetAccountId: number, sendIR?: boolean): Promise<Build>;
|
|
18
18
|
export declare function getAccountHomeUrl(accountId: number): string;
|
|
19
|
+
export declare function hasSandboxes(account: CLIAccount): Promise<boolean>;
|