@hubspot/cli 7.8.12-experimental.0 → 7.9.0-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 (451) hide show
  1. package/bin/cli.js +31 -25
  2. package/commands/__tests__/auth.test.js +5 -0
  3. package/commands/__tests__/cms.test.js +44 -1
  4. package/commands/__tests__/customObject.test.js +22 -1
  5. package/commands/__tests__/doctor.test.js +16 -16
  6. package/commands/__tests__/project.test.js +2 -0
  7. package/commands/account/auth.js +1 -0
  8. package/commands/account/clean.js +18 -27
  9. package/commands/account/createOverride.js +13 -31
  10. package/commands/account/info.js +20 -31
  11. package/commands/account/list.js +16 -22
  12. package/commands/account/remove.js +12 -20
  13. package/commands/account/removeOverride.js +11 -21
  14. package/commands/account/rename.js +6 -9
  15. package/commands/account/use.js +12 -26
  16. package/commands/account.js +2 -2
  17. package/commands/app/__tests__/migrate.test.js +5 -5
  18. package/commands/app/migrate.js +13 -18
  19. package/commands/app.js +1 -6
  20. package/commands/auth.d.ts +1 -0
  21. package/commands/auth.js +17 -7
  22. package/commands/{__tests__/remove.test.js → cms/__tests__/delete.test.js} +8 -8
  23. package/commands/{__tests__ → cms/__tests__}/fetch.test.js +3 -3
  24. package/commands/{__tests__ → cms/__tests__}/function.test.js +7 -3
  25. package/commands/{__tests__ → cms/__tests__}/lint.test.js +3 -3
  26. package/commands/{__tests__ → cms/__tests__}/list.test.js +3 -3
  27. package/commands/{__tests__ → cms/__tests__}/mv.test.js +3 -3
  28. package/commands/{__tests__ → cms/__tests__}/theme.test.js +9 -2
  29. package/commands/cms/app/create.d.ts +9 -0
  30. package/commands/cms/app/create.js +82 -0
  31. package/commands/cms/app.d.ts +3 -0
  32. package/commands/cms/app.js +17 -0
  33. package/commands/cms/convertFields.js +7 -9
  34. package/commands/cms/delete.d.ts +6 -0
  35. package/commands/cms/delete.js +43 -0
  36. package/commands/cms/fetch.d.ts +12 -0
  37. package/commands/cms/fetch.js +79 -0
  38. package/commands/{__tests__ → cms/function/__tests__}/logs.test.js +4 -5
  39. package/commands/cms/function/create.d.ts +12 -0
  40. package/commands/cms/function/create.js +84 -0
  41. package/commands/cms/function/deploy.d.ts +6 -0
  42. package/commands/cms/function/deploy.js +89 -0
  43. package/commands/cms/function/list.d.ts +6 -0
  44. package/commands/cms/function/list.js +60 -0
  45. package/commands/cms/function/logs.d.ts +10 -0
  46. package/commands/cms/function/logs.js +135 -0
  47. package/commands/cms/function/server.d.ts +10 -0
  48. package/commands/cms/function/server.js +69 -0
  49. package/commands/cms/function.d.ts +3 -0
  50. package/commands/cms/function.js +27 -0
  51. package/commands/cms/getReactModule.js +9 -14
  52. package/commands/cms/lighthouseScore.js +33 -36
  53. package/commands/cms/lint.d.ts +6 -0
  54. package/commands/cms/lint.js +83 -0
  55. package/commands/cms/list.d.ts +6 -0
  56. package/commands/cms/list.js +96 -0
  57. package/commands/cms/module/create.d.ts +11 -0
  58. package/commands/cms/module/create.js +84 -0
  59. package/commands/cms/module/marketplace-validate.d.ts +6 -0
  60. package/commands/cms/module/marketplace-validate.js +45 -0
  61. package/commands/cms/module.d.ts +3 -0
  62. package/commands/cms/module.js +17 -0
  63. package/commands/cms/mv.d.ts +7 -0
  64. package/commands/cms/mv.js +60 -0
  65. package/commands/cms/template/create.d.ts +9 -0
  66. package/commands/cms/template/create.js +72 -0
  67. package/commands/cms/template.d.ts +3 -0
  68. package/commands/cms/template.js +17 -0
  69. package/commands/{theme → cms/theme}/__tests__/marketplace-validate.test.js +2 -2
  70. package/commands/{theme → cms/theme}/__tests__/preview.test.js +2 -2
  71. package/commands/cms/theme/create.d.ts +6 -0
  72. package/commands/cms/theme/create.js +58 -0
  73. package/commands/cms/theme/generate-selectors.d.ts +6 -0
  74. package/commands/cms/theme/generate-selectors.js +171 -0
  75. package/commands/cms/theme/marketplace-validate.d.ts +6 -0
  76. package/commands/cms/theme/marketplace-validate.js +46 -0
  77. package/commands/cms/theme/preview.d.ts +12 -0
  78. package/commands/cms/theme/preview.js +224 -0
  79. package/commands/cms/theme.d.ts +3 -0
  80. package/commands/cms/theme.js +25 -0
  81. package/commands/cms/upload.d.ts +12 -0
  82. package/commands/cms/upload.js +212 -0
  83. package/commands/cms/watch.d.ts +14 -0
  84. package/commands/cms/watch.js +138 -0
  85. package/commands/cms/webpack/create.d.ts +6 -0
  86. package/commands/cms/webpack/create.js +58 -0
  87. package/commands/cms/webpack.d.ts +3 -0
  88. package/commands/cms/webpack.js +17 -0
  89. package/commands/cms.js +28 -2
  90. package/commands/completion.js +3 -3
  91. package/commands/config/set.d.ts +1 -1
  92. package/commands/config/set.js +64 -36
  93. package/commands/config.js +2 -2
  94. package/commands/create.js +6 -4
  95. package/commands/customObject/{schema/__tests__/create.test.js → __tests__/createSchema.test.js} +5 -5
  96. package/commands/customObject/{schema/__tests__/delete.test.js → __tests__/deleteSchema.test.js} +5 -5
  97. package/commands/customObject/{schema/__tests__/fetch-all.test.js → __tests__/fetch-all-schemas.test.js} +5 -5
  98. package/commands/customObject/{schema/__tests__/fetch.test.js → __tests__/fetchSchema.test.js} +5 -5
  99. package/commands/customObject/{schema/__tests__/list.test.js → __tests__/listSchemas.test.js} +5 -5
  100. package/commands/customObject/{schema/__tests__/update.test.js → __tests__/updateSchema.test.js} +5 -5
  101. package/commands/customObject/create.js +10 -12
  102. package/commands/customObject/createSchema.d.ts +6 -0
  103. package/commands/customObject/createSchema.js +56 -0
  104. package/commands/customObject/deleteSchema.d.ts +7 -0
  105. package/commands/customObject/deleteSchema.js +69 -0
  106. package/commands/customObject/fetchAllSchemas.d.ts +6 -0
  107. package/commands/customObject/fetchAllSchemas.js +57 -0
  108. package/commands/customObject/fetchSchema.d.ts +7 -0
  109. package/commands/customObject/fetchSchema.js +67 -0
  110. package/commands/customObject/listSchemas.d.ts +4 -0
  111. package/commands/customObject/listSchemas.js +35 -0
  112. package/commands/customObject/schema/create.d.ts +4 -6
  113. package/commands/customObject/schema/create.js +13 -38
  114. package/commands/customObject/schema/delete.d.ts +4 -7
  115. package/commands/customObject/schema/delete.js +15 -50
  116. package/commands/customObject/schema/fetch-all.d.ts +4 -6
  117. package/commands/customObject/schema/fetch-all.js +14 -40
  118. package/commands/customObject/schema/fetch.d.ts +4 -7
  119. package/commands/customObject/schema/fetch.js +14 -49
  120. package/commands/customObject/schema/list.d.ts +4 -4
  121. package/commands/customObject/schema/list.js +10 -19
  122. package/commands/customObject/schema/update.d.ts +4 -7
  123. package/commands/customObject/schema/update.js +15 -50
  124. package/commands/customObject/schema.js +5 -3
  125. package/commands/customObject/updateSchema.d.ts +7 -0
  126. package/commands/customObject/updateSchema.js +71 -0
  127. package/commands/customObject.js +22 -8
  128. package/commands/doctor.js +8 -11
  129. package/commands/feedback.js +7 -12
  130. package/commands/fetch.d.ts +4 -12
  131. package/commands/fetch.js +20 -47
  132. package/commands/filemanager/fetch.js +7 -7
  133. package/commands/filemanager/upload.js +15 -34
  134. package/commands/filemanager.js +2 -2
  135. package/commands/function/deploy.d.ts +4 -6
  136. package/commands/function/deploy.js +14 -89
  137. package/commands/function/list.d.ts +4 -6
  138. package/commands/function/list.js +14 -40
  139. package/commands/function/server.d.ts +4 -10
  140. package/commands/function/server.js +22 -31
  141. package/commands/function.d.ts +2 -4
  142. package/commands/function.js +25 -14
  143. package/commands/getStarted.js +2 -2
  144. package/commands/hubdb/clear.js +7 -15
  145. package/commands/hubdb/create.js +9 -15
  146. package/commands/hubdb/delete.js +8 -15
  147. package/commands/hubdb/fetch.js +6 -9
  148. package/commands/hubdb.d.ts +1 -1
  149. package/commands/hubdb.js +2 -2
  150. package/commands/init.js +2 -3
  151. package/commands/lint.d.ts +4 -6
  152. package/commands/lint.js +13 -65
  153. package/commands/list.d.ts +4 -6
  154. package/commands/list.js +14 -81
  155. package/commands/logs.d.ts +4 -10
  156. package/commands/logs.js +25 -94
  157. package/commands/module/marketplace-validate.d.ts +4 -6
  158. package/commands/module/marketplace-validate.js +15 -27
  159. package/commands/module.d.ts +2 -2
  160. package/commands/module.js +17 -15
  161. package/commands/mv.d.ts +4 -7
  162. package/commands/mv.js +14 -51
  163. package/commands/open.js +5 -5
  164. package/commands/project/__tests__/add.test.js +15 -13
  165. package/commands/project/__tests__/deploy.test.js +3 -4
  166. package/commands/project/__tests__/devUnifiedFlow.test.js +32 -0
  167. package/commands/project/__tests__/installDeps.test.js +8 -8
  168. package/commands/project/__tests__/list.test.js +31 -0
  169. package/commands/project/__tests__/logs.test.js +1 -1
  170. package/commands/project/__tests__/migrate.test.js +6 -5
  171. package/commands/project/__tests__/migrateApp.test.js +2 -5
  172. package/commands/project/__tests__/validate.test.js +98 -0
  173. package/commands/project/add.d.ts +2 -2
  174. package/commands/project/add.js +6 -5
  175. package/commands/project/cloneApp.js +14 -19
  176. package/commands/project/create.js +1 -2
  177. package/commands/project/deploy.js +3 -3
  178. package/commands/project/dev/deprecatedFlow.js +9 -18
  179. package/commands/project/dev/index.js +19 -17
  180. package/commands/project/dev/unifiedFlow.js +11 -4
  181. package/commands/project/download.js +15 -15
  182. package/commands/project/installDeps.d.ts +2 -2
  183. package/commands/project/installDeps.js +9 -8
  184. package/commands/project/list.d.ts +4 -0
  185. package/commands/project/list.js +62 -0
  186. package/commands/project/listBuilds.js +11 -20
  187. package/commands/project/logs.js +21 -24
  188. package/commands/project/migrate.js +5 -2
  189. package/commands/project/migrateApp.js +9 -15
  190. package/commands/project/open.js +6 -13
  191. package/commands/project/upload.d.ts +2 -2
  192. package/commands/project/upload.js +17 -26
  193. package/commands/project/validate.js +6 -6
  194. package/commands/project/watch.js +13 -22
  195. package/commands/project.js +4 -2
  196. package/commands/remove.d.ts +4 -6
  197. package/commands/remove.js +12 -24
  198. package/commands/sandbox/__tests__/create.test.js +5 -5
  199. package/commands/sandbox/create.js +22 -32
  200. package/commands/sandbox/delete.js +38 -63
  201. package/commands/sandbox.js +2 -2
  202. package/commands/secret/addSecret.js +7 -17
  203. package/commands/secret/deleteSecret.js +10 -20
  204. package/commands/secret/listSecret.js +8 -10
  205. package/commands/secret/updateSecret.js +9 -17
  206. package/commands/secret.js +2 -2
  207. package/commands/testAccount/__tests__/delete.test.js +2 -4
  208. package/commands/testAccount/create.js +2 -5
  209. package/commands/testAccount/delete.d.ts +4 -3
  210. package/commands/testAccount/delete.js +155 -14
  211. package/commands/theme/generate-selectors.d.ts +4 -6
  212. package/commands/theme/generate-selectors.js +14 -152
  213. package/commands/theme/marketplace-validate.d.ts +4 -6
  214. package/commands/theme/marketplace-validate.js +14 -25
  215. package/commands/theme/preview.d.ts +4 -12
  216. package/commands/theme/preview.js +18 -183
  217. package/commands/theme.d.ts +2 -2
  218. package/commands/theme.js +19 -13
  219. package/commands/upload.d.ts +4 -12
  220. package/commands/upload.js +19 -169
  221. package/commands/watch.d.ts +4 -14
  222. package/commands/watch.js +23 -88
  223. package/lang/en.d.ts +863 -542
  224. package/lang/en.js +912 -595
  225. package/lang/en.lyaml +4 -4
  226. package/lib/__tests__/buildAccount.test.js +4 -3
  227. package/lib/__tests__/commonOpts.test.js +1 -1
  228. package/lib/__tests__/dependencyManagement.test.js +1 -1
  229. package/lib/__tests__/developerTestAccounts.test.js +3 -3
  230. package/lib/__tests__/npm.test.js +1 -1
  231. package/lib/__tests__/oauth.test.js +4 -4
  232. package/lib/__tests__/process.test.js +10 -5
  233. package/lib/__tests__/sandboxSync.test.js +8 -8
  234. package/lib/__tests__/sandboxes.test.js +8 -8
  235. package/lib/__tests__/serverlessLogs.test.js +1 -1
  236. package/lib/__tests__/usageTracking.test.js +5 -5
  237. package/lib/__tests__/validation.test.js +2 -1
  238. package/lib/__tests__/yargsUtils.test.js +83 -9
  239. package/lib/app/__tests__/migrate.test.js +5 -5
  240. package/lib/app/__tests__/migrate_legacy.test.js +1 -1
  241. package/lib/app/migrate.js +1 -1
  242. package/lib/app/migrate_legacy.js +20 -24
  243. package/lib/buildAccount.d.ts +2 -2
  244. package/lib/buildAccount.js +32 -64
  245. package/lib/commonOpts.d.ts +1 -1
  246. package/lib/commonOpts.js +25 -22
  247. package/lib/configMigrate.js +88 -9
  248. package/lib/configOptions.js +7 -0
  249. package/lib/constants.d.ts +15 -1
  250. package/lib/constants.js +19 -1
  251. package/lib/dependencyManagement.js +9 -27
  252. package/lib/developerTestAccounts.js +9 -23
  253. package/lib/doctor/Diagnosis.js +11 -23
  254. package/lib/doctor/DiagnosticInfoBuilder.js +12 -11
  255. package/lib/doctor/Doctor.js +42 -90
  256. package/lib/doctor/__tests__/Doctor.test.js +4 -4
  257. package/lib/errorHandlers/index.js +12 -20
  258. package/lib/errorHandlers/suppressError.js +11 -18
  259. package/lib/generateSelectors.js +1 -1
  260. package/lib/lang.js +6 -5
  261. package/lib/links.js +4 -4
  262. package/lib/middleware/__test__/commandTargetingUtils.test.js +99 -0
  263. package/lib/middleware/__test__/configMiddleware.test.js +11 -11
  264. package/lib/middleware/__test__/yargsChecksMiddleware.test.js +6 -8
  265. package/lib/middleware/autoUpdateMiddleware.d.ts +2 -1
  266. package/lib/middleware/autoUpdateMiddleware.js +12 -2
  267. package/lib/middleware/commandTargetingUtils.d.ts +8 -0
  268. package/lib/middleware/commandTargetingUtils.js +74 -0
  269. package/lib/middleware/configMiddleware.d.ts +1 -1
  270. package/lib/middleware/configMiddleware.js +21 -81
  271. package/lib/middleware/gitMiddleware.js +5 -1
  272. package/lib/middleware/notificationsMiddleware.js +5 -11
  273. package/lib/middleware/yargsChecksMiddleware.js +6 -9
  274. package/lib/npm.js +2 -2
  275. package/lib/oauth.js +5 -5
  276. package/lib/process.js +5 -4
  277. package/lib/projectProfiles.d.ts +1 -1
  278. package/lib/projectProfiles.js +2 -10
  279. package/lib/projects/__tests__/AppDevModeInterface.test.js +101 -135
  280. package/lib/projects/__tests__/DevServerManager.test.js +183 -0
  281. package/lib/projects/__tests__/LocalDevProcess.test.js +6 -5
  282. package/lib/projects/__tests__/LocalDevWebsocketServer.test.js +76 -45
  283. package/lib/projects/__tests__/UIExtensionsDevModeInterface.test.d.ts +1 -0
  284. package/lib/projects/__tests__/UIExtensionsDevModeInterface.test.js +161 -0
  285. package/lib/projects/__tests__/deploy.test.js +9 -9
  286. package/lib/projects/__tests__/localDevProjectHelpers.test.js +2 -0
  287. package/lib/projects/__tests__/platformVersion.test.js +8 -8
  288. package/lib/projects/__tests__/projects.test.js +12 -12
  289. package/lib/projects/__tests__/structure.test.js +3 -3
  290. package/lib/projects/__tests__/upload.test.d.ts +1 -0
  291. package/lib/projects/__tests__/upload.test.js +82 -0
  292. package/lib/projects/add/__tests__/legacyAddComponent.test.js +6 -6
  293. package/lib/projects/add/__tests__/v2AddComponent.test.d.ts +1 -0
  294. package/lib/projects/add/__tests__/{v3AddComponent.test.js → v2AddComponent.test.js} +39 -39
  295. package/lib/projects/add/{v3AddComponent.d.ts → v2AddComponent.d.ts} +1 -1
  296. package/lib/projects/add/{v3AddComponent.js → v2AddComponent.js} +5 -5
  297. package/lib/projects/create/__tests__/legacy.test.js +5 -5
  298. package/lib/projects/create/__tests__/v2.test.d.ts +1 -0
  299. package/lib/projects/create/__tests__/{v3.test.js → v2.test.js} +3 -3
  300. package/lib/projects/create/index.js +4 -4
  301. package/lib/projects/create/legacy.js +2 -2
  302. package/lib/projects/create/{v3.d.ts → v2.d.ts} +3 -3
  303. package/lib/projects/create/{v3.js → v2.js} +5 -5
  304. package/lib/projects/deploy.d.ts +1 -1
  305. package/lib/projects/deploy.js +2 -2
  306. package/lib/projects/localDev/AppDevModeInterface.d.ts +11 -3
  307. package/lib/projects/localDev/AppDevModeInterface.js +128 -115
  308. package/lib/projects/localDev/DevServerManager.d.ts +10 -29
  309. package/lib/projects/localDev/DevServerManager.js +20 -76
  310. package/lib/projects/localDev/DevServerManager_DEPRECATED.d.ts +40 -0
  311. package/lib/projects/localDev/DevServerManager_DEPRECATED.js +120 -0
  312. package/lib/projects/localDev/LocalDevLogger.js +10 -11
  313. package/lib/projects/localDev/{LocalDevManager.js → LocalDevManager_DEPRECATED.js} +10 -11
  314. package/lib/projects/localDev/LocalDevProcess.js +3 -2
  315. package/lib/projects/localDev/LocalDevState.d.ts +3 -0
  316. package/lib/projects/localDev/LocalDevState.js +9 -0
  317. package/lib/projects/localDev/LocalDevWebsocketServer.d.ts +4 -1
  318. package/lib/projects/localDev/LocalDevWebsocketServer.js +46 -16
  319. package/lib/projects/localDev/UIExtensionsDevModeInterface.d.ts +13 -0
  320. package/lib/projects/localDev/UIExtensionsDevModeInterface.js +37 -0
  321. package/lib/projects/localDev/helpers/account.d.ts +1 -1
  322. package/lib/projects/localDev/helpers/account.js +2 -2
  323. package/lib/projects/localDev/helpers/process.d.ts +1 -0
  324. package/lib/projects/localDev/helpers/process.js +15 -0
  325. package/lib/projects/localDev/helpers/project.d.ts +1 -0
  326. package/lib/projects/localDev/helpers/project.js +39 -3
  327. package/lib/projects/localDev/localDevWebsocketServerUtils.d.ts +3 -0
  328. package/lib/projects/localDev/localDevWebsocketServerUtils.js +9 -0
  329. package/lib/projects/platformVersion.d.ts +1 -1
  330. package/lib/projects/platformVersion.js +1 -1
  331. package/lib/projects/structure.d.ts +2 -2
  332. package/lib/projects/structure.js +6 -6
  333. package/lib/projects/upload.d.ts +2 -3
  334. package/lib/projects/upload.js +17 -9
  335. package/lib/projects/urls.d.ts +0 -1
  336. package/lib/projects/urls.js +0 -3
  337. package/lib/prompts/__tests__/downloadProjectPrompt.test.js +1 -0
  338. package/lib/prompts/__tests__/projectAddPrompt.test.js +10 -10
  339. package/lib/prompts/accountNamePrompt.js +14 -19
  340. package/lib/prompts/accountsPrompt.js +2 -2
  341. package/lib/prompts/cmsFieldPrompt.js +2 -2
  342. package/lib/prompts/createApiSamplePrompt.js +5 -5
  343. package/lib/prompts/createDeveloperTestAccountConfigPrompt.js +10 -1
  344. package/lib/prompts/createFunctionPrompt.js +14 -14
  345. package/lib/prompts/createModulePrompt.js +9 -9
  346. package/lib/prompts/createTemplatePrompt.js +2 -2
  347. package/lib/prompts/downloadProjectPrompt.js +5 -8
  348. package/lib/prompts/installAppPrompt.d.ts +1 -6
  349. package/lib/prompts/installAppPrompt.js +1 -6
  350. package/lib/prompts/personalAccessKeyPrompt.js +3 -3
  351. package/lib/prompts/previewPrompt.js +6 -6
  352. package/lib/prompts/projectAddPrompt.d.ts +2 -2
  353. package/lib/prompts/projectAddPrompt.js +7 -1
  354. package/lib/prompts/projectDevTargetAccountPrompt.js +20 -32
  355. package/lib/prompts/projectNamePrompt.js +4 -8
  356. package/lib/prompts/projectsLogsPrompt.js +2 -4
  357. package/lib/prompts/promptUtils.js +27 -9
  358. package/lib/prompts/sandboxesPrompt.js +7 -7
  359. package/lib/prompts/secretPrompt.js +3 -3
  360. package/lib/prompts/selectAppPrompt.js +3 -3
  361. package/lib/prompts/selectHubDBTablePrompt.js +9 -13
  362. package/lib/prompts/selectPublicAppForMigrationPrompt.js +15 -19
  363. package/lib/prompts/setAsDefaultAccountPrompt.js +4 -8
  364. package/lib/prompts/uploadPrompt.js +5 -5
  365. package/lib/sandboxSync.js +24 -41
  366. package/lib/sandboxes.js +19 -47
  367. package/lib/schema.js +3 -3
  368. package/lib/serverlessLogs.js +11 -13
  369. package/lib/theme/__tests__/migrate.test.js +6 -6
  370. package/lib/theme/migrate.js +2 -2
  371. package/lib/ui/SpinniesManager.d.ts +2 -0
  372. package/lib/ui/SpinniesManager.js +7 -0
  373. package/lib/ui/boxen.js +1 -2
  374. package/lib/ui/git.js +13 -10
  375. package/lib/ui/index.d.ts +6 -0
  376. package/lib/ui/index.js +55 -38
  377. package/lib/ui/serverlessFunctionLogs.js +9 -7
  378. package/lib/ui/uiMessages.d.ts +73 -0
  379. package/lib/ui/uiMessages.js +76 -0
  380. package/lib/usageTracking.js +7 -7
  381. package/lib/validation.js +20 -23
  382. package/lib/yargsUtils.d.ts +1 -1
  383. package/lib/yargsUtils.js +12 -5
  384. package/mcp-server/tools/cms/HsCreateModuleTool.d.ts +4 -4
  385. package/mcp-server/tools/index.js +4 -0
  386. package/mcp-server/tools/project/GetApiUsagePatternsByAppIdTool.d.ts +23 -0
  387. package/mcp-server/tools/project/GetApiUsagePatternsByAppIdTool.js +68 -0
  388. package/mcp-server/tools/project/GetApplicationInfoTool.d.ts +11 -0
  389. package/mcp-server/tools/project/GetApplicationInfoTool.js +49 -0
  390. package/mcp-server/tools/project/GetConfigValuesTool.js +2 -2
  391. package/mcp-server/tools/project/GuidedWalkthroughTool.d.ts +2 -2
  392. package/mcp-server/tools/project/__tests__/CreateProjectTool.test.js +1 -1
  393. package/mcp-server/tools/project/__tests__/GetApiUsagePatternsByAppIdTool.test.d.ts +1 -0
  394. package/mcp-server/tools/project/__tests__/GetApiUsagePatternsByAppIdTool.test.js +169 -0
  395. package/mcp-server/tools/project/__tests__/GetApplicationInfoTool.test.d.ts +1 -0
  396. package/mcp-server/tools/project/__tests__/GetApplicationInfoTool.test.js +115 -0
  397. package/mcp-server/utils/toolUsageTracking.js +2 -2
  398. package/package.json +8 -7
  399. package/types/Cms.d.ts +6 -6
  400. package/types/Yargs.d.ts +1 -1
  401. package/commands/app/__tests__/install.test.js +0 -47
  402. package/commands/app/install.d.ts +0 -8
  403. package/commands/app/install.js +0 -122
  404. package/lib/middleware/__test__/utils.test.js +0 -51
  405. package/lib/middleware/utils.d.ts +0 -8
  406. package/lib/middleware/utils.js +0 -14
  407. package/lib/projects/localDev/DevServerManagerV2.d.ts +0 -22
  408. package/lib/projects/localDev/DevServerManagerV2.js +0 -81
  409. /package/commands/{customObject/schema → cms}/__tests__/delete.test.d.ts +0 -0
  410. /package/commands/{__tests__ → cms/__tests__}/fetch.test.d.ts +0 -0
  411. /package/commands/{__tests__ → cms/__tests__}/function.test.d.ts +0 -0
  412. /package/commands/{__tests__ → cms/__tests__}/lint.test.d.ts +0 -0
  413. /package/commands/{__tests__ → cms/__tests__}/list.test.d.ts +0 -0
  414. /package/commands/{__tests__ → cms/__tests__}/mv.test.d.ts +0 -0
  415. /package/commands/{__tests__ → cms/__tests__}/theme.test.d.ts +0 -0
  416. /package/commands/{__tests__ → cms/function/__tests__}/logs.test.d.ts +0 -0
  417. /package/commands/{theme → cms/theme}/__tests__/generate-selectors.test.d.ts +0 -0
  418. /package/commands/{theme → cms/theme}/__tests__/generate-selectors.test.js +0 -0
  419. /package/commands/{theme → cms/theme}/__tests__/marketplace-validate.test.d.ts +0 -0
  420. /package/commands/{theme → cms/theme}/__tests__/preview.test.d.ts +0 -0
  421. /package/commands/{__tests__/remove.test.d.ts → customObject/__tests__/createSchema.test.d.ts} +0 -0
  422. /package/commands/{app/__tests__/install.test.d.ts → customObject/__tests__/deleteSchema.test.d.ts} +0 -0
  423. /package/commands/customObject/{schema/__tests__/create.test.d.ts → __tests__/fetch-all-schemas.test.d.ts} +0 -0
  424. /package/commands/customObject/{schema/__tests__/fetch-all.test.d.ts → __tests__/fetchSchema.test.d.ts} +0 -0
  425. /package/commands/customObject/{schema/__tests__/fetch.test.d.ts → __tests__/listSchemas.test.d.ts} +0 -0
  426. /package/commands/customObject/{schema/__tests__/list.test.d.ts → __tests__/updateSchema.test.d.ts} +0 -0
  427. /package/commands/{customObject/schema/__tests__/update.test.d.ts → project/__tests__/list.test.d.ts} +0 -0
  428. /package/{lib/middleware/__test__/utils.test.d.ts → commands/project/__tests__/validate.test.d.ts} +0 -0
  429. /package/{commands/create → lib/cmsAssets}/api-sample.d.ts +0 -0
  430. /package/{commands/create → lib/cmsAssets}/api-sample.js +0 -0
  431. /package/{commands/create → lib/cmsAssets}/app.d.ts +0 -0
  432. /package/{commands/create → lib/cmsAssets}/app.js +0 -0
  433. /package/{commands/create → lib/cmsAssets}/function.d.ts +0 -0
  434. /package/{commands/create → lib/cmsAssets}/function.js +0 -0
  435. /package/{commands/create → lib/cmsAssets}/index.d.ts +0 -0
  436. /package/{commands/create → lib/cmsAssets}/index.js +0 -0
  437. /package/{commands/create → lib/cmsAssets}/module.d.ts +0 -0
  438. /package/{commands/create → lib/cmsAssets}/module.js +0 -0
  439. /package/{commands/create → lib/cmsAssets}/react-app.d.ts +0 -0
  440. /package/{commands/create → lib/cmsAssets}/react-app.js +0 -0
  441. /package/{commands/create → lib/cmsAssets}/template.d.ts +0 -0
  442. /package/{commands/create → lib/cmsAssets}/template.js +0 -0
  443. /package/{commands/create → lib/cmsAssets}/vue-app.d.ts +0 -0
  444. /package/{commands/create → lib/cmsAssets}/vue-app.js +0 -0
  445. /package/{commands/create → lib/cmsAssets}/webpack-serverless.d.ts +0 -0
  446. /package/{commands/create → lib/cmsAssets}/webpack-serverless.js +0 -0
  447. /package/{commands/create → lib/cmsAssets}/website-theme.d.ts +0 -0
  448. /package/{commands/create → lib/cmsAssets}/website-theme.js +0 -0
  449. /package/lib/{projects/add/__tests__/v3AddComponent.test.d.ts → middleware/__test__/commandTargetingUtils.test.d.ts} +0 -0
  450. /package/lib/projects/{create/__tests__/v3.test.d.ts → __tests__/DevServerManager.test.d.ts} +0 -0
  451. /package/lib/projects/localDev/{LocalDevManager.d.ts → LocalDevManager_DEPRECATED.d.ts} +0 -0
