@hubspot/cli 6.2.1 → 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 (343) 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 -72
  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 +73 -104
  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 -178
  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/lib/DevServerManager.d.ts +1 -0
  175. package/lib/DevServerManager.js +99 -124
  176. package/lib/LocalDevManager.d.ts +1 -0
  177. package/lib/LocalDevManager.js +322 -490
  178. package/lib/accountTypes.d.ts +7 -0
  179. package/lib/accountTypes.js +32 -34
  180. package/lib/buildAccount.d.ts +1 -0
  181. package/lib/buildAccount.js +132 -179
  182. package/lib/commonOpts.d.ts +1 -0
  183. package/lib/commonOpts.js +60 -91
  184. package/lib/configOptions.d.ts +1 -0
  185. package/lib/configOptions.js +110 -0
  186. package/lib/constants.d.ts +84 -0
  187. package/lib/constants.js +64 -91
  188. package/lib/debugInfo.d.ts +1 -0
  189. package/lib/debugInfo.js +14 -13
  190. package/lib/dependencyManagement.d.ts +1 -0
  191. package/lib/dependencyManagement.js +92 -132
  192. package/lib/developerTestAccounts.d.ts +1 -0
  193. package/lib/developerTestAccounts.js +67 -91
  194. package/lib/enums/exitCodes.d.ts +5 -0
  195. package/lib/enums/exitCodes.js +7 -8
  196. package/lib/environment.d.ts +1 -0
  197. package/lib/environment.js +13 -14
  198. package/lib/errorHandlers/index.d.ts +1 -0
  199. package/lib/errorHandlers/index.js +66 -80
  200. package/lib/errorHandlers/suppressError.d.ts +1 -0
  201. package/lib/errorHandlers/suppressError.js +66 -106
  202. package/lib/filesystem.d.ts +2 -0
  203. package/lib/filesystem.js +22 -28
  204. package/lib/generate-selectors.d.ts +1 -0
  205. package/lib/generate-selectors.js +102 -138
  206. package/lib/hasFeature.d.ts +1 -0
  207. package/lib/hasFeature.js +8 -15
  208. package/lib/hasFlag.d.ts +1 -0
  209. package/lib/hasFlag.js +13 -13
  210. package/lib/hublValidate.d.ts +2 -0
  211. package/lib/hublValidate.js +28 -28
  212. package/lib/interpolation.d.ts +1 -0
  213. package/lib/interpolation.js +50 -92
  214. package/lib/interpolationHelpers.d.ts +10 -0
  215. package/lib/interpolationHelpers.js +30 -22
  216. package/lib/lang.d.ts +1 -0
  217. package/lib/lang.js +52 -78
  218. package/lib/links.d.ts +1 -0
  219. package/lib/links.js +94 -114
  220. package/lib/localDev.d.ts +1 -0
  221. package/lib/localDev.js +285 -439
  222. package/lib/marketplace-validate.d.ts +1 -0
  223. package/lib/marketplace-validate.js +105 -126
  224. package/lib/oauth.d.ts +1 -0
  225. package/lib/oauth.js +64 -78
  226. package/lib/polling.d.ts +1 -0
  227. package/lib/polling.js +26 -26
  228. package/lib/process.d.ts +1 -0
  229. package/lib/process.js +41 -53
  230. package/lib/projectLogsManager.d.ts +1 -0
  231. package/lib/projectLogsManager.js +78 -130
  232. package/lib/projectStructure.d.ts +1 -0
  233. package/lib/projectStructure.js +89 -109
  234. package/lib/projects.d.ts +1 -0
  235. package/lib/projects.js +595 -961
  236. package/lib/projectsWatch.d.ts +1 -0
  237. package/lib/projectsWatch.js +127 -228
  238. package/lib/prompts/accountNamePrompt.d.ts +1 -0
  239. package/lib/prompts/accountNamePrompt.js +60 -65
  240. package/lib/prompts/accountsPrompt.d.ts +1 -0
  241. package/lib/prompts/accountsPrompt.js +33 -37
  242. package/lib/prompts/activeInstallConfirmationPrompt.d.ts +1 -0
  243. package/lib/prompts/activeInstallConfirmationPrompt.js +13 -13
  244. package/lib/prompts/cleanUploadPrompt.d.ts +1 -0
  245. package/lib/prompts/cleanUploadPrompt.js +13 -13
  246. package/lib/prompts/cmsFieldPrompt.d.ts +1 -0
  247. package/lib/prompts/cmsFieldPrompt.js +37 -39
  248. package/lib/prompts/createApiSamplePrompt.d.ts +1 -0
  249. package/lib/prompts/createApiSamplePrompt.js +49 -52
  250. package/lib/prompts/createFunctionPrompt.d.ts +1 -0
  251. package/lib/prompts/createFunctionPrompt.js +57 -56
  252. package/lib/prompts/createModulePrompt.d.ts +1 -0
  253. package/lib/prompts/createModulePrompt.js +47 -50
  254. package/lib/prompts/createProjectPrompt.d.ts +1 -0
  255. package/lib/prompts/createProjectPrompt.js +95 -129
  256. package/lib/prompts/createTemplatePrompt.d.ts +1 -0
  257. package/lib/prompts/createTemplatePrompt.js +18 -19
  258. package/lib/prompts/deployBuildIdPrompt.d.ts +1 -0
  259. package/lib/prompts/deployBuildIdPrompt.js +15 -15
  260. package/lib/prompts/downloadProjectPrompt.d.ts +1 -0
  261. package/lib/prompts/downloadProjectPrompt.js +39 -41
  262. package/lib/prompts/feedbackPrompt.d.ts +1 -0
  263. package/lib/prompts/feedbackPrompt.js +29 -30
  264. package/lib/prompts/folderOverwritePrompt.d.ts +1 -0
  265. package/lib/prompts/folderOverwritePrompt.js +10 -10
  266. package/lib/prompts/installPublicAppPrompt.d.ts +1 -0
  267. package/lib/prompts/installPublicAppPrompt.js +29 -42
  268. package/lib/prompts/personalAccessKeyPrompt.d.ts +1 -0
  269. package/lib/prompts/personalAccessKeyPrompt.js +104 -110
  270. package/lib/prompts/previewPrompt.d.ts +1 -0
  271. package/lib/prompts/previewPrompt.js +46 -47
  272. package/lib/prompts/projectAddPrompt.d.ts +1 -0
  273. package/lib/prompts/projectAddPrompt.js +37 -38
  274. package/lib/prompts/projectDevTargetAccountPrompt.d.ts +1 -0
  275. package/lib/prompts/projectDevTargetAccountPrompt.js +150 -193
  276. package/lib/prompts/projectNamePrompt.d.ts +1 -0
  277. package/lib/prompts/projectNamePrompt.js +25 -25
  278. package/lib/prompts/projectsLogsPrompt.d.ts +1 -0
  279. package/lib/prompts/projectsLogsPrompt.js +21 -27
  280. package/lib/prompts/promptUtils.d.ts +1 -0
  281. package/lib/prompts/promptUtils.js +17 -17
  282. package/lib/prompts/sandboxesPrompt.d.ts +1 -0
  283. package/lib/prompts/sandboxesPrompt.js +50 -59
  284. package/lib/prompts/secretPrompt.d.ts +1 -0
  285. package/lib/prompts/secretPrompt.js +15 -16
  286. package/lib/prompts/selectPublicAppPrompt.d.ts +1 -0
  287. package/lib/prompts/selectPublicAppPrompt.js +58 -84
  288. package/lib/prompts/setAsDefaultAccountPrompt.d.ts +1 -0
  289. package/lib/prompts/setAsDefaultAccountPrompt.js +19 -24
  290. package/lib/prompts/uploadPrompt.d.ts +1 -0
  291. package/lib/prompts/uploadPrompt.js +30 -30
  292. package/lib/regex.d.ts +1 -0
  293. package/lib/regex.js +4 -5
  294. package/lib/sandboxSync.d.ts +1 -0
  295. package/lib/sandboxSync.js +100 -166
  296. package/lib/sandboxes.d.ts +1 -0
  297. package/lib/sandboxes.js +201 -316
  298. package/lib/schema.d.ts +3 -0
  299. package/lib/schema.js +29 -33
  300. package/lib/serverlessLogs.d.ts +1 -0
  301. package/lib/serverlessLogs.js +131 -173
  302. package/lib/ui/SpinniesManager.d.ts +1 -0
  303. package/lib/ui/SpinniesManager.js +198 -254
  304. package/lib/ui/git.d.ts +1 -0
  305. package/lib/ui/git.js +20 -19
  306. package/lib/ui/index.d.ts +1 -0
  307. package/lib/ui/index.js +117 -167
  308. package/lib/ui/serverlessFunctionLogs.d.ts +1 -0
  309. package/lib/ui/serverlessFunctionLogs.js +53 -70
  310. package/lib/ui/spinniesUtils.d.ts +1 -0
  311. package/lib/ui/spinniesUtils.js +111 -133
  312. package/lib/ui/supportHyperlinks.d.ts +1 -0
  313. package/lib/ui/supportHyperlinks.js +49 -62
  314. package/lib/ui/supportsColor.d.ts +1 -0
  315. package/lib/ui/supportsColor.js +81 -109
  316. package/lib/ui/table.d.ts +1 -0
  317. package/lib/ui/table.js +49 -55
  318. package/lib/upload.d.ts +1 -0
  319. package/lib/upload.js +40 -43
  320. package/lib/usageTracking.d.ts +1 -0
  321. package/lib/usageTracking.js +133 -155
  322. package/lib/validation.d.ts +1 -0
  323. package/lib/validation.js +144 -203
  324. package/package.json +84 -47
  325. package/CHANGELOG.md +0 -16
  326. package/commands/__tests__/projects.test.js +0 -105
  327. package/commands/config/set/allowUsageTracking.js +0 -52
  328. package/commands/config/set/defaultMode.js +0 -59
  329. package/commands/config/set/httpTimeout.js +0 -42
  330. package/commands/project/__tests__/deploy.test.js +0 -443
  331. package/commands/project/__tests__/installDeps.test.js +0 -168
  332. package/commands/project/__tests__/logs.test.js +0 -304
  333. package/hubspot.sample.config.yml +0 -28
  334. package/jest.config.js +0 -4
  335. package/lib/__tests__/commonOpts.test.js +0 -83
  336. package/lib/__tests__/dependencyManagement.test.js +0 -243
  337. package/lib/__tests__/downloadProjectPrompt.test.js +0 -31
  338. package/lib/__tests__/projectLogsManager.test.js +0 -212
  339. package/lib/__tests__/projects.test.js +0 -140
  340. package/lib/__tests__/serverlessLogs.test.js +0 -162
  341. package/lib/__tests__/validation.test.js +0 -140
  342. package/lib/getFunctionArrays.js +0 -18
  343. package/lib/prompts/__tests__/projectsLogsPrompt.test.js +0 -46
