@hubspot/cli 6.2.0 → 6.2.2-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.
Files changed (344) hide show
  1. package/README.md +12 -95
  2. package/bin/cli.d.ts +2 -0
  3. package/bin/cli.js +107 -128
  4. package/commands/accounts/clean.d.ts +1 -0
  5. package/commands/accounts/clean.js +82 -116
  6. package/commands/accounts/info.d.ts +1 -0
  7. package/commands/accounts/info.js +32 -43
  8. package/commands/accounts/list.d.ts +1 -0
  9. package/commands/accounts/list.js +65 -92
  10. package/commands/accounts/remove.d.ts +1 -0
  11. package/commands/accounts/remove.js +43 -73
  12. package/commands/accounts/rename.d.ts +1 -0
  13. package/commands/accounts/rename.js +26 -41
  14. package/commands/accounts/use.d.ts +1 -0
  15. package/commands/accounts/use.js +36 -57
  16. package/commands/accounts.d.ts +1 -0
  17. package/commands/accounts.js +16 -18
  18. package/commands/auth.d.ts +1 -0
  19. package/commands/auth.js +133 -200
  20. package/commands/cms/convertFields.d.ts +1 -0
  21. package/commands/cms/convertFields.js +66 -81
  22. package/commands/cms/lighthouseScore.d.ts +1 -0
  23. package/commands/cms/lighthouseScore.js +236 -298
  24. package/commands/cms/reactModules.d.ts +1 -0
  25. package/commands/cms/reactModules.js +46 -53
  26. package/commands/cms.d.ts +1 -0
  27. package/commands/cms.js +11 -13
  28. package/commands/config/set.d.ts +1 -0
  29. package/commands/config/set.js +64 -79
  30. package/commands/config.d.ts +1 -0
  31. package/commands/config.js +7 -9
  32. package/commands/create/api-sample.d.ts +1 -0
  33. package/commands/create/api-sample.js +54 -74
  34. package/commands/create/app.d.ts +1 -0
  35. package/commands/create/app.js +8 -7
  36. package/commands/create/function.d.ts +1 -0
  37. package/commands/create/function.js +15 -14
  38. package/commands/create/index.d.ts +1 -0
  39. package/commands/create/index.js +12 -9
  40. package/commands/create/module.d.ts +1 -0
  41. package/commands/create/module.js +21 -19
  42. package/commands/create/react-app.d.ts +1 -0
  43. package/commands/create/react-app.js +7 -6
  44. package/commands/create/template.d.ts +1 -0
  45. package/commands/create/template.js +23 -24
  46. package/commands/create/vue-app.d.ts +1 -0
  47. package/commands/create/vue-app.js +7 -6
  48. package/commands/create/webpack-serverless.d.ts +1 -0
  49. package/commands/create/webpack-serverless.js +7 -6
  50. package/commands/create/website-theme.d.ts +1 -0
  51. package/commands/create/website-theme.js +15 -15
  52. package/commands/create.d.ts +24 -0
  53. package/commands/create.js +65 -80
  54. package/commands/customObject/create.d.ts +1 -0
  55. package/commands/customObject/create.js +33 -47
  56. package/commands/customObject/schema/create.d.ts +1 -0
  57. package/commands/customObject/schema/create.js +42 -67
  58. package/commands/customObject/schema/delete.d.ts +1 -0
  59. package/commands/customObject/schema/delete.js +28 -39
  60. package/commands/customObject/schema/fetch-all.d.ts +1 -0
  61. package/commands/customObject/schema/fetch-all.js +30 -39
  62. package/commands/customObject/schema/fetch.d.ts +1 -0
  63. package/commands/customObject/schema/fetch.js +48 -63
  64. package/commands/customObject/schema/list.d.ts +1 -0
  65. package/commands/customObject/schema/list.js +14 -17
  66. package/commands/customObject/schema/update.d.ts +1 -0
  67. package/commands/customObject/schema/update.js +46 -72
  68. package/commands/customObject/schema.d.ts +1 -0
  69. package/commands/customObject/schema.js +12 -12
  70. package/commands/customObject.d.ts +1 -0
  71. package/commands/customObject.js +14 -22
  72. package/commands/feedback.d.ts +1 -0
  73. package/commands/feedback.js +25 -33
  74. package/commands/fetch.d.ts +1 -0
  75. package/commands/fetch.js +53 -78
  76. package/commands/filemanager/fetch.d.ts +1 -0
  77. package/commands/filemanager/fetch.js +38 -56
  78. package/commands/filemanager/upload.d.ts +1 -0
  79. package/commands/filemanager/upload.js +88 -128
  80. package/commands/filemanager.d.ts +1 -0
  81. package/commands/filemanager.js +12 -18
  82. package/commands/functions/deploy.d.ts +1 -0
  83. package/commands/functions/deploy.js +76 -99
  84. package/commands/functions/list.d.ts +1 -0
  85. package/commands/functions/list.js +41 -48
  86. package/commands/functions/server.d.ts +1 -0
  87. package/commands/functions/server.js +50 -65
  88. package/commands/functions.d.ts +1 -0
  89. package/commands/functions.js +13 -15
  90. package/commands/hubdb/clear.d.ts +1 -0
  91. package/commands/hubdb/clear.js +37 -56
  92. package/commands/hubdb/create.d.ts +1 -0
  93. package/commands/hubdb/create.js +34 -57
  94. package/commands/hubdb/delete.d.ts +1 -0
  95. package/commands/hubdb/delete.js +29 -44
  96. package/commands/hubdb/fetch.d.ts +1 -0
  97. package/commands/hubdb/fetch.js +30 -46
  98. package/commands/hubdb.d.ts +1 -0
  99. package/commands/hubdb.js +12 -14
  100. package/commands/init.d.ts +1 -0
  101. package/commands/init.js +103 -160
  102. package/commands/lint.d.ts +1 -0
  103. package/commands/lint.js +34 -45
  104. package/commands/list.d.ts +1 -0
  105. package/commands/list.js +74 -101
  106. package/commands/logs.d.ts +1 -0
  107. package/commands/logs.js +98 -121
  108. package/commands/module/marketplace-validate.d.ts +1 -0
  109. package/commands/module/marketplace-validate.js +32 -57
  110. package/commands/module.d.ts +1 -0
  111. package/commands/module.js +7 -9
  112. package/commands/mv.d.ts +1 -0
  113. package/commands/mv.js +53 -71
  114. package/commands/open.d.ts +1 -0
  115. package/commands/open.js +48 -62
  116. package/commands/project/add.d.ts +1 -0
  117. package/commands/project/add.js +47 -70
  118. package/commands/project/cloneApp.d.ts +1 -0
  119. package/commands/project/cloneApp.js +119 -180
  120. package/commands/project/create.d.ts +1 -0
  121. package/commands/project/create.js +49 -81
  122. package/commands/project/deploy.d.ts +1 -0
  123. package/commands/project/deploy.js +105 -182
  124. package/commands/project/dev.d.ts +1 -0
  125. package/commands/project/dev.js +126 -227
  126. package/commands/project/download.d.ts +1 -0
  127. package/commands/project/download.js +73 -123
  128. package/commands/project/installDeps.d.ts +1 -0
  129. package/commands/project/installDeps.js +52 -59
  130. package/commands/project/listBuilds.d.ts +1 -0
  131. package/commands/project/listBuilds.js +97 -139
  132. package/commands/project/logs.d.ts +1 -0
  133. package/commands/project/logs.js +86 -128
  134. package/commands/project/migrateApp.d.ts +1 -0
  135. package/commands/project/migrateApp.js +158 -248
  136. package/commands/project/open.d.ts +1 -0
  137. package/commands/project/open.js +44 -68
  138. package/commands/project/upload.d.ts +1 -0
  139. package/commands/project/upload.js +72 -116
  140. package/commands/project/watch.d.ts +1 -0
  141. package/commands/project/watch.js +94 -152
  142. package/commands/project.d.ts +1 -0
  143. package/commands/project.js +21 -23
  144. package/commands/remove.d.ts +1 -0
  145. package/commands/remove.js +28 -43
  146. package/commands/sandbox/create.d.ts +1 -0
  147. package/commands/sandbox/create.js +143 -187
  148. package/commands/sandbox/delete.d.ts +1 -0
  149. package/commands/sandbox/delete.js +166 -221
  150. package/commands/sandbox.d.ts +1 -0
  151. package/commands/sandbox.js +10 -12
  152. package/commands/secrets/addSecret.d.ts +1 -0
  153. package/commands/secrets/addSecret.js +34 -52
  154. package/commands/secrets/deleteSecret.d.ts +1 -0
  155. package/commands/secrets/deleteSecret.js +33 -50
  156. package/commands/secrets/listSecrets.d.ts +1 -0
  157. package/commands/secrets/listSecrets.js +28 -42
  158. package/commands/secrets/updateSecret.d.ts +1 -0
  159. package/commands/secrets/updateSecret.js +35 -53
  160. package/commands/secrets.d.ts +1 -0
  161. package/commands/secrets.js +12 -13
  162. package/commands/theme/generate-selectors.d.ts +1 -0
  163. package/commands/theme/generate-selectors.js +129 -192
  164. package/commands/theme/marketplace-validate.d.ts +1 -0
  165. package/commands/theme/marketplace-validate.js +32 -57
  166. package/commands/theme/preview.d.ts +1 -0
  167. package/commands/theme/preview.js +170 -195
  168. package/commands/theme.d.ts +1 -0
  169. package/commands/theme.js +9 -11
  170. package/commands/upload.d.ts +1 -0
  171. package/commands/upload.js +199 -287
  172. package/commands/watch.d.ts +1 -0
  173. package/commands/watch.js +128 -172
  174. package/lang/en.lyaml +2 -3
  175. package/lib/DevServerManager.d.ts +1 -0
  176. package/lib/DevServerManager.js +99 -124
  177. package/lib/LocalDevManager.d.ts +1 -0
  178. package/lib/LocalDevManager.js +322 -490
  179. package/lib/accountTypes.d.ts +7 -0
  180. package/lib/accountTypes.js +32 -34
  181. package/lib/buildAccount.d.ts +1 -0
  182. package/lib/buildAccount.js +132 -179
  183. package/lib/commonOpts.d.ts +1 -0
  184. package/lib/commonOpts.js +60 -91
  185. package/lib/configOptions.d.ts +1 -0
  186. package/lib/configOptions.js +110 -0
  187. package/lib/constants.d.ts +84 -0
  188. package/lib/constants.js +64 -91
  189. package/lib/debugInfo.d.ts +1 -0
  190. package/lib/debugInfo.js +14 -13
  191. package/lib/dependencyManagement.d.ts +1 -0
  192. package/lib/dependencyManagement.js +92 -132
  193. package/lib/developerTestAccounts.d.ts +1 -0
  194. package/lib/developerTestAccounts.js +67 -91
  195. package/lib/enums/exitCodes.d.ts +5 -0
  196. package/lib/enums/exitCodes.js +7 -8
  197. package/lib/environment.d.ts +1 -0
  198. package/lib/environment.js +13 -14
  199. package/lib/errorHandlers/index.d.ts +1 -0
  200. package/lib/errorHandlers/index.js +66 -80
  201. package/lib/errorHandlers/suppressError.d.ts +1 -0
  202. package/lib/errorHandlers/suppressError.js +66 -106
  203. package/lib/filesystem.d.ts +2 -0
  204. package/lib/filesystem.js +22 -28
  205. package/lib/generate-selectors.d.ts +1 -0
  206. package/lib/generate-selectors.js +102 -138
  207. package/lib/hasFeature.d.ts +1 -0
  208. package/lib/hasFeature.js +8 -15
  209. package/lib/hasFlag.d.ts +1 -0
  210. package/lib/hasFlag.js +13 -13
  211. package/lib/hublValidate.d.ts +2 -0
  212. package/lib/hublValidate.js +28 -28
  213. package/lib/interpolation.d.ts +1 -0
  214. package/lib/interpolation.js +50 -92
  215. package/lib/interpolationHelpers.d.ts +10 -0
  216. package/lib/interpolationHelpers.js +30 -22
  217. package/lib/lang.d.ts +1 -0
  218. package/lib/lang.js +52 -78
  219. package/lib/links.d.ts +1 -0
  220. package/lib/links.js +94 -114
  221. package/lib/localDev.d.ts +1 -0
  222. package/lib/localDev.js +285 -433
  223. package/lib/marketplace-validate.d.ts +1 -0
  224. package/lib/marketplace-validate.js +105 -126
  225. package/lib/oauth.d.ts +1 -0
  226. package/lib/oauth.js +64 -78
  227. package/lib/polling.d.ts +1 -0
  228. package/lib/polling.js +26 -26
  229. package/lib/process.d.ts +1 -0
  230. package/lib/process.js +41 -53
  231. package/lib/projectLogsManager.d.ts +1 -0
  232. package/lib/projectLogsManager.js +78 -130
  233. package/lib/projectStructure.d.ts +1 -0
  234. package/lib/projectStructure.js +89 -109
  235. package/lib/projects.d.ts +1 -0
  236. package/lib/projects.js +595 -958
  237. package/lib/projectsWatch.d.ts +1 -0
  238. package/lib/projectsWatch.js +127 -228
  239. package/lib/prompts/accountNamePrompt.d.ts +1 -0
  240. package/lib/prompts/accountNamePrompt.js +60 -65
  241. package/lib/prompts/accountsPrompt.d.ts +1 -0
  242. package/lib/prompts/accountsPrompt.js +33 -37
  243. package/lib/prompts/activeInstallConfirmationPrompt.d.ts +1 -0
  244. package/lib/prompts/activeInstallConfirmationPrompt.js +13 -13
  245. package/lib/prompts/cleanUploadPrompt.d.ts +1 -0
  246. package/lib/prompts/cleanUploadPrompt.js +13 -13
  247. package/lib/prompts/cmsFieldPrompt.d.ts +1 -0
  248. package/lib/prompts/cmsFieldPrompt.js +37 -39
  249. package/lib/prompts/createApiSamplePrompt.d.ts +1 -0
  250. package/lib/prompts/createApiSamplePrompt.js +49 -52
  251. package/lib/prompts/createFunctionPrompt.d.ts +1 -0
  252. package/lib/prompts/createFunctionPrompt.js +57 -56
  253. package/lib/prompts/createModulePrompt.d.ts +1 -0
  254. package/lib/prompts/createModulePrompt.js +47 -50
  255. package/lib/prompts/createProjectPrompt.d.ts +1 -0
  256. package/lib/prompts/createProjectPrompt.js +95 -129
  257. package/lib/prompts/createTemplatePrompt.d.ts +1 -0
  258. package/lib/prompts/createTemplatePrompt.js +18 -19
  259. package/lib/prompts/deployBuildIdPrompt.d.ts +1 -0
  260. package/lib/prompts/deployBuildIdPrompt.js +15 -15
  261. package/lib/prompts/downloadProjectPrompt.d.ts +1 -0
  262. package/lib/prompts/downloadProjectPrompt.js +39 -41
  263. package/lib/prompts/feedbackPrompt.d.ts +1 -0
  264. package/lib/prompts/feedbackPrompt.js +29 -30
  265. package/lib/prompts/folderOverwritePrompt.d.ts +1 -0
  266. package/lib/prompts/folderOverwritePrompt.js +10 -10
  267. package/lib/prompts/installPublicAppPrompt.d.ts +1 -0
  268. package/lib/prompts/installPublicAppPrompt.js +29 -42
  269. package/lib/prompts/personalAccessKeyPrompt.d.ts +1 -0
  270. package/lib/prompts/personalAccessKeyPrompt.js +104 -110
  271. package/lib/prompts/previewPrompt.d.ts +1 -0
  272. package/lib/prompts/previewPrompt.js +46 -47
  273. package/lib/prompts/projectAddPrompt.d.ts +1 -0
  274. package/lib/prompts/projectAddPrompt.js +37 -38
  275. package/lib/prompts/projectDevTargetAccountPrompt.d.ts +1 -0
  276. package/lib/prompts/projectDevTargetAccountPrompt.js +150 -193
  277. package/lib/prompts/projectNamePrompt.d.ts +1 -0
  278. package/lib/prompts/projectNamePrompt.js +25 -25
  279. package/lib/prompts/projectsLogsPrompt.d.ts +1 -0
  280. package/lib/prompts/projectsLogsPrompt.js +21 -27
  281. package/lib/prompts/promptUtils.d.ts +1 -0
  282. package/lib/prompts/promptUtils.js +17 -17
  283. package/lib/prompts/sandboxesPrompt.d.ts +1 -0
  284. package/lib/prompts/sandboxesPrompt.js +50 -59
  285. package/lib/prompts/secretPrompt.d.ts +1 -0
  286. package/lib/prompts/secretPrompt.js +15 -16
  287. package/lib/prompts/selectPublicAppPrompt.d.ts +1 -0
  288. package/lib/prompts/selectPublicAppPrompt.js +58 -82
  289. package/lib/prompts/setAsDefaultAccountPrompt.d.ts +1 -0
  290. package/lib/prompts/setAsDefaultAccountPrompt.js +19 -24
  291. package/lib/prompts/uploadPrompt.d.ts +1 -0
  292. package/lib/prompts/uploadPrompt.js +30 -30
  293. package/lib/regex.d.ts +1 -0
  294. package/lib/regex.js +4 -5
  295. package/lib/sandboxSync.d.ts +1 -0
  296. package/lib/sandboxSync.js +100 -166
  297. package/lib/sandboxes.d.ts +1 -0
  298. package/lib/sandboxes.js +201 -316
  299. package/lib/schema.d.ts +3 -0
  300. package/lib/schema.js +29 -33
  301. package/lib/serverlessLogs.d.ts +1 -0
  302. package/lib/serverlessLogs.js +131 -173
  303. package/lib/ui/SpinniesManager.d.ts +1 -0
  304. package/lib/ui/SpinniesManager.js +198 -254
  305. package/lib/ui/git.d.ts +1 -0
  306. package/lib/ui/git.js +20 -19
  307. package/lib/ui/index.d.ts +1 -0
  308. package/lib/ui/index.js +117 -167
  309. package/lib/ui/serverlessFunctionLogs.d.ts +1 -0
  310. package/lib/ui/serverlessFunctionLogs.js +53 -70
  311. package/lib/ui/spinniesUtils.d.ts +1 -0
  312. package/lib/ui/spinniesUtils.js +111 -133
  313. package/lib/ui/supportHyperlinks.d.ts +1 -0
  314. package/lib/ui/supportHyperlinks.js +49 -62
  315. package/lib/ui/supportsColor.d.ts +1 -0
  316. package/lib/ui/supportsColor.js +81 -109
  317. package/lib/ui/table.d.ts +1 -0
  318. package/lib/ui/table.js +49 -55
  319. package/lib/upload.d.ts +1 -0
  320. package/lib/upload.js +40 -43
  321. package/lib/usageTracking.d.ts +1 -0
  322. package/lib/usageTracking.js +133 -155
  323. package/lib/validation.d.ts +1 -0
  324. package/lib/validation.js +144 -203
  325. package/package.json +84 -48
  326. package/CHANGELOG.md +0 -16
  327. package/commands/__tests__/projects.test.js +0 -105
  328. package/commands/config/set/allowUsageTracking.js +0 -52
  329. package/commands/config/set/defaultMode.js +0 -59
  330. package/commands/config/set/httpTimeout.js +0 -42
  331. package/commands/project/__tests__/deploy.test.js +0 -443
  332. package/commands/project/__tests__/installDeps.test.js +0 -168
  333. package/commands/project/__tests__/logs.test.js +0 -304
  334. package/hubspot.sample.config.yml +0 -28
  335. package/jest.config.js +0 -4
  336. package/lib/__tests__/commonOpts.test.js +0 -83
  337. package/lib/__tests__/dependencyManagement.test.js +0 -243
  338. package/lib/__tests__/downloadProjectPrompt.test.js +0 -31
  339. package/lib/__tests__/projectLogsManager.test.js +0 -212
  340. package/lib/__tests__/projects.test.js +0 -140
  341. package/lib/__tests__/serverlessLogs.test.js +0 -162
  342. package/lib/__tests__/validation.test.js +0 -140
  343. package/lib/getFunctionArrays.js +0 -18
  344. package/lib/prompts/__tests__/projectsLogsPrompt.test.js +0 -46
