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