@@ -1,214 +1,171 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ // @ts-nocheck
1
4
  const { promptUser } = require('./promptUtils');
2
5
  const { i18n } = require('../lang');
3
6
  const { uiAccountDescription, uiCommandReference } = require('../ui');
4
7
  const { isSandbox } = require('../accountTypes');
5
8
  const { getAccountId } = require('@hubspot/local-dev-lib/config');
6
- const {
7
- getSandboxUsageLimits,
8
- } = require('@hubspot/local-dev-lib/api/sandboxHubs');
9
- const {
10
- HUBSPOT_ACCOUNT_TYPES,
11
- HUBSPOT_ACCOUNT_TYPE_STRINGS,
12
- } = require('@hubspot/local-dev-lib/constants/config');
9
+ const { getSandboxUsageLimits, } = require('@hubspot/local-dev-lib/api/sandboxHubs');
10
+ const { HUBSPOT_ACCOUNT_TYPES, HUBSPOT_ACCOUNT_TYPE_STRINGS, } = require('@hubspot/local-dev-lib/constants/config');
13
11
  const { logger } = require('@hubspot/local-dev-lib/logger');
14
- const {
15
- fetchDeveloperTestAccounts,
16
- } = require('@hubspot/local-dev-lib/api/developerTestAccounts');
17
-
12
+ const { fetchDeveloperTestAccounts, } = require('@hubspot/local-dev-lib/api/developerTestAccounts');
18
13
  const i18nKey = 'lib.prompts.projectDevTargetAccountPrompt';