@@ -1,21 +1,13 @@
1
- const {
2
- addAccountOptions,
3
- addConfigOptions,
4
- getAccountId,
5
- addUseEnvironmentOptions,
6
- addTestingOptions,
7
- } = require('../../lib/commonOpts');
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ // @ts-nocheck
4
+ const { addAccountOptions, addConfigOptions, getAccountId, addUseEnvironmentOptions, addTestingOptions, } = require('../../lib/commonOpts');
8
5
  const { loadAndValidateOptions } = require('../../lib/validation');
9
6
  const { i18n } = require('../../lib/lang');
10
7
  const { EXIT_CODES } = require('../../lib/enums/exitCodes');
11
8
  const { getAccountConfig, getEnv } = require('@hubspot/local-dev-lib/config');
12
9
  const { uiFeatureHighlight, uiBetaTag } = require('../../lib/ui');
13
- const {
14
- sandboxTypeMap,
15
- getAvailableSyncTypes,
16
- syncTypes,
17
- validateSandboxUsageLimits,
18
- } = require('../../lib/sandboxes');
10
+ const { sandboxTypeMap, getAvailableSyncTypes, syncTypes, validateSandboxUsageLimits, } = require('../../lib/sandboxes');
19
11
  const { getValidEnv } = require('@hubspot/local-dev-lib/environment');
