@hubspot/cli 7.1.0-beta.0 → 7.1.0-experimental.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.
Files changed (139) hide show
  1. package/commands/account/clean.d.ts +9 -0
  2. package/commands/account/clean.js +51 -45
  3. package/commands/account/list.d.ts +7 -0
  4. package/commands/account/list.js +69 -60
  5. package/commands/account/remove.d.ts +9 -0
  6. package/commands/account/remove.js +33 -31
  7. package/commands/account/rename.d.ts +10 -0
  8. package/commands/account/rename.js +36 -23
  9. package/commands/account/use.d.ts +9 -0
  10. package/commands/account/use.js +26 -24
  11. package/commands/account.d.ts +4 -1
  12. package/commands/account.js +47 -13
  13. package/commands/create/api-sample.js +14 -4
  14. package/commands/customObject/create.d.ts +11 -0
  15. package/commands/customObject/create.js +37 -28
  16. package/commands/customObject/schema/create.d.ts +10 -0
  17. package/commands/customObject/schema/create.js +40 -42
  18. package/commands/customObject/schema/delete.d.ts +11 -0
  19. package/commands/customObject/schema/delete.js +34 -27
  20. package/commands/customObject/schema/fetch-all.d.ts +10 -0
  21. package/commands/customObject/schema/fetch-all.js +31 -24
  22. package/commands/customObject/schema/fetch.d.ts +11 -0
  23. package/commands/customObject/schema/fetch.js +34 -42
  24. package/commands/customObject/schema/list.d.ts +7 -0
  25. package/commands/customObject/schema/list.js +23 -14
  26. package/commands/customObject/schema/update.d.ts +11 -0
  27. package/commands/customObject/schema/update.js +44 -46
  28. package/commands/customObject/schema.d.ts +5 -1
  29. package/commands/customObject/schema.js +49 -11
  30. package/commands/customObject.d.ts +4 -1
  31. package/commands/customObject.js +54 -21
  32. package/commands/filemanager/fetch.d.ts +12 -0
  33. package/commands/filemanager/fetch.js +33 -30
  34. package/commands/filemanager/upload.d.ts +11 -0
  35. package/commands/filemanager/upload.js +53 -47
  36. package/commands/filemanager.d.ts +4 -1
  37. package/commands/filemanager.js +41 -7
  38. package/commands/hubdb/clear.d.ts +11 -0
  39. package/commands/hubdb/clear.js +33 -30
  40. package/commands/hubdb/create.d.ts +10 -0
  41. package/commands/hubdb/create.js +46 -40
  42. package/commands/hubdb/delete.d.ts +10 -0
  43. package/commands/hubdb/delete.js +38 -35
  44. package/commands/hubdb/fetch.d.ts +11 -0
  45. package/commands/hubdb/fetch.js +30 -27
  46. package/commands/hubdb.d.ts +4 -1
  47. package/commands/hubdb.js +45 -11
  48. package/commands/init.js +2 -1
  49. package/commands/project/add.js +62 -16
  50. package/commands/project/cloneApp.js +3 -3
  51. package/commands/project/create.js +70 -15
  52. package/commands/project/dev/deprecatedFlow.d.ts +5 -0
  53. package/commands/project/dev/deprecatedFlow.js +137 -0
  54. package/commands/project/dev/index.d.ts +6 -0
  55. package/commands/project/dev/index.js +52 -0
  56. package/commands/project/dev/unifiedFlow.d.ts +5 -0
  57. package/commands/project/dev/unifiedFlow.js +110 -0
  58. package/commands/project/migrateApp.js +3 -3
  59. package/commands/project/upload.js +7 -2
  60. package/commands/sandbox/create.d.ts +12 -0
  61. package/commands/sandbox/create.js +90 -72
  62. package/commands/sandbox/delete.d.ts +11 -0
  63. package/commands/sandbox/delete.js +112 -95
  64. package/commands/sandbox.d.ts +4 -1
  65. package/commands/sandbox.js +44 -10
  66. package/commands/secret/addSecret.d.ts +10 -0
  67. package/commands/secret/addSecret.js +32 -31
  68. package/commands/secret/deleteSecret.d.ts +11 -0
  69. package/commands/secret/deleteSecret.js +31 -29
  70. package/commands/secret/listSecret.d.ts +9 -0
  71. package/commands/secret/listSecret.js +41 -0
  72. package/commands/secret/updateSecret.d.ts +10 -0
  73. package/commands/secret/updateSecret.js +33 -31
  74. package/commands/secret.d.ts +4 -1
  75. package/commands/secret.js +46 -12
  76. package/commands/theme/generate-selectors.d.ts +9 -0
  77. package/commands/theme/generate-selectors.js +61 -43
  78. package/commands/theme/marketplace-validate.d.ts +10 -0
  79. package/commands/theme/marketplace-validate.js +32 -26
  80. package/commands/theme/preview.d.ts +16 -0
  81. package/commands/theme/preview.js +104 -97
  82. package/commands/theme.d.ts +4 -1
  83. package/commands/theme.js +44 -10
  84. package/lang/en.lyaml +36 -16
  85. package/lib/DevServerManagerV2.d.ts +34 -0
  86. package/lib/DevServerManagerV2.js +85 -0
  87. package/lib/LocalDevManager.d.ts +2 -2
  88. package/lib/LocalDevManagerV2.d.ts +64 -0
  89. package/lib/LocalDevManagerV2.js +382 -0
  90. package/lib/buildAccount.d.ts +2 -3
  91. package/lib/constants.d.ts +12 -3
  92. package/lib/constants.js +13 -4
  93. package/lib/customObject.d.ts +3 -0
  94. package/lib/customObject.js +15 -0
  95. package/lib/doctor/DiagnosticInfoBuilder.d.ts +6 -0
  96. package/lib/doctor/DiagnosticInfoBuilder.js +5 -0
  97. package/lib/doctor/Doctor.d.ts +1 -0
  98. package/lib/doctor/Doctor.js +10 -0
  99. package/lib/localDev.d.ts +2 -1
  100. package/lib/marketplaceValidate.d.ts +2 -2
  101. package/lib/process.d.ts +1 -0
  102. package/lib/process.js +11 -10
  103. package/lib/projects/buildAndDeploy.js +4 -1
  104. package/lib/projects/create.d.ts +5 -0
  105. package/lib/projects/create.js +51 -0
  106. package/lib/projects/index.d.ts +1 -5
  107. package/lib/projects/index.js +1 -62
  108. package/lib/projects/structure.d.ts +4 -0
  109. package/lib/projects/structure.js +9 -0
  110. package/lib/projects/upload.d.ts +1 -1
  111. package/lib/projects/upload.js +2 -2
  112. package/lib/prompts/createProjectPrompt.d.ts +6 -8
  113. package/lib/prompts/createProjectPrompt.js +26 -54
  114. package/lib/prompts/projectAddPrompt.d.ts +3 -3
  115. package/lib/prompts/projectAddPrompt.js +16 -6
  116. package/lib/prompts/projectDevTargetAccountPrompt.d.ts +3 -2
  117. package/lib/prompts/sandboxesPrompt.d.ts +3 -2
  118. package/lib/prompts/sandboxesPrompt.js +1 -1
  119. package/lib/sandboxSync.js +6 -2
  120. package/lib/sandboxes.d.ts +3 -5
  121. package/lib/sandboxes.js +1 -0
  122. package/lib/testUtils.d.ts +12 -0
  123. package/lib/testUtils.js +10 -0
  124. package/lib/ui/index.d.ts +2 -2
  125. package/lib/ui/index.js +1 -0
  126. package/lib/upload.d.ts +1 -1
  127. package/lib/upload.js +20 -20
  128. package/lib/validation.d.ts +1 -1
  129. package/package.json +6 -5
  130. package/types/ProjectComponents.d.ts +38 -0
  131. package/types/ProjectComponents.js +3 -0
  132. package/types/Projects.d.ts +1 -6
  133. package/types/Prompts.d.ts +7 -0
  134. package/types/Sandboxes.d.ts +2 -0
  135. package/types/Yargs.d.ts +15 -0
  136. package/commands/project/dev.d.ts +0 -1
  137. package/commands/project/dev.js +0 -146
  138. package/commands/secret/listSecrets.d.ts +0 -1
  139. package/commands/secret/listSecrets.js +0 -39