package/lang/en.d.ts CHANGED
@@ -94,9 +94,13 @@ Global configuration replaces hubspot.config.yml, and you will be prompted to mi
94
94
  };
95
95
  readonly list: {
96
96
  readonly accounts: `${string}:`;
97
+ readonly defaultAccountTitle: string;
97
98
  readonly defaultAccount: (account: string) => string;
98
99
  readonly describe: "List names of accounts defined in config.";
99
100
  readonly configPath: (configPath: string) => string;
101
+ readonly overrideFilePathTitle: string;
102
+ readonly overrideFilePath: (overrideFilePath: string) => string;
103
+ readonly overrideAccount: (account: string) => string;
100
104
  readonly labels: {
101
105
  readonly accountId: "Account ID";
102
106
  readonly authType: "Auth Type";
@@ -122,6 +126,8 @@ Global configuration replaces hubspot.config.yml, and you will be prompted to mi
122
126
  readonly errors: {
123
127
  readonly accountNotFound: (specifiedAccount: string, configPath: string) => string;
124
128
  };
129
+ readonly accountOverride: (accountOverride: string) => string;
130
+ readonly accountOverrideCommands: `Use ${string} to change override accounts, or ${string} to remove the override and use your default account.`;
125
131
  readonly examples: {
126
132
  readonly default: "Select a HubSpot account to use as the default account";
127
133
  readonly idBased: "Set the default account to the account in the config with accountId equal to \"1234567\"";
@@ -143,6 +149,7 @@ Global configuration replaces hubspot.config.yml, and you will be prompted to mi
143
149
  readonly replaceDefaultAccount: "The removed account was the default account.";
144
150
  };
145
151
  readonly prompts: {
152
+ readonly deleteOverrideFile: (overrideFilePath: string, accountName: string) => string;
146
153
  readonly selectAccountToRemove: "Select an account to remove from the config";
147
154
  };
148
155
  readonly errors: {
@@ -162,12 +169,40 @@ Global configuration replaces hubspot.config.yml, and you will be prompted to mi
162
169
  readonly accountRemoved: (accountName: string) => string;
163
170
  };
164
171
  };
172
+ readonly removeOverride: {
173
+ readonly describe: (overrideFile: string) => string;
174
+ readonly accountOverride: (overrideFilePath: string, accountOverride: string) => string;
175
+ readonly prompts: {
176
+ readonly deleteOverrideFile: "Delete account override file?";
177
+ };
178
+ readonly success: "Removed the default account override file.";
179
+ readonly noOverrideFile: "No default account override file found in the current working directory. No action required.";
180
+ readonly errors: {
181
+ readonly globalConfigNotFound: `This command is only compatible with our new global config. Run ${string} to get started.`;
182
+ };
183
+ readonly options: {
184
+ readonly force: {
185
+ readonly describe: "Skip confirmation prompt when removing the override file";
186
+ };
187
+ };
188
+ };
165
189
  readonly info: {
166
- readonly accountId: (accountId: string) => string;
190
+ readonly accountId: (accountId: number) => string;
191
+ readonly defaultAccountTitle: string;
192
+ readonly configPath: (configPath: string) => string;
193
+ readonly defaultAccount: (accountName: string) => string;
194
+ readonly overrideFilePathTitle: string;
195
+ readonly overrideFilePath: (overrideFilePath: string) => string;
196
+ readonly overrideAccount: (accountName: string) => string;
167
197
  readonly describe: "Print information about the default account, or about the account specified with the \"account\" option.";
168
198
  readonly errors: {
169
199
  readonly notUsingPersonalAccessKey: "This command currently only supports fetching scopes for the personal access key auth type.";
170
200
  };
201
+ readonly options: {
202
+ readonly account: {
203
+ readonly describe: "Account name or id to show info for";
204
+ };
205
+ };
171
206
  readonly examples: {
172
207
  readonly default: "Print information for the default account";
173
208
  readonly idBased: "Print information for the account with accountId equal to \"1234567\"";
@@ -184,13 +219,37 @@ Global configuration replaces hubspot.config.yml, and you will be prompted to mi
184
219
  };
185
220
  readonly inactiveAccountsFound: {
186
221
  readonly one: "1 inactive account found:";
187
- readonly other: (count: string) => string;
222
+ readonly other: (count: number) => string;
188
223
  };
189
224
  readonly confirm: {
190
225
  readonly one: "Remove 1 inactive account from the CLI config?";
191
- readonly other: (count: string) => string;
226
+ readonly other: (count: number) => string;
192
227
  };
193
228
  readonly removeSuccess: (accountName: string) => string;
229
+ readonly replaceDefaultAccount: "The default account was removed.";
230
+ readonly defaultAccountOverride: (overrideFilePath: string) => string;
231
+ };
232
+ readonly createOverride: {
233
+ readonly describe: (hsAccountFileName: string) => string;
234
+ readonly success: (overrideFilePath: string) => string;
235
+ readonly accountOverride: (overrideFilePath: string, accountOverride: string) => string;
236
+ readonly prompts: {
237
+ readonly replaceOverrideFile: "Replace existing account override file?";
238
+ };
239
+ readonly errors: {
240
+ readonly globalConfigNotFound: `This command is only compatible with our new global config. Run ${string} to get started.`;
241
+ readonly accountNotFound: (configPath: string) => string;
242
+ };
243
+ readonly options: {
244
+ readonly account: {
245
+ readonly describe: "Name or ID of the account to create an override file for.";
246
+ };
247
+ };
248
+ readonly examples: {
249
+ readonly default: (hsAccountFileName: string) => string;
250
+ readonly idBased: (hsAccountFileName: string) => string;
251
+ readonly nameBased: (hsAccountFileName: string) => string;
252
+ };
194
253
  };
195
254
  };