20
12
  const { logger } = require('@hubspot/local-dev-lib/logger');
21
13
  const { trackCommandUsage } = require('../../lib/usageTracking');
@@ -25,191 +17,155 @@ const { syncSandbox } = require('../../lib/sandboxSync');
25
17
  const { logError } = require('../../lib/errorHandlers/index');
26
18
  const { isMissingScopeError } = require('@hubspot/local-dev-lib/errors/index');
27
19
  const { getHubSpotWebsiteOrigin } = require('@hubspot/local-dev-lib/urls');
28
- const {
29
- HUBSPOT_ACCOUNT_TYPES,
30
- HUBSPOT_ACCOUNT_TYPE_STRINGS,
31
- } = require('@hubspot/local-dev-lib/constants/config');
20
+ const { HUBSPOT_ACCOUNT_TYPES, HUBSPOT_ACCOUNT_TYPE_STRINGS, } = require('@hubspot/local-dev-lib/constants/config');
32
21
  const { buildNewAccount } = require('../../lib/buildAccount');
33
- const {
34
- hubspotAccountNamePrompt,
35
- } = require('../../lib/prompts/accountNamePrompt');
36
-
22
+ const { hubspotAccountNamePrompt, } = require('../../lib/prompts/accountNamePrompt');
37
23
  const i18nKey = 'commands.sandbox.subcommands.create';