@@ -0,0 +1,110 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.unifiedProjectDevFlow = unifiedProjectDevFlow;
7
+ const path_1 = __importDefault(require("path"));
8
+ const util_1 = __importDefault(require("util"));
9
+ const logger_1 = require("@hubspot/local-dev-lib/logger");
10
+ const errors_1 = require("@hubspot/project-parsing-lib/src/lib/errors");
11
+ const project_parsing_lib_1 = require("@hubspot/project-parsing-lib");
12
+ const config_1 = require("@hubspot/local-dev-lib/config");
13
+ const environment_1 = require("@hubspot/local-dev-lib/environment");
14
+ const errorHandlers_1 = require("../../../lib/errorHandlers");
15
+ const exitCodes_1 = require("../../../lib/enums/exitCodes");
16
+ const projects_1 = require("../../../lib/projects");
17
+ const localDev_1 = require("../../../lib/localDev");
18
+ const projectDevTargetAccountPrompt_1 = require("../../../lib/prompts/projectDevTargetAccountPrompt");
19
+ const SpinniesManager_1 = __importDefault(require("../../../lib/ui/SpinniesManager"));
20
+ const LocalDevManagerV2_1 = __importDefault(require("../../../lib/LocalDevManagerV2"));
21
+ const process_1 = require("../../../lib/process");
22
+ const accountTypes_1 = require("../../../lib/accountTypes");
23
+ const ui_1 = require("../../../lib/ui");
24
+ const lang_1 = require("../../../lib/lang");
25
+ const i18nKey = 'commands.project.subcommands.dev';
26
+ async function unifiedProjectDevFlow(args, accountConfig, projectConfig, projectDir) {
27
+ logger_1.logger.log('Unified Apps Local Dev');
28
+ const targetProjectAccountId = args.derivedAccountId;
29
+ const env = (0, environment_1.getValidEnv)((0, config_1.getEnv)(targetProjectAccountId));
30
+ let projectNodes;
31
+ // Get IR
32
+ try {
33
+ const intermediateRepresentation = await (0, project_parsing_lib_1.translateForLocalDev)({
34
+ projectSourceDir: path_1.default.join(projectDir, projectConfig.srcDir),
35
+ platformVersion: projectConfig.platformVersion,
36
+ accountId: targetProjectAccountId,
37
+ });
38
+ projectNodes = intermediateRepresentation.intermediateNodesIndexedByUid;
39
+ logger_1.logger.debug(util_1.default.inspect(projectNodes, false, null, true));
40
+ }
41
+ catch (e) {
42
+ if ((0, errors_1.isTranslationError)(e)) {
43
+ logger_1.logger.error(e.toString());
44
+ }
45
+ else {
46
+ (0, errorHandlers_1.logError)(e);
47
+ }
48
+ return process.exit(exitCodes_1.EXIT_CODES.ERROR);
49
+ }
50
+ // @TODO Do we need to do more than this or leave it to the dev servers?
51
+ if (!Object.keys(projectNodes).length) {
52
+ logger_1.logger.error((0, lang_1.i18n)(`${i18nKey}.errors.noRunnableComponents`, {
53
+ projectDir,
54
+ command: (0, ui_1.uiCommandReference)('hs project add'),
55
+ }));
56
+ process.exit(exitCodes_1.EXIT_CODES.SUCCESS);
57
+ }
58
+ // @TODO Validate component types (i.e. previously you could not have both private and public apps)
59
+ const accounts = (0, config_1.getConfigAccounts)();
60
+ // TODO Ideally this should require the user to target a Combined account
61
+ // For now, check if the account is either developer or standard
62
+ const derivedAccountIsRecommendedType = (0, accountTypes_1.isAppDeveloperAccount)(accountConfig) || (0, accountTypes_1.isStandardAccount)(accountConfig);
63
+ if (!derivedAccountIsRecommendedType) {
64
+ logger_1.logger.error((0, lang_1.i18n)(`${i18nKey}.errors.invalidUnifiedAppsAccount`));
65
+ process.exit(exitCodes_1.EXIT_CODES.SUCCESS);
66
+ }
67
+ let targetTestingAccountId = null;
68
+ const devAccountPromptResponse = await (0, projectDevTargetAccountPrompt_1.selectDeveloperTestTargetAccountPrompt)(accounts, accountConfig);
69
+ targetTestingAccountId = devAccountPromptResponse.targetAccountId;
70
+ if (!!devAccountPromptResponse.notInConfigAccount) {
71
+ // When the developer test account isn't configured in the CLI config yet
72
+ // Walk the user through adding the account's PAK to the config
73
+ await (0, localDev_1.useExistingDevTestAccount)(env, devAccountPromptResponse.notInConfigAccount);
74
+ }
75
+ else if (devAccountPromptResponse.createNestedAccount) {
76
+ // Create a new developer test account and automatically add it to the CLI config
77
+ targetTestingAccountId = await (0, localDev_1.createDeveloperTestAccountForLocalDev)(targetProjectAccountId, accountConfig, env);
78
+ }
79
+ // Check if project exists in HubSpot
80
+ const { projectExists, project: uploadedProject } = await (0, projects_1.ensureProjectExists)(targetProjectAccountId, projectConfig.name, {
81
+ allowCreate: false,
82
+ noLogs: true,
83
+ });
84
+ let deployedBuild;
85
+ let isGithubLinked = false;
86
+ let project = uploadedProject;
87
+ SpinniesManager_1.default.init();
88
+ if (projectExists && project) {
89
+ deployedBuild = project.deployedBuild;
90
+ isGithubLinked = Boolean(project.sourceIntegration && project.sourceIntegration.source === 'GITHUB');
91
+ }
92
+ else {
93
+ project = await (0, localDev_1.createNewProjectForLocalDev)(projectConfig, targetProjectAccountId, false, false);
94
+ deployedBuild = await (0, localDev_1.createInitialBuildForNewProject)(projectConfig, projectDir, targetProjectAccountId);
95
+ }
96
+ const LocalDev = new LocalDevManagerV2_1.default({
97
+ projectNodes,
98
+ debug: args.debug,
99
+ deployedBuild,
100
+ isGithubLinked,
101
+ targetProjectAccountId,
102
+ targetTestingAccountId: targetTestingAccountId,
103
+ projectConfig,
104
+ projectDir,
105
+ projectId: project.id,
106
+ env,
107
+ });
108
+ await LocalDev.start();
109
+ (0, process_1.handleExit)(({ isSIGHUP }) => LocalDev.stop(!isSIGHUP));
110
+ }
@@ -71,9 +71,9 @@ exports.handler = async (options) => {
71
71
  let projectName;
72
72
  let projectDest;
73
73
  try {
74
- const { name, dest } = await createProjectPrompt('', options, true);
75
- projectName = options.name || name;
76
- projectDest = options.dest || dest;
74
+ const createProjectPromptResponse = await createProjectPrompt(options);
75
+ projectName = createProjectPromptResponse.name;
76
+ projectDest = createProjectPromptResponse.dest;
77
77
  const { projectExists } = await ensureProjectExists(derivedAccountId, projectName, {
78
78
  allowCreate: false,
79
79
  noLogs: true,
@@ -20,7 +20,7 @@ const i18nKey = 'commands.project.subcommands.upload';
20
20
  exports.command = 'upload';
21
21
  exports.describe = uiBetaTag(i18n(`${i18nKey}.describe`), false);
22
22
  exports.handler = async (options) => {
23
- const { forceCreate, message, derivedAccountId } = options;
23
+ const { forceCreate, message, derivedAccountId, skipValidation } = options;
24
24
  const accountConfig = getAccountConfig(derivedAccountId);
25
25
  const accountType = accountConfig && accountConfig.accountType;
26
26
  const { projectConfig, projectDir } = await getProjectConfig();
@@ -31,7 +31,7 @@ exports.handler = async (options) => {
31
31
  uploadCommand: true,
32
32
  });
33
33
  try {
34
- const { result, uploadError } = await handleProjectUpload(derivedAccountId, projectConfig, projectDir, pollProjectBuildAndDeploy, message, useV3Api(projectConfig?.platformVersion));
34
+ const { result, uploadError } = await handleProjectUpload(derivedAccountId, projectConfig, projectDir, pollProjectBuildAndDeploy, message, useV3Api(projectConfig?.platformVersion), skipValidation);
35
35
  if (uploadError) {
36
36
  if (isSpecifiedError(uploadError, {
37
37
  subCategory: PROJECT_ERROR_TYPES.PROJECT_LOCKED,
@@ -81,6 +81,11 @@ exports.builder = yargs => {
81
81
  type: 'string',
82
82
  default: '',
83
83
  },
84
+ 'skip-validation': {
85
+ type: 'boolean',
86
+ hidden: true,
87
+ default: false,
88
+ },
84
89
  });
85
90
  yargs.example([['$0 project upload', i18n(`${i18nKey}.examples.default`)]]);
86
91
  addConfigOptions(yargs);
@@ -1 +1,13 @@
1
+ import { Argv, ArgumentsCamelCase } from 'yargs';
2
+ import { CommonArgs, ConfigArgs, AccountArgs, EnvironmentArgs, TestingArgs } from '../../types/Yargs';
3
+ export declare const command = "create";
4
+ export declare const describe: string | undefined;
5
+ type CombinedArgs = ConfigArgs & AccountArgs & EnvironmentArgs & TestingArgs;
6
+ type SandboxCreateArgs = CommonArgs & CombinedArgs & {
7
+ name?: string;
8
+ force?: boolean;
9
+ type?: string;
10
+ };
11
+ export declare function handler(args: ArgumentsCamelCase<SandboxCreateArgs>): Promise<void>;
12
+ export declare function builder(yargs: Argv): Argv<SandboxCreateArgs>;
1
13
  export {};
@@ -1,157 +1,175 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- // @ts-nocheck
4
- const { addAccountOptions, addConfigOptions, addUseEnvironmentOptions, addTestingOptions, } = require('../../lib/commonOpts');
5
- const { i18n } = require('../../lib/lang');
6
- const { EXIT_CODES } = require('../../lib/enums/exitCodes');
7
- const { getAccountConfig, getEnv } = require('@hubspot/local-dev-lib/config');
8
- const { uiFeatureHighlight, uiBetaTag } = require('../../lib/ui');
9
- const { SANDBOX_TYPE_MAP, getAvailableSyncTypes, SYNC_TYPES, validateSandboxUsageLimits, } = require('../../lib/sandboxes');
10
- const { getValidEnv } = require('@hubspot/local-dev-lib/environment');
11
- const { logger } = require('@hubspot/local-dev-lib/logger');
12
- const { trackCommandUsage } = require('../../lib/usageTracking');
13
- const { sandboxTypePrompt } = require('../../lib/prompts/sandboxesPrompt');
14
- const { promptUser } = require('../../lib/prompts/promptUtils');
15
- const { syncSandbox } = require('../../lib/sandboxSync');
16
- const { logError } = require('../../lib/errorHandlers/index');
17
- const { isMissingScopeError } = require('@hubspot/local-dev-lib/errors/index');
18
- const { getHubSpotWebsiteOrigin } = require('@hubspot/local-dev-lib/urls');
19
- const { HUBSPOT_ACCOUNT_TYPES, HUBSPOT_ACCOUNT_TYPE_STRINGS, } = require('@hubspot/local-dev-lib/constants/config');
20
- const { buildSandbox } = require('../../lib/buildAccount');
21
- const { hubspotAccountNamePrompt, } = require('../../lib/prompts/accountNamePrompt');
3
+ exports.describe = exports.command = void 0;
4
+ exports.handler = handler;
5
+ exports.builder = builder;
6
+ const config_1 = require("@hubspot/local-dev-lib/config");
7
+ const logger_1 = require("@hubspot/local-dev-lib/logger");
8
+ const index_1 = require("@hubspot/local-dev-lib/errors/index");
9
+ const urls_1 = require("@hubspot/local-dev-lib/urls");
10
+ const config_2 = require("@hubspot/local-dev-lib/constants/config");
11
+ const environment_1 = require("@hubspot/local-dev-lib/environment");
12
+ const commonOpts_1 = require("../../lib/commonOpts");
13
+ const lang_1 = require("../../lib/lang");
14
+ const exitCodes_1 = require("../../lib/enums/exitCodes");
15
+ const ui_1 = require("../../lib/ui");
16
+ const sandboxes_1 = require("../../lib/sandboxes");
17
+ const usageTracking_1 = require("../../lib/usageTracking");
18
+ const sandboxesPrompt_1 = require("../../lib/prompts/sandboxesPrompt");
19
+ const promptUtils_1 = require("../../lib/prompts/promptUtils");
20
+ const sandboxSync_1 = require("../../lib/sandboxSync");
21
+ const index_2 = require("../../lib/errorHandlers/index");
22
+ const buildAccount_1 = require("../../lib/buildAccount");
23
+ const accountNamePrompt_1 = require("../../lib/prompts/accountNamePrompt");
22
24
  const i18nKey = 'commands.sandbox.subcommands.create';
23
25
  exports.command = 'create';
24
- exports.describe = uiBetaTag(i18n(`${i18nKey}.describe`), false);
25
- exports.handler = async (options) => {
26
- const { name, type, force, derivedAccountId } = options;
27
- const accountConfig = getAccountConfig(derivedAccountId);
28
- const env = getValidEnv(getEnv(derivedAccountId));
29
- trackCommandUsage('sandbox-create', null, derivedAccountId);
26
+ exports.describe = (0, ui_1.uiBetaTag)((0, lang_1.i18n)(`${i18nKey}.describe`), false);
27
+ async function handler(args) {
28
+ const { name, type, force, derivedAccountId } = args;
29
+ const accountConfig = (0, config_1.getAccountConfig)(derivedAccountId);
30
+ const env = (0, environment_1.getValidEnv)((0, config_1.getEnv)(derivedAccountId));
31
+ (0, usageTracking_1.trackCommandUsage)('sandbox-create', {}, derivedAccountId);
32
+ // Check if account config exists
33
+ if (!accountConfig) {
34
+ logger_1.logger.error((0, lang_1.i18n)(`${i18nKey}.failure.noAccountConfig`, {
35
+ accountId: derivedAccountId,
36
+ authCommand: (0, ui_1.uiCommandReference)('hs auth'),
37
+ }));
38
+ process.exit(exitCodes_1.EXIT_CODES.ERROR);
39
+ }
30
40
  // Default account is not a production portal
31
41
  if (accountConfig.accountType &&
32
- accountConfig.accountType !== HUBSPOT_ACCOUNT_TYPES.STANDARD) {
33
- logger.error(i18n(`${i18nKey}.failure.invalidAccountType`, {
34
- accountType: HUBSPOT_ACCOUNT_TYPE_STRINGS[HUBSPOT_ACCOUNT_TYPES[accountConfig.accountType]],
35
- accountName: accountConfig.name,
42
+ accountConfig.accountType !== config_2.HUBSPOT_ACCOUNT_TYPES.STANDARD) {
43
+ logger_1.logger.error((0, lang_1.i18n)(`${i18nKey}.failure.invalidAccountType`, {
44
+ accountType: config_2.HUBSPOT_ACCOUNT_TYPE_STRINGS[config_2.HUBSPOT_ACCOUNT_TYPES[accountConfig.accountType]],
45
+ accountName: accountConfig.name || '',
36
46
  }));
37
- process.exit(EXIT_CODES.ERROR);
47
+ process.exit(exitCodes_1.EXIT_CODES.ERROR);
38
48
  }
39
49
  let typePrompt;
40
50
  let namePrompt;
41
- if ((type && !SANDBOX_TYPE_MAP[type.toLowerCase()]) || !type) {
51
+ if ((type && !(type.toLowerCase() in sandboxes_1.SANDBOX_TYPE_MAP)) || !type) {
42
52
  if (!force) {
43
- typePrompt = await sandboxTypePrompt();
53
+ typePrompt = await (0, sandboxesPrompt_1.sandboxTypePrompt)();
44
54
  }
45
55
  else {
46
- logger.error(i18n(`${i18nKey}.failure.optionMissing.type`));
47
- process.exit(EXIT_CODES.ERROR);
56
+ logger_1.logger.error((0, lang_1.i18n)(`${i18nKey}.failure.optionMissing.type`));
57
+ process.exit(exitCodes_1.EXIT_CODES.ERROR);
48
58
  }
49
59
  }
50
60
  const sandboxType = type
51
- ? SANDBOX_TYPE_MAP[type.toLowerCase()]
61
+ ? sandboxes_1.SANDBOX_TYPE_MAP[type.toLowerCase()]
52
62
  : typePrompt.type;
53
63
  // Check usage limits and exit if parent portal has no available sandboxes for the selected type
54
64
  try {
55
- await validateSandboxUsageLimits(accountConfig, sandboxType, env);
65
+ await (0, sandboxes_1.validateSandboxUsageLimits)(accountConfig, sandboxType, env);
56
66
  }
57
67
  catch (err) {
58
- if (isMissingScopeError(err)) {
59
- logger.error(i18n('lib.sandbox.create.failure.scopes.message', {
68
+ if ((0, index_1.isMissingScopeError)(err)) {
69
+ logger_1.logger.error((0, lang_1.i18n)('lib.sandbox.create.failure.scopes.message', {
60
70
  accountName: accountConfig.name || derivedAccountId,
61
71
  }));
62
- const websiteOrigin = getHubSpotWebsiteOrigin(env);
72
+ const websiteOrigin = (0, urls_1.getHubSpotWebsiteOrigin)(env);
63
73
  const url = `${websiteOrigin}/personal-access-key/${derivedAccountId}`;
64
- logger.info(i18n('lib.sandbox.create.failure.scopes.instructions', {
74
+ logger_1.logger.info((0, lang_1.i18n)('lib.sandbox.create.failure.scopes.instructions', {
65
75
  accountName: accountConfig.name || derivedAccountId,
66
76
  url,
67
77
  }));
68
78
  }
69
79
  else {
70
- logError(err);
80
+ (0, index_2.logError)(err);
71
81
  }
72
- process.exit(EXIT_CODES.ERROR);
82
+ process.exit(exitCodes_1.EXIT_CODES.ERROR);
73
83
  }
74
84
  if (!name) {
75
85
  if (!force) {
76
- namePrompt = await hubspotAccountNamePrompt({ accountType: sandboxType });
86
+ namePrompt = await (0, accountNamePrompt_1.hubspotAccountNamePrompt)({ accountType: sandboxType });
77
87
  }
78
88
  else {
79
- logger.error(i18n(`${i18nKey}.failure.optionMissing.name`));
80
- process.exit(EXIT_CODES.ERROR);
89
+ logger_1.logger.error((0, lang_1.i18n)(`${i18nKey}.failure.optionMissing.name`));
90
+ process.exit(exitCodes_1.EXIT_CODES.ERROR);
81
91
  }
82
92
  }
83
93
  const sandboxName = name || namePrompt.name;
84
94
  let contactRecordsSyncPromptResult = false;
85
95
  if (!force) {
86
- const isStandardSandbox = sandboxType === HUBSPOT_ACCOUNT_TYPES.STANDARD_SANDBOX;
96
+ const isStandardSandbox = sandboxType === config_2.HUBSPOT_ACCOUNT_TYPES.STANDARD_SANDBOX;
87
97
  // Prompt to sync contact records for standard sandboxes only
88
98
  if (isStandardSandbox) {
89
- const { contactRecordsSyncPrompt } = await promptUser([
99
+ const { contactRecordsSyncPrompt } = await (0, promptUtils_1.promptUser)([
90
100
  {
91
101
  name: 'contactRecordsSyncPrompt',
92
102
  type: 'confirm',
93
- message: i18n('lib.sandbox.sync.confirm.syncContactRecords.standard'),
103
+ message: (0, lang_1.i18n)('lib.sandbox.sync.confirm.syncContactRecords.standard'),
94
104
  },
95
105
  ]);
96
106
  contactRecordsSyncPromptResult = contactRecordsSyncPrompt;
97
107
  }
98
108
  }
99
109
  try {
100
- const result = await buildSandbox(sandboxName, accountConfig, sandboxType, env, force);
101
- const sandboxAccountConfig = getAccountConfig(result.sandbox.sandboxHubId);
110
+ const result = await (0, buildAccount_1.buildSandbox)(sandboxName, accountConfig, sandboxType, env, force);
111
+ const sandboxAccountConfig = (0, config_1.getAccountConfig)(result.sandbox.sandboxHubId);
112
+ // Check if sandbox account config exists
113
+ if (!sandboxAccountConfig) {
114
+ logger_1.logger.error((0, lang_1.i18n)(`${i18nKey}.failure.noSandboxAccountConfig`, {
115
+ accountId: result.sandbox.sandboxHubId,
116
+ authCommand: (0, ui_1.uiCommandReference)('hs auth'),
117
+ }));
118
+ process.exit(exitCodes_1.EXIT_CODES.ERROR);
119
+ }
102
120
  // For v1 sandboxes, keep sync here. Once we migrate to v2, this will be handled by BE automatically
103
- const handleSyncSandbox = async (syncTasks) => {
104
- await syncSandbox(sandboxAccountConfig, accountConfig, env, syncTasks);
105
- };
121
+ async function handleSyncSandbox(syncTasks) {
122
+ await (0, sandboxSync_1.syncSandbox)(sandboxAccountConfig, accountConfig, env, syncTasks);
123
+ }
106
124
  try {
107
- let availableSyncTasks = await getAvailableSyncTypes(accountConfig, sandboxAccountConfig);
125
+ let availableSyncTasks = await (0, sandboxes_1.getAvailableSyncTypes)(accountConfig, sandboxAccountConfig);
108
126
  if (!contactRecordsSyncPromptResult) {
109
- availableSyncTasks = availableSyncTasks.filter(t => t.type !== SYNC_TYPES.OBJECT_RECORDS);
127
+ availableSyncTasks = availableSyncTasks.filter(t => t.type !== sandboxes_1.SYNC_TYPES.OBJECT_RECORDS);
110
128
  }
111
129
  await handleSyncSandbox(availableSyncTasks);
112
130
  }
113
131
  catch (err) {
114
- logError(err);
132
+ (0, index_2.logError)(err);
115
133
  throw err;
116
134
  }
117
135
  const highlightItems = ['accountsUseCommand', 'projectCreateCommand'];
118
- if (sandboxType === HUBSPOT_ACCOUNT_TYPES.DEVELOPMENT_SANDBOX) {
136
+ if (sandboxType === config_2.HUBSPOT_ACCOUNT_TYPES.DEVELOPMENT_SANDBOX) {
119
137
  highlightItems.push('projectDevCommand');
120
138
  }
121
139
  else {
122
140
  highlightItems.push('projectUploadCommand');
123
141
  }
124
- uiFeatureHighlight(highlightItems);
125
- process.exit(EXIT_CODES.SUCCESS);
142
+ (0, ui_1.uiFeatureHighlight)(highlightItems);
143
+ process.exit(exitCodes_1.EXIT_CODES.SUCCESS);
126
144
  }
127
145
  catch (error) {
128
146
  // Errors are logged in util functions
129
- process.exit(EXIT_CODES.ERROR);
147
+ process.exit(exitCodes_1.EXIT_CODES.ERROR);
130
148
  }
131
- };
132
- exports.builder = yargs => {
149
+ }
150
+ function builder(yargs) {
133
151
  yargs.option('force', {
134
152
  type: 'boolean',
135
153
  alias: 'f',
136
- describe: i18n(`${i18nKey}.options.force.describe`),
154
+ describe: (0, lang_1.i18n)(`${i18nKey}.options.force.describe`),
137
155
  });
138
156
  yargs.option('name', {
139
- describe: i18n(`${i18nKey}.options.name.describe`),
157
+ describe: (0, lang_1.i18n)(`${i18nKey}.options.name.describe`),
140
158
  type: 'string',
141
159
  });
142
160
  yargs.option('type', {
143
- describe: i18n(`${i18nKey}.options.type.describe`),
144
- type: 'string',
161
+ describe: (0, lang_1.i18n)(`${i18nKey}.options.type.describe`),
162
+ choices: Object.keys(sandboxes_1.SANDBOX_TYPE_MAP),
145
163
  });
146
164
  yargs.example([
147
165
  [
148
166
  '$0 sandbox create --name=MySandboxAccount --type=STANDARD',
149
- i18n(`${i18nKey}.examples.default`),
167
+ (0, lang_1.i18n)(`${i18nKey}.examples.default`),
150
168
  ],
151
169
  ]);
152
- addConfigOptions(yargs);
153
- addAccountOptions(yargs);
154
- addUseEnvironmentOptions(yargs);
155
- addTestingOptions(yargs);
170
+ (0, commonOpts_1.addConfigOptions)(yargs);
171
+ (0, commonOpts_1.addAccountOptions)(yargs);
172
+ (0, commonOpts_1.addUseEnvironmentOptions)(yargs);
173
+ (0, commonOpts_1.addTestingOptions)(yargs);
156
174
  return yargs;
157
- };
175
+ }
@@ -1 +1,12 @@
1
+ import { Argv, ArgumentsCamelCase } from 'yargs';
2
+ import { CommonArgs, ConfigArgs, AccountArgs, EnvironmentArgs, TestingArgs } from '../../types/Yargs';
3
+ export declare const command = "delete";
4
+ export declare const describe: string | undefined;
5
+ type CombinedArgs = ConfigArgs & AccountArgs & EnvironmentArgs & TestingArgs;
6
+ type SandboxDeleteArgs = CommonArgs & CombinedArgs & {
7
+ account?: string;
8
+ force?: boolean;
9
+ };
10
+ export declare function handler(args: ArgumentsCamelCase<SandboxDeleteArgs>): Promise<void>;
11
+ export declare function builder(yargs: Argv): Argv<SandboxDeleteArgs>;
1
12
  export {};