196
255
  };
@@ -260,12 +319,307 @@ Global configuration replaces hubspot.config.yml, and you will be prompted to mi
260
319
  readonly describe: "Enable or disable automatic opening of the browser";
261
320
  };
262
321
  };
322
+ readonly errors: {
323
+ readonly invalidBoolean: (commandName: string, value: string) => string;
324
+ readonly invalidHTTPTimeout: "Invalid HTTP timeout value. Must be a number greater than 3000.";
325
+ };
263
326
  };
264
327
  };
265
328
  };
266
329
  readonly cms: {
267
- readonly describe: "Commands for working with the CMS.";
330
+ readonly describe: "Commands for managing CMS assets.";
268
331
  readonly subcommands: {
332
+ readonly template: {
333
+ readonly describe: "Commands for managing templates.";
334
+ readonly subcommands: {
335
+ readonly create: {
336
+ readonly describe: "Create a new CMS template.";
337
+ readonly errors: {
338
+ readonly unusablePath: (path: string) => string;
339
+ };
340
+ readonly positionals: {
341
+ readonly name: "Name of the new template.";
342
+ readonly dest: "Destination folder for the new template.";
343
+ };
344
+ readonly options: {
345
+ readonly templateType: "Template type for template creation.";
346
+ };
347
+ };
348
+ };
349
+ };
350
+ readonly webpack: {
351
+ readonly describe: "Commands for managing webpack.";
352
+ readonly subcommands: {
353
+ readonly create: {
354
+ readonly describe: "Create a new webpack bundle.";
355
+ readonly errors: {
356
+ readonly unusablePath: (path: string) => string;
357
+ };
358
+ readonly positionals: {
359
+ readonly dest: "Destination folder for the new webpack bundle.";
360
+ };
361
+ };
362
+ };
363
+ };
364
+ readonly theme: {
365
+ readonly describe: "Commands for managing themes.";
366
+ readonly subcommands: {
367
+ readonly create: {
368
+ readonly describe: "Create a new theme.";
369
+ readonly errors: {
370
+ readonly unusablePath: (path: string) => string;
371
+ };
372
+ readonly positionals: {
373
+ readonly dest: "Destination folder for the new theme.";
374
+ };
375
+ };
376
+ readonly generateSelectors: {
377
+ readonly describe: "Automatically generates an editor-preview.json file for the given theme. The selectors this command generates are not perfect, so please edit editor-preview.json after running.";
378
+ readonly errors: {
379
+ readonly invalidPath: (themePath: string) => string;
380
+ readonly fieldsNotFound: "Unable to find theme's fields.json.";
381
+ readonly noSelectorsFound: "No selectors found.";
382
+ };
383
+ readonly success: (themePath: string, selectorsPath: string) => string;
384
+ readonly positionals: {
385
+ readonly path: "The path of the theme you'd like to generate an editor-preview.json for.";
386
+ };
387
+ };
388
+ readonly marketplaceValidate: {
389
+ readonly describe: "Validate a theme for the marketplace.";
390
+ readonly errors: {
391
+ readonly invalidPath: (path: string) => string;
392
+ };
393
+ readonly logs: {
394
+ readonly validatingTheme: (path: string) => string;
395
+ };
396
+ readonly results: {
397
+ readonly required: "Required validation results:";
398
+ readonly recommended: "Recommended validation results:";
399
+ readonly warnings: {
400
+ readonly file: (file: string) => string;
401
+ readonly lineNumber: (line: string) => string;
402
+ };
403
+ readonly noErrors: "No errors";
404
+ };
405
+ readonly positionals: {
406
+ readonly path: {
407
+ readonly describe: "Path to the theme within the Design Manager.";
408
+ };
409
+ };
410
+ };
411
+ readonly preview: {
412
+ readonly describe: "Upload and watch a theme directory on your computer for changes and start a local development server to preview theme changes on a site.";
413
+ readonly errors: {
414
+ readonly invalidPath: (path: string) => string;
415
+ readonly noThemeComponents: "Your project has no theme components available to preview.";
416
+ readonly uploadFailed: (src: string, dest: string) => string;
417
+ };
418
+ readonly positionals: {
419
+ readonly src: "Path to the local directory your theme is in, relative to your current working directory";
420
+ readonly dest: "Path in HubSpot Design Tools. Can be a net new path. If you wish to preview a site page using your theme changes it must match the path of the theme used by the site.";
421
+ };
422
+ readonly options: {
423
+ readonly notify: "Log to specified file when a watch task is triggered and after workers have gone idle. Ex. --notify path/to/file";
424
+ readonly noSsl: "Disable HTTPS";
425
+ readonly port: "The port on which to start the local server";
426
+ };
427
+ readonly initialUploadProgressBar: {
428
+ readonly start: "Starting...";
429
+ readonly uploading: "Uploading...";
430
+ readonly finish: "Complete!";
431
+ };
432
+ readonly logs: {
433
+ readonly processExited: "Stopping dev server...";
434
+ };
435
+ };
436
+ };
437
+ };
438
+ readonly app: {
439
+ readonly describe: "Commands for managing CMS apps.";
440
+ readonly subcommands: {
441
+ readonly create: {
442
+ readonly describe: "Create a new CMS app.";
443
+ readonly errors: {
444
+ readonly unsupportedAssetType: (assetType: string, supportedAssetTypes: string) => string;
445
+ readonly unusablePath: (path: string) => string;
446
+ };
447
+ readonly positionals: {
448
+ readonly type: "Type of the new app.";
449
+ readonly name: "Name of the new app.";
450
+ readonly dest: "Destination folder for the new app.";
451
+ };
452
+ };
453
+ };
454
+ };
455
+ readonly list: {
456
+ readonly describe: "List remote contents of a directory in the HubSpot CMS.";
457
+ readonly gettingPathContents: (path: string) => string;
458
+ readonly noFilesFoundAtPath: (path: string) => string;
459
+ readonly positionals: {
460
+ readonly path: {
461
+ readonly describe: "Remote directory to list contents";
462
+ };
463
+ };
464
+ };
465
+ readonly module: {
466
+ readonly describe: "Commands for working with modules, including marketplace validation with the marketplace-validate subcommand.";
467
+ readonly subcommands: {
468
+ readonly create: {
469
+ readonly describe: "Create a new CMS module.";
470
+ readonly errors: {
471
+ readonly unusablePath: (path: string) => string;
472
+ };
473
+ readonly positionals: {
474
+ readonly name: "Name of the new module.";
475
+ readonly dest: "Destination folder for the new module.";
476
+ };
477
+ readonly options: {
478
+ readonly moduleLabel: "Label for the new module.";
479
+ readonly reactType: "Whether to create a React module.";
480
+ readonly contentTypes: (contentTypes: readonly string[]) => string;
481
+ readonly global: "Whether to create a global module.";
482
+ readonly availableForNewContent: "Whether to create a module available for new content.";
483
+ };
484
+ };
485
+ readonly marketplaceValidate: {
486
+ readonly describe: "Validate a module for the marketplace. Make sure to include the suffix .module in the path to the module within the Design Manager.";
487
+ readonly errors: {
488
+ readonly invalidPath: (path: string) => string;
489
+ };
490
+ readonly logs: {
491
+ readonly validatingModule: (path: string) => string;
492
+ };
493
+ readonly results: {
494
+ readonly required: "Required validation results:";
495
+ readonly recommended: "Recommended validation results:";
496
+ readonly warnings: {
497
+ readonly file: (file: string) => string;
498
+ readonly lineNumber: (line: string) => string;
499
+ };
500
+ readonly noErrors: "No errors";
501
+ };
502
+ readonly positionals: {
503
+ readonly src: "Path to the module within the Design Manager.";
504
+ };
505
+ };
506
+ };
507
+ };
508
+ readonly upload: {
509
+ readonly describe: "Upload a folder or file from your computer to the HubSpot CMS.";
510
+ readonly errors: {
511
+ readonly destinationRequired: "A destination path needs to be passed";
512
+ readonly fileIgnored: (path: string) => string;
513
+ readonly invalidPath: (path: string) => string;
514
+ readonly uploadFailed: (src: string, dest: string) => string;
515
+ readonly someFilesFailed: (dest: string) => string;
516
+ readonly deleteFailed: (path: string, accountId: number) => string;
517
+ };
518
+ readonly options: {
519
+ readonly options: "Options to pass to javascript fields files";
520
+ readonly saveOutput: "If true, saves all output from javascript fields files as 'fields.output.json'.";
521
+ readonly convertFields: "If true, converts any javascript fields files contained in module folder or project root.";
522
+ readonly clean: "Will delete the destination directory and its contents before uploading. This will also clear the global content associated with any global partial templates and modules.";
523
+ readonly force: "Skips confirmation prompts when doing a clean upload.";
524
+ };
525
+ readonly previewUrl: (previewUrl: string) => string;
526
+ readonly positionals: {
527
+ readonly src: "Path to the local file, relative to your current working directory.";
528
+ readonly dest: "Path in HubSpot Design Tools, can be a net new path.";
529
+ };
530
+ readonly success: {
531
+ readonly fileUploaded: (src: string, dest: string, accountId: number) => string;
532
+ readonly uploadComplete: (dest: string) => string;
533
+ };
534
+ readonly uploading: (src: string, dest: string, accountId: number) => string;
535
+ readonly notUploaded: (src: string) => string;
536
+ readonly cleaning: (filePath: string, accountId: number) => string;
537
+ readonly confirmCleanUpload: (filePath: string, accountId: number) => string;
538
+ };
539
+ readonly delete: {
540
+ readonly describe: "Delete a file or folder from the HubSpot CMS.";
541
+ readonly deleted: (path: string, accountId: number) => string;
542
+ readonly errors: {
543
+ readonly deleteFailed: (path: string, accountId: number) => string;
544
+ };
545
+ readonly positionals: {
546
+ readonly path: "Remote hubspot path";
547
+ };
548
+ };
549
+ readonly watch: {
550
+ readonly describe: "Watch a directory on your computer for changes and upload the changed files to the HubSpot CMS.";
551
+ readonly errors: {
552
+ readonly folderFailed: (src: string, dest: string, accountId: number) => string;
553
+ readonly fileFailed: (file: string, dest: string, accountId: number) => string;
554
+ readonly destinationRequired: "A destination directory needs to be passed";
555
+ readonly invalidPath: (path: string) => string;
556
+ };
557
+ readonly options: {
558
+ readonly disableInitial: "Disable the initial upload when watching a directory (default)";
559
+ readonly initialUpload: "Upload directory before watching for updates";
560
+ readonly notify: "Log to specified file when a watch task is triggered and after workers have gone idle. Ex. --notify path/to/file";
561
+ readonly remove: "Will cause watch to delete files in your HubSpot account that are not found locally.";
562
+ readonly convertFields: "If true, converts any javascript fields files contained in module folder or project root.";
563
+ readonly saveOutput: "If true, saves all output from javascript fields files as 'fields.output.json'.";
564
+ readonly options: "Options to pass to javascript fields files";
565
+ };
566
+ readonly positionals: {
567
+ readonly src: "Path to the local directory your files are in, relative to your current working directory";
568
+ readonly dest: "Path in HubSpot Design Tools. Can be a net new path";
569
+ };
570
+ readonly warnings: {
571
+ readonly disableInitial: `Passing the "${string}" option is no longer necessary. Running "${string}" no longer uploads the watched directory by default.`;
572
+ readonly initialUpload: `To upload the directory run "${string}" beforehand or add the "${string}" option when running "${string}".`;
573
+ readonly notUploaded: (path: string) => string;
574
+ };
575
+ };
576
+ readonly fetch: {
577
+ readonly describe: "Fetch a file, directory or module from HubSpot and write to a path on your computer.";
578
+ readonly errors: {
579
+ readonly sourceRequired: "A source to fetch is required.";
580
+ };
581
+ readonly options: {
582
+ readonly staging: {
583
+ readonly describe: "Retrieve staged changes for project";
584
+ };
585
+ readonly assetVersion: {
586
+ readonly describe: "Specify what version of a default asset to fetch";
587
+ };
588
+ };
589
+ readonly positionals: {
590
+ readonly dest: {
591
+ readonly describe: "Local directory you would like the files to be placed in, relative to your current working directory";
592
+ };
593
+ readonly src: {
594
+ readonly describe: "Path in HubSpot Design Tools";
595
+ };
596
+ };
597
+ };
598
+ readonly lint: {
599
+ readonly issuesFound: (count: number) => string;
600
+ readonly groupName: (path: string) => string;
601
+ readonly positionals: {
602
+ readonly path: {
603
+ readonly describe: "Local folder to lint";
604
+ };
605
+ };
606
+ };
607
+ readonly mv: {
608
+ readonly describe: "Move a remote file or folder in HubSpot. This feature is currently in beta and the CLI contract is subject to change.";
609
+ readonly errors: {
610
+ readonly sourcePathExists: (srcPath: string, destPath: string) => string;
611
+ readonly moveFailed: (srcPath: string, destPath: string, accountId: number) => string;
612
+ };
613
+ readonly move: (srcPath: string, destPath: string, accountId: number) => string;
614
+ readonly positionals: {
615
+ readonly srcPath: {
616
+ readonly describe: "Remote hubspot path";
617
+ };
618
+ readonly destPath: {
619
+ readonly describe: "Remote hubspot path";
620
+ };
621
+ };
622
+ };
269
623
  readonly lighthouseScore: {
270
624
  readonly describe: "Score a theme using Google lighthouse.";
271
625
  readonly examples: {
@@ -280,6 +634,9 @@ Global configuration replaces hubspot.config.yml, and you will be prompted to mi
280
634
  readonly pageTemplateScoreTitle: "Page template scores";
281
635
  readonly lighthouseLinksTitle: "Lighthouse links";
282
636
  readonly failedTemplatePathsTitle: "The following templates could not be scored";
637
+ readonly themeToCheckTitle: (themeToCheck: string, target: string) => string;
638
+ readonly themeTitle: (themeToCheck: string) => string;
639
+ readonly poweredByLink: `Powered by ${string}`;
283
640
  };
284
641
  readonly errors: {
285
642
  readonly targetOptionRequired: "[--target] is required for detailed view";
@@ -319,6 +676,124 @@ Global configuration replaces hubspot.config.yml, and you will be prompted to mi
319
676
  readonly invalidName: "Module not found with that name, please check the spelling of the module you are trying to download.";
320
677
  };
321
678
  };
679
+ readonly function: {
680
+ readonly describe: "Commands for managing CMS serverless functions.";
681
+ readonly subcommands: {
682
+ readonly create: {
683
+ readonly describe: "Create a new CMS serverless function.";
684
+ readonly errors: {
685
+ readonly unusablePath: (path: string) => string;
686
+ };
687
+ readonly positionals: {
688
+ readonly name: "Name of the function";
689
+ readonly dest: "Destination folder for the function";
690
+ };
691
+ readonly options: {
692
+ readonly functionsFolder: "Folder to create functions in";
693
+ readonly filename: "Filename for the function";
694
+ readonly endpointMethod: "HTTP method for the function endpoint";
695
+ readonly endpointPath: "API endpoint path for the function";
696
+ };
697
+ };
698
+ readonly logs: {
699
+ readonly describe: "View logs for a CMS serverless function.";
700
+ readonly errors: {
701
+ readonly noLogsFound: (functionPath: string, accountId: number) => string;
702
+ };
703
+ readonly examples: {
704
+ readonly default: "Get 5 most recent logs for function residing at /_hcms/api/my-endpoint";
705
+ readonly follow: "Poll for and output logs for function residing at /_hcms/api/my-endpoint immediately upon new execution";
706
+ readonly limit: "Get 10 most recent logs for function residing at /_hcms/api/my-endpoint";
707
+ };
708
+ readonly endpointPrompt: "Enter a serverless function endpoint:";
709
+ readonly gettingLogs: (latest: boolean | undefined, functionPath: string) => string;
710
+ readonly options: {
711
+ readonly compact: {
712
+ readonly describe: "output compact logs";
713
+ };
714
+ readonly follow: {
715
+ readonly describe: "follow logs";
716
+ };
717
+ readonly latest: {
718
+ readonly describe: "retrieve most recent log only";
719
+ };
720
+ readonly limit: {
721
+ readonly describe: "limit the number of logs to output";
722
+ };
723
+ };
724
+ readonly positionals: {
725
+ readonly endpoint: {
726
+ readonly describe: "Serverless function endpoint";
727
+ };
728
+ };
729
+ readonly tailLogs: (functionPath: string, accountId: string) => string;
730
+ };
731
+ readonly deploy: {
732
+ readonly debug: {
733
+ readonly startingBuildAndDeploy: (functionPath: string) => string;
734
+ };
735
+ readonly errors: {
736
+ readonly buildError: (details: string) => string;
737
+ readonly noPackageJson: (functionPath: string) => string;
738
+ readonly notFunctionsFolder: (functionPath: string) => string;
739
+ };
740
+ readonly examples: {
741
+ readonly default: "Build and deploy a new bundle for all functions within the myFunctionFolder.functions folder";
742
+ };
743
+ readonly loading: (functionPath: string, account: string) => string;
744
+ readonly loadingFailed: (functionPath: string, account: string) => string;
745
+ readonly positionals: {
746
+ readonly path: {
747
+ readonly describe: "Path to the \".functions\" folder";
748
+ };
749
+ };
750
+ readonly success: {
751
+ readonly deployed: (functionPath: string, accountId: number, buildTimeSeconds: string | 0) => string;
752
+ };
753
+ };
754
+ readonly list: {
755
+ readonly debug: {
756
+ readonly gettingFunctions: "Getting currently deployed functions";
757
+ };
758
+ readonly describe: "List the currently deployed CMS serverless functions.";
759
+ readonly info: {
760
+ readonly noFunctions: "No functions found";
761
+ };
762
+ readonly options: {
763
+ readonly json: {
764
+ readonly describe: "output raw json data";
765
+ };
766
+ };
767
+ };
768
+ readonly server: {
769
+ readonly debug: {
770
+ readonly startingServer: (functionPath: string) => string;
771
+ };
772
+ readonly examples: {
773
+ readonly default: "Run a local function test server.";
774
+ };
775
+ readonly options: {
776
+ readonly contact: {
777
+ readonly describe: "Pass contact data to the test function";
778
+ };
779
+ readonly logOutput: {
780
+ readonly describe: "Output the response body from the serverless function execution (It is suggested not to use this in production environments as it can reveal any secure data returned by the function in logs)";
781
+ };
782
+ readonly port: {
783
+ readonly describe: "Port to run the test server on";
784
+ };
785
+ readonly watch: {
786
+ readonly describe: "Watch the specified .functions folder for changes and restart the server";
787
+ };
788
+ };
789
+ readonly positionals: {
790
+ readonly path: {
791
+ readonly describe: "Path to local .functions folder";
792
+ };
793
+ };
794
+ };
795
+ };
796
+ };
322
797
  };
323
798
  };