19
-
20
14
  const mapNestedAccount = accountConfig => ({
21
- name: uiAccountDescription(accountConfig.portalId, false),
22
- value: {
23
- targetAccountId: getAccountId(accountConfig.name),
24
- createNestedAccount: false,
25
- parentAccountId: accountConfig.parentAccountId,
26
- },
15
+ name: uiAccountDescription(accountConfig.portalId, false),
16
+ value: {
17
+ targetAccountId: getAccountId(accountConfig.name),
18
+ createNestedAccount: false,
19
+ parentAccountId: accountConfig.parentAccountId,
20
+ },
27
21
  });
28
-
29
22
  const getNonConfigDeveloperTestAccountName = account => {
30
- return `${account.accountName} [${
31
- HUBSPOT_ACCOUNT_TYPE_STRINGS[HUBSPOT_ACCOUNT_TYPES.DEVELOPER_TEST]
32
- }] (${account.id})`;
23
+ return `${account.accountName} [${HUBSPOT_ACCOUNT_TYPE_STRINGS[HUBSPOT_ACCOUNT_TYPES.DEVELOPER_TEST]}] (${account.id})`;
33
24
  };
34
-
35
- const selectSandboxTargetAccountPrompt = async (
36
- accounts,
37
- defaultAccountConfig
38
- ) => {
39
- const defaultAccountId = getAccountId(defaultAccountConfig.name);
40
- let choices = [];
41
- let sandboxUsage = {};
42
- try {
43
- const { data } = await getSandboxUsageLimits(defaultAccountId);
44
- sandboxUsage = data.usage;
45
- } catch (err) {
46
- logger.debug('Unable to fetch sandbox usage limits: ', err);
47
- }
48
-
49
- const sandboxAccounts = accounts
50
- .reverse()
51
- .filter(
52
- config => isSandbox(config) && config.parentAccountId === defaultAccountId
53
- );
54
- let disabledMessage = false;
55
-
56
- if (sandboxUsage['DEVELOPER'] && sandboxUsage['DEVELOPER'].available === 0) {
57
- if (sandboxAccounts.length < sandboxUsage['DEVELOPER'].limit) {
58
- disabledMessage = i18n(`${i18nKey}.sandboxLimitWithSuggestion`, {
59
- authCommand: uiCommandReference('hs auth'),
60
- limit: sandboxUsage['DEVELOPER'].limit,
61
- });
62
- } else {
63
- disabledMessage = i18n(`${i18nKey}.sandboxLimit`, {
64
- limit: sandboxUsage['DEVELOPER'].limit,
65
- });
25
+ const selectSandboxTargetAccountPrompt = async (accounts, defaultAccountConfig) => {
26
+ const defaultAccountId = getAccountId(defaultAccountConfig.name);
27
+ let choices = [];
28
+ let sandboxUsage = {};
29
+ try {
30
+ const { data } = await getSandboxUsageLimits(defaultAccountId);
31
+ sandboxUsage = data.usage;
66
32
  }
67
- }
68
- // Order choices by Developer Sandbox -> Standard Sandbox
69
- choices = [
70
- ...sandboxAccounts
71
- .filter(a => a.accountType === HUBSPOT_ACCOUNT_TYPES.DEVELOPMENT_SANDBOX)
72
- .map(mapNestedAccount),
73
- ...sandboxAccounts
74
- .filter(a => a.accountType === HUBSPOT_ACCOUNT_TYPES.STANDARD_SANDBOX)
75
- .map(mapNestedAccount),
76
- {
77
- name: i18n(`${i18nKey}.createNewSandboxOption`),
78
- value: {
79
- targetAccountId: null,
80
- createNestedAccount: true,
81
- },
82
- disabled: disabledMessage,
83
- },
84
- {
85
- name: i18n(`${i18nKey}.chooseDefaultAccountOption`),
86
- value: {
87
- targetAccountId: defaultAccountId,
88
- createNestedAccount: false,
89
- },
90
- },
91
- ];
92
-
93
- return selectTargetAccountPrompt(
94
- defaultAccountId,
95
- 'sandbox account',
96
- choices
97
- );
33
+ catch (err) {
34
+ logger.debug('Unable to fetch sandbox usage limits: ', err);
35
+ }
36
+ const sandboxAccounts = accounts
37
+ .reverse()
38
+ .filter(config => isSandbox(config) && config.parentAccountId === defaultAccountId);
39
+ let disabledMessage = false;
40
+ if (sandboxUsage['DEVELOPER'] && sandboxUsage['DEVELOPER'].available === 0) {
41
+ if (sandboxAccounts.length < sandboxUsage['DEVELOPER'].limit) {
42
+ disabledMessage = i18n(`${i18nKey}.sandboxLimitWithSuggestion`, {
43
+ authCommand: uiCommandReference('hs auth'),
44
+ limit: sandboxUsage['DEVELOPER'].limit,
45
+ });
46
+ }
47
+ else {
48
+ disabledMessage = i18n(`${i18nKey}.sandboxLimit`, {
49
+ limit: sandboxUsage['DEVELOPER'].limit,
50
+ });
51
+ }
52
+ }
53
+ // Order choices by Developer Sandbox -> Standard Sandbox
54
+ choices = [
55
+ ...sandboxAccounts
56
+ .filter(a => a.accountType === HUBSPOT_ACCOUNT_TYPES.DEVELOPMENT_SANDBOX)
57
+ .map(mapNestedAccount),
58
+ ...sandboxAccounts
59
+ .filter(a => a.accountType === HUBSPOT_ACCOUNT_TYPES.STANDARD_SANDBOX)
60
+ .map(mapNestedAccount),
61
+ {
62
+ name: i18n(`${i18nKey}.createNewSandboxOption`),
63
+ value: {
64
+ targetAccountId: null,
65
+ createNestedAccount: true,
66
+ },
67
+ disabled: disabledMessage,
68
+ },
69
+ {
70
+ name: i18n(`${i18nKey}.chooseDefaultAccountOption`),
71
+ value: {
72
+ targetAccountId: defaultAccountId,
73
+ createNestedAccount: false,
74
+ },
75
+ },
76
+ ];
77
+ return selectTargetAccountPrompt(defaultAccountId, 'sandbox account', choices);
98
78
  };
99
-
100
- const selectDeveloperTestTargetAccountPrompt = async (
101
- accounts,
102
- defaultAccountConfig
103
- ) => {
104
- const defaultAccountId = getAccountId(defaultAccountConfig.name);
105
- let devTestAccountsResponse = undefined;
106
- try {
107
- const { data } = await fetchDeveloperTestAccounts(defaultAccountId);
108
- devTestAccountsResponse = data;
109
- } catch (err) {
110
- logger.debug('Unable to fetch developer test account usage limits: ', err);
111
- }
112
-
113
- let disabledMessage = false;
114
- if (
115
- devTestAccountsResponse &&
116
- devTestAccountsResponse.results.length >=
117
- devTestAccountsResponse.maxTestPortals
118
- ) {
119
- disabledMessage = i18n(`${i18nKey}.developerTestAccountLimit`, {
120
- authCommand: uiCommandReference('hs auth'),
121
- limit: devTestAccountsResponse.maxTestPortals,
122
- });
123
- }
124
-
125
- const devTestAccounts = [];
126
- if (devTestAccountsResponse && devTestAccountsResponse.results) {
127
- const accountIds = accounts.map(account => account.portalId);
128
-
129
- devTestAccountsResponse.results.forEach(acct => {
130
- const inConfig = accountIds.includes(acct.id);
131
- devTestAccounts.push({
132
- name: getNonConfigDeveloperTestAccountName(acct),
133
- value: {
134
- targetAccountId: acct.id,
135
- createdNestedAccount: false,
136
- parentAccountId: defaultAccountId,
137
- notInConfigAccount: inConfig ? null : acct,
79
+ const selectDeveloperTestTargetAccountPrompt = async (accounts, defaultAccountConfig) => {
80
+ const defaultAccountId = getAccountId(defaultAccountConfig.name);
81
+ let devTestAccountsResponse = undefined;
82
+ try {
83
+ const { data } = await fetchDeveloperTestAccounts(defaultAccountId);
84
+ devTestAccountsResponse = data;
85
+ }
86
+ catch (err) {
87
+ logger.debug('Unable to fetch developer test account usage limits: ', err);
88
+ }
89
+ let disabledMessage = false;
90
+ if (devTestAccountsResponse &&
91
+ devTestAccountsResponse.results.length >=
92
+ devTestAccountsResponse.maxTestPortals) {
93
+ disabledMessage = i18n(`${i18nKey}.developerTestAccountLimit`, {
94
+ authCommand: uiCommandReference('hs auth'),
95
+ limit: devTestAccountsResponse.maxTestPortals,
96
+ });
97
+ }
98
+ const devTestAccounts = [];
99
+ if (devTestAccountsResponse && devTestAccountsResponse.results) {
100
+ const accountIds = accounts.map(account => account.portalId);
101
+ devTestAccountsResponse.results.forEach(acct => {
102
+ const inConfig = accountIds.includes(acct.id);
103
+ devTestAccounts.push({
104
+ name: getNonConfigDeveloperTestAccountName(acct),
105
+ value: {
106
+ targetAccountId: acct.id,
107
+ createdNestedAccount: false,
108
+ parentAccountId: defaultAccountId,
109
+ notInConfigAccount: inConfig ? null : acct,
110
+ },
111
+ });
112
+ });
113
+ }
114
+ const choices = [
115
+ ...devTestAccounts,
116
+ {
117
+ name: i18n(`${i18nKey}.createNewDeveloperTestAccountOption`),
118
+ value: {
119
+ targetAccountId: null,
120
+ createNestedAccount: true,
121
+ },
122
+ disabled: disabledMessage,
138
123
  },
139
- });
140
- });
141
- }
142
-
143
- const choices = [
144
- ...devTestAccounts,
145
- {
146
- name: i18n(`${i18nKey}.createNewDeveloperTestAccountOption`),
147
- value: {
148
- targetAccountId: null,
149
- createNestedAccount: true,
150
- },
151
- disabled: disabledMessage,
152
- },
153
- ];
154
-
155
- return selectTargetAccountPrompt(
156
- defaultAccountId,
157
- HUBSPOT_ACCOUNT_TYPE_STRINGS[HUBSPOT_ACCOUNT_TYPES.DEVELOPER_TEST],
158
- choices
159
- );
124
+ ];
125
+ return selectTargetAccountPrompt(defaultAccountId, HUBSPOT_ACCOUNT_TYPE_STRINGS[HUBSPOT_ACCOUNT_TYPES.DEVELOPER_TEST], choices);
160
126
  };
161
-
162
- const selectTargetAccountPrompt = async (
163
- defaultAccountId,
164
- accountType,
165
- choices
166
- ) => {
167
- const { targetAccountInfo } = await promptUser([
168
- {
169
- name: 'targetAccountInfo',
170
- type: 'list',
171
- message: i18n(`${i18nKey}.promptMessage`, {
172
- accountIdentifier: uiAccountDescription(defaultAccountId),
173
- accountType,
174
- }),
175
- choices,
176
- },
177
- ]);
178
-
179
- return targetAccountInfo;
127
+ const selectTargetAccountPrompt = async (defaultAccountId, accountType, choices) => {
128
+ const { targetAccountInfo } = await promptUser([
129
+ {
130
+ name: 'targetAccountInfo',
131
+ type: 'list',
132
+ message: i18n(`${i18nKey}.promptMessage`, {
133
+ accountIdentifier: uiAccountDescription(defaultAccountId),
134
+ accountType,
135
+ }),
136
+ choices,
137
+ },
138
+ ]);
139
+ return targetAccountInfo;
180
140
  };
181
-
182
141
  const confirmDefaultAccountPrompt = async (accountName, accountType) => {
183
- const { useDefaultAccount } = await promptUser([
184
- {
185
- name: 'useDefaultAccount',
186
- type: 'confirm',
187
- message: i18n(`${i18nKey}.confirmDefaultAccount`, {
188
- accountName,
189
- accountType,
190
- }),
191
- },
192
- ]);
193
- return useDefaultAccount;
142
+ const { useDefaultAccount } = await promptUser([
143
+ {
144
+ name: 'useDefaultAccount',
145
+ type: 'confirm',
146
+ message: i18n(`${i18nKey}.confirmDefaultAccount`, {
147
+ accountName,
148
+ accountType,
149
+ }),
150
+ },
151
+ ]);
152
+ return useDefaultAccount;
194
153
  };
195
-
196
- const confirmUseExistingDeveloperTestAccountPrompt = async account => {
197
- const { confirmUseExistingDeveloperTestAccount } = await promptUser([
198
- {
199
- name: 'confirmUseExistingDeveloperTestAccount',
200
- type: 'confirm',
201
- message: i18n(`${i18nKey}.confirmUseExistingDeveloperTestAccount`, {
202
- accountName: getNonConfigDeveloperTestAccountName(account),
203
- }),
204
- },
205
- ]);
206
- return confirmUseExistingDeveloperTestAccount;
154
+ const confirmUseExistingDeveloperTestAccountPrompt = async (account) => {
155
+ const { confirmUseExistingDeveloperTestAccount } = await promptUser([
156
+ {
157
+ name: 'confirmUseExistingDeveloperTestAccount',
158
+ type: 'confirm',
159
+ message: i18n(`${i18nKey}.confirmUseExistingDeveloperTestAccount`, {
160
+ accountName: getNonConfigDeveloperTestAccountName(account),
161
+ }),
162
+ },
163
+ ]);
164
+ return confirmUseExistingDeveloperTestAccount;
207
165
  };
208
-
209
166
  module.exports = {
210
- selectSandboxTargetAccountPrompt,
211
- selectDeveloperTestTargetAccountPrompt,
212
- confirmDefaultAccountPrompt,
213
- confirmUseExistingDeveloperTestAccountPrompt,
167
+ selectSandboxTargetAccountPrompt,
168
+ selectDeveloperTestTargetAccountPrompt,
169
+ confirmDefaultAccountPrompt,
170
+ confirmUseExistingDeveloperTestAccountPrompt,
214
171
  };
@@ -0,0 +1 @@
1
+ export {};
@@ -1,34 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ // @ts-nocheck
1
4
  const { promptUser } = require('./promptUtils');
2
5
  const { i18n } = require('../lang');
3
6
  const { ensureProjectExists } = require('../projects');
4
7
  const { uiAccountDescription } = require('../ui');
5
-
6
8
  const i18nKey = 'lib.prompts.projectNamePrompt';
7
-
8
9
  const projectNamePrompt = (accountId, options = {}) => {
9
- return promptUser({
10
- name: 'projectName',
11
- message: i18n(`${i18nKey}.enterName`),
12
- when: !options.project,
13
- validate: async val => {
14
- if (typeof val !== 'string' || !val) {
15
- return i18n(`${i18nKey}.errors.invalidName`);
16
- }
17
- const { projectExists } = await ensureProjectExists(accountId, val, {
18
- allowCreate: false,
19
- noLogs: true,
20
- });
21
- if (!projectExists) {
22
- return i18n(`${i18nKey}.errors.projectDoesNotExist`, {
23
- projectName: val,
24
- accountIdentifier: uiAccountDescription(accountId),
25
- });
26
- }
27
- return true;
28
- },
29
- });
10
+ return promptUser({
11
+ name: 'projectName',
12
+ message: i18n(`${i18nKey}.enterName`),
13
+ when: !options.project,
14
+ validate: async (val) => {
15
+ if (typeof val !== 'string' || !val) {
16
+ return i18n(`${i18nKey}.errors.invalidName`);
17
+ }
18
+ const { projectExists } = await ensureProjectExists(accountId, val, {
19
+ allowCreate: false,
20
+ noLogs: true,
21
+ });
22
+ if (!projectExists) {
23
+ return i18n(`${i18nKey}.errors.projectDoesNotExist`, {
24
+ projectName: val,
25
+ accountIdentifier: uiAccountDescription(accountId),
26
+ });
27
+ }
28
+ return true;
29
+ },
30
+ });
30
31
  };
31
-
32
32
  module.exports = {
33
- projectNamePrompt,
33
+ projectNamePrompt,
34
34
  };
@@ -0,0 +1 @@
1
+ export {};
@@ -1,33 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ // @ts-nocheck
1
4
  const { i18n } = require('../lang');
2
5
  const { promptUser } = require('./promptUtils');
3
-
4
6
  const i18nKey = 'lib.prompts.projectLogsPrompt';
5
-
6
- const projectLogsPrompt = async ({
7
- functionChoices,
8
- promptOptions,
9
- projectName = {},
10
- }) => {
11
- if (!functionChoices) {
12
- return {};
13
- }
14
- if (functionChoices && functionChoices.length === 1) {
15
- return { functionName: functionChoices[0] };
16
- }
17
-
18
- return promptUser([
19
- {
20
- name: 'functionName',
21
- type: 'list',
22
- message: i18n(`${i18nKey}.functionName`, { projectName }),
23
- when: () =>
24
- (!promptOptions || !promptOptions.function) &&
25
- functionChoices.length > 0,
26
- choices: functionChoices,
27
- },
28
- ]);
7
+ const projectLogsPrompt = async ({ functionChoices, promptOptions, projectName = {}, }) => {
8
+ if (!functionChoices) {
9
+ return {};
10
+ }
11
+ if (functionChoices && functionChoices.length === 1) {
12
+ return { functionName: functionChoices[0] };
13
+ }
14
+ return promptUser([
15
+ {
16
+ name: 'functionName',
17
+ type: 'list',
18
+ message: i18n(`${i18nKey}.functionName`, { projectName }),
19
+ when: () => (!promptOptions || !promptOptions.function) &&
20
+ functionChoices.length > 0,
21
+ choices: functionChoices,
22
+ },
23
+ ]);
29
24
  };
30
-
31
25
  module.exports = {
32
- projectLogsPrompt,
26
+ projectLogsPrompt,
33
27
  };
@@ -0,0 +1 @@
1
+ export {};
@@ -1,23 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ // @ts-nocheck
1
4
  const inquirer = require('inquirer');
2
-
3
- const promptUser = async promptConfig => {
4
- const prompt = inquirer.createPromptModule();
5
- return prompt(promptConfig);
5
+ const promptUser = async (promptConfig) => {
6
+ const prompt = inquirer.createPromptModule();
7
+ return prompt(promptConfig);
6
8
  };
7
-
8
9
  const confirmPrompt = async (message, defaultAnswer = true) => {
9
- const { choice } = await promptUser([
10
- {
11
- name: 'choice',
12
- type: 'confirm',
13
- default: defaultAnswer,
14
- message,
15
- },
16
- ]);
17
- return choice;
10
+ const { choice } = await promptUser([
11
+ {
12
+ name: 'choice',
13
+ type: 'confirm',
14
+ default: defaultAnswer,
15
+ message,
16
+ },
17
+ ]);
18
+ return choice;
18
19
  };
19
-
20
20
  module.exports = {
21
- promptUser,
22
- confirmPrompt,
21
+ promptUser,
22
+ confirmPrompt,
23
23
  };
@@ -0,0 +1 @@
1
+ export {};
@@ -1,80 +1,71 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ // @ts-nocheck
1
4
  const { promptUser } = require('./promptUtils');
2
5
  const { i18n } = require('../lang');
3
6
  const { uiAccountDescription } = require('../ui');
4
- const {
5
- HUBSPOT_ACCOUNT_TYPES,
6
- } = require('@hubspot/local-dev-lib/constants/config');
7
+ const { HUBSPOT_ACCOUNT_TYPES, } = require('@hubspot/local-dev-lib/constants/config');
7
8
  const { isSandbox } = require('../accountTypes');
8
-
9
9
  const i18nKey = 'lib.prompts.sandboxesPrompt';
10
-
11
- const mapSandboxAccountChoices = portals =>
12
- portals
10
+ const mapSandboxAccountChoices = portals => portals
13
11
  .filter(p => isSandbox(p))
14
12
  .map(p => {
15
- return {
13
+ return {
16
14
  name: uiAccountDescription(p.portalId, false),
17
15
  value: p.name || p.portalId,
18
- };
19
- });
20
-
21
- const mapNonSandboxAccountChoices = portals =>
22
- portals
16
+ };
17
+ });
18
+ const mapNonSandboxAccountChoices = portals => portals
23
19
  .filter(p => !isSandbox(p))
24
20
  .map(p => {
25
- return {
21
+ return {
26
22
  name: `${p.name} (${p.portalId})`,
27
23
  value: p.name || p.portalId,
28
- };
29
- });
30
-
24
+ };
25
+ });
31
26
  const sandboxTypePrompt = () => {
32
- return promptUser([
33
- {
34
- name: 'type',
35
- message: i18n(`${i18nKey}.type.message`),
36
- type: 'list',
37
- look: false,
38
- choices: [
27
+ return promptUser([
39
28
  {
40
- name: i18n(`${i18nKey}.type.developer`),
41
- value: HUBSPOT_ACCOUNT_TYPES.DEVELOPMENT_SANDBOX,
29
+ name: 'type',
30
+ message: i18n(`${i18nKey}.type.message`),
31
+ type: 'list',
32
+ look: false,
33
+ choices: [
34
+ {
35
+ name: i18n(`${i18nKey}.type.developer`),
36
+ value: HUBSPOT_ACCOUNT_TYPES.DEVELOPMENT_SANDBOX,
37
+ },
38
+ {
39
+ name: i18n(`${i18nKey}.type.standard`),
40
+ value: HUBSPOT_ACCOUNT_TYPES.STANDARD_SANDBOX,
41
+ },
42
+ ],
43
+ default: HUBSPOT_ACCOUNT_TYPES.DEVELOPMENT_SANDBOX,
42
44
  },
43
- {
44
- name: i18n(`${i18nKey}.type.standard`),
45
- value: HUBSPOT_ACCOUNT_TYPES.STANDARD_SANDBOX,
46
- },
47
- ],
48
- default: HUBSPOT_ACCOUNT_TYPES.DEVELOPMENT_SANDBOX,
49
- },
50
- ]);
45
+ ]);
51
46
  };
52
-
53
47
  const deleteSandboxPrompt = (config, promptParentAccount = false) => {
54
- const choices = promptParentAccount
55
- ? mapNonSandboxAccountChoices(config.portals)
56
- : mapSandboxAccountChoices(config.portals);
57
- if (!choices.length) {
58
- return undefined;
59
- }
60
- return promptUser([
61
- {
62
- name: 'account',
63
- message: i18n(
64
- promptParentAccount
65
- ? `${i18nKey}.selectParentAccountName`
66
- : `${i18nKey}.selectAccountName`
67
- ),
68
- type: 'list',
69
- look: false,
70
- pageSize: 20,
71
- choices,
72
- default: config.defaultPortal,
73
- },
74
- ]);
48
+ const choices = promptParentAccount
49
+ ? mapNonSandboxAccountChoices(config.portals)
50
+ : mapSandboxAccountChoices(config.portals);
51
+ if (!choices.length) {
52
+ return undefined;
53
+ }
54
+ return promptUser([
55
+ {
56
+ name: 'account',
57
+ message: i18n(promptParentAccount
58
+ ? `${i18nKey}.selectParentAccountName`
59
+ : `${i18nKey}.selectAccountName`),
60
+ type: 'list',
61
+ look: false,
62
+ pageSize: 20,
63
+ choices,
64
+ default: config.defaultPortal,
65
+ },
66
+ ]);
75
67
  };
76
-
77
68
  module.exports = {
78
- sandboxTypePrompt,
79
- deleteSandboxPrompt,
69
+ sandboxTypePrompt,
70
+ deleteSandboxPrompt,
80
71
  };