@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
|
@@ -14,7 +14,7 @@ exports.useExistingDevTestAccount = useExistingDevTestAccount;
|
|
|
14
14
|
exports.createNewProjectForLocalDev = createNewProjectForLocalDev;
|
|
15
15
|
exports.createInitialBuildForNewProject = createInitialBuildForNewProject;
|
|
16
16
|
exports.getAccountHomeUrl = getAccountHomeUrl;
|
|
17
|
-
|
|
17
|
+
exports.hasSandboxes = hasSandboxes;
|
|
18
18
|
const config_1 = require("@hubspot/local-dev-lib/constants/config");
|
|
19
19
|
const index_1 = require("@hubspot/local-dev-lib/errors/index");
|
|
20
20
|
const urls_1 = require("@hubspot/local-dev-lib/urls");
|
|
@@ -23,70 +23,59 @@ const projects_1 = require("@hubspot/local-dev-lib/api/projects");
|
|
|
23
23
|
const environments_1 = require("@hubspot/local-dev-lib/constants/environments");
|
|
24
24
|
const auth_1 = require("@hubspot/local-dev-lib/constants/auth");
|
|
25
25
|
const getAccountIdentifier_1 = require("@hubspot/local-dev-lib/config/getAccountIdentifier");
|
|
26
|
-
const
|
|
27
|
-
const
|
|
28
|
-
const
|
|
29
|
-
const
|
|
30
|
-
const
|
|
31
|
-
const
|
|
32
|
-
const
|
|
33
|
-
const
|
|
34
|
-
const exitCodes_1 = require("
|
|
35
|
-
const usageTracking_1 = require("
|
|
36
|
-
const accountTypes_1 = require("
|
|
37
|
-
const upload_1 = require("
|
|
38
|
-
const buildAndDeploy_1 = require("
|
|
39
|
-
const constants_1 = require("
|
|
40
|
-
const index_2 = require("
|
|
41
|
-
const buildAccount_1 = require("
|
|
42
|
-
const accountNamePrompt_1 = require("
|
|
43
|
-
const
|
|
26
|
+
const sandboxHubs_1 = require("@hubspot/local-dev-lib/api/sandboxHubs");
|
|
27
|
+
const projectDevTargetAccountPrompt_1 = require("../../prompts/projectDevTargetAccountPrompt");
|
|
28
|
+
const promptUtils_1 = require("../../prompts/promptUtils");
|
|
29
|
+
const sandboxes_1 = require("../../sandboxes");
|
|
30
|
+
const sandboxSync_1 = require("../../sandboxSync");
|
|
31
|
+
const developerTestAccounts_1 = require("../../developerTestAccounts");
|
|
32
|
+
const ui_1 = require("../../ui");
|
|
33
|
+
const SpinniesManager_1 = __importDefault(require("../../ui/SpinniesManager"));
|
|
34
|
+
const exitCodes_1 = require("../../enums/exitCodes");
|
|
35
|
+
const usageTracking_1 = require("../../usageTracking");
|
|
36
|
+
const accountTypes_1 = require("../../accountTypes");
|
|
37
|
+
const upload_1 = require("../../projects/upload");
|
|
38
|
+
const buildAndDeploy_1 = require("../../projects/buildAndDeploy");
|
|
39
|
+
const constants_1 = require("../../constants");
|
|
40
|
+
const index_2 = require("../../errorHandlers/index");
|
|
41
|
+
const buildAccount_1 = require("../../buildAccount");
|
|
42
|
+
const accountNamePrompt_1 = require("../../prompts/accountNamePrompt");
|
|
43
|
+
const en_1 = require("../../../lang/en");
|
|
44
|
+
const logger_1 = require("../../ui/logger");
|
|
44
45
|
// If the user passed in the --account flag, confirm they want to use that account as
|
|
45
46
|
// their target account, otherwise exit
|
|
46
47
|
async function confirmDefaultAccountIsTarget(accountConfig) {
|
|
47
48
|
if (!accountConfig.name || !accountConfig.accountType) {
|
|
48
|
-
logger_1.
|
|
49
|
-
authCommand: (0, ui_1.uiCommandReference)('hs auth'),
|
|
50
|
-
}));
|
|
49
|
+
logger_1.uiLogger.error(en_1.lib.localDevHelpers.confirmDefaultAccountIsTarget.configError);
|
|
51
50
|
process.exit(exitCodes_1.EXIT_CODES.ERROR);
|
|
52
51
|
}
|
|
53
|
-
logger_1.
|
|
52
|
+
logger_1.uiLogger.log('');
|
|
54
53
|
const useDefaultAccount = await (0, projectDevTargetAccountPrompt_1.confirmDefaultAccountPrompt)(accountConfig.name, config_1.HUBSPOT_ACCOUNT_TYPE_STRINGS[accountConfig.accountType]);
|
|
55
54
|
if (!useDefaultAccount) {
|
|
56
|
-
logger_1.
|
|
57
|
-
|
|
58
|
-
devCommand: (0, ui_1.uiCommandReference)('hs project dev'),
|
|
59
|
-
}));
|
|
55
|
+
logger_1.uiLogger.log(en_1.lib.localDevHelpers.confirmDefaultAccountIsTarget
|
|
56
|
+
.declineDefaultAccountExplanation);
|
|
60
57
|
process.exit(exitCodes_1.EXIT_CODES.SUCCESS);
|
|
61
58
|
}
|
|
62
59
|
}
|
|
63
60
|
// Confirm the default account is supported for the type of apps being developed
|
|
64
|
-
function checkIfDefaultAccountIsSupported(accountConfig, hasPublicApps) {
|
|
61
|
+
async function checkIfDefaultAccountIsSupported(accountConfig, hasPublicApps) {
|
|
62
|
+
const defaultAccountIsUnified = await (0, accountTypes_1.isUnifiedAccount)(accountConfig);
|
|
65
63
|
if (hasPublicApps &&
|
|
66
64
|
!((0, accountTypes_1.isAppDeveloperAccount)(accountConfig) ||
|
|
67
|
-
(0, accountTypes_1.isDeveloperTestAccount)(accountConfig)
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
authCommand: (0, ui_1.uiCommandReference)('hs auth'),
|
|
71
|
-
}));
|
|
65
|
+
(0, accountTypes_1.isDeveloperTestAccount)(accountConfig) ||
|
|
66
|
+
defaultAccountIsUnified)) {
|
|
67
|
+
logger_1.uiLogger.error(en_1.lib.localDevHelpers.checkIfDefaultAccountIsSupported.publicApp);
|
|
72
68
|
process.exit(exitCodes_1.EXIT_CODES.SUCCESS);
|
|
73
69
|
}
|
|
74
70
|
else if (!hasPublicApps && (0, accountTypes_1.isAppDeveloperAccount)(accountConfig)) {
|
|
75
|
-
logger_1.
|
|
76
|
-
useCommand: (0, ui_1.uiCommandReference)('hs accounts use'),
|
|
77
|
-
authCommand: (0, ui_1.uiCommandReference)('hs auth'),
|
|
78
|
-
}));
|
|
71
|
+
logger_1.uiLogger.error(en_1.lib.localDevHelpers.checkIfDefaultAccountIsSupported.privateApp);
|
|
79
72
|
process.exit(exitCodes_1.EXIT_CODES.SUCCESS);
|
|
80
73
|
}
|
|
81
74
|
}
|
|
82
75
|
function checkIfParentAccountIsAuthed(accountConfig) {
|
|
83
76
|
if (!accountConfig.parentAccountId ||
|
|
84
77
|
!(0, config_2.getAccountConfig)(accountConfig.parentAccountId)) {
|
|
85
|
-
logger_1.
|
|
86
|
-
accountId: accountConfig.parentAccountId || '',
|
|
87
|
-
accountIdentifier: (0, ui_1.uiAccountDescription)((0, getAccountIdentifier_1.getAccountIdentifier)(accountConfig)),
|
|
88
|
-
authCommand: (0, ui_1.uiCommandReference)(`hs auth --account=${accountConfig.parentAccountId}`),
|
|
89
|
-
}));
|
|
78
|
+
logger_1.uiLogger.error(en_1.lib.localDevHelpers.checkIfParentAccountIsAuthed.notAuthedError(accountConfig.parentAccountId || '', (0, ui_1.uiAccountDescription)((0, getAccountIdentifier_1.getAccountIdentifier)(accountConfig))));
|
|
90
79
|
process.exit(exitCodes_1.EXIT_CODES.SUCCESS);
|
|
91
80
|
}
|
|
92
81
|
}
|
|
@@ -94,34 +83,30 @@ function checkIfParentAccountIsAuthed(accountConfig) {
|
|
|
94
83
|
function checkIfAccountFlagIsSupported(accountConfig, hasPublicApps) {
|
|
95
84
|
if (hasPublicApps) {
|
|
96
85
|
if (!(0, accountTypes_1.isDeveloperTestAccount)(accountConfig)) {
|
|
97
|
-
logger_1.
|
|
98
|
-
useCommand: (0, ui_1.uiCommandReference)('hs accounts use'),
|
|
99
|
-
devCommand: (0, ui_1.uiCommandReference)('hs project dev'),
|
|
100
|
-
}));
|
|
86
|
+
logger_1.uiLogger.error(en_1.lib.localDevHelpers.validateAccountOption.invalidPublicAppAccount);
|
|
101
87
|
process.exit(exitCodes_1.EXIT_CODES.SUCCESS);
|
|
102
88
|
}
|
|
103
89
|
checkIfParentAccountIsAuthed(accountConfig);
|
|
104
90
|
}
|
|
105
91
|
else if ((0, accountTypes_1.isAppDeveloperAccount)(accountConfig)) {
|
|
106
|
-
logger_1.
|
|
107
|
-
useCommand: (0, ui_1.uiCommandReference)('hs accounts use'),
|
|
108
|
-
}));
|
|
92
|
+
logger_1.uiLogger.error(en_1.lib.localDevHelpers.validateAccountOption.invalidPrivateAppAccount);
|
|
109
93
|
process.exit(exitCodes_1.EXIT_CODES.SUCCESS);
|
|
110
94
|
}
|
|
111
95
|
}
|
|
112
96
|
// If the user isn't using the recommended account type, prompt them to use or create one
|
|
113
97
|
async function suggestRecommendedNestedAccount(accounts, accountConfig, hasPublicApps) {
|
|
114
|
-
logger_1.
|
|
98
|
+
logger_1.uiLogger.log('');
|
|
115
99
|
(0, ui_1.uiLine)();
|
|
116
100
|
if (hasPublicApps) {
|
|
117
|
-
logger_1.
|
|
101
|
+
logger_1.uiLogger.log(en_1.lib.localDevHelpers.validateAccountOption
|
|
102
|
+
.publicAppNonDeveloperTestAccountWarning);
|
|
118
103
|
}
|
|
119
104
|
else {
|
|
120
|
-
logger_1.
|
|
105
|
+
logger_1.uiLogger.log(en_1.lib.localDevHelpers.validateAccountOption.nonSandboxWarning);
|
|
121
106
|
}
|
|
122
107
|
(0, ui_1.uiLine)();
|
|
123
|
-
logger_1.
|
|
124
|
-
const targetAccountPrompt =
|
|
108
|
+
logger_1.uiLogger.log('');
|
|
109
|
+
const targetAccountPrompt = hasPublicApps
|
|
125
110
|
? projectDevTargetAccountPrompt_1.selectDeveloperTestTargetAccountPrompt
|
|
126
111
|
: projectDevTargetAccountPrompt_1.selectSandboxTargetAccountPrompt;
|
|
127
112
|
return targetAccountPrompt(accounts, accountConfig);
|
|
@@ -133,15 +118,10 @@ async function createSandboxForLocalDev(accountId, accountConfig, env) {
|
|
|
133
118
|
}
|
|
134
119
|
catch (err) {
|
|
135
120
|
if ((0, index_1.isMissingScopeError)(err)) {
|
|
136
|
-
logger_1.
|
|
137
|
-
accountName: accountConfig.name || accountId,
|
|
138
|
-
}));
|
|
121
|
+
logger_1.uiLogger.error(en_1.lib.sandbox.create.developer.failure.scopes.message);
|
|
139
122
|
const websiteOrigin = (0, urls_1.getHubSpotWebsiteOrigin)(env);
|
|
140
123
|
const url = `${websiteOrigin}/personal-access-key/${accountId}`;
|
|
141
|
-
logger_1.
|
|
142
|
-
accountName: accountConfig.name || accountId,
|
|
143
|
-
url,
|
|
144
|
-
}));
|
|
124
|
+
logger_1.uiLogger.info(en_1.lib.sandbox.create.developer.failure.scopes.instructions(accountConfig.name || accountId, url));
|
|
145
125
|
}
|
|
146
126
|
else {
|
|
147
127
|
(0, index_2.logError)(err);
|
|
@@ -157,7 +137,7 @@ async function createSandboxForLocalDev(accountId, accountConfig, env) {
|
|
|
157
137
|
const targetAccountId = result.sandbox.sandboxHubId;
|
|
158
138
|
const sandboxAccountConfig = (0, config_2.getAccountConfig)(result.sandbox.sandboxHubId);
|
|
159
139
|
if (!sandboxAccountConfig) {
|
|
160
|
-
logger_1.
|
|
140
|
+
logger_1.uiLogger.error(en_1.lib.sandbox.create.developer.failure.generic);
|
|
161
141
|
process.exit(exitCodes_1.EXIT_CODES.ERROR);
|
|
162
142
|
}
|
|
163
143
|
const syncTasks = await (0, sandboxes_1.getAvailableSyncTypes)(accountConfig, sandboxAccountConfig);
|
|
@@ -185,15 +165,10 @@ async function createDeveloperTestAccountForLocalDev(accountId, accountConfig, e
|
|
|
185
165
|
}
|
|
186
166
|
catch (err) {
|
|
187
167
|
if ((0, index_1.isMissingScopeError)(err)) {
|
|
188
|
-
logger_1.
|
|
189
|
-
accountName: accountConfig.name || accountId,
|
|
190
|
-
}));
|
|
168
|
+
logger_1.uiLogger.error(en_1.lib.developerTestAccount.create.failure.scopes.message);
|
|
191
169
|
const websiteOrigin = (0, urls_1.getHubSpotWebsiteOrigin)(env);
|
|
192
170
|
const url = `${websiteOrigin}/personal-access-key/${accountId}`;
|
|
193
|
-
logger_1.
|
|
194
|
-
accountName: accountConfig.name || accountId,
|
|
195
|
-
url,
|
|
196
|
-
}));
|
|
171
|
+
logger_1.uiLogger.info(en_1.lib.developerTestAccount.create.failure.scopes.instructions(accountConfig.name || accountId, url));
|
|
197
172
|
}
|
|
198
173
|
else {
|
|
199
174
|
(0, index_2.logError)(err);
|
|
@@ -207,7 +182,7 @@ async function createDeveloperTestAccountForLocalDev(accountId, accountConfig, e
|
|
|
207
182
|
});
|
|
208
183
|
(0, usageTracking_1.trackCommandMetadataUsage)('developer-test-account-create', { step: 'project-dev' }, accountId);
|
|
209
184
|
const result = await (0, buildAccount_1.buildDeveloperTestAccount)(name, accountConfig, env, maxTestPortals);
|
|
210
|
-
return result
|
|
185
|
+
return result;
|
|
211
186
|
}
|
|
212
187
|
catch (err) {
|
|
213
188
|
(0, index_2.logError)(err);
|
|
@@ -218,91 +193,85 @@ async function createDeveloperTestAccountForLocalDev(accountId, accountConfig, e
|
|
|
218
193
|
async function useExistingDevTestAccount(env, account) {
|
|
219
194
|
const useExistingDevTestAcct = await (0, projectDevTargetAccountPrompt_1.confirmUseExistingDeveloperTestAccountPrompt)(account);
|
|
220
195
|
if (!useExistingDevTestAcct) {
|
|
221
|
-
logger_1.
|
|
222
|
-
logger_1.
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
}));
|
|
226
|
-
logger_1.logger.log('');
|
|
196
|
+
logger_1.uiLogger.log('');
|
|
197
|
+
logger_1.uiLogger.log(en_1.lib.localDevHelpers.confirmDefaultAccountIsTarget
|
|
198
|
+
.declineDefaultAccountExplanation);
|
|
199
|
+
logger_1.uiLogger.log('');
|
|
227
200
|
process.exit(exitCodes_1.EXIT_CODES.SUCCESS);
|
|
228
201
|
}
|
|
229
202
|
const devTestAcctConfigName = await (0, buildAccount_1.saveAccountToConfig)(account.id, account.accountName, env);
|
|
230
|
-
logger_1.
|
|
231
|
-
accountName: devTestAcctConfigName,
|
|
232
|
-
authType: auth_1.PERSONAL_ACCESS_KEY_AUTH_METHOD.name,
|
|
233
|
-
}));
|
|
203
|
+
logger_1.uiLogger.success(en_1.lib.developerTestAccount.create.success.configFileUpdated(devTestAcctConfigName, auth_1.PERSONAL_ACCESS_KEY_AUTH_METHOD.name));
|
|
234
204
|
}
|
|
235
205
|
// Prompt the user to create a new project if one doesn't exist on their target account
|
|
236
206
|
async function createNewProjectForLocalDev(projectConfig, targetAccountId, shouldCreateWithoutConfirmation, hasPublicApps) {
|
|
237
207
|
// Create the project without prompting if this is a newly created sandbox
|
|
238
208
|
let shouldCreateProject = shouldCreateWithoutConfirmation;
|
|
239
209
|
if (!shouldCreateProject) {
|
|
240
|
-
const
|
|
241
|
-
?
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
logger_1.
|
|
210
|
+
const explanationLangFunction = hasPublicApps
|
|
211
|
+
? en_1.lib.localDevHelpers.createNewProjectForLocalDev
|
|
212
|
+
.publicAppProjectMustExistExplanation
|
|
213
|
+
: en_1.lib.localDevHelpers.createNewProjectForLocalDev
|
|
214
|
+
.projectMustExistExplanation;
|
|
215
|
+
const explanationString = explanationLangFunction((0, ui_1.uiAccountDescription)(targetAccountId), projectConfig.name);
|
|
216
|
+
logger_1.uiLogger.log('');
|
|
247
217
|
(0, ui_1.uiLine)();
|
|
248
|
-
logger_1.
|
|
218
|
+
logger_1.uiLogger.log(explanationString);
|
|
249
219
|
(0, ui_1.uiLine)();
|
|
250
|
-
shouldCreateProject = await (0, promptUtils_1.confirmPrompt)((0,
|
|
251
|
-
accountIdentifier: (0, ui_1.uiAccountDescription)(targetAccountId),
|
|
252
|
-
projectName: projectConfig.name,
|
|
253
|
-
}));
|
|
220
|
+
shouldCreateProject = await (0, promptUtils_1.confirmPrompt)(en_1.lib.localDevHelpers.createNewProjectForLocalDev.createProject(projectConfig.name, (0, ui_1.uiAccountDescription)(targetAccountId)));
|
|
254
221
|
}
|
|
255
222
|
if (shouldCreateProject) {
|
|
256
223
|
SpinniesManager_1.default.add('createProject', {
|
|
257
|
-
text: (0,
|
|
258
|
-
accountIdentifier: (0, ui_1.uiAccountDescription)(targetAccountId),
|
|
259
|
-
projectName: projectConfig.name,
|
|
260
|
-
}),
|
|
224
|
+
text: en_1.lib.localDevHelpers.createNewProjectForLocalDev.creatingProject(projectConfig.name, (0, ui_1.uiAccountDescription)(targetAccountId)),
|
|
261
225
|
});
|
|
262
226
|
try {
|
|
263
227
|
const { data: project } = await (0, projects_1.createProject)(targetAccountId, projectConfig.name);
|
|
264
228
|
SpinniesManager_1.default.succeed('createProject', {
|
|
265
|
-
text: (0,
|
|
266
|
-
accountIdentifier: (0, ui_1.uiAccountDescription)(targetAccountId),
|
|
267
|
-
projectName: projectConfig.name,
|
|
268
|
-
}),
|
|
229
|
+
text: en_1.lib.localDevHelpers.createNewProjectForLocalDev.createdProject(projectConfig.name, (0, ui_1.uiAccountDescription)(targetAccountId)),
|
|
269
230
|
succeedColor: 'white',
|
|
270
231
|
});
|
|
271
232
|
return project;
|
|
272
233
|
}
|
|
273
234
|
catch (err) {
|
|
274
235
|
SpinniesManager_1.default.fail('createProject');
|
|
275
|
-
logger_1.
|
|
236
|
+
logger_1.uiLogger.log(en_1.lib.localDevHelpers.createNewProjectForLocalDev.failedToCreateProject);
|
|
276
237
|
process.exit(exitCodes_1.EXIT_CODES.ERROR);
|
|
277
238
|
}
|
|
278
239
|
}
|
|
279
240
|
else {
|
|
280
241
|
// We cannot continue if the project does not exist in the target account
|
|
281
|
-
logger_1.
|
|
282
|
-
logger_1.
|
|
242
|
+
logger_1.uiLogger.log('');
|
|
243
|
+
logger_1.uiLogger.log(en_1.lib.localDevHelpers.createNewProjectForLocalDev.choseNotToCreateProject);
|
|
283
244
|
process.exit(exitCodes_1.EXIT_CODES.SUCCESS);
|
|
284
245
|
}
|
|
285
246
|
}
|
|
286
247
|
function projectUploadCallback(accountId, projectConfig, tempFile, buildId) {
|
|
287
248
|
if (!buildId) {
|
|
288
|
-
logger_1.
|
|
289
|
-
uploadCommand: (0, ui_1.uiCommandReference)('hs project upload'),
|
|
290
|
-
}));
|
|
249
|
+
logger_1.uiLogger.error(en_1.lib.localDevHelpers.createInitialBuildForNewProject.genericError);
|
|
291
250
|
process.exit(exitCodes_1.EXIT_CODES.ERROR);
|
|
292
251
|
}
|
|
293
252
|
return (0, buildAndDeploy_1.pollProjectBuildAndDeploy)(accountId, projectConfig, tempFile, buildId, true);
|
|
294
253
|
}
|
|
295
254
|
// Create an initial build if the project was newly created in the account
|
|
296
255
|
// Return the newly deployed build
|
|
297
|
-
async function createInitialBuildForNewProject(projectConfig, projectDir, targetAccountId,
|
|
298
|
-
const { result: initialUploadResult, uploadError } = await (0, upload_1.handleProjectUpload)(
|
|
256
|
+
async function createInitialBuildForNewProject(projectConfig, projectDir, targetAccountId, sendIR) {
|
|
257
|
+
const { result: initialUploadResult, uploadError } = await (0, upload_1.handleProjectUpload)({
|
|
258
|
+
accountId: targetAccountId,
|
|
259
|
+
projectConfig,
|
|
260
|
+
projectDir,
|
|
261
|
+
callbackFunc: projectUploadCallback,
|
|
262
|
+
uploadMessage: en_1.lib.localDevHelpers.createInitialBuildForNewProject
|
|
263
|
+
.initialUploadMessage,
|
|
264
|
+
forceCreate: true,
|
|
265
|
+
skipValidation: true,
|
|
266
|
+
sendIR,
|
|
267
|
+
});
|
|
299
268
|
if (uploadError) {
|
|
300
269
|
if ((0, index_1.isSpecifiedError)(uploadError, {
|
|
301
270
|
subCategory: constants_1.PROJECT_ERROR_TYPES.PROJECT_LOCKED,
|
|
302
271
|
})) {
|
|
303
|
-
logger_1.
|
|
304
|
-
logger_1.
|
|
305
|
-
logger_1.
|
|
272
|
+
logger_1.uiLogger.log('');
|
|
273
|
+
logger_1.uiLogger.error(en_1.lib.localDevHelpers.createInitialBuildForNewProject.projectLockedError);
|
|
274
|
+
logger_1.uiLogger.log('');
|
|
306
275
|
}
|
|
307
276
|
else {
|
|
308
277
|
(0, index_2.logError)(uploadError, new index_2.ApiErrorContext({
|
|
@@ -323,11 +292,11 @@ async function createInitialBuildForNewProject(projectConfig, projectDir, target
|
|
|
323
292
|
initialUploadResult.deployResult[constants_1.PROJECT_DEPLOY_TEXT.SUBTASK_KEY];
|
|
324
293
|
}
|
|
325
294
|
const failedSubTasks = subTasks.filter(task => task.status === 'FAILURE');
|
|
326
|
-
logger_1.
|
|
295
|
+
logger_1.uiLogger.log('');
|
|
327
296
|
failedSubTasks.forEach(failedSubTask => {
|
|
328
|
-
logger_1.
|
|
297
|
+
logger_1.uiLogger.error(failedSubTask.errorMessage);
|
|
329
298
|
});
|
|
330
|
-
logger_1.
|
|
299
|
+
logger_1.uiLogger.log('');
|
|
331
300
|
process.exit(exitCodes_1.EXIT_CODES.ERROR);
|
|
332
301
|
}
|
|
333
302
|
return initialUploadResult.buildResult;
|
|
@@ -336,3 +305,17 @@ function getAccountHomeUrl(accountId) {
|
|
|
336
305
|
const baseUrl = (0, urls_1.getHubSpotWebsiteOrigin)((0, config_2.getEnv)(accountId) === 'qa' ? environments_1.ENVIRONMENTS.QA : environments_1.ENVIRONMENTS.PROD);
|
|
337
306
|
return `${baseUrl}/home?portalId=${accountId}`;
|
|
338
307
|
}
|
|
308
|
+
async function hasSandboxes(account) {
|
|
309
|
+
const accountId = (0, getAccountIdentifier_1.getAccountIdentifier)(account);
|
|
310
|
+
if (!accountId) {
|
|
311
|
+
return false;
|
|
312
|
+
}
|
|
313
|
+
try {
|
|
314
|
+
const { data: { usage }, } = await (0, sandboxHubs_1.getSandboxUsageLimits)(accountId);
|
|
315
|
+
return usage.STANDARD.limit > 0 || usage.DEVELOPER.limit > 0;
|
|
316
|
+
}
|
|
317
|
+
catch (e) {
|
|
318
|
+
(0, index_2.debugError)(e);
|
|
319
|
+
return false;
|
|
320
|
+
}
|
|
321
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function logFeedbackMessage(buildId: number): void;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.logFeedbackMessage = logFeedbackMessage;
|
|
4
|
+
const logger_1 = require("../ui/logger");
|
|
5
|
+
const constants_1 = require("../constants");
|
|
6
|
+
const ui_1 = require("../ui");
|
|
7
|
+
const en_1 = require("../../lang/en");
|
|
8
|
+
function logFeedbackMessage(buildId) {
|
|
9
|
+
if (buildId > 0 && buildId % constants_1.FEEDBACK_INTERVAL === 0) {
|
|
10
|
+
(0, ui_1.uiLine)();
|
|
11
|
+
logger_1.uiLogger.log(en_1.lib.projects.logFeedbackMessage.feedbackHeader);
|
|
12
|
+
(0, ui_1.uiLine)();
|
|
13
|
+
logger_1.uiLogger.log(en_1.lib.projects.logFeedbackMessage.feedbackMessage);
|
|
14
|
+
}
|
|
15
|
+
}
|
package/lib/projects/upload.d.ts
CHANGED
|
@@ -1,9 +1,20 @@
|
|
|
1
1
|
import { FileResult } from 'tmp';
|
|
2
2
|
import { ProjectConfig } from '../../types/Projects';
|
|
3
|
-
type ProjectUploadCallbackFunction<T> = (accountId: number, projectConfig: ProjectConfig, tempFile: FileResult, buildId
|
|
3
|
+
type ProjectUploadCallbackFunction<T> = (accountId: number, projectConfig: ProjectConfig, tempFile: FileResult, buildId: number) => Promise<T>;
|
|
4
4
|
type ProjectUploadResult<T> = {
|
|
5
5
|
result?: T;
|
|
6
6
|
uploadError?: unknown;
|
|
7
7
|
};
|
|
8
|
-
|
|
8
|
+
type HandleProjectUploadArg<T> = {
|
|
9
|
+
accountId: number;
|
|
10
|
+
projectConfig: ProjectConfig;
|
|
11
|
+
projectDir: string;
|
|
12
|
+
callbackFunc: ProjectUploadCallbackFunction<T>;
|
|
13
|
+
uploadMessage?: string;
|
|
14
|
+
forceCreate?: boolean;
|
|
15
|
+
isUploadCommand?: boolean;
|
|
16
|
+
sendIR?: boolean;
|
|
17
|
+
skipValidation?: boolean;
|
|
18
|
+
};
|
|
19
|
+
export declare function handleProjectUpload<T>({ accountId, projectConfig, projectDir, callbackFunc, uploadMessage, forceCreate, isUploadCommand, sendIR, skipValidation, }: HandleProjectUploadArg<T>): Promise<ProjectUploadResult<T>>;
|
|
9
20
|
export {};
|
package/lib/projects/upload.js
CHANGED
|
@@ -10,23 +10,20 @@ const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
|
10
10
|
const path_1 = __importDefault(require("path"));
|
|
11
11
|
const projects_1 = require("@hubspot/local-dev-lib/api/projects");
|
|
12
12
|
const ignoreRules_1 = require("@hubspot/local-dev-lib/ignoreRules");
|
|
13
|
-
const logger_1 = require("@hubspot/local-dev-lib/logger");
|
|
14
13
|
const SpinniesManager_1 = __importDefault(require("../ui/SpinniesManager"));
|
|
15
14
|
const ui_1 = require("../ui");
|
|
16
|
-
const lang_1 = require("../lang");
|
|
17
15
|
const exitCodes_1 = require("../enums/exitCodes");
|
|
18
16
|
const project_parsing_lib_1 = require("@hubspot/project-parsing-lib");
|
|
19
17
|
const errorHandlers_1 = require("../errorHandlers");
|
|
20
18
|
const node_util_1 = __importDefault(require("node:util"));
|
|
21
|
-
const
|
|
19
|
+
const en_1 = require("../../lang/en");
|
|
20
|
+
const ensureProjectExists_1 = require("./ensureProjectExists");
|
|
21
|
+
const logger_1 = require("../ui/logger");
|
|
22
22
|
async function uploadProjectFiles(accountId, projectName, filePath, uploadMessage, platformVersion, intermediateRepresentation) {
|
|
23
23
|
SpinniesManager_1.default.init({});
|
|
24
24
|
const accountIdentifier = (0, ui_1.uiAccountDescription)(accountId);
|
|
25
25
|
SpinniesManager_1.default.add('upload', {
|
|
26
|
-
text:
|
|
27
|
-
accountIdentifier,
|
|
28
|
-
projectName,
|
|
29
|
-
}),
|
|
26
|
+
text: en_1.lib.projectUpload.uploadProjectFiles.add(projectName, accountIdentifier),
|
|
30
27
|
succeedColor: 'white',
|
|
31
28
|
});
|
|
32
29
|
let buildId;
|
|
@@ -35,48 +32,33 @@ async function uploadProjectFiles(accountId, projectName, filePath, uploadMessag
|
|
|
35
32
|
const { data: upload } = await (0, projects_1.uploadProject)(accountId, projectName, filePath, uploadMessage, platformVersion, intermediateRepresentation);
|
|
36
33
|
buildId = upload.buildId;
|
|
37
34
|
SpinniesManager_1.default.succeed('upload', {
|
|
38
|
-
text:
|
|
39
|
-
accountIdentifier,
|
|
40
|
-
projectName,
|
|
41
|
-
}),
|
|
35
|
+
text: en_1.lib.projectUpload.uploadProjectFiles.succeed(projectName, accountIdentifier),
|
|
42
36
|
});
|
|
43
37
|
if (buildId) {
|
|
44
|
-
logger_1.
|
|
45
|
-
buildId,
|
|
46
|
-
projectName,
|
|
47
|
-
}));
|
|
38
|
+
logger_1.uiLogger.debug(en_1.lib.projectUpload.uploadProjectFiles.buildCreated(projectName, buildId));
|
|
48
39
|
}
|
|
49
40
|
}
|
|
50
41
|
catch (err) {
|
|
51
42
|
SpinniesManager_1.default.fail('upload', {
|
|
52
|
-
text:
|
|
53
|
-
accountIdentifier,
|
|
54
|
-
projectName,
|
|
55
|
-
}),
|
|
43
|
+
text: en_1.lib.projectUpload.uploadProjectFiles.fail(projectName, accountIdentifier),
|
|
56
44
|
});
|
|
57
45
|
error = err;
|
|
58
46
|
}
|
|
59
47
|
return { buildId, error };
|
|
60
48
|
}
|
|
61
|
-
async function handleProjectUpload(accountId, projectConfig, projectDir, callbackFunc, uploadMessage, sendIR = false, skipValidation = false) {
|
|
49
|
+
async function handleProjectUpload({ accountId, projectConfig, projectDir, callbackFunc, uploadMessage = '', forceCreate = false, isUploadCommand = false, sendIR = false, skipValidation = false, }) {
|
|
62
50
|
const srcDir = path_1.default.resolve(projectDir, projectConfig.srcDir);
|
|
63
51
|
const filenames = fs_extra_1.default.readdirSync(srcDir);
|
|
64
52
|
if (!filenames || filenames.length === 0) {
|
|
65
|
-
logger_1.
|
|
66
|
-
srcDir: projectConfig.srcDir,
|
|
67
|
-
}));
|
|
53
|
+
logger_1.uiLogger.log(en_1.lib.projectUpload.handleProjectUpload.emptySource(projectConfig.srcDir));
|
|
68
54
|
process.exit(exitCodes_1.EXIT_CODES.SUCCESS);
|
|
69
55
|
}
|
|
70
56
|
const tempFile = tmp_1.default.fileSync({ postfix: '.zip' });
|
|
71
|
-
logger_1.
|
|
72
|
-
path: tempFile.name,
|
|
73
|
-
}));
|
|
57
|
+
logger_1.uiLogger.debug(en_1.lib.projectUpload.handleProjectUpload.compressing(tempFile.name));
|
|
74
58
|
const output = fs_extra_1.default.createWriteStream(tempFile.name);
|
|
75
59
|
const archive = (0, archiver_1.default)('zip');
|
|
76
60
|
const result = new Promise(resolve => output.on('close', async function () {
|
|
77
|
-
logger_1.
|
|
78
|
-
byteCount: archive.pointer(),
|
|
79
|
-
}));
|
|
61
|
+
logger_1.uiLogger.debug(en_1.lib.projectUpload.handleProjectUpload.compressed(archive.pointer()));
|
|
80
62
|
let intermediateRepresentation;
|
|
81
63
|
if (sendIR) {
|
|
82
64
|
try {
|
|
@@ -85,11 +67,11 @@ async function handleProjectUpload(accountId, projectConfig, projectDir, callbac
|
|
|
85
67
|
platformVersion: projectConfig.platformVersion,
|
|
86
68
|
accountId,
|
|
87
69
|
}, { skipValidation });
|
|
88
|
-
logger_1.
|
|
70
|
+
logger_1.uiLogger.debug(node_util_1.default.inspect(intermediateRepresentation, false, null, true));
|
|
89
71
|
}
|
|
90
72
|
catch (e) {
|
|
91
73
|
if ((0, project_parsing_lib_1.isTranslationError)(e)) {
|
|
92
|
-
logger_1.
|
|
74
|
+
logger_1.uiLogger.error(e.toString());
|
|
93
75
|
}
|
|
94
76
|
else {
|
|
95
77
|
(0, errorHandlers_1.logError)(e);
|
|
@@ -97,6 +79,10 @@ async function handleProjectUpload(accountId, projectConfig, projectDir, callbac
|
|
|
97
79
|
return process.exit(exitCodes_1.EXIT_CODES.ERROR);
|
|
98
80
|
}
|
|
99
81
|
}
|
|
82
|
+
await (0, ensureProjectExists_1.ensureProjectExists)(accountId, projectConfig.name, {
|
|
83
|
+
forceCreate,
|
|
84
|
+
uploadCommand: isUploadCommand,
|
|
85
|
+
});
|
|
100
86
|
const { buildId, error } = await uploadProjectFiles(accountId, projectConfig.name, tempFile.name, uploadMessage, projectConfig.platformVersion, intermediateRepresentation);
|
|
101
87
|
if (error) {
|
|
102
88
|
resolve({ uploadError: error });
|
|
@@ -113,9 +99,7 @@ async function handleProjectUpload(accountId, projectConfig, projectDir, callbac
|
|
|
113
99
|
if (ignored) {
|
|
114
100
|
const isNodeModule = file.name.includes('node_modules');
|
|
115
101
|
if (!isNodeModule || !loggedIgnoredNodeModule) {
|
|
116
|
-
logger_1.
|
|
117
|
-
filename: file.name,
|
|
118
|
-
}));
|
|
102
|
+
logger_1.uiLogger.debug(en_1.lib.projectUpload.handleProjectUpload.fileFiltered(file.name));
|
|
119
103
|
}
|
|
120
104
|
if (isNodeModule && !loggedIgnoredNodeModule) {
|
|
121
105
|
loggedIgnoredNodeModule = true;
|
package/lib/projects/urls.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export declare function getProjectDetailUrl(projectName: string, accountId: number): string | undefined;
|
|
2
|
+
export declare function getProjectSettingsUrl(projectName: string, accountId: number): string | undefined;
|
|
2
3
|
export declare function getProjectActivityUrl(projectName: string, accountId: number): string;
|
|
3
4
|
export declare function getProjectBuildDetailUrl(projectName: string, buildId: number, accountId: number): string;
|
|
4
5
|
export declare function getProjectDeployDetailUrl(projectName: string, deployId: number, accountId: number): string;
|
package/lib/projects/urls.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getProjectDetailUrl = getProjectDetailUrl;
|
|
4
|
+
exports.getProjectSettingsUrl = getProjectSettingsUrl;
|
|
4
5
|
exports.getProjectActivityUrl = getProjectActivityUrl;
|
|
5
6
|
exports.getProjectBuildDetailUrl = getProjectBuildDetailUrl;
|
|
6
7
|
exports.getProjectDeployDetailUrl = getProjectDeployDetailUrl;
|
|
@@ -16,6 +17,11 @@ function getProjectDetailUrl(projectName, accountId) {
|
|
|
16
17
|
return;
|
|
17
18
|
return `${getProjectHomeUrl(accountId)}/project/${projectName}`;
|
|
18
19
|
}
|
|
20
|
+
function getProjectSettingsUrl(projectName, accountId) {
|
|
21
|
+
if (!projectName)
|
|
22
|
+
return;
|
|
23
|
+
return `${getProjectDetailUrl(projectName, accountId)}/settings`;
|
|
24
|
+
}
|
|
19
25
|
function getProjectActivityUrl(projectName, accountId) {
|
|
20
26
|
return `${getProjectDetailUrl(projectName, accountId)}/activity`;
|
|
21
27
|
}
|
package/lib/projects/watch.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { ProjectConfig } from '../../types/Projects';
|
|
2
|
-
type ProjectWatchHandlerFunction = (accountId: number, projectName: string, currentBuildId: number) => Promise<void
|
|
2
|
+
type ProjectWatchHandlerFunction = (accountId: number, projectName: string, currentBuildId: number) => Promise<void> | void;
|
|
3
3
|
export declare function createWatcher(accountId: number, projectConfig: ProjectConfig, projectDir: string, handleBuildStatusFn: ProjectWatchHandlerFunction, handleUserInputFn: ProjectWatchHandlerFunction): Promise<void>;
|
|
4
4
|
export {};
|