324
799
  readonly create: {
@@ -398,10 +873,13 @@ Global configuration replaces hubspot.config.yml, and you will be prompted to mi
398
873
  };
399
874
  };
400
875
  readonly customObject: {
401
- readonly betaMessage: `${string} The Custom Object CLI is currently in beta and is subject to change.`;
876
+ readonly betaMessage: "The Custom Object CLI is currently in beta and is subject to change.";
402
877
  readonly describe: "Commands for managing custom objects.";
403
- readonly seeMoreLink: "View our docs to find out more.";
878
+ readonly seeMoreLink: string;
404
879
  readonly subcommands: {
880
+ readonly schema: {
881
+ readonly describe: "Commands for managing custom object schemas.";
882
+ };
405
883
  readonly create: {
406
884
  readonly describe: "Create custom object instances.";
407
885
  readonly errors: {
@@ -424,122 +902,117 @@ Global configuration replaces hubspot.config.yml, and you will be prompted to mi
424
902
  readonly inputName: "[--name] Enter the name of the schema for the custom object(s) you'd like to create:";
425
903
  readonly inputPath: "[--path] Enter the path to the JSON file containing the object definitions:";
426
904
  };
427
- readonly schema: {
428
- readonly describe: "Commands for managing custom object schemas.";
429
- readonly subcommands: {
430
- readonly create: {
431
- readonly describe: "Create a custom object schema.";
432
- readonly errors: {
433
- readonly invalidSchema: "The schema definition is invalid. Please check the schema and try again.";
434
- readonly creationFailed: (definition: string) => string;
435
- };
436
- readonly options: {
437
- readonly definition: {
438
- readonly describe: "Local path to the JSON file containing the schema definition";
439
- };
440
- };
441
- readonly success: {
442
- readonly schemaCreated: (accountId: string) => string;
443
- readonly schemaViewable: (url: string) => string;
444
- };
905
+ readonly createSchema: {
906
+ readonly describe: "Create a custom object schema.";
907
+ readonly errors: {
908
+ readonly invalidSchema: "The schema definition is invalid. Please check the schema and try again.";
909
+ readonly creationFailed: (definition: string) => string;
910
+ };
911
+ readonly options: {
912
+ readonly definition: {
913
+ readonly describe: "Local path to the JSON file containing the schema definition";
445
914
  };
446
- readonly delete: {
447
- readonly describe: "Delete a custom object schema.";
448
- readonly errors: {
449
- readonly delete: (name: string) => string;
450
- };
451
- readonly examples: {
452
- readonly default: "Delete \"schemaName\" schema";
453
- };
454
- readonly positionals: {
455
- readonly name: {
456
- readonly describe: "Name of the target schema";
457
- };
458
- };
459
- readonly options: {
460
- readonly force: {
461
- readonly describe: "Force the deletion of the schema.";
462
- };
463
- };
464
- readonly success: {
465
- readonly delete: (name: string) => string;
466
- };
467
- readonly confirmDelete: (name: string) => string;
468
- readonly deleteCancelled: (name: string) => string;
469
- readonly selectSchema: "Which schema would you like to delete?";
915
+ };
916
+ readonly success: {
917
+ readonly schemaCreated: (accountId: string) => string;
918
+ readonly schemaViewable: (url: string) => string;
919
+ };
920
+ };
921
+ readonly deleteSchema: {
922
+ readonly describe: "Delete a custom object schema.";
923
+ readonly errors: {
924
+ readonly delete: (name: string) => string;
925
+ };
926
+ readonly examples: {
927
+ readonly default: "Delete \"schemaName\" schema";
928
+ };
929
+ readonly positionals: {
930
+ readonly name: {
931
+ readonly describe: "Name of the target schema";
470
932
  };
471
- readonly fetchAll: {
472
- readonly describe: "Fetch all custom object schemas for an account.";
473
- readonly errors: {
474
- readonly fetch: "Unable to fetch schemas";
475
- };
476
- readonly examples: {
477
- readonly default: "Fetch all schemas for an account and put them in the current working directory";
478
- readonly specifyPath: "Fetch all schemas for an account and put them in a directory named my/folder";
479
- };
480
- readonly positionals: {
481
- readonly dest: {
482
- readonly describe: "Local folder where schemas will be written";
483
- };
484
- };
485
- readonly success: {
486
- readonly fetch: (path: string) => string;
487
- };
488
- readonly inputDest: "Where would you like to save the schemas?";
933
+ };
934
+ readonly options: {
935
+ readonly force: {
936
+ readonly describe: "Force the deletion of the schema.";
489
937
  };
490
- readonly fetch: {
491
- readonly describe: "Fetch a custom object schema.";
492
- readonly errors: {
493
- readonly fetch: (name: string) => string;
494
- };
495
- readonly examples: {
496
- readonly default: "Fetch \"schemaId\" schema and put it in the current working directory";
497
- readonly specifyPath: "Fetch \"schemaId\" schema and put it in a directory named my/folder";
498
- };
499
- readonly positionals: {
500
- readonly dest: {
501
- readonly describe: "Local folder where schema will be written";
502
- };
503
- readonly name: {
504
- readonly describe: "Name of the target schema";
505
- };
506
- };
507
- readonly selectSchema: "Which schema would you like to fetch?";
508
- readonly inputDest: "What would you like to name the destination file?";
509
- readonly success: {
510
- readonly save: (name: string, path: string) => string;
511
- readonly savedToPath: (path: string) => string;
512
- };
938
+ };
939
+ readonly success: {
940
+ readonly delete: (name: string) => string;
941
+ };
942
+ readonly confirmDelete: (name: string) => string;
943
+ readonly deleteCancelled: (name: string) => string;
944
+ readonly selectSchema: "Which schema would you like to delete?";
945
+ };
946
+ readonly fetchAllSchemas: {
947
+ readonly describe: "Fetch all custom object schemas for an account.";
948
+ readonly errors: {
949
+ readonly fetch: "Unable to fetch schemas";
950
+ };
951
+ readonly examples: {
952
+ readonly default: "Fetch all schemas for an account and put them in the current working directory";
953
+ readonly specifyPath: "Fetch all schemas for an account and put them in a directory named my/folder";
954
+ };
955
+ readonly positionals: {
956
+ readonly dest: {
957
+ readonly describe: "Local folder where schemas will be written";
958
+ };
959
+ };
960
+ readonly success: {
961
+ readonly fetch: (path: string) => string;
962
+ };
963
+ readonly inputDest: "Where would you like to save the schemas?";
964
+ };
965
+ readonly fetchSchema: {
966
+ readonly describe: "Fetch a custom object schema.";
967
+ readonly errors: {
968
+ readonly fetch: (name: string) => string;
969
+ };
970
+ readonly examples: {
971
+ readonly default: "Fetch \"schemaId\" schema and put it in the current working directory";
972
+ readonly specifyPath: "Fetch \"schemaId\" schema and put it in a directory named my/folder";
973
+ };
974
+ readonly positionals: {
975
+ readonly dest: {
976
+ readonly describe: "Local folder where schema will be written";
977
+ };
978
+ readonly name: {
979
+ readonly describe: "Name of the target schema";
513
980
  };
514
- readonly list: {
515
- readonly describe: "List custom object schemas.";
516
- readonly errors: {
517
- readonly list: "Unable to list schemas";
518
- };
981
+ };
982
+ readonly selectSchema: "Which schema would you like to fetch?";
983
+ readonly inputDest: "What would you like to name the destination file?";
984
+ readonly success: {
985
+ readonly save: (name: string, path: string) => string;
986
+ readonly savedToPath: (path: string) => string;
987
+ };
988
+ };
989
+ readonly listSchemas: {
990
+ readonly describe: "List custom object schemas.";
991
+ readonly errors: {
992
+ readonly list: "Unable to list schemas";
993
+ };
994
+ };
995
+ readonly updateSchema: {
996
+ readonly describe: "Update an existing custom object schema.";
997
+ readonly errors: {
998
+ readonly invalidSchema: "The schema definition is invalid. Please check the schema and try again.";
999
+ readonly update: (definition: string) => string;
1000
+ };
1001
+ readonly options: {
1002
+ readonly path: {
1003
+ readonly describe: "Local path to the JSON file containing the schema definition";
519
1004
  };
520
- readonly update: {
521
- readonly describe: "Update an existing custom object schema.";
522
- readonly errors: {
523
- readonly invalidSchema: "The schema definition is invalid. Please check the schema and try again.";
524
- readonly update: (definition: string) => string;
525
- };
526
- readonly options: {
527
- readonly path: {
528
- readonly describe: "Local path to the JSON file containing the schema definition";
529
- };
530
- };
531
- readonly positionals: {
532
- readonly name: {
533
- readonly describe: "Name of the target schema";
534
- };
535
- };
536
- readonly success: {
537
- readonly update: (accountId: string) => string;
538
- readonly viewAtUrl: (url: string) => string;
539
- };
540
- readonly selectSchema: "Which schema would you like to update?";
1005
+ };
1006
+ readonly positionals: {
1007
+ readonly name: {
1008
+ readonly describe: "Name of the target schema";
541
1009
  };
542
1010
  };
1011
+ readonly success: {
1012
+ readonly update: (accountId: string) => string;
1013
+ readonly viewAtUrl: (url: string) => string;
1014
+ };
1015
+ readonly selectSchema: "Which schema would you like to update?";
543
1016
  };
544
1017
  };
545
1018
  };
@@ -554,28 +1027,6 @@ Global configuration replaces hubspot.config.yml, and you will be prompted to mi
554
1027
  };
555
1028
  readonly outputWritten: (filename: string) => string;
556
1029
  };
557
- readonly fetch: {
558
- readonly describe: "Fetch a file, directory or module from HubSpot and write to a path on your computer.";
559
- readonly errors: {
560
- readonly sourceRequired: "A source to fetch is required.";
561
- };
562
- readonly options: {
563
- readonly staging: {
564
- readonly describe: "Retrieve staged changes for project";
565
- };
566
- readonly assetVersion: {
567
- readonly describe: "Specify what version of a default asset to fetch";
568
- };
569
- };
570
- readonly positionals: {
571
- readonly dest: {
572
- readonly describe: "Local directory you would like the files to be placed in, relative to your current working directory";
573
- };
574
- readonly src: {
575
- readonly describe: "Path in HubSpot Design Tools";
576
- };
577
- };
578
- };
579
1030
  readonly filemanager: {
580
1031
  readonly describe: "Commands for managing files in the File Manager.";
581
1032
  readonly subcommands: {
@@ -608,7 +1059,7 @@ Global configuration replaces hubspot.config.yml, and you will be prompted to mi
608
1059
  readonly uploadingFailed: "Uploading failed";
609
1060
  };
610
1061
  readonly logs: {
611
- readonly uploading: (src: string, dest: string, accountId: string) => string;
1062
+ readonly uploading: (src: string, dest: string, accountId: number) => string;
612
1063
  };
613
1064
  readonly positionals: {
614
1065
  readonly dest: {
@@ -619,90 +1070,21 @@ Global configuration replaces hubspot.config.yml, and you will be prompted to mi
619
1070
  };
620
1071
  };
621
1072
  readonly success: {
622
- readonly upload: (src: string, dest: string, accountId: string) => string;
1073
+ readonly upload: (src: string, dest: string, accountId: number) => string;
623
1074
  readonly uploadComplete: (dest: string) => string;
624
1075
  };
625
1076
  };
626
1077
  };
627
1078
  };
628
- readonly function: {
629
- readonly describe: "Commands for managing CMS serverless functions.";
630
- readonly subcommands: {
631
- readonly deploy: {
632
- readonly debug: {
633
- readonly startingBuildAndDeploy: (functionPath: string) => string;
634
- };
635
- readonly errors: {
636
- readonly buildError: (details: string) => string;
637
- readonly noPackageJson: (functionPath: string) => string;
638
- readonly notFunctionsFolder: (functionPath: string) => string;
639
- };
640
- readonly examples: {
641
- readonly default: "Build and deploy a new bundle for all functions within the myFunctionFolder.functions folder";
642
- };
643
- readonly loading: (functionPath: string, account: string) => string;
644
- readonly loadingFailed: (functionPath: string, account: string) => string;
645
- readonly positionals: {
646
- readonly path: {
647
- readonly describe: "Path to the \".functions\" folder";
648
- };
649
- };
650
- readonly success: {
651
- readonly deployed: (functionPath: string, accountId: string, buildTimeSeconds: string) => string;
652
- };
653
- };
654
- readonly list: {
655
- readonly debug: {
656
- readonly gettingFunctions: "Getting currently deployed functions";
657
- };
658
- readonly describe: "List the currently deployed CMS serverless functions.";
659
- readonly info: {
660
- readonly noFunctions: "No functions found";
661
- };
662
- readonly options: {
663
- readonly json: {
664
- readonly describe: "output raw json data";
665
- };
666
- };
667
- };
668
- readonly server: {
669
- readonly debug: {
670
- readonly startingServer: (functionPath: string) => string;
671
- };
672
- readonly examples: {
673
- readonly default: "Run a local function test server.";
674
- };
675
- readonly options: {
676
- readonly contact: {
677
- readonly describe: "Pass contact data to the test function";
678
- };
679
- readonly logOutput: {
680
- readonly describe: "Output the response body from the serverless function execution (It is suggested not to use this in production environments as it can reveal any secure data returned by the function in logs)";
681
- };
682
- readonly port: {
683
- readonly describe: "Port to run the test server on";
684
- };
685
- readonly watch: {
686
- readonly describe: "Watch the specified .functions folder for changes and restart the server";
687
- };
688
- };
689
- readonly positionals: {
690
- readonly path: {
691
- readonly describe: "Path to local .functions folder";
692
- };
693
- };
694
- };
695
- };
696
- };
697
1079
  readonly hubdb: {
698
1080
  readonly describe: "Commands for managing HubDB tables.";
699
1081
  readonly subcommands: {
700
1082
  readonly clear: {
701
1083
  readonly describe: "Clear all rows in a HubDB table.";
702
1084
  readonly logs: {
703
- readonly removedRows: (deletedRowCount: string, tableId: string) => string;
704
- readonly rowCount: (tableId: string, rowCount: string) => string;
705
- readonly tableEmpty: (tableId: string) => string;
1085
+ readonly removedRows: (deletedRowCount: number, tableId: number) => string;
1086
+ readonly rowCount: (tableId: number, rowCount: number) => string;
1087
+ readonly tableEmpty: (tableId: number) => string;
706
1088
  };
707
1089
  readonly positionals: {
708
1090
  readonly tableId: {
@@ -724,14 +1106,14 @@ Global configuration replaces hubspot.config.yml, and you will be prompted to mi
724
1106
  };
725
1107
  };
726
1108
  readonly success: {
727
- readonly create: (tableId: string, accountId: string, rowCount: string) => string;
1109
+ readonly create: (tableId: string, accountId: number, rowCount: number) => string;
728
1110
  };
729
1111
  };
730
1112
  readonly delete: {
731
1113
  readonly describe: "Delete a HubDB table.";
732
- readonly shouldDeleteTable: (tableId: string) => string;
1114
+ readonly shouldDeleteTable: (tableId: number) => string;
733
1115
  readonly errors: {
734
- readonly delete: (tableId: string) => string;
1116
+ readonly delete: (tableId: number | "") => string;
735
1117
  };
736
1118
  readonly positionals: {
737
1119
  readonly tableId: {
@@ -744,7 +1126,7 @@ Global configuration replaces hubspot.config.yml, and you will be prompted to mi
744
1126
  };
745
1127
  };
746
1128
  readonly success: {
747
- readonly delete: (tableId: string, accountId: string) => string;
1129
+ readonly delete: (tableId: string, accountId: number) => string;
748
1130
  };
749
1131
  };
750
1132
  readonly fetch: {
@@ -758,7 +1140,7 @@ Global configuration replaces hubspot.config.yml, and you will be prompted to mi
758
1140
  };
759
1141
  };
760
1142
  readonly success: {
761
- readonly fetch: (tableId: string, path: string) => string;
1143
+ readonly fetch: (tableId: number, path: string) => string;
762
1144
  };
763
1145
  };
764
1146
  readonly list: {
@@ -798,7 +1180,7 @@ Global configuration replaces hubspot.config.yml, and you will be prompted to mi
798
1180
  readonly configFileUpdated: (authType: string, account: string | number) => string;
799
1181
  };
800
1182
  readonly logs: {
801
- readonly updateConfig: "To update an existing config file, use the \"hs auth\" command.";
1183
+ readonly updateConfig: `To update an existing config file, use the ${string} command.`;
802
1184
  };
803
1185
  readonly errors: {
804
1186
  readonly invalidAccountIdProvided: "--account must be a number.";
@@ -807,58 +1189,6 @@ Global configuration replaces hubspot.config.yml, and you will be prompted to mi
807
1189
  readonly globalConfigFileExists: `You are using our new global configuration for account management, which is not compatible with this command. Please use ${string} instead.`;
808
1190
  };
809
1191
  };
810
- readonly lint: {
811
- readonly issuesFound: (count: string) => string;
812
- readonly groupName: (path: string) => string;
813
- readonly positionals: {
814
- readonly path: {
815
- readonly describe: "Local folder to lint";
816
- };
817
- };
818
- };
819
- readonly list: {
820
- readonly describe: "List remote contents of a directory.";
821
- readonly gettingPathContents: (path: string) => string;
822
- readonly noFilesFoundAtPath: (path: string) => string;
823
- readonly positionals: {
824
- readonly path: {
825
- readonly describe: "Remote directory to list contents";
826
- };
827
- };
828
- };
829
- readonly logs: {
830
- readonly describe: "View logs for a CMS serverless function.";
831
- readonly errors: {
832
- readonly noLogsFound: (functionPath: string, accountId: string) => string;
833
- };
834
- readonly examples: {
835
- readonly default: "Get 5 most recent logs for function residing at /_hcms/api/my-endpoint";
836
- readonly follow: "Poll for and output logs for function residing at /_hcms/api/my-endpoint immediately upon new execution";
837
- readonly limit: "Get 10 most recent logs for function residing at /_hcms/api/my-endpoint";
838
- };
839
- readonly endpointPrompt: "Enter a serverless function endpoint:";
840
- readonly gettingLogs: (latest: string, functionPath: string) => string;
841
- readonly options: {
842
- readonly compact: {
843
- readonly describe: "output compact logs";
844
- };
845
- readonly follow: {
846
- readonly describe: "follow logs";
847
- };
848
- readonly latest: {
849
- readonly describe: "retrieve most recent log only";
850
- };
851
- readonly limit: {
852
- readonly describe: "limit the number of logs to output";
853
- };
854
- };
855
- readonly positionals: {
856
- readonly endpoint: {
857
- readonly describe: "Serverless function endpoint";
858
- };
859
- };
860
- readonly tailLogs: (functionPath: string, accountId: string) => string;
861
- };
862
1192
  readonly mcp: {
863
1193
  readonly describe: "Commands for managing HubSpot MCP servers.";
864
1194
  readonly setup: {
@@ -914,14 +1244,6 @@ Global configuration replaces hubspot.config.yml, and you will be prompted to mi
914
1244
  readonly shuttingDown: "Shutting down MCP server...";
915
1245
  };
916
1246
  };
917
- readonly mv: {
918
- readonly describe: "Move a remote file or folder in HubSpot. This feature is currently in beta and the CLI contract is subject to change.";
919
- readonly errors: {
920
- readonly sourcePathExists: (srcPath: string, destPath: string) => string;
921
- readonly moveFailed: (srcPath: string, destPath: string, accountId: string) => string;
922
- };
923
- readonly move: (srcPath: string, destPath: string, accountId: string) => string;
924
- };
925
1247
  readonly open: {
926
1248
  readonly describe: "Open a HubSpot page in your browser.";
927
1249
  readonly options: {
@@ -937,6 +1259,7 @@ Global configuration replaces hubspot.config.yml, and you will be prompted to mi
937
1259
  readonly selectLink: "Select a link to open";
938
1260
  };
939
1261
  readonly project: {
1262
+ readonly describe: "Commands for managing projects. For more information visit our documentation https://developers.hubspot.com/docs/getting-started/quickstart";
940
1263
  readonly profile: {
941
1264
  readonly describe: "Commands for managing project profiles";
942
1265
  readonly verboseDescribe: `Commands for managing project profiles
@@ -1014,7 +1337,7 @@ Profiles enable you to reference variables in your component configuration files
1014
1337
  readonly header: "HubSpot projects local development";
1015
1338
  readonly placeholderAccountSelection: "Using default account as target account (for now)";
1016
1339
  readonly accountTypeInformation: "Testing in a developer test account is strongly recommended, but you can use a sandbox account if your plan allows you to create one.";
1017
- readonly learnMoreMessageV3: `Learn more about ${string} | ${string}`;
1340
+ readonly learnMoreMessageV2: `Learn more about ${string} | ${string}`;
1018
1341
  readonly learnMoreMessageLegacy: string;
1019
1342
  readonly profileProjectAccountExplanation: (accountId: number, profileName: string) => string;
1020
1343
  readonly defaultProjectAccountExplanation: (accountId: number) => string;
@@ -1026,21 +1349,23 @@ Profiles enable you to reference variables in your component configuration files
1026
1349
  readonly errors: {
1027
1350
  readonly noProjectConfig: "No project detected. Please run this command again from a project directory.";
1028
1351
  readonly noAccount: (accountId: number) => string;
1029
- readonly noAccountsInConfig: (authCommand: string) => string;
1352
+ readonly noAccountsInConfig: `No accounts found in your config. Run ${string} to configure a HubSpot account with the CLI.`;
1030
1353
  readonly invalidProjectComponents: "Projects cannot contain both private and public apps. Move your apps to separate projects before attempting local development.";
1031
1354
  readonly noRunnableComponents: `No supported components were found in this project. Run ${string} to see a list of available components and add one to your project.`;
1032
1355
  readonly accountNotCombined: `
1033
1356
  Local development of unified apps is currently only compatible with accounts that are opted into the unified apps beta. Make sure that this account is opted in or switch accounts using ${string}.`;
1034
1357
  readonly unsupportedAccountFlagLegacy: "The --project-account and --testing-account flags are not supported for projects with platform versions earlier than 2025.2.";
1035
- readonly unsupportedAccountFlagV3: "The --account flag is is not supported supported for projects with platform versions 2025.2 and newer. Use --testing-account and --project-account flags to specify accounts to use for local dev";
1358
+ readonly unsupportedAccountFlagV2: "The --account flag is is not supported supported for projects with platform versions 2025.2 and newer. Use --testing-account and --project-account flags to specify accounts to use for local dev";
1359
+ readonly localDevAlreadyRunning: `Another ${string} process is already running. To proceed with local development of this project, stop the existing process and re-run ${string}.`;
1036
1360
  };
1037
1361
  readonly examples: {
1038
1362
  readonly default: "Start local dev for the current project";
1039
1363
  };
1040
1364
  readonly options: {
1041
1365
  readonly profile: "The profile to target during local dev";
1042
- readonly projectAccount: "The id of the account to upload your project to. Only compatible with platform versions 2025.2 and above.";
1043
- readonly testingAccount: "The id of the account to install apps and test on. Only compatible with platform versions 2025.2 and above.";
1366
+ readonly projectAccount: "The id of the account to upload your project to. Must be used with --testing-account. Supported on platform versions 2025.2 and newer.";
1367
+ readonly testingAccount: "The id of the account to install apps and test on. Must be used with --project-account. Supported on platform versions 2025.2 and newer.";
1368
+ readonly account: "The id of the account to upload your project to. Unsupported on platform versions 2025.2 and newer.";
1044
1369
  };
1045
1370
  };
1046
1371
  readonly create: {
@@ -1111,11 +1436,9 @@ ${string}`;
1111
1436
  readonly describe: "Project name (cannot be changed)";
1112
1437
  };
1113
1438
  };
1114
- readonly header: {
1115
- readonly text: "This command will migrate an app to the projects framework. It will walk you through the fields required to complete the migration and download the project source code into a directory of your choosing.";
1116
- readonly link: "Learn more about migrating apps to the projects framework";
1117
- };
1118
- readonly deprecationWarning: (oldCommand: string, newCommand: string) => string;
1439
+ readonly header: `This command will migrate an app to the projects framework. It will walk you through the fields required to complete the migration and download the project source code into a directory of your choosing.
1440
+ ${string}`;
1441
+ readonly deprecationWarning: (platformVersion: string) => string;
1119
1442
  readonly migrationStatus: {
1120
1443
  readonly inProgress: () => string;
1121
1444
  readonly success: () => string;
@@ -1123,16 +1446,27 @@ ${string}`;
1123
1446
  readonly failure: () => string;
1124
1447
  };
1125
1448
  readonly warning: {
1126
- readonly title: () => string;
1127
- readonly projectConversion: () => string;
1128
- readonly appConfig: () => string;
1129
- readonly buildAndDeploy: "This will create a new project with a single app component and immediately build and deploy it to your developer account (build #1).";
1130
- readonly existingApps: () => string;
1449
+ readonly title: `${string}
1450
+ `;
1451
+ readonly projectConversion: `${string}
1452
+ `;
1453
+ readonly appConfig: `All supported app configuration will be moved to the ${string} component definition file. Future updates to those features must be made through the project build and deploy pipeline, not the developer account UI.
1454
+ `;
1455
+ readonly buildAndDeploy: "This will create a new project with a single app component and immediately build and deploy it to your developer account (build #1).\n";
1456
+ readonly existingApps: string;
1131
1457
  readonly copyApp: "We strongly recommend making a copy of your app to test this process in a development app before replacing production.";
1132
1458
  };
1133
1459
  readonly migrationInterrupted: "\nThe command is terminated, but app migration is still in progress. Please check your account to ensure that the project and associated app have been created successfully.";
1134
1460
  readonly createAppPrompt: "Proceed with migrating this app to a project component (this process can't be aborted)?";
1135
1461
  readonly projectDetailsLink: "View project details in your developer account";
1462
+ readonly errors: {
1463
+ readonly noAppsForProject: (projectName: string) => string;
1464
+ readonly noAccountConfig: "No account configuration found. Please check your account settings.";
1465
+ readonly projectAlreadyExists: (projectName: string) => string;
1466
+ readonly invalidApp: (appId: number) => string;
1467
+ readonly migrationFailed: "Migration Failed";
1468
+ readonly notAllowedWithinProject: `This command cannot be run from within a project directory. Run the command again from outside a project directory. If you are trying to migrate a project, run ${string}`;
1469
+ };
1136
1470
  };
1137
1471
  readonly migrate: {
1138
1472
  readonly preamble: (platformVersion: string) => string;
@@ -1159,7 +1493,7 @@ ${string}`;
1159
1493
  };
1160
1494
  };
1161
1495
  readonly cloneStatus: {
1162
- readonly inProgress: () => string;
1496
+ readonly inProgress: `Cloning app configuration to ${string} component definition ...`;
1163
1497
  readonly done: "Cloning app configuration to public-app.json component definition ... DONE";
1164
1498
  readonly success: (dest: string) => string;
1165
1499
  readonly failure: "Cloning app configuration to public-app.json component definition ... FAILED";
@@ -1168,6 +1502,7 @@ ${string}`;
1168
1502
  readonly invalidAccountTypeTitle: () => string;
1169
1503
  readonly invalidAccountTypeDescription: (useCommand: string, authCommand: string) => string;
1170
1504
  readonly couldNotWriteConfigPath: (configPath: string) => string;
1505
+ readonly noAccountConfig: (accountId: number) => string;
1171
1506
  };
1172
1507
  };
1173
1508
  readonly add: {
@@ -1242,7 +1577,7 @@ ${string}`;
1242
1577
  readonly describe: "List the project's builds.";
1243
1578
  readonly continueOrExitPrompt: "Press <enter> to load more, or ctrl+c to exit";
1244
1579
  readonly viewAllBuildsLink: "View all builds";
1245
- readonly showingNextBuilds: (count: string, projectName: string) => string;
1580
+ readonly showingNextBuilds: (count: number, projectName: string) => string;
1246
1581
  readonly showingRecentBuilds: (count: number, projectName: string, viewAllBuildsLink: string) => string;
1247
1582
  readonly errors: {
1248
1583
  readonly noBuilds: "No builds for this project were found.";
@@ -1276,7 +1611,7 @@ ${string}`;
1276
1611
  };
1277
1612
  readonly logs: {
1278
1613
  readonly showingLogs: "Showing logs for:";
1279
- readonly hubspotLogsDirectLink: "View function logs in HubSpot";
1614
+ readonly hubspotLogsDirectLink: (url: string) => string;
1280
1615
  readonly noLogsFound: (name: string) => string;
1281
1616
  };
1282
1617
  readonly table: {
@@ -1315,13 +1650,13 @@ ${string}`;
1315
1650
  readonly default: "Upload a project into your HubSpot account";
1316
1651
  };
1317
1652
  readonly logs: {
1318
- readonly buildSucceeded: (buildId: string) => string;
1653
+ readonly buildSucceeded: (buildId: number) => string;
1319
1654
  readonly readyToGoLive: "🚀 Ready to take your project live?";
1320
1655
  readonly runCommand: (command: string) => string;
1321
1656
  readonly autoDeployDisabled: (deployCommand: string) => string;
1322
1657
  };
1323
1658
  readonly errors: {
1324
- readonly projectLockedError: () => string;
1659
+ readonly projectLockedError: `Your project is locked. This may mean that another user is running the ${string} command for this project. If this is you, unlock the project in Projects UI.`;
1325
1660
  };
1326
1661
  readonly options: {
1327
1662
  readonly forceCreate: {
@@ -1330,6 +1665,9 @@ ${string}`;
1330
1665
  readonly message: {
1331
1666
  readonly describe: "Add a message when you upload your project and create a build";
1332
1667
  };
1668
+ readonly profile: {
1669
+ readonly describe: "Profile to target for this upload";
1670
+ };
1333
1671
  };
1334
1672
  };
1335
1673
  readonly watch: {
@@ -1367,6 +1705,7 @@ ${string}`;
1367
1705
  readonly uploadFailed: (remotePath: string, filePath: string) => string;
1368
1706
  readonly deleteFileFailed: (remotePath: string) => string;
1369
1707
  readonly deleteFolderFailed: (remotePath: string) => string;
1708
+ readonly v2ApiError: (platformVersion: string) => string;
1370
1709
  };
1371
1710
  };
1372
1711
  readonly download: {
@@ -1376,11 +1715,12 @@ ${string}`;
1376
1715
  };
1377
1716
  readonly logs: {
1378
1717
  readonly downloadCancelled: "Cancelling project download";
1379
- readonly downloadSucceeded: (buildId: string, projectName: string) => string;
1718
+ readonly downloadSucceeded: (buildId: number, projectName: string) => string;
1380
1719
  };
1381
1720
  readonly errors: {
1382
1721
  readonly downloadFailed: "Something went wrong downloading the project";
1383
1722
  readonly projectNotFound: (projectName: string, accountId: string) => string;
1723
+ readonly noBuildIdToDownload: "No build ID available for download";
1384
1724
  };
1385
1725
  readonly warnings: {
1386
1726
  readonly cannotDownloadWithinProject: "Cancelling project download. Please run the command again outside the context of an existing project.";
@@ -1428,8 +1768,8 @@ ${string}`;
1428
1768
  readonly addingDependenciesToLocation: (dependencies: string, directory: string) => string;
1429
1769
  readonly installingDependenciesFailed: (directory: string) => string;
1430
1770
  readonly noProjectConfig: "No project detected. Run this command from a project directory.";
1431
- readonly noPackageJsonInProject: (projectName: string, link: string) => string;
1432
- readonly packageManagerNotInstalled: (packageManager: string, link: string) => string;
1771
+ readonly noPackageJsonInProject: (projectName: string) => string;
1772
+ readonly packageManagerNotInstalled: (packageManager: string) => string;
1433
1773
  };
1434
1774
  readonly validate: {
1435
1775
  readonly describe: "Validate the project before uploading";
@@ -1446,21 +1786,46 @@ ${string}`;
1446
1786
  };
1447
1787
  };
1448
1788
  };
1449
- };
1450
- readonly remove: {
1451
- readonly describe: "Delete a file or folder from the HubSpot CMS.";
1452
- readonly deleted: (path: string, accountId: number) => string;
1453
- readonly errors: {
1454
- readonly deleteFailed: (path: string, accountId: number) => string;
1455
- };
1456
- readonly positionals: {
1457
- readonly path: "Remote hubspot path";
1789
+ readonly list: {
1790
+ readonly describe: "List uploaded projects that exist in the current target account";
1791
+ readonly projects: `${string}:`;
1792
+ readonly labels: {
1793
+ readonly name: "Name";
1794
+ readonly platformVersion: "Platform Version";
1795
+ };
1796
+ readonly errors: {
1797
+ readonly noProjectsFound: (accountId: number) => string;
1798
+ };
1458
1799
  };
1459
1800
  };
1460
1801
  readonly sandbox: {
1461
1802
  readonly describe: "Commands for managing sandboxes.";
1462
1803
  readonly subcommands: {
1463
1804
  readonly create: {
1805
+ readonly describe: "Create a sandbox account.";
1806
+ readonly failure: {
1807
+ readonly noAccountConfig: (accountId: number) => string;
1808
+ readonly invalidAccountType: (accountType: string, accountName: string) => string;
1809
+ readonly noSandboxAccountConfig: (accountId: number) => string;
1810
+ readonly optionMissing: {
1811
+ readonly type: "Type is required when using --force. Use --type=developer or --type=standard.";
1812
+ readonly name: "Name is required when using --force. Use --name=YourSandboxName.";
1813
+ };
1814
+ };
1815
+ readonly options: {
1816
+ readonly force: {
1817
+ readonly describe: "Skips all prompts and uses provided options.";
1818
+ };
1819
+ readonly name: {
1820
+ readonly describe: "Name of the sandbox account to create";
1821
+ };
1822
+ readonly type: {
1823
+ readonly describe: "Type of sandbox to create (developer or standard)";
1824
+ };
1825
+ };
1826
+ readonly examples: {
1827
+ readonly default: "Creates a standard sandbox named MySandboxAccount.";
1828
+ };
1464
1829
  readonly developer: {
1465
1830
  readonly loading: {
1466
1831
  readonly add: (accountName: string) => string;
@@ -1503,28 +1868,28 @@ ${string}`;
1503
1868
  readonly delete: {
1504
1869
  readonly describe: "Delete a sandbox account.";
1505
1870
  readonly debug: {
1506
- readonly deleting: (account: string) => string;
1871
+ readonly deleting: (account: number) => string;
1507
1872
  readonly error: "Error deleting sandbox account:";
1508
1873
  };
1509
1874
  readonly examples: {
1510
1875
  readonly default: "Deletes the sandbox account named MySandboxAccount.";
1511
1876
  };
1512
- readonly confirm: (account: string) => string;
1513
- readonly defaultAccountWarning: (account: string) => string;
1877
+ readonly confirm: (account: number) => string;
1878
+ readonly defaultAccountWarning: (account: number) => string;
1514
1879
  readonly success: {
1515
- readonly delete: (account: string, sandboxHubId: string) => string;
1516
- readonly deleteDefault: (account: string, sandboxHubId: string) => string;
1880
+ readonly delete: (account: string, sandboxHubId: number) => string;
1881
+ readonly deleteDefault: (account: string, sandboxHubId: number) => string;
1517
1882
  readonly configFileUpdated: (account: string, configFilename: string) => string;
1518
1883
  };
1519
1884
  readonly failure: {
1520
- readonly invalidUser: (accountName: string, parentAccountName: string) => string;
1885
+ readonly invalidUser: (account: number, parentAccount: number) => string;
1521
1886
  readonly noAccount: "No account specified. Specify an account by using the --account flag.";
1522
- readonly noSandboxAccounts: (authCommand: string) => string;
1887
+ readonly noSandboxAccounts: `There are no sandboxes connected to the CLI. To add a sandbox, run ${string}.`;
1523
1888
  readonly noSandboxAccountId: "This sandbox can't be deleted from the CLI because we could not find the associated sandbox account.";
1524
- readonly noParentAccount: (authCommand: string) => string;
1525
- readonly objectNotFound: (account: string) => string;
1889
+ readonly noParentAccount: `This sandbox can't be deleted from the CLI because you haven't given the CLI access to its parent account. To do this, run ${string} and add the parent account.`;
1890
+ readonly objectNotFound: (account: number) => string;
1526
1891
  readonly noParentPortalAvailable: (command: string, url: string) => string;
1527
- readonly invalidKey: (account: string, authCommand: string) => string;
1892
+ readonly invalidKey: (account: number | null | undefined) => string;
1528
1893
  };
1529
1894
  readonly options: {
1530
1895
  readonly force: {
@@ -1552,33 +1917,17 @@ ${string}`;
1552
1917
  readonly instructions: (accountName: string, url: string) => string;
1553
1918
  };
1554
1919
  };
1920
+ readonly confirm: {
1921
+ readonly syncContactRecords: {
1922
+ readonly standard: "Copy up to 5000 most recently updated contacts? This includes up to 100 of each of the following: associated deals, tickets, and companies.";
1923
+ readonly developer: "Include up to 100 most recently updated contacts? This includes up to 100 of each of the following: associated deals, tickets, and companies. This can be done once per sandbox.";
1924
+ };
1925
+ };
1555
1926
  };
1556
1927
  };
1557
1928
  readonly app: {
1558
1929
  readonly describe: "Commands for managing apps.";
1559
1930
  readonly subcommands: {
1560
- readonly install: {
1561
- readonly describe: "Install an OAuth app into a test account.";
1562
- readonly options: {
1563
- readonly appUid: "The uid of the app to install";
1564
- readonly projectName: "The name of the project that contains the app";
1565
- };
1566
- readonly positionals: {
1567
- readonly testAccountId: "The id of the test account to install the app into";
1568
- };
1569
- readonly errors: {
1570
- readonly mustSpecifyProjectName: `You must specify a project name. Use the ${string} flag to specify the project name or run this command from within a project directory.`;
1571
- readonly noAppUidFound: `No app uid found. Please specify the app uid with the ${string} flag or run this command from within a project that contains an app.`;
1572
- readonly appMustBeOauth: "This command only supports installing oauth apps. Please specify an app with oauth auth type.";
1573
- };
1574
- readonly polling: {
1575
- readonly start: "Installing app...";
1576
- readonly success: "App installed successfully";
1577
- readonly failure: "App installation failed";
1578
- readonly error: "Error installing app";
1579
- };
1580
- readonly example: "Install the app with uid my-app-uid from the project named \"my-project\" into the target account with id 1234567890";
1581
- };
1582
1931
  readonly secret: {
1583
1932
  readonly describe: "Commands for managing secrets.";
1584
1933
  readonly subcommands: {
@@ -1651,7 +2000,7 @@ ${string}`;
1651
2000
  readonly describe: "Create a new secret.";
1652
2001
  readonly errors: {
1653
2002
  readonly add: (secretName: string) => string;
1654
- readonly alreadyExists: (secretName: string, command: string) => string;
2003
+ readonly alreadyExists: (secretName: string) => string;
1655
2004
  };
1656
2005
  readonly positionals: {
1657
2006
  readonly name: {
@@ -1659,7 +2008,7 @@ ${string}`;
1659
2008
  };
1660
2009
  };
1661
2010
  readonly success: {
1662
- readonly add: (secretName: string, accountIdentifier: string) => string;
2011
+ readonly add: (secretName: string, accountId: number) => string;
1663
2012
  };
1664
2013
  };
1665
2014
  readonly delete: {
@@ -1677,7 +2026,7 @@ ${string}`;
1677
2026
  };
1678
2027
  };
1679
2028
  readonly success: {
1680
- readonly delete: (secretName: string, accountIdentifier: string) => string;
2029
+ readonly delete: (secretName: string, accountId: number) => string;
1681
2030
  };
1682
2031
  };
1683
2032
  readonly list: {
@@ -1700,161 +2049,12 @@ ${string}`;
1700
2049
  };
1701
2050
  };
1702
2051
  readonly success: {
1703
- readonly update: (secretName: string, accountIdentifier: string) => string;
2052
+ readonly update: (secretName: string, accountId: number) => string;
1704
2053
  readonly updateExplanation: "Existing serverless functions will start using this new value within 10 seconds.";
1705
2054
  };
1706
2055
  };
1707
2056
  };
1708
2057
  };
1709
- readonly theme: {
1710
- readonly describe: "Commands for managing themes.";
1711
- readonly subcommands: {
1712
- readonly generateSelectors: {
1713
- readonly describe: "Automatically generates an editor-preview.json file for the given theme. The selectors this command generates are not perfect, so please edit editor-preview.json after running.";
1714
- readonly errors: {
1715
- readonly invalidPath: (themePath: string) => string;
1716
- readonly fieldsNotFound: "Unable to find theme's fields.json.";
1717
- readonly noSelectorsFound: "No selectors found.";
1718
- };
1719
- readonly success: (themePath: string, selectorsPath: string) => string;
1720
- readonly positionals: {
1721
- readonly path: "The path of the theme you'd like to generate an editor-preview.json for.";
1722
- };
1723
- };
1724
- readonly marketplaceValidate: {
1725
- readonly describe: "Validate a theme for the marketplace.";
1726
- readonly errors: {
1727
- readonly invalidPath: (path: string) => string;
1728
- };
1729
- readonly logs: {
1730
- readonly validatingTheme: (path: string) => string;
1731
- };
1732
- readonly results: {
1733
- readonly required: "Required validation results:";
1734
- readonly recommended: "Recommended validation results:";
1735
- readonly warnings: {
1736
- readonly file: (file: string) => string;
1737
- readonly lineNumber: (line: string) => string;
1738
- };
1739
- readonly noErrors: "No errors";
1740
- };
1741
- readonly positionals: {
1742
- readonly path: {
1743
- readonly describe: "Path to the theme within the Design Manager.";
1744
- };
1745
- };
1746
- };
1747
- readonly preview: {
1748
- readonly describe: "Upload and watch a theme directory on your computer for changes and start a local development server to preview theme changes on a site.";
1749
- readonly errors: {
1750
- readonly invalidPath: (path: string) => string;
1751
- readonly noThemeComponents: "Your project has no theme components available to preview.";
1752
- readonly uploadFailed: (src: string, dest: string) => string;
1753
- };
1754
- readonly positionals: {
1755
- readonly src: "Path to the local directory your theme is in, relative to your current working directory";
1756
- readonly dest: "Path in HubSpot Design Tools. Can be a net new path. If you wish to preview a site page using your theme changes it must match the path of the theme used by the site.";
1757
- };
1758
- readonly options: {
1759
- readonly notify: "Log to specified file when a watch task is triggered and after workers have gone idle. Ex. --notify path/to/file";
1760
- readonly noSsl: "Disable HTTPS";
1761
- readonly port: "The port on which to start the local server";
1762
- };
1763
- readonly initialUploadProgressBar: {
1764
- readonly start: "Starting...";
1765
- readonly uploading: "Uploading...";
1766
- readonly finish: "Complete!";
1767
- };
1768
- readonly logs: {
1769
- readonly processExited: "Stopping dev server...";
1770
- };
1771
- };
1772
- };
1773
- };
1774
- readonly module: {
1775
- readonly describe: "Commands for working with modules, including marketplace validation with the marketplace-validate subcommand.";
1776
- readonly subcommands: {
1777
- readonly marketplaceValidate: {
1778
- readonly describe: "Validate a module for the marketplace. Make sure to include the suffix .module in the path to the module within the Design Manager.";
1779
- readonly errors: {
1780
- readonly invalidPath: (path: string) => string;
1781
- };
1782
- readonly logs: {
1783
- readonly validatingModule: (path: string) => string;
1784
- };
1785
- readonly results: {
1786
- readonly required: "Required validation results:";
1787
- readonly recommended: "Recommended validation results:";
1788
- readonly warnings: {
1789
- readonly file: (file: string) => string;
1790
- readonly lineNumber: (line: string) => string;
1791
- };
1792
- readonly noErrors: "No errors";
1793
- };
1794
- readonly positionals: {
1795
- readonly src: "Path to the module within the Design Manager.";
1796
- };
1797
- };
1798
- };
1799
- };
1800
- readonly upload: {
1801
- readonly describe: "Upload a folder or file from your computer to the HubSpot CMS.";
1802
- readonly errors: {
1803
- readonly destinationRequired: "A destination path needs to be passed";
1804
- readonly fileIgnored: (path: string) => string;
1805
- readonly invalidPath: (path: string) => string;
1806
- readonly uploadFailed: (src: string, dest: string) => string;
1807
- readonly someFilesFailed: (dest: string) => string;
1808
- readonly deleteFailed: (path: string, accountId: number) => string;
1809
- };
1810
- readonly options: {
1811
- readonly options: "Options to pass to javascript fields files";
1812
- readonly saveOutput: "If true, saves all output from javascript fields files as 'fields.output.json'.";
1813
- readonly convertFields: "If true, converts any javascript fields files contained in module folder or project root.";
1814
- readonly clean: "Will delete the destination directory and its contents before uploading. This will also clear the global content associated with any global partial templates and modules.";
1815
- readonly force: "Skips confirmation prompts when doing a clean upload.";
1816
- };
1817
- readonly previewUrl: (previewUrl: string) => string;
1818
- readonly positionals: {
1819
- readonly src: "Path to the local file, relative to your current working directory.";
1820
- readonly dest: "Path in HubSpot Design Tools, can be a net new path.";
1821
- };
1822
- readonly success: {
1823
- readonly fileUploaded: (src: string, dest: string, accountId: number) => string;
1824
- readonly uploadComplete: (dest: string) => string;
1825
- };
1826
- readonly uploading: (src: string, dest: string, accountId: number) => string;
1827
- readonly notUploaded: (src: string) => string;
1828
- readonly cleaning: (filePath: string, accountId: number) => string;
1829
- readonly confirmCleanUpload: (filePath: string, accountId: number) => string;
1830
- };
1831
- readonly watch: {
1832
- readonly describe: "Watch a directory on your computer for changes and upload the changed files to the HubSpot CMS.";
1833
- readonly errors: {
1834
- readonly folderFailed: (src: string, dest: string, accountId: number) => string;
1835
- readonly fileFailed: (file: string, dest: string, accountId: number) => string;
1836
- readonly destinationRequired: "A destination directory needs to be passed";
1837
- readonly invalidPath: (path: string) => string;
1838
- };
1839
- readonly options: {
1840
- readonly disableInitial: "Disable the initial upload when watching a directory (default)";
1841
- readonly initialUpload: "Upload directory before watching for updates";
1842
- readonly notify: "Log to specified file when a watch task is triggered and after workers have gone idle. Ex. --notify path/to/file";
1843
- readonly remove: "Will cause watch to delete files in your HubSpot account that are not found locally.";
1844
- readonly convertFields: "If true, converts any javascript fields files contained in module folder or project root.";
1845
- readonly saveOutput: "If true, saves all output from javascript fields files as 'fields.output.json'.";
1846
- readonly options: "Options to pass to javascript fields files";
1847
- };
1848
- readonly positionals: {
1849
- readonly src: "Path to the local directory your files are in, relative to your current working directory";
1850
- readonly dest: "Path in HubSpot Design Tools. Can be a net new path";
1851
- };
1852
- readonly warnings: {
1853
- readonly disableInitial: `Passing the "${string}" option is no longer necessary. Running "${string}" no longer uploads the watched directory by default.`;
1854
- readonly initialUpload: `To upload the directory run "${string}" beforehand or add the "${string}" option when running "${string}".`;
1855
- readonly notUploaded: (path: string) => string;
1856
- };
1857
- };
1858
2058
  readonly convertFields: {
1859
2059
  readonly describe: "Converts a specific JavaScript fields file of a module or theme to JSON.";
1860
2060
  readonly positionals: {
@@ -1929,18 +2129,42 @@ ${string}`;
1929
2129
  readonly example: (name: string) => string;
1930
2130
  };
1931
2131
  readonly delete: {
1932
- readonly describe: "Delete a test account config file.";
2132
+ readonly describe: "Delete a test account from your HubSpot account and CLI config";
1933
2133
  readonly pathPrompt: "[--path] What is the path to the test account config?";
2134
+ readonly info: {
2135
+ readonly deletionCanceled: "Deletion canceled by user";
2136
+ readonly accountNotFoundWithId: (id: number) => string;
2137
+ readonly replaceDefaultAccount: (testAccountId: number, parentAccountName: string) => string;
2138
+ };
2139
+ readonly prompts: {
2140
+ readonly selectTestAccounts: "Select test account(s) to delete";
2141
+ readonly confirmDeletion: "All data for the account will be permanently deleted. Any connected apps will have their access tokens revoked. Do you wish to proceed?";
2142
+ };
1934
2143
  readonly errors: {
1935
- readonly failedToDelete: "Failed to delete test account";
2144
+ readonly failedToDelete: (testAccountToDelete: number) => string;
2145
+ readonly failedToSelectAccount: "Failed to select a test account to delete";
2146
+ readonly noAccountsToDelete: (accountId: number) => string;
2147
+ readonly failedToDeleteFromConfig: (testAccountToDelete: number) => string;
2148
+ readonly failedToFetchTestAccounts: "Failed to fetch developer test accounts";
2149
+ readonly testAccountNotFound: (nameOrId: string | number | null) => string;
2150
+ readonly parentAccountNotFound: (testAccountId: number) => string;
1936
2151
  };
1937
2152
  readonly success: {
1938
- readonly testAccountDeleted: (testAccountId: number) => string;
2153
+ readonly testAccountDeletedFromHubSpot: (testAccountToDelete: number) => string;
2154
+ readonly testAccountDeletedFromConfig: (accountId: number) => string;
2155
+ };
2156
+ readonly options: {
2157
+ readonly name: "The name of the test account (in your CLI config) to delete";
2158
+ readonly id: "The id of the test account";
2159
+ readonly force: "Skips all confirmation prompts when deleting a test account.";
1939
2160
  };
1940
- readonly positionals: {
1941
- readonly testAccountId: "The id of the test account";
2161
+ readonly examples: {
2162
+ readonly withPositionalID: (testAccountToDelete: number) => string;
2163
+ readonly withPositionalName: (testAccountToDelete: string) => string;
2164
+ readonly withID: (testAccountToDelete: number) => string;
2165
+ readonly withName: (testAccountToDelete: string) => string;
2166
+ readonly withoutId: "Delete a test account via a prompt";
1942
2167
  };
1943
- readonly example: (testAccountId: number) => string;
1944
2168
  };
1945
2169
  };
1946
2170
  readonly secrets: {
@@ -2587,10 +2811,14 @@ export declare const lib: {
2587
2811
  };
2588
2812
  };
2589
2813
  readonly AppDevModeInterface: {
2814
+ readonly autoInstallStaticAuthApp: {
2815
+ readonly installing: (appName: string, targetTestAccountId: number) => string;
2816
+ readonly success: (appName: string, targetTestAccountId: number) => string;
2817
+ readonly error: (appName: string, targetTestAccountId: number) => string;
2818
+ };
2590
2819
  readonly defaultMarketplaceAppWarning: (installCount: number) => string;
2591
2820
  readonly autoInstallDeclined: "You must install your app on your target test account to proceed with local development.";
2592
2821
  readonly autoInstallSuccess: (appName: string, targetTestAccountId: number) => string;
2593
- readonly autoInstallError: (appName: string, targetTestAccountId: number) => string;
2594
2822
  readonly fetchAppData: {
2595
2823
  readonly checking: (appName: string) => string;
2596
2824
  readonly success: (appName: string, accountId: number) => string;
@@ -2600,6 +2828,13 @@ export declare const lib: {
2600
2828
  };
2601
2829
  readonly distributionChanged: `Your app's distribution type has been changed from private to marketplace. Once uploaded, this change cannot be reversed. Before uploading your project, confirm that you want to ${string} change your app's distribution type. This will uninstall your app from all accounts.`;
2602
2830
  readonly authTypeChanged: `Your app's auth type has been changed from static to oauth. Once uploaded, this change cannot be reversed. Before uploading your project, confirm that you want to ${string} change your app's auth type. This will uninstall your app from all accounts.`;
2831
+ readonly installationFailed: "An error occured while installing your app. Your app must be installed in your target test account to proceed with local development.";
2832
+ readonly waitUntilAppIsInstalled: {
2833
+ readonly link: (installUrl: string) => string;
2834
+ readonly waiting: "Waiting for your app to be installed...";
2835
+ readonly success: (appName: string, accountId: number) => string;
2836
+ };
2837
+ readonly appDataNotFound: "An error occurred while fetching data for your app.";
2603
2838
  };
2604
2839
  readonly LocalDevWebsocketServer: {
2605
2840
  readonly errors: {
@@ -2648,6 +2883,11 @@ export declare const lib: {
2648
2883
  readonly projectLockedError: "Your project is locked. This may mean that another user is running the `hs project watch` command for this project. If this is you, unlock the project in Projects UI.";
2649
2884
  readonly genericError: `An error occurred while creating the initial build for this project. Run ${string} to try again.`;
2650
2885
  };
2886
+ readonly checkAndInstallDependencies: {
2887
+ readonly checkingDependencies: "Checking for missing or updated dependencies...";
2888
+ readonly dependenciesUpToDate: "All dependencies are up to date";
2889
+ readonly dependenciesFailure: "Failed to check or install dependencies";
2890
+ };
2651
2891
  };
2652
2892
  readonly account: {
2653
2893
  readonly checkIfDefaultAccountIsSupported: {
@@ -2664,7 +2904,7 @@ export declare const lib: {
2664
2904
  readonly notAuthedError: (parentAccountId: number | string, accountIdentifier: string) => string;
2665
2905
  };
2666
2906
  readonly selectAccountTypePrompt: {
2667
- readonly message: "[--testing-account] Choose the type of account to test on";
2907
+ readonly message: "Choose the type of account to test on";
2668
2908
  readonly developerTestAccountOption: "Test on a developer test account (recommended)";
2669
2909
  readonly sandboxAccountOption: "Test on a sandbox account";
2670
2910
  readonly sandboxAccountOptionDisabled: "Disabled - requires access to sandbox accounts";
@@ -2792,6 +3032,7 @@ Run ${string} to upgrade to version ${string}`;
2792
3032
  readonly compressed: (byteCount: number) => string;
2793
3033
  readonly compressing: (path: string) => string;
2794
3034
  readonly fileFiltered: (filename: string) => string;
3035
+ readonly legacyFileDetected: (filename: string, platformVersion: string) => string;
2795
3036
  };
2796
3037
  };
2797
3038
  readonly boxen: {
@@ -2808,13 +3049,15 @@ Run ${string} to upgrade to version ${string}`;
2808
3049
  readonly viewImportLink: (baseUrl: string, accountId: number, importId: string) => string;
2809
3050
  };
2810
3051
  readonly ui: {
2811
- readonly betaTag: string;
3052
+ readonly betaTag: "[BETA]";
3053
+ readonly betaTagWithStyle: string;
2812
3054
  readonly betaWarning: {
2813
3055
  readonly header: string;
2814
3056
  readonly footer: string;
2815
3057
  };
2816
3058
  readonly infoTag: string;
2817
- readonly deprecatedTag: string;
3059
+ readonly deprecatedTag: "[DEPRECATED]";
3060
+ readonly deprecatedTagWithStyle: string;
2818
3061
  readonly errorTag: string;
2819
3062
  readonly deprecatedMessage: (command: string, url: string) => string;
2820
3063
  readonly deprecatedDescription: (message: string, command: string, url: string) => string;
@@ -2833,7 +3076,7 @@ Run ${string} to upgrade to version ${string}`;
2833
3076
  readonly message: (command: string) => string;
2834
3077
  };
2835
3078
  readonly accountsUseCommand: {
2836
- readonly command: "hs accounts use";
3079
+ readonly command: "hs account use";
2837
3080
  readonly message: (command: string) => string;
2838
3081
  };
2839
3082
  readonly authCommand: {
@@ -2872,6 +3115,9 @@ Run ${string} to upgrade to version ${string}`;
2872
3115
  readonly command: "hs project install-deps";
2873
3116
  readonly message: (command: string) => string;
2874
3117
  };
3118
+ readonly projectCommandTip: {
3119
+ readonly message: "Tip: All project commands must be run from within a project directory";
3120
+ };
2875
3121
  readonly sampleProjects: {
2876
3122
  readonly linkText: "HubSpot's sample projects";
2877
3123
  readonly url: "https://developers.hubspot.com/docs/platform/sample-projects?utm_source=cli&utm_content=project_create_whats_next";
@@ -2895,7 +3141,7 @@ Run ${string} to upgrade to version ${string}`;
2895
3141
  };
2896
3142
  };
2897
3143
  readonly buildAccount: {
2898
- readonly createDeveloperTestAccountV3: {
3144
+ readonly createDeveloperTestAccountV2: {
2899
3145
  readonly syncFailure: "Failed to sync developer test account";
2900
3146
  readonly pakFailure: "Failed to generate personal access key for developer test account";
2901
3147
  };
@@ -2924,11 +3170,12 @@ Run ${string} to upgrade to version ${string}`;
2924
3170
  readonly setHttpTimeout: {
2925
3171
  readonly promptMessage: "Enter http timeout duration";
2926
3172
  readonly success: (timeout: string) => string;
3173
+ readonly error: (timeout: string) => string;
2927
3174
  };
2928
3175
  readonly setAutoOpenBrowser: {
2929
3176
  readonly fieldName: "auto open browser";
2930
- readonly enabled: "Auto opening your browser has been enabled";
2931
- readonly disabled: "Auto opening your browser has been disabled";
3177
+ readonly enabled: `Successfully updated ${string} to ${string}`;
3178
+ readonly disabled: `Successfully updated ${string} to ${string}`;
2932
3179
  };
2933
3180
  };
2934
3181
  readonly commonOpts: {
@@ -2958,6 +3205,21 @@ Run ${string} to upgrade to version ${string}`;
2958
3205
  readonly mergeConflictMessage: (count: number, propertyList: string) => string;
2959
3206
  readonly mergeConfigConflictPrompt: (property: string, newValue: string, oldValue: string) => string;
2960
3207
  };
3208
+ readonly handleAccountNameConflicts: {
3209
+ readonly warnings: {
3210
+ readonly accountNameConflictMessage: (count: number) => string;
3211
+ readonly forceFlagDetected: (count: number, renameDetails: string) => string;
3212
+ };
3213
+ readonly prompts: {
3214
+ readonly renameOrOmitAccountPrompt: (accountName: string, accountId: number) => string;
3215
+ readonly newAccountNamePrompt: (accountName: string, portalId: number) => string;
3216
+ };
3217
+ readonly errors: {
3218
+ readonly nameRequired: "The name may not be blank. Please add a name for the config.";
3219
+ readonly sameName: "The new account name must be different from the current name.";
3220
+ readonly nameAlreadyInConfig: (name: string) => string;
3221
+ };
3222
+ };
2961
3223
  readonly handleMerge: {
2962
3224
  readonly description: (archivedConfigName: string) => string;
2963
3225
  readonly confirmPrompt: "Merge the deprecated config into your global config?";
@@ -2966,6 +3228,11 @@ Run ${string} to upgrade to version ${string}`;
2966
3228
  };
2967
3229
  };
2968
3230
  readonly prompts: {
3231
+ readonly promptUtils: {
3232
+ readonly errors: {
3233
+ readonly noSelectableChoices: "Exiting prompt because no selectable choices are available";
3234
+ };
3235
+ };
2969
3236
  readonly importDataFilePathPrompt: {
2970
3237
  readonly promptContext: `To view the JSON schema for data imports, visit ${string}`;
2971
3238
  readonly promptMessage: "[--file-path] Select the JSON file that will be used to import your data.";
@@ -2982,11 +3249,11 @@ Run ${string} to upgrade to version ${string}`;
2982
3249
  readonly projectDevTargetAccountPrompt: {
2983
3250
  readonly createNewSandboxOption: "<Test on a new development sandbox>";
2984
3251
  readonly createNewDeveloperTestAccountOption: "<Test on a new developer test account>";
2985
- readonly chooseDefaultAccountOption: () => string;
3252
+ readonly chooseDefaultAccountOption: `<${string} Test on this production account ${string}>`;
2986
3253
  readonly promptMessage: (accountType: string, accountIdentifier: string) => string;
2987
- readonly sandboxLimit: (limit: string) => string;
2988
- readonly sandboxLimitWithSuggestion: (limit: string, authCommand: string) => string;
2989
- readonly developerTestAccountLimit: (limit: string) => string;
3254
+ readonly sandboxLimit: (limit: number) => string;
3255
+ readonly sandboxLimitWithSuggestion: (limit: number) => string;
3256
+ readonly developerTestAccountLimit: (limit: number) => string;
2990
3257
  readonly confirmDefaultAccount: (accountName: string, accountType: string) => string;
2991
3258
  readonly confirmUseExistingDeveloperTestAccount: (accountName: string) => string;
2992
3259
  readonly noAccountId: "No account ID found for the selected account. Please try again.";
@@ -2997,7 +3264,7 @@ Run ${string} to upgrade to version ${string}`;
2997
3264
  readonly setAsDefaultAccountPrompt: {
2998
3265
  readonly setAsDefaultAccountMessage: "Set this account as the default?";
2999
3266
  readonly setAsDefaultAccount: (accountName: string) => string;
3000
- readonly keepingCurrentDefault: (accountName: string) => string;
3267
+ readonly keepingCurrentDefault: (accountName: string | number) => string;
3001
3268
  };
3002
3269
  readonly createDeveloperTestAccountConfigPrompt: {
3003
3270
  readonly namePrompt: (withFlag?: boolean) => string;
@@ -3027,7 +3294,7 @@ Run ${string} to upgrade to version ${string}`;
3027
3294
  readonly enterStandardSandboxName: "Name your standard sandbox:";
3028
3295
  readonly enterDevelopmentSandboxName: "Name your development sandbox:";
3029
3296
  readonly sandboxDefaultName: (sandboxType: string) => string;
3030
- readonly developerTestAccountDefaultName: (count: string) => string;
3297
+ readonly developerTestAccountDefaultName: (count: number) => string;
3031
3298
  readonly errors: {
3032
3299
  readonly invalidName: "You entered an invalid name. Please try again.";
3033
3300
  readonly nameRequired: "The name may not be blank. Please try again.";
@@ -3125,8 +3392,8 @@ Run ${string} to upgrade to version ${string}`;
3125
3392
  readonly selectAppIdClone: (accountName: string) => string;
3126
3393
  readonly errors: {
3127
3394
  readonly noAccountId: "An account ID is required to select an app.";
3128
- readonly noAppsMigration: () => string;
3129
- readonly noAppsClone: () => string;
3395
+ readonly noAppsMigration: string;
3396
+ readonly noAppsClone: string;
3130
3397
  readonly noAppsMigrationMessage: (accountName: string) => string;
3131
3398
  readonly noAppsCloneMessage: (accountName: string) => string;
3132
3399
  readonly errorFetchingApps: "There was an error fetching public apps.";
@@ -3136,7 +3403,7 @@ Run ${string} to upgrade to version ${string}`;
3136
3403
  readonly downloadProjectPrompt: {
3137
3404
  readonly selectProject: "Select a project to download:";
3138
3405
  readonly errors: {
3139
- readonly projectNotFound: (projectName: string, accountId: string) => string;
3406
+ readonly projectNotFound: (projectName: string, accountId: number) => string;
3140
3407
  readonly accountIdRequired: "An account ID is required to download a project.";
3141
3408
  };
3142
3409
  };
@@ -3147,6 +3414,7 @@ Run ${string} to upgrade to version ${string}`;
3147
3414
  readonly errors: {
3148
3415
  readonly nameRequired: "A component name is required";
3149
3416
  readonly componentRequired: "Must select a feature to add";
3417
+ readonly noSelectableChoices: "There are no available features that can be added to this project";
3150
3418
  readonly invalidType: (type: string) => string;
3151
3419
  readonly cannotAddFeature: (feature: string, reasons: string | boolean) => string;
3152
3420
  };
@@ -3182,7 +3450,7 @@ Run ${string} to upgrade to version ${string}`;
3182
3450
  readonly enterName: "[--project] Enter project name:";
3183
3451
  readonly errors: {
3184
3452
  readonly invalidName: "You entered an invalid name. Please try again.";
3185
- readonly projectDoesNotExist: (projectName: string, accountIdentifier: string) => string;
3453
+ readonly projectDoesNotExist: (projectName: string, accountId: number) => string;
3186
3454
  };
3187
3455
  };
3188
3456
  readonly previewPrompt: {
@@ -3197,7 +3465,6 @@ Run ${string} to upgrade to version ${string}`;
3197
3465
  readonly installAppPrompt: {
3198
3466
  readonly explanation: "Local development requires this app to be installed in the target test account.";
3199
3467
  readonly reinstallExplanation: "This app's required scopes have been updated since it was last installed on the target test account. To avoid issues with local development, we recommend reinstalling the app with the updated scopes.";
3200
- readonly staticAuthExplanation: (projectAccountId: number, testingAccountId: number, projectName: string, appUid: string) => string;
3201
3468
  readonly prompt: "Open HubSpot to install this app?";
3202
3469
  readonly autoPrompt: "Install this app in your target test account?";
3203
3470
  readonly reinstallPrompt: "Open HubSpot to reinstall this app?";
@@ -3242,8 +3509,8 @@ Run ${string} to upgrade to version ${string}`;
3242
3509
  };
3243
3510
  readonly failure: {
3244
3511
  readonly invalidUser: (accountName: string, parentAccountName: string) => string;
3245
- readonly limit: (accountName: string, limit: string) => string;
3246
- readonly alreadyInConfig: (accountName: string, limit: string) => string;
3512
+ readonly limit: (accountName: string | number, limit: number) => string;
3513
+ readonly alreadyInConfig: (accountName: string | number, limit: number) => string;
3247
3514
  readonly scopes: {
3248
3515
  readonly message: "The personal access key you provided doesn't include developer test account permissions.";
3249
3516
  readonly instructions: (accountName: string | number, url: string) => string;
@@ -3263,14 +3530,13 @@ Run ${string} to upgrade to version ${string}`;
3263
3530
  readonly configFileUpdated: (accountName: string, authType: string) => string;
3264
3531
  };
3265
3532
  readonly failure: {
3266
- readonly invalidUser: (accountName: string, parentAccountName: string) => string;
3267
- readonly limit: (accountName: string, limit: string) => string;
3268
- readonly alreadyInConfig: (accountName: string, limit: string) => string;
3533
+ readonly limit: (accountId: number, limit: number, link: string) => string;
3534
+ readonly alreadyInConfig: (accountId: number, limit: number) => string;
3535
+ readonly generic: "An error occurred while creating a developer sandbox";
3269
3536
  readonly scopes: {
3270
3537
  readonly message: "The personal access key you provided doesn't include developer sandbox permissions.";
3271
- readonly instructions: (accountName: string | number, url: string) => string;
3538
+ readonly instructions: (account: string | number, url: string) => string;
3272
3539
  };
3273
- readonly generic: "An error occurred while creating a developer sandbox";
3274
3540
  };
3275
3541
  };
3276
3542
  readonly standard: {
@@ -3283,27 +3549,51 @@ Run ${string} to upgrade to version ${string}`;
3283
3549
  readonly configFileUpdated: (accountName: string, authType: string) => string;
3284
3550
  };
3285
3551
  readonly failure: {
3286
- readonly invalidUser: (accountName: string, parentAccountName: string) => string;
3287
- readonly limit: (accountName: string, limit: string) => string;
3288
- readonly alreadyInConfig: (accountName: string, limit: string) => string;
3552
+ readonly limit: (accountId: number, limit: number, link: string) => string;
3553
+ readonly alreadyInConfig: (accountId: number, limit: number) => string;
3289
3554
  readonly scopes: {
3290
3555
  readonly message: "The personal access key you provided doesn't include standard sandbox permissions.";
3291
- readonly instructions: (accountName: string, url: string) => string;
3556
+ readonly instructions: (account: string | number, url: string) => string;
3292
3557
  };
3293
3558
  };
3294
3559
  };
3560
+ readonly failure: {
3561
+ readonly usageLimitsFetch: "Unable to fetch sandbox usage limits. Please try again.";
3562
+ readonly scopes: {
3563
+ readonly message: "The personal access key you provided doesn't include sandbox permissions.";
3564
+ readonly instructions: (account: string | number, url: string) => string;
3565
+ };
3566
+ readonly invalidUser: (accountName: string, parentAccountId: number) => string;
3567
+ readonly '403Gating': (accountName: string, parentAccountId: number) => string;
3568
+ };
3295
3569
  };
3296
3570
  readonly sync: {
3571
+ readonly info: {
3572
+ readonly syncMessage: (url: string) => string;
3573
+ readonly syncMessageDevSb: (url: string) => string;
3574
+ };
3575
+ readonly confirm: {
3576
+ readonly syncContactRecords: {
3577
+ readonly standard: "Do you want to sync contact records from your production account?";
3578
+ };
3579
+ };
3297
3580
  readonly loading: {
3298
3581
  readonly add: (accountName: string) => string;
3299
- readonly fail: (accountName: string) => string;
3300
- readonly succeed: (accountName: string) => string;
3582
+ readonly fail: (accountId: number) => string;
3583
+ readonly succeed: (accountId: number) => string;
3584
+ readonly startSync: "Initiating sync...";
3585
+ readonly succeedDevSb: (accountId: number) => string;
3586
+ readonly successDevSbInfo: (accountId: number, url: string) => string;
3301
3587
  };
3302
3588
  readonly success: {
3303
3589
  readonly configFileUpdated: (accountName: string, authType: string) => string;
3304
3590
  };
3305
3591
  readonly failure: {
3592
+ readonly syncTypeFetch: "Unable to fetch available sandbox sync types. Please try again.";
3306
3593
  readonly invalidUser: (accountName: string, parentAccountName: string) => string;
3594
+ readonly syncInProgress: (url: string) => string;
3595
+ readonly notSuperAdmin: (accountId: number) => string;
3596
+ readonly objectNotFound: (accountId: number) => string;
3307
3597
  readonly scopes: {
3308
3598
  readonly message: "The personal access key you provided doesn't include sandbox sync permissions.";
3309
3599
  readonly instructions: (accountName: string, url: string) => string;
@@ -3317,6 +3607,8 @@ Run ${string} to upgrade to version ${string}`;
3317
3607
  readonly errorContext: (context: string) => string;
3318
3608
  readonly errorCause: (cause: string) => string;
3319
3609
  readonly unknownErrorOccurred: "An unknown error has occurred.";
3610
+ readonly configTimeoutErrorOccurred: (timeout: number, configSetCommand: string) => string;
3611
+ readonly genericTimeoutErrorOccurred: "This error occurred because an HTTP request timed out. Re-running the command may resolve this issue.";
3320
3612
  };
3321
3613
  readonly suppressErrors: {
3322
3614
  readonly platformVersionErrors: {
@@ -3328,7 +3620,7 @@ Run ${string} to upgrade to version ${string}`;
3328
3620
  readonly docsLink: "Projects platform versioning (BETA)";
3329
3621
  readonly betaLink: (docsLink: string) => string;
3330
3622
  };
3331
- readonly missingScopeError: (request: string, accountName: string, authCommand: string) => string;
3623
+ readonly missingScopeError: (request: string, accountName: string) => string;
3332
3624
  };
3333
3625
  };
3334
3626
  readonly serverless: {
@@ -3336,7 +3628,7 @@ Run ${string} to upgrade to version ${string}`;
3336
3628
  readonly fetchScopeDataError: (scopeGroup: string) => string;
3337
3629
  readonly portalMissingScope: "Your account does not have access to this action. Talk to an account admin to request it.";
3338
3630
  readonly userMissingScope: "You don't have access to this action. Ask an account admin to change your permissions in Users & Teams settings.";
3339
- readonly genericMissingScope: "Your access key does not allow this action. Please generate a new access key by running `hs auth personalaccesskey`.";
3631
+ readonly genericMissingScope: `Your access key does not allow this action. Please generate a new access key by running ${string}.`;
3340
3632
  };
3341
3633
  };
3342
3634
  readonly doctor: {
@@ -3349,9 +3641,9 @@ Run ${string} to upgrade to version ${string}`;
3349
3641
  readonly unableToDetermine: "Unable to determine if the portal is active";
3350
3642
  readonly pak: {
3351
3643
  readonly incomplete: "Personal access key is valid, but there are more scopes available to your user that are not included in your key.";
3352
- readonly incompleteSecondary: (command: string, link: string) => string;
3644
+ readonly incompleteSecondary: (link: string) => string;
3353
3645
  readonly invalid: "Personal access key is invalid";
3354
- readonly invalidSecondary: (command: string) => string;
3646
+ readonly invalidSecondary: `To get a new key, run ${string}, deactivate your access key, and generate a new one. Then use that new key to authenticate your account.`;
3355
3647
  readonly valid: (link: string) => string;
3356
3648
  readonly viewScopes: "View selected scopes";
3357
3649
  };
@@ -3372,7 +3664,6 @@ Run ${string} to upgrade to version ${string}`;
3372
3664
  readonly latest: (hsVersion: string) => string;
3373
3665
  readonly unableToDetermine: "Unable to determine if HubSpot CLI is up to date.";
3374
3666
  readonly unableToDetermineSecondary: (command: string, link: string) => string;
3375
- readonly unableToDetermineSecondaryLink: "npm HubSpot CLI version history";
3376
3667
  };
3377
3668
  readonly projectDependenciesChecks: {
3378
3669
  readonly missingDependencies: (dir: string) => string;
@@ -3385,9 +3676,9 @@ Run ${string} to upgrade to version ${string}`;
3385
3676
  readonly validJson: "JSON files valid";
3386
3677
  };
3387
3678
  readonly port: {
3388
- readonly inUse: (port: string) => string;
3679
+ readonly inUse: (port: number) => string;
3389
3680
  readonly inUseSecondary: (command: string) => string;
3390
- readonly available: (port: string) => string;
3681
+ readonly available: (port: number) => string;
3391
3682
  };
3392
3683
  readonly diagnosis: {
3393
3684
  readonly cli: {
@@ -3399,21 +3690,51 @@ Run ${string} to upgrade to version ${string}`;
3399
3690
  readonly defaultAccountSubHeader: (accountDetails: string) => string;
3400
3691
  readonly noConfigFile: "CLI configuration not found";
3401
3692
  readonly noConfigFileSecondary: (command: string) => string;
3693
+ readonly settings: {
3694
+ readonly httpUseLocalhost: `The setting ${string} is enabled`;
3695
+ readonly httpUseLocalhostSecondary: "This setting causes all CLI requests to route to localhost";
3696
+ };
3402
3697
  };
3403
3698
  readonly projectConfig: {
3404
3699
  readonly header: "Project configuration";
3405
3700
  readonly projectDirSubHeader: (projectDir: string) => string;
3406
3701
  readonly projectNameSubHeader: (projectName: string) => string;
3407
3702
  };
3703
+ readonly defaultAccountOverrideFile: {
3704
+ readonly header: "Default account override file path:";
3705
+ };
3408
3706
  readonly counts: {
3409
- readonly errors: (count: string) => string;
3410
- readonly warnings: (count: string) => string;
3707
+ readonly errors: (count: number) => string;
3708
+ readonly warnings: (count: number) => string;
3411
3709
  };
3412
3710
  };
3711
+ readonly defaultAccountOverrideFileChecks: {
3712
+ readonly overrideActive: (defaultAccountOverrideFile: string) => string;
3713
+ readonly overrideAccountId: (overrideAccountId: number | string) => string;
3714
+ };
3413
3715
  };
3414
3716
  readonly oauth: {
3415
3717
  readonly missingClientId: "Error building oauth URL: missing client ID.";
3416
3718
  };
3719
+ readonly validation: {
3720
+ readonly accountNotFoundInConfig: (userProvidedAccount: string) => string;
3721
+ readonly accountRequired: "An account needs to be supplied either via \"--account\" or through setting a \"defaultPortal\"";
3722
+ readonly userProvidedAccount: "Cannot specify an account when environment variables are supplied. Please unset the environment variables or do not use the \"--account\" flag.";
3723
+ readonly accountNotConfigured: (accountId: number) => string;
3724
+ readonly invalidAuthType: (authType: string, accountId: number, configPath: string, validValues: string) => string;
3725
+ readonly oauth2ConfigMissing: (accountId: number) => string;
3726
+ readonly oauth2ConfigIncorrect: (accountId: number) => string;
3727
+ readonly oauth2AccessTokenNotFound: (accountId: number) => string;
3728
+ readonly personalAccessKeyMissing: (accountId: number) => string;
3729
+ readonly personalAccessKeyTokenRetrievalFailed: (accountId: number) => string;
3730
+ readonly authConfigurationMissing: (accountId: number) => string;
3731
+ readonly availableCMSModes: (modes: string) => string;
3732
+ readonly invalidCmsPublishMode: (cmsPublishMode: string, modesMessage: string) => string;
3733
+ readonly missingCmsPublishMode: (modesMessage: string) => string;
3734
+ readonly pathNotFile: (path: string) => string;
3735
+ readonly fileNotJson: (path: string) => string;
3736
+ readonly fileInvalidJson: (path: string) => string;
3737
+ };
3417
3738
  readonly migrate: {
3418
3739
  readonly componentsToBeMigrated: (components: string) => string;
3419
3740
  readonly componentsThatWillNotBeMigrated: (components: string) => string;
@@ -3447,7 +3768,7 @@ Run ${string} to upgrade to version ${string}`;
3447
3768
  };
3448
3769
  readonly noAppsEligible: (accountId: string, reasons: string[]) => string;
3449
3770
  readonly invalidAccountTypeTitle: string;
3450
- readonly invalidAccountTypeDescription: (useCommand: string, authCommand: string) => string;
3771
+ readonly invalidAccountTypeDescription: (useCommand: string) => string;
3451
3772
  readonly appWithAppIdNotFound: (appId: number) => string;
3452
3773
  readonly noAppsForProject: (projectName: string) => string;
3453
3774
  readonly migrationFailed: "Migration Failed";