38
-
39
24
  exports.command = 'create [--name] [--type]';
40
25
  exports.describe = uiBetaTag(i18n(`${i18nKey}.describe`), false);
41
-
42
- exports.handler = async options => {
43
- await loadAndValidateOptions(options);
44
-
45
- const { name, type, force } = options;
46
- const accountId = getAccountId(options);
47
- const accountConfig = getAccountConfig(accountId);
48
- const env = getValidEnv(getEnv(accountId));
49
-
50
- trackCommandUsage('sandbox-create', null, accountId);
51
-
52
- // Default account is not a production portal
53
- if (
54
- accountConfig.accountType &&
55
- accountConfig.accountType !== HUBSPOT_ACCOUNT_TYPES.STANDARD
56
- ) {
57
- logger.error(
58
- i18n(`${i18nKey}.failure.invalidAccountType`, {
59
- accountType:
60
- HUBSPOT_ACCOUNT_TYPE_STRINGS[
61
- HUBSPOT_ACCOUNT_TYPES[accountConfig.accountType]
62
- ],
63
- accountName: accountConfig.name,
64
- })
65
- );
66
- process.exit(EXIT_CODES.ERROR);
67
- }
68
-
69
- let typePrompt;
70
- let namePrompt;
71
-
72
- if ((type && !sandboxTypeMap[type.toLowerCase()]) || !type) {
73
- if (!force) {
74
- typePrompt = await sandboxTypePrompt();
75
- } else {
76
- logger.error(i18n(`${i18nKey}.failure.optionMissing.type`));
77
- process.exit(EXIT_CODES.ERROR);
26
+ exports.handler = async (options) => {
27
+ await loadAndValidateOptions(options);
28
+ const { name, type, force } = options;
29
+ const accountId = getAccountId(options);
30
+ const accountConfig = getAccountConfig(accountId);
31
+ const env = getValidEnv(getEnv(accountId));
32
+ trackCommandUsage('sandbox-create', null, accountId);
33
+ // Default account is not a production portal
34
+ if (accountConfig.accountType &&
35
+ accountConfig.accountType !== HUBSPOT_ACCOUNT_TYPES.STANDARD) {
36
+ logger.error(i18n(`${i18nKey}.failure.invalidAccountType`, {
37
+ accountType: HUBSPOT_ACCOUNT_TYPE_STRINGS[HUBSPOT_ACCOUNT_TYPES[accountConfig.accountType]],
38
+ accountName: accountConfig.name,
39
+ }));
40
+ process.exit(EXIT_CODES.ERROR);
78
41
  }
79
- }
80
- const sandboxType = type
81
- ? sandboxTypeMap[type.toLowerCase()]
82
- : typePrompt.type;
83
-
84
- // Check usage limits and exit if parent portal has no available sandboxes for the selected type
85
- try {
86
- await validateSandboxUsageLimits(accountConfig, sandboxType, env);
87
- } catch (err) {
88
- if (isMissingScopeError(err)) {
89
- logger.error(
90
- i18n('lib.sandbox.create.failure.scopes.message', {
91
- accountName: accountConfig.name || accountId,
92
- })
93
- );
94
- const websiteOrigin = getHubSpotWebsiteOrigin(env);
95
- const url = `${websiteOrigin}/personal-access-key/${accountId}`;
96
- logger.info(
97
- i18n('lib.sandbox.create.failure.scopes.instructions', {
98
- accountName: accountConfig.name || accountId,
99
- url,
100
- })
101
- );
102
- } else {
103
- logError(err);
42
+ let typePrompt;
43
+ let namePrompt;
44
+ if ((type && !sandboxTypeMap[type.toLowerCase()]) || !type) {
45
+ if (!force) {
46
+ typePrompt = await sandboxTypePrompt();
47
+ }
48
+ else {
49
+ logger.error(i18n(`${i18nKey}.failure.optionMissing.type`));
50
+ process.exit(EXIT_CODES.ERROR);
51
+ }
104
52
  }
105
- process.exit(EXIT_CODES.ERROR);
106
- }
107
-
108
- if (!name) {
109
- if (!force) {
110
- namePrompt = await hubspotAccountNamePrompt({ accountType: sandboxType });
111
- } else {
112
- logger.error(i18n(`${i18nKey}.failure.optionMissing.name`));
113
- process.exit(EXIT_CODES.ERROR);
53
+ const sandboxType = type
54
+ ? sandboxTypeMap[type.toLowerCase()]
55
+ : typePrompt.type;
56
+ // Check usage limits and exit if parent portal has no available sandboxes for the selected type
57
+ try {
58
+ await validateSandboxUsageLimits(accountConfig, sandboxType, env);
114
59
  }
115
- }
116
- const sandboxName = name || namePrompt.name;
117
-
118
- let contactRecordsSyncPromptResult = false;
119
- if (!force) {
120
- const isStandardSandbox =
121
- sandboxType === HUBSPOT_ACCOUNT_TYPES.STANDARD_SANDBOX;
122
-
123
- // Prompt to sync contact records for standard sandboxes only
124
- if (isStandardSandbox) {
125
- const { contactRecordsSyncPrompt } = await promptUser([
126
- {
127
- name: 'contactRecordsSyncPrompt',
128
- type: 'confirm',
129
- message: i18n('lib.sandbox.sync.confirm.syncContactRecords.standard'),
130
- },
131
- ]);
132
- contactRecordsSyncPromptResult = contactRecordsSyncPrompt;
60
+ catch (err) {
61
+ if (isMissingScopeError(err)) {
62
+ logger.error(i18n('lib.sandbox.create.failure.scopes.message', {
63
+ accountName: accountConfig.name || accountId,
64
+ }));
65
+ const websiteOrigin = getHubSpotWebsiteOrigin(env);
66
+ const url = `${websiteOrigin}/personal-access-key/${accountId}`;
67
+ logger.info(i18n('lib.sandbox.create.failure.scopes.instructions', {
68
+ accountName: accountConfig.name || accountId,
69
+ url,
70
+ }));
71
+ }
72
+ else {
73
+ logError(err);
74
+ }
75
+ process.exit(EXIT_CODES.ERROR);
76
+ }
77
+ if (!name) {
78
+ if (!force) {
79
+ namePrompt = await hubspotAccountNamePrompt({ accountType: sandboxType });
80
+ }
81
+ else {
82
+ logger.error(i18n(`${i18nKey}.failure.optionMissing.name`));
83
+ process.exit(EXIT_CODES.ERROR);
84
+ }
85
+ }
86
+ const sandboxName = name || namePrompt.name;
87
+ let contactRecordsSyncPromptResult = false;
88
+ if (!force) {
89
+ const isStandardSandbox = sandboxType === HUBSPOT_ACCOUNT_TYPES.STANDARD_SANDBOX;
90
+ // Prompt to sync contact records for standard sandboxes only
91
+ if (isStandardSandbox) {
92
+ const { contactRecordsSyncPrompt } = await promptUser([
93
+ {
94
+ name: 'contactRecordsSyncPrompt',
95
+ type: 'confirm',
96
+ message: i18n('lib.sandbox.sync.confirm.syncContactRecords.standard'),
97
+ },
98
+ ]);
99
+ contactRecordsSyncPromptResult = contactRecordsSyncPrompt;
100
+ }
133
101
  }
134
- }
135
-
136
- try {
137
- const { result } = await buildNewAccount({
138
- name: sandboxName,
139
- accountType: sandboxType,
140
- accountConfig,
141
- env,
142
- force,
143
- });
144
-
145
- const sandboxAccountConfig = getAccountConfig(result.sandbox.sandboxHubId);
146
- // For v1 sandboxes, keep sync here. Once we migrate to v2, this will be handled by BE automatically
147
- const handleSyncSandbox = async syncTasks => {
148
- await syncSandbox({
149
- accountConfig: sandboxAccountConfig,
150
- parentAccountConfig: accountConfig,
151
- env,
152
- syncTasks,
153
- });
154
- };
155
102
  try {
156
- let availableSyncTasks = await getAvailableSyncTypes(
157
- accountConfig,
158
- sandboxAccountConfig
159
- );
160
-
161
- if (!contactRecordsSyncPromptResult) {
162
- availableSyncTasks = availableSyncTasks.filter(
163
- t => t.type !== syncTypes.OBJECT_RECORDS
164
- );
165
- }
166
- await handleSyncSandbox(availableSyncTasks);
167
- } catch (err) {
168
- logError(err);
169
- throw err;
103
+ const { result } = await buildNewAccount({
104
+ name: sandboxName,
105
+ accountType: sandboxType,
106
+ accountConfig,
107
+ env,
108
+ force,
109
+ });
110
+ const sandboxAccountConfig = getAccountConfig(result.sandbox.sandboxHubId);
111
+ // For v1 sandboxes, keep sync here. Once we migrate to v2, this will be handled by BE automatically
112
+ const handleSyncSandbox = async (syncTasks) => {
113
+ await syncSandbox({
114
+ accountConfig: sandboxAccountConfig,
115
+ parentAccountConfig: accountConfig,
116
+ env,
117
+ syncTasks,
118
+ });
119
+ };
120
+ try {
121
+ let availableSyncTasks = await getAvailableSyncTypes(accountConfig, sandboxAccountConfig);
122
+ if (!contactRecordsSyncPromptResult) {
123
+ availableSyncTasks = availableSyncTasks.filter(t => t.type !== syncTypes.OBJECT_RECORDS);
124
+ }
125
+ await handleSyncSandbox(availableSyncTasks);
126
+ }
127
+ catch (err) {
128
+ logError(err);
129
+ throw err;
130
+ }
131
+ const highlightItems = ['accountsUseCommand', 'projectCreateCommand'];
132
+ if (sandboxType === HUBSPOT_ACCOUNT_TYPES.DEVELOPMENT_SANDBOX) {
133
+ highlightItems.push('projectDevCommand');
134
+ }
135
+ else {
136
+ highlightItems.push('projectUploadCommand');
137
+ }
138
+ uiFeatureHighlight(highlightItems);
139
+ process.exit(EXIT_CODES.SUCCESS);
170
140
  }
171
-
172
- const highlightItems = ['accountsUseCommand', 'projectCreateCommand'];
173
- if (sandboxType === HUBSPOT_ACCOUNT_TYPES.DEVELOPMENT_SANDBOX) {
174
- highlightItems.push('projectDevCommand');
175
- } else {
176
- highlightItems.push('projectUploadCommand');
141
+ catch (error) {
142
+ // Errors are logged in util functions
143
+ process.exit(EXIT_CODES.ERROR);
177
144
  }
178
-
179
- uiFeatureHighlight(highlightItems);
180
- process.exit(EXIT_CODES.SUCCESS);
181
- } catch (error) {
182
- // Errors are logged in util functions
183
- process.exit(EXIT_CODES.ERROR);
184
- }
185
145
  };
186
-
187
146
  exports.builder = yargs => {
188
- yargs.option('f', {
189
- type: 'boolean',
190
- alias: 'force',
191
- describe: i18n(`${i18nKey}.examples.force`),
192
- });
193
- yargs.option('name', {
194
- describe: i18n(`${i18nKey}.options.name.describe`),
195
- type: 'string',
196
- });
197
- yargs.option('type', {
198
- describe: i18n(`${i18nKey}.options.type.describe`),
199
- type: 'string',
200
- });
201
-
202
- yargs.example([
203
- [
204
- '$0 sandbox create --name=MySandboxAccount --type=STANDARD',
205
- i18n(`${i18nKey}.examples.default`),
206
- ],
207
- ]);
208
-
209
- addConfigOptions(yargs);
210
- addAccountOptions(yargs);
211
- addUseEnvironmentOptions(yargs);
212
- addTestingOptions(yargs);
213
-
214
- return yargs;
147
+ yargs.option('f', {
148
+ type: 'boolean',
149
+ alias: 'force',
150
+ describe: i18n(`${i18nKey}.examples.force`),
151
+ });
152
+ yargs.option('name', {
153
+ describe: i18n(`${i18nKey}.options.name.describe`),
154
+ type: 'string',
155
+ });
156
+ yargs.option('type', {
157
+ describe: i18n(`${i18nKey}.options.type.describe`),
158
+ type: 'string',
159
+ });
160
+ yargs.example([
161
+ [
162
+ '$0 sandbox create --name=MySandboxAccount --type=STANDARD',
163
+ i18n(`${i18nKey}.examples.default`),
164
+ ],
165
+ ]);
166
+ addConfigOptions(yargs);
167
+ addAccountOptions(yargs);
168
+ addUseEnvironmentOptions(yargs);
169
+ addTestingOptions(yargs);
170
+ return yargs;
215
171
  };
@@ -0,0 +1 @@
1
+ export {};