@hubspot/cli 7.8.12-experimental.0 → 7.8.12-experimental.1

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 (244) hide show
  1. package/bin/cli.js +31 -25
  2. package/commands/__tests__/auth.test.js +5 -0
  3. package/commands/__tests__/doctor.test.js +16 -16
  4. package/commands/account/clean.js +18 -27
  5. package/commands/account/createOverride.js +13 -31
  6. package/commands/account/info.js +20 -31
  7. package/commands/account/list.js +16 -22
  8. package/commands/account/remove.js +12 -20
  9. package/commands/account/removeOverride.js +11 -21
  10. package/commands/account/rename.js +6 -9
  11. package/commands/account/use.js +12 -26
  12. package/commands/account.js +2 -2
  13. package/commands/app/__tests__/migrate.test.js +5 -5
  14. package/commands/app/migrate.js +13 -18
  15. package/commands/app.js +1 -6
  16. package/commands/auth.d.ts +1 -0
  17. package/commands/auth.js +16 -7
  18. package/commands/cms/convertFields.js +7 -9
  19. package/commands/cms/getReactModule.js +9 -14
  20. package/commands/cms/lighthouseScore.js +33 -36
  21. package/commands/cms.js +2 -2
  22. package/commands/completion.js +3 -3
  23. package/commands/config/set.d.ts +1 -1
  24. package/commands/config/set.js +64 -36
  25. package/commands/config.js +2 -2
  26. package/commands/create.js +2 -2
  27. package/commands/customObject/create.js +10 -12
  28. package/commands/customObject/schema/create.js +9 -11
  29. package/commands/customObject/schema/delete.js +16 -16
  30. package/commands/customObject/schema/fetch-all.js +12 -11
  31. package/commands/customObject/schema/fetch.js +15 -15
  32. package/commands/customObject/schema/list.js +4 -4
  33. package/commands/customObject/schema/update.js +13 -13
  34. package/commands/customObject/schema.js +2 -2
  35. package/commands/customObject.js +6 -7
  36. package/commands/doctor.js +8 -11
  37. package/commands/feedback.js +6 -11
  38. package/commands/fetch.js +8 -8
  39. package/commands/filemanager/fetch.js +7 -7
  40. package/commands/filemanager/upload.js +15 -34
  41. package/commands/filemanager.js +2 -2
  42. package/commands/function/deploy.js +11 -29
  43. package/commands/function/list.js +8 -8
  44. package/commands/function/server.js +9 -11
  45. package/commands/function.d.ts +1 -1
  46. package/commands/function.js +2 -2
  47. package/commands/getStarted.js +2 -2
  48. package/commands/hubdb/clear.js +7 -15
  49. package/commands/hubdb/create.js +9 -15
  50. package/commands/hubdb/delete.js +8 -15
  51. package/commands/hubdb/fetch.js +6 -9
  52. package/commands/hubdb.d.ts +1 -1
  53. package/commands/hubdb.js +2 -2
  54. package/commands/init.js +2 -3
  55. package/commands/lint.js +16 -16
  56. package/commands/list.js +8 -14
  57. package/commands/logs.js +14 -20
  58. package/commands/mv.js +6 -17
  59. package/commands/open.js +5 -5
  60. package/commands/project/__tests__/add.test.js +4 -2
  61. package/commands/project/__tests__/deploy.test.js +3 -4
  62. package/commands/project/__tests__/installDeps.test.js +8 -8
  63. package/commands/project/__tests__/logs.test.js +1 -1
  64. package/commands/project/__tests__/migrate.test.js +5 -5
  65. package/commands/project/__tests__/migrateApp.test.js +2 -5
  66. package/commands/project/__tests__/validate.test.js +98 -0
  67. package/commands/project/add.js +3 -3
  68. package/commands/project/cloneApp.js +14 -19
  69. package/commands/project/create.js +0 -1
  70. package/commands/project/deploy.js +3 -3
  71. package/commands/project/dev/deprecatedFlow.js +7 -16
  72. package/commands/project/dev/index.js +14 -12
  73. package/commands/project/dev/unifiedFlow.js +3 -1
  74. package/commands/project/download.js +10 -13
  75. package/commands/project/installDeps.js +8 -8
  76. package/commands/project/listBuilds.js +11 -20
  77. package/commands/project/logs.js +21 -24
  78. package/commands/project/migrateApp.js +9 -15
  79. package/commands/project/open.js +6 -13
  80. package/commands/project/upload.d.ts +2 -2
  81. package/commands/project/upload.js +17 -26
  82. package/commands/project/validate.js +6 -6
  83. package/commands/project/watch.js +13 -22
  84. package/commands/project.js +2 -2
  85. package/commands/sandbox/__tests__/create.test.js +5 -5
  86. package/commands/sandbox/create.js +22 -32
  87. package/commands/sandbox/delete.js +38 -63
  88. package/commands/sandbox.js +2 -2
  89. package/commands/secret/addSecret.js +7 -17
  90. package/commands/secret/deleteSecret.js +10 -20
  91. package/commands/secret/listSecret.js +8 -10
  92. package/commands/secret/updateSecret.js +9 -17
  93. package/commands/secret.js +2 -2
  94. package/commands/testAccount/__tests__/delete.test.js +2 -4
  95. package/commands/testAccount/create.js +0 -3
  96. package/commands/testAccount/delete.d.ts +4 -3
  97. package/commands/testAccount/delete.js +155 -14
  98. package/commands/theme/preview.js +1 -4
  99. package/lang/en.d.ts +310 -124
  100. package/lang/en.js +351 -169
  101. package/lang/en.lyaml +2 -2
  102. package/lib/__tests__/buildAccount.test.js +2 -1
  103. package/lib/__tests__/commonOpts.test.js +1 -1
  104. package/lib/__tests__/dependencyManagement.test.js +1 -1
  105. package/lib/__tests__/developerTestAccounts.test.js +3 -3
  106. package/lib/__tests__/npm.test.js +1 -1
  107. package/lib/__tests__/oauth.test.js +4 -4
  108. package/lib/__tests__/process.test.js +10 -5
  109. package/lib/__tests__/sandboxSync.test.js +8 -8
  110. package/lib/__tests__/sandboxes.test.js +8 -8
  111. package/lib/__tests__/serverlessLogs.test.js +1 -1
  112. package/lib/__tests__/usageTracking.test.js +5 -5
  113. package/lib/__tests__/validation.test.js +2 -1
  114. package/lib/__tests__/yargsUtils.test.js +83 -9
  115. package/lib/app/__tests__/migrate.test.js +5 -5
  116. package/lib/app/__tests__/migrate_legacy.test.js +1 -1
  117. package/lib/app/migrate.js +1 -1
  118. package/lib/app/migrate_legacy.js +20 -24
  119. package/lib/buildAccount.js +25 -57
  120. package/lib/commonOpts.d.ts +1 -1
  121. package/lib/commonOpts.js +25 -22
  122. package/lib/configOptions.js +7 -0
  123. package/lib/constants.d.ts +6 -1
  124. package/lib/constants.js +10 -1
  125. package/lib/dependencyManagement.js +9 -27
  126. package/lib/developerTestAccounts.js +9 -23
  127. package/lib/doctor/Diagnosis.js +11 -23
  128. package/lib/doctor/DiagnosticInfoBuilder.js +12 -11
  129. package/lib/doctor/Doctor.js +42 -90
  130. package/lib/doctor/__tests__/Doctor.test.js +4 -4
  131. package/lib/errorHandlers/index.js +12 -20
  132. package/lib/errorHandlers/suppressError.js +11 -18
  133. package/lib/lang.js +6 -5
  134. package/lib/links.js +4 -4
  135. package/lib/middleware/__test__/commandTargetingUtils.test.js +99 -0
  136. package/lib/middleware/__test__/configMiddleware.test.js +11 -11
  137. package/lib/middleware/__test__/yargsChecksMiddleware.test.js +6 -8
  138. package/lib/middleware/commandTargetingUtils.d.ts +8 -0
  139. package/lib/middleware/commandTargetingUtils.js +78 -0
  140. package/lib/middleware/configMiddleware.d.ts +1 -1
  141. package/lib/middleware/configMiddleware.js +21 -81
  142. package/lib/middleware/gitMiddleware.js +5 -1
  143. package/lib/middleware/notificationsMiddleware.js +5 -11
  144. package/lib/middleware/yargsChecksMiddleware.js +6 -9
  145. package/lib/npm.js +2 -2
  146. package/lib/oauth.js +5 -5
  147. package/lib/process.js +5 -4
  148. package/lib/projectProfiles.d.ts +1 -1
  149. package/lib/projectProfiles.js +2 -10
  150. package/lib/projects/__tests__/AppDevModeInterface.test.js +14 -34
  151. package/lib/projects/__tests__/LocalDevWebsocketServer.test.js +70 -39
  152. package/lib/projects/__tests__/localDevProjectHelpers.test.js +2 -0
  153. package/lib/projects/__tests__/platformVersion.test.js +8 -8
  154. package/lib/projects/__tests__/projects.test.js +12 -12
  155. package/lib/projects/__tests__/structure.test.js +3 -3
  156. package/lib/projects/__tests__/upload.test.d.ts +1 -0
  157. package/lib/projects/__tests__/upload.test.js +82 -0
  158. package/lib/projects/add/__tests__/legacyAddComponent.test.js +6 -6
  159. package/lib/projects/add/__tests__/v3AddComponent.test.js +4 -4
  160. package/lib/projects/create/__tests__/legacy.test.js +5 -5
  161. package/lib/projects/create/__tests__/v3.test.js +1 -1
  162. package/lib/projects/create/index.js +2 -2
  163. package/lib/projects/create/legacy.js +2 -2
  164. package/lib/projects/create/v3.js +2 -2
  165. package/lib/projects/localDev/AppDevModeInterface.d.ts +2 -0
  166. package/lib/projects/localDev/AppDevModeInterface.js +22 -20
  167. package/lib/projects/localDev/LocalDevLogger.js +10 -11
  168. package/lib/projects/localDev/LocalDevManager.js +4 -5
  169. package/lib/projects/localDev/LocalDevWebsocketServer.d.ts +0 -1
  170. package/lib/projects/localDev/LocalDevWebsocketServer.js +7 -10
  171. package/lib/projects/localDev/helpers/project.d.ts +1 -0
  172. package/lib/projects/localDev/helpers/project.js +37 -0
  173. package/lib/projects/platformVersion.d.ts +1 -1
  174. package/lib/projects/platformVersion.js +1 -1
  175. package/lib/projects/structure.d.ts +2 -2
  176. package/lib/projects/structure.js +6 -6
  177. package/lib/projects/upload.d.ts +2 -3
  178. package/lib/projects/upload.js +17 -9
  179. package/lib/prompts/__tests__/downloadProjectPrompt.test.js +1 -0
  180. package/lib/prompts/accountNamePrompt.js +14 -19
  181. package/lib/prompts/accountsPrompt.js +2 -2
  182. package/lib/prompts/cmsFieldPrompt.js +2 -2
  183. package/lib/prompts/createApiSamplePrompt.js +5 -5
  184. package/lib/prompts/createDeveloperTestAccountConfigPrompt.js +10 -1
  185. package/lib/prompts/createFunctionPrompt.js +14 -14
  186. package/lib/prompts/createModulePrompt.js +9 -9
  187. package/lib/prompts/createTemplatePrompt.js +2 -2
  188. package/lib/prompts/downloadProjectPrompt.js +5 -8
  189. package/lib/prompts/personalAccessKeyPrompt.js +3 -3
  190. package/lib/prompts/previewPrompt.js +6 -6
  191. package/lib/prompts/projectAddPrompt.js +6 -0
  192. package/lib/prompts/projectDevTargetAccountPrompt.js +20 -32
  193. package/lib/prompts/projectNamePrompt.js +4 -8
  194. package/lib/prompts/projectsLogsPrompt.js +2 -4
  195. package/lib/prompts/promptUtils.js +27 -9
  196. package/lib/prompts/sandboxesPrompt.js +7 -7
  197. package/lib/prompts/secretPrompt.js +3 -3
  198. package/lib/prompts/selectAppPrompt.js +3 -3
  199. package/lib/prompts/selectHubDBTablePrompt.js +9 -13
  200. package/lib/prompts/selectPublicAppForMigrationPrompt.js +15 -19
  201. package/lib/prompts/setAsDefaultAccountPrompt.js +4 -8
  202. package/lib/prompts/uploadPrompt.js +5 -5
  203. package/lib/sandboxSync.js +24 -41
  204. package/lib/sandboxes.js +19 -47
  205. package/lib/schema.js +3 -3
  206. package/lib/serverlessLogs.js +11 -13
  207. package/lib/theme/__tests__/migrate.test.js +3 -3
  208. package/lib/theme/migrate.js +2 -2
  209. package/lib/ui/SpinniesManager.d.ts +2 -0
  210. package/lib/ui/SpinniesManager.js +7 -0
  211. package/lib/ui/boxen.js +1 -2
  212. package/lib/ui/git.js +13 -10
  213. package/lib/ui/index.d.ts +4 -0
  214. package/lib/ui/index.js +47 -38
  215. package/lib/ui/serverlessFunctionLogs.js +9 -7
  216. package/lib/ui/uiMessages.d.ts +68 -0
  217. package/lib/ui/uiMessages.js +71 -0
  218. package/lib/usageTracking.js +7 -7
  219. package/lib/validation.js +20 -23
  220. package/lib/yargsUtils.d.ts +1 -1
  221. package/lib/yargsUtils.js +12 -5
  222. package/mcp-server/tools/cms/HsCreateModuleTool.d.ts +2 -2
  223. package/mcp-server/tools/index.js +4 -0
  224. package/mcp-server/tools/project/GetApiUsagePatternsByAppIdTool.d.ts +23 -0
  225. package/mcp-server/tools/project/GetApiUsagePatternsByAppIdTool.js +68 -0
  226. package/mcp-server/tools/project/GetApplicationInfoTool.d.ts +11 -0
  227. package/mcp-server/tools/project/GetApplicationInfoTool.js +49 -0
  228. package/mcp-server/tools/project/GetConfigValuesTool.js +2 -2
  229. package/mcp-server/tools/project/GuidedWalkthroughTool.d.ts +2 -2
  230. package/mcp-server/tools/project/__tests__/GetApiUsagePatternsByAppIdTool.test.d.ts +1 -0
  231. package/mcp-server/tools/project/__tests__/GetApiUsagePatternsByAppIdTool.test.js +169 -0
  232. package/mcp-server/tools/project/__tests__/GetApplicationInfoTool.test.d.ts +1 -0
  233. package/mcp-server/tools/project/__tests__/GetApplicationInfoTool.test.js +115 -0
  234. package/mcp-server/utils/toolUsageTracking.js +2 -2
  235. package/package.json +6 -6
  236. package/types/Yargs.d.ts +1 -1
  237. package/commands/app/__tests__/install.test.js +0 -47
  238. package/commands/app/install.d.ts +0 -8
  239. package/commands/app/install.js +0 -122
  240. package/lib/middleware/__test__/utils.test.js +0 -51
  241. package/lib/middleware/utils.d.ts +0 -8
  242. package/lib/middleware/utils.js +0 -14
  243. /package/commands/{app/__tests__/install.test.d.ts → project/__tests__/validate.test.d.ts} +0 -0
  244. /package/lib/middleware/__test__/{utils.test.d.ts → commandTargetingUtils.test.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,6 +319,10 @@ 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
  };
@@ -280,6 +343,9 @@ Global configuration replaces hubspot.config.yml, and you will be prompted to mi
280
343
  readonly pageTemplateScoreTitle: "Page template scores";
281
344
  readonly lighthouseLinksTitle: "Lighthouse links";
282
345
  readonly failedTemplatePathsTitle: "The following templates could not be scored";
346
+ readonly themeToCheckTitle: (themeToCheck: string, target: string) => string;
347
+ readonly themeTitle: (themeToCheck: string) => string;
348
+ readonly poweredByLink: `Powered by ${string}`;
283
349
  };
284
350
  readonly errors: {
285
351
  readonly targetOptionRequired: "[--target] is required for detailed view";
@@ -398,9 +464,9 @@ Global configuration replaces hubspot.config.yml, and you will be prompted to mi
398
464
  };
399
465
  };
400
466
  readonly customObject: {
401
- readonly betaMessage: `${string} The Custom Object CLI is currently in beta and is subject to change.`;
467
+ readonly betaMessage: "The Custom Object CLI is currently in beta and is subject to change.";
402
468
  readonly describe: "Commands for managing custom objects.";
403
- readonly seeMoreLink: "View our docs to find out more.";
469
+ readonly seeMoreLink: string;
404
470
  readonly subcommands: {
405
471
  readonly create: {
406
472
  readonly describe: "Create custom object instances.";
@@ -608,7 +674,7 @@ Global configuration replaces hubspot.config.yml, and you will be prompted to mi
608
674
  readonly uploadingFailed: "Uploading failed";
609
675
  };
610
676
  readonly logs: {
611
- readonly uploading: (src: string, dest: string, accountId: string) => string;
677
+ readonly uploading: (src: string, dest: string, accountId: number) => string;
612
678
  };
613
679
  readonly positionals: {
614
680
  readonly dest: {
@@ -619,7 +685,7 @@ Global configuration replaces hubspot.config.yml, and you will be prompted to mi
619
685
  };
620
686
  };
621
687
  readonly success: {
622
- readonly upload: (src: string, dest: string, accountId: string) => string;
688
+ readonly upload: (src: string, dest: string, accountId: number) => string;
623
689
  readonly uploadComplete: (dest: string) => string;
624
690
  };
625
691
  };
@@ -648,7 +714,7 @@ Global configuration replaces hubspot.config.yml, and you will be prompted to mi
648
714
  };
649
715
  };
650
716
  readonly success: {
651
- readonly deployed: (functionPath: string, accountId: string, buildTimeSeconds: string) => string;
717
+ readonly deployed: (functionPath: string, accountId: number, buildTimeSeconds: string | 0) => string;
652
718
  };
653
719
  };
654
720
  readonly list: {
@@ -700,9 +766,9 @@ Global configuration replaces hubspot.config.yml, and you will be prompted to mi
700
766
  readonly clear: {
701
767
  readonly describe: "Clear all rows in a HubDB table.";
702
768
  readonly logs: {
703
- readonly removedRows: (deletedRowCount: string, tableId: string) => string;
704
- readonly rowCount: (tableId: string, rowCount: string) => string;
705
- readonly tableEmpty: (tableId: string) => string;
769
+ readonly removedRows: (deletedRowCount: number, tableId: number) => string;
770
+ readonly rowCount: (tableId: number, rowCount: number) => string;
771
+ readonly tableEmpty: (tableId: number) => string;
706
772
  };
707
773
  readonly positionals: {
708
774
  readonly tableId: {
@@ -724,14 +790,14 @@ Global configuration replaces hubspot.config.yml, and you will be prompted to mi
724
790
  };
725
791
  };
726
792
  readonly success: {
727
- readonly create: (tableId: string, accountId: string, rowCount: string) => string;
793
+ readonly create: (tableId: string, accountId: number, rowCount: number) => string;
728
794
  };
729
795
  };
730
796
  readonly delete: {
731
797
  readonly describe: "Delete a HubDB table.";
732
- readonly shouldDeleteTable: (tableId: string) => string;
798
+ readonly shouldDeleteTable: (tableId: number) => string;
733
799
  readonly errors: {
734
- readonly delete: (tableId: string) => string;
800
+ readonly delete: (tableId: number | "") => string;
735
801
  };
736
802
  readonly positionals: {
737
803
  readonly tableId: {
@@ -744,7 +810,7 @@ Global configuration replaces hubspot.config.yml, and you will be prompted to mi
744
810
  };
745
811
  };
746
812
  readonly success: {
747
- readonly delete: (tableId: string, accountId: string) => string;
813
+ readonly delete: (tableId: string, accountId: number) => string;
748
814
  };
749
815
  };
750
816
  readonly fetch: {
@@ -758,7 +824,7 @@ Global configuration replaces hubspot.config.yml, and you will be prompted to mi
758
824
  };
759
825
  };
760
826
  readonly success: {
761
- readonly fetch: (tableId: string, path: string) => string;
827
+ readonly fetch: (tableId: number, path: string) => string;
762
828
  };
763
829
  };
764
830
  readonly list: {
@@ -798,7 +864,7 @@ Global configuration replaces hubspot.config.yml, and you will be prompted to mi
798
864
  readonly configFileUpdated: (authType: string, account: string | number) => string;
799
865
  };
800
866
  readonly logs: {
801
- readonly updateConfig: "To update an existing config file, use the \"hs auth\" command.";
867
+ readonly updateConfig: `To update an existing config file, use the ${string} command.`;
802
868
  };
803
869
  readonly errors: {
804
870
  readonly invalidAccountIdProvided: "--account must be a number.";
@@ -808,7 +874,7 @@ Global configuration replaces hubspot.config.yml, and you will be prompted to mi
808
874
  };
809
875
  };
810
876
  readonly lint: {
811
- readonly issuesFound: (count: string) => string;
877
+ readonly issuesFound: (count: number) => string;
812
878
  readonly groupName: (path: string) => string;
813
879
  readonly positionals: {
814
880
  readonly path: {
@@ -829,7 +895,7 @@ Global configuration replaces hubspot.config.yml, and you will be prompted to mi
829
895
  readonly logs: {
830
896
  readonly describe: "View logs for a CMS serverless function.";
831
897
  readonly errors: {
832
- readonly noLogsFound: (functionPath: string, accountId: string) => string;
898
+ readonly noLogsFound: (functionPath: string, accountId: number) => string;
833
899
  };
834
900
  readonly examples: {
835
901
  readonly default: "Get 5 most recent logs for function residing at /_hcms/api/my-endpoint";
@@ -837,7 +903,7 @@ Global configuration replaces hubspot.config.yml, and you will be prompted to mi
837
903
  readonly limit: "Get 10 most recent logs for function residing at /_hcms/api/my-endpoint";
838
904
  };
839
905
  readonly endpointPrompt: "Enter a serverless function endpoint:";
840
- readonly gettingLogs: (latest: string, functionPath: string) => string;
906
+ readonly gettingLogs: (latest: boolean | undefined, functionPath: string) => string;
841
907
  readonly options: {
842
908
  readonly compact: {
843
909
  readonly describe: "output compact logs";
@@ -918,9 +984,9 @@ Global configuration replaces hubspot.config.yml, and you will be prompted to mi
918
984
  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
985
  readonly errors: {
920
986
  readonly sourcePathExists: (srcPath: string, destPath: string) => string;
921
- readonly moveFailed: (srcPath: string, destPath: string, accountId: string) => string;
987
+ readonly moveFailed: (srcPath: string, destPath: string, accountId: number) => string;
922
988
  };
923
- readonly move: (srcPath: string, destPath: string, accountId: string) => string;
989
+ readonly move: (srcPath: string, destPath: string, accountId: number) => string;
924
990
  };
925
991
  readonly open: {
926
992
  readonly describe: "Open a HubSpot page in your browser.";
@@ -937,6 +1003,7 @@ Global configuration replaces hubspot.config.yml, and you will be prompted to mi
937
1003
  readonly selectLink: "Select a link to open";
938
1004
  };
939
1005
  readonly project: {
1006
+ readonly describe: "Commands for managing projects. For more information visit our documentation https://developers.hubspot.com/docs/getting-started/quickstart";
940
1007
  readonly profile: {
941
1008
  readonly describe: "Commands for managing project profiles";
942
1009
  readonly verboseDescribe: `Commands for managing project profiles
@@ -1026,7 +1093,7 @@ Profiles enable you to reference variables in your component configuration files
1026
1093
  readonly errors: {
1027
1094
  readonly noProjectConfig: "No project detected. Please run this command again from a project directory.";
1028
1095
  readonly noAccount: (accountId: number) => string;
1029
- readonly noAccountsInConfig: (authCommand: string) => string;
1096
+ readonly noAccountsInConfig: `No accounts found in your config. Run ${string} to configure a HubSpot account with the CLI.`;
1030
1097
  readonly invalidProjectComponents: "Projects cannot contain both private and public apps. Move your apps to separate projects before attempting local development.";
1031
1098
  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
1099
  readonly accountNotCombined: `
@@ -1039,8 +1106,9 @@ Local development of unified apps is currently only compatible with accounts tha
1039
1106
  };
1040
1107
  readonly options: {
1041
1108
  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.";
1109
+ 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.";
1110
+ 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.";
1111
+ readonly account: "The id of the account to upload your project to. Unsupported on platform versions 2025.2 and newer.";
1044
1112
  };
1045
1113
  };
1046
1114
  readonly create: {
@@ -1111,11 +1179,9 @@ ${string}`;
1111
1179
  readonly describe: "Project name (cannot be changed)";
1112
1180
  };
1113
1181
  };
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;
1182
+ 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.
1183
+ ${string}`;
1184
+ readonly deprecationWarning: (platformVersion: string) => string;
1119
1185
  readonly migrationStatus: {
1120
1186
  readonly inProgress: () => string;
1121
1187
  readonly success: () => string;
@@ -1123,16 +1189,27 @@ ${string}`;
1123
1189
  readonly failure: () => string;
1124
1190
  };
1125
1191
  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;
1192
+ readonly title: `${string}
1193
+ `;
1194
+ readonly projectConversion: `${string}
1195
+ `;
1196
+ 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.
1197
+ `;
1198
+ 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";
1199
+ readonly existingApps: string;
1131
1200
  readonly copyApp: "We strongly recommend making a copy of your app to test this process in a development app before replacing production.";
1132
1201
  };
1133
1202
  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
1203
  readonly createAppPrompt: "Proceed with migrating this app to a project component (this process can't be aborted)?";
1135
1204
  readonly projectDetailsLink: "View project details in your developer account";
1205
+ readonly errors: {
1206
+ readonly noAppsForProject: (projectName: string) => string;
1207
+ readonly noAccountConfig: "No account configuration found. Please check your account settings.";
1208
+ readonly projectAlreadyExists: (projectName: string) => string;
1209
+ readonly invalidApp: (appId: number) => string;
1210
+ readonly migrationFailed: "Migration Failed";
1211
+ 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}`;
1212
+ };
1136
1213
  };
1137
1214
  readonly migrate: {
1138
1215
  readonly preamble: (platformVersion: string) => string;
@@ -1159,7 +1236,7 @@ ${string}`;
1159
1236
  };
1160
1237
  };
1161
1238
  readonly cloneStatus: {
1162
- readonly inProgress: () => string;
1239
+ readonly inProgress: `Cloning app configuration to ${string} component definition ...`;
1163
1240
  readonly done: "Cloning app configuration to public-app.json component definition ... DONE";
1164
1241
  readonly success: (dest: string) => string;
1165
1242
  readonly failure: "Cloning app configuration to public-app.json component definition ... FAILED";
@@ -1168,6 +1245,7 @@ ${string}`;
1168
1245
  readonly invalidAccountTypeTitle: () => string;
1169
1246
  readonly invalidAccountTypeDescription: (useCommand: string, authCommand: string) => string;
1170
1247
  readonly couldNotWriteConfigPath: (configPath: string) => string;
1248
+ readonly noAccountConfig: (accountId: number) => string;
1171
1249
  };
1172
1250
  };
1173
1251
  readonly add: {
@@ -1242,7 +1320,7 @@ ${string}`;
1242
1320
  readonly describe: "List the project's builds.";
1243
1321
  readonly continueOrExitPrompt: "Press <enter> to load more, or ctrl+c to exit";
1244
1322
  readonly viewAllBuildsLink: "View all builds";
1245
- readonly showingNextBuilds: (count: string, projectName: string) => string;
1323
+ readonly showingNextBuilds: (count: number, projectName: string) => string;
1246
1324
  readonly showingRecentBuilds: (count: number, projectName: string, viewAllBuildsLink: string) => string;
1247
1325
  readonly errors: {
1248
1326
  readonly noBuilds: "No builds for this project were found.";
@@ -1276,7 +1354,7 @@ ${string}`;
1276
1354
  };
1277
1355
  readonly logs: {
1278
1356
  readonly showingLogs: "Showing logs for:";
1279
- readonly hubspotLogsDirectLink: "View function logs in HubSpot";
1357
+ readonly hubspotLogsDirectLink: (url: string) => string;
1280
1358
  readonly noLogsFound: (name: string) => string;
1281
1359
  };
1282
1360
  readonly table: {
@@ -1315,13 +1393,13 @@ ${string}`;
1315
1393
  readonly default: "Upload a project into your HubSpot account";
1316
1394
  };
1317
1395
  readonly logs: {
1318
- readonly buildSucceeded: (buildId: string) => string;
1396
+ readonly buildSucceeded: (buildId: number) => string;
1319
1397
  readonly readyToGoLive: "🚀 Ready to take your project live?";
1320
1398
  readonly runCommand: (command: string) => string;
1321
1399
  readonly autoDeployDisabled: (deployCommand: string) => string;
1322
1400
  };
1323
1401
  readonly errors: {
1324
- readonly projectLockedError: () => string;
1402
+ 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
1403
  };
1326
1404
  readonly options: {
1327
1405
  readonly forceCreate: {
@@ -1330,6 +1408,9 @@ ${string}`;
1330
1408
  readonly message: {
1331
1409
  readonly describe: "Add a message when you upload your project and create a build";
1332
1410
  };
1411
+ readonly profile: {
1412
+ readonly describe: "Profile to target for this upload";
1413
+ };
1333
1414
  };
1334
1415
  };
1335
1416
  readonly watch: {
@@ -1367,6 +1448,7 @@ ${string}`;
1367
1448
  readonly uploadFailed: (remotePath: string, filePath: string) => string;
1368
1449
  readonly deleteFileFailed: (remotePath: string) => string;
1369
1450
  readonly deleteFolderFailed: (remotePath: string) => string;
1451
+ readonly v3ApiError: (platformVersion: string) => string;
1370
1452
  };
1371
1453
  };
1372
1454
  readonly download: {
@@ -1376,11 +1458,12 @@ ${string}`;
1376
1458
  };
1377
1459
  readonly logs: {
1378
1460
  readonly downloadCancelled: "Cancelling project download";
1379
- readonly downloadSucceeded: (buildId: string, projectName: string) => string;
1461
+ readonly downloadSucceeded: (buildId: number, projectName: string) => string;
1380
1462
  };
1381
1463
  readonly errors: {
1382
1464
  readonly downloadFailed: "Something went wrong downloading the project";
1383
1465
  readonly projectNotFound: (projectName: string, accountId: string) => string;
1466
+ readonly noBuildIdToDownload: "No build ID available for download";
1384
1467
  };
1385
1468
  readonly warnings: {
1386
1469
  readonly cannotDownloadWithinProject: "Cancelling project download. Please run the command again outside the context of an existing project.";
@@ -1428,8 +1511,8 @@ ${string}`;
1428
1511
  readonly addingDependenciesToLocation: (dependencies: string, directory: string) => string;
1429
1512
  readonly installingDependenciesFailed: (directory: string) => string;
1430
1513
  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;
1514
+ readonly noPackageJsonInProject: (projectName: string) => string;
1515
+ readonly packageManagerNotInstalled: (packageManager: string) => string;
1433
1516
  };
1434
1517
  readonly validate: {
1435
1518
  readonly describe: "Validate the project before uploading";
@@ -1461,6 +1544,30 @@ ${string}`;
1461
1544
  readonly describe: "Commands for managing sandboxes.";
1462
1545
  readonly subcommands: {
1463
1546
  readonly create: {
1547
+ readonly describe: "Create a sandbox account.";
1548
+ readonly failure: {
1549
+ readonly noAccountConfig: (accountId: number) => string;
1550
+ readonly invalidAccountType: (accountType: string, accountName: string) => string;
1551
+ readonly noSandboxAccountConfig: (accountId: number) => string;
1552
+ readonly optionMissing: {
1553
+ readonly type: "Type is required when using --force. Use --type=developer or --type=standard.";
1554
+ readonly name: "Name is required when using --force. Use --name=YourSandboxName.";
1555
+ };
1556
+ };
1557
+ readonly options: {
1558
+ readonly force: {
1559
+ readonly describe: "Skips all prompts and uses provided options.";
1560
+ };
1561
+ readonly name: {
1562
+ readonly describe: "Name of the sandbox account to create";
1563
+ };
1564
+ readonly type: {
1565
+ readonly describe: "Type of sandbox to create (developer or standard)";
1566
+ };
1567
+ };
1568
+ readonly examples: {
1569
+ readonly default: "Creates a standard sandbox named MySandboxAccount.";
1570
+ };
1464
1571
  readonly developer: {
1465
1572
  readonly loading: {
1466
1573
  readonly add: (accountName: string) => string;
@@ -1503,28 +1610,28 @@ ${string}`;
1503
1610
  readonly delete: {
1504
1611
  readonly describe: "Delete a sandbox account.";
1505
1612
  readonly debug: {
1506
- readonly deleting: (account: string) => string;
1613
+ readonly deleting: (account: number) => string;
1507
1614
  readonly error: "Error deleting sandbox account:";
1508
1615
  };
1509
1616
  readonly examples: {
1510
1617
  readonly default: "Deletes the sandbox account named MySandboxAccount.";
1511
1618
  };
1512
- readonly confirm: (account: string) => string;
1513
- readonly defaultAccountWarning: (account: string) => string;
1619
+ readonly confirm: (account: number) => string;
1620
+ readonly defaultAccountWarning: (account: number) => string;
1514
1621
  readonly success: {
1515
- readonly delete: (account: string, sandboxHubId: string) => string;
1516
- readonly deleteDefault: (account: string, sandboxHubId: string) => string;
1622
+ readonly delete: (account: string, sandboxHubId: number) => string;
1623
+ readonly deleteDefault: (account: string, sandboxHubId: number) => string;
1517
1624
  readonly configFileUpdated: (account: string, configFilename: string) => string;
1518
1625
  };
1519
1626
  readonly failure: {
1520
- readonly invalidUser: (accountName: string, parentAccountName: string) => string;
1627
+ readonly invalidUser: (account: number, parentAccount: number) => string;
1521
1628
  readonly noAccount: "No account specified. Specify an account by using the --account flag.";
1522
- readonly noSandboxAccounts: (authCommand: string) => string;
1629
+ readonly noSandboxAccounts: `There are no sandboxes connected to the CLI. To add a sandbox, run ${string}.`;
1523
1630
  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;
1631
+ 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.`;
1632
+ readonly objectNotFound: (account: number) => string;
1526
1633
  readonly noParentPortalAvailable: (command: string, url: string) => string;
1527
- readonly invalidKey: (account: string, authCommand: string) => string;
1634
+ readonly invalidKey: (account: number | null | undefined) => string;
1528
1635
  };
1529
1636
  readonly options: {
1530
1637
  readonly force: {
@@ -1552,33 +1659,17 @@ ${string}`;
1552
1659
  readonly instructions: (accountName: string, url: string) => string;
1553
1660
  };
1554
1661
  };
1662
+ readonly confirm: {
1663
+ readonly syncContactRecords: {
1664
+ 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.";
1665
+ 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.";
1666
+ };
1667
+ };
1555
1668
  };
1556
1669
  };
1557
1670
  readonly app: {
1558
1671
  readonly describe: "Commands for managing apps.";
1559
1672
  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
1673
  readonly secret: {
1583
1674
  readonly describe: "Commands for managing secrets.";
1584
1675
  readonly subcommands: {
@@ -1651,7 +1742,7 @@ ${string}`;
1651
1742
  readonly describe: "Create a new secret.";
1652
1743
  readonly errors: {
1653
1744
  readonly add: (secretName: string) => string;
1654
- readonly alreadyExists: (secretName: string, command: string) => string;
1745
+ readonly alreadyExists: (secretName: string) => string;
1655
1746
  };
1656
1747
  readonly positionals: {
1657
1748
  readonly name: {
@@ -1659,7 +1750,7 @@ ${string}`;
1659
1750
  };
1660
1751
  };
1661
1752
  readonly success: {
1662
- readonly add: (secretName: string, accountIdentifier: string) => string;
1753
+ readonly add: (secretName: string, accountId: number) => string;
1663
1754
  };
1664
1755
  };
1665
1756
  readonly delete: {
@@ -1677,7 +1768,7 @@ ${string}`;
1677
1768
  };
1678
1769
  };
1679
1770
  readonly success: {
1680
- readonly delete: (secretName: string, accountIdentifier: string) => string;
1771
+ readonly delete: (secretName: string, accountId: number) => string;
1681
1772
  };
1682
1773
  };
1683
1774
  readonly list: {
@@ -1700,7 +1791,7 @@ ${string}`;
1700
1791
  };
1701
1792
  };
1702
1793
  readonly success: {
1703
- readonly update: (secretName: string, accountIdentifier: string) => string;
1794
+ readonly update: (secretName: string, accountId: number) => string;
1704
1795
  readonly updateExplanation: "Existing serverless functions will start using this new value within 10 seconds.";
1705
1796
  };
1706
1797
  };
@@ -1929,18 +2020,41 @@ ${string}`;
1929
2020
  readonly example: (name: string) => string;
1930
2021
  };
1931
2022
  readonly delete: {
1932
- readonly describe: "Delete a test account config file.";
2023
+ readonly describe: "Delete a test account from your HubSpot account and CLI config";
1933
2024
  readonly pathPrompt: "[--path] What is the path to the test account config?";
2025
+ readonly info: {
2026
+ readonly deletionCanceled: "Deletion canceled by user";
2027
+ readonly accountNotFoundWithId: (id: number) => string;
2028
+ readonly replaceDefaultAccount: (testAccountId: number, parentAccountName: string) => string;
2029
+ };
2030
+ readonly prompts: {
2031
+ readonly selectTestAccounts: "Select test account(s) to delete";
2032
+ 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?";
2033
+ };
1934
2034
  readonly errors: {
1935
- readonly failedToDelete: "Failed to delete test account";
2035
+ readonly failedToDelete: (testAccountToDelete: number) => string;
2036
+ readonly failedToSelectAccount: "Failed to select a test account to delete";
2037
+ readonly noAccountsToDelete: (accountId: number) => string;
2038
+ readonly failedToDeleteFromConfig: (testAccountToDelete: number) => string;
2039
+ readonly failedToFetchTestAccounts: "Failed to fetch developer test accounts";
2040
+ readonly testAccountNotFound: (nameOrId: string | number | null) => string;
2041
+ readonly parentAccountNotFound: (testAccountId: number) => string;
1936
2042
  };
1937
2043
  readonly success: {
1938
- readonly testAccountDeleted: (testAccountId: number) => string;
2044
+ readonly testAccountDeletedFromHubSpot: (testAccountToDelete: number) => string;
2045
+ readonly testAccountDeletedFromConfig: (accountId: number) => string;
1939
2046
  };
1940
- readonly positionals: {
1941
- readonly testAccountId: "The id of the test account";
2047
+ readonly options: {
2048
+ readonly name: "The name of the test account (in your CLI config) to delete";
2049
+ readonly id: "The id of the test account";
2050
+ };
2051
+ readonly examples: {
2052
+ readonly withPositionalID: (testAccountToDelete: number) => string;
2053
+ readonly withPositionalName: (testAccountToDelete: string) => string;
2054
+ readonly withID: (testAccountToDelete: number) => string;
2055
+ readonly withName: (testAccountToDelete: string) => string;
2056
+ readonly withoutId: "Delete a test account via a prompt";
1942
2057
  };
1943
- readonly example: (testAccountId: number) => string;
1944
2058
  };
1945
2059
  };
1946
2060
  readonly secrets: {
@@ -2648,6 +2762,11 @@ export declare const lib: {
2648
2762
  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
2763
  readonly genericError: `An error occurred while creating the initial build for this project. Run ${string} to try again.`;
2650
2764
  };
2765
+ readonly checkAndInstallDependencies: {
2766
+ readonly checkingDependencies: "Checking for missing or updated dependencies...";
2767
+ readonly dependenciesUpToDate: "All dependencies are up to date";
2768
+ readonly dependenciesFailure: "Failed to check or install dependencies";
2769
+ };
2651
2770
  };
2652
2771
  readonly account: {
2653
2772
  readonly checkIfDefaultAccountIsSupported: {
@@ -2664,7 +2783,7 @@ export declare const lib: {
2664
2783
  readonly notAuthedError: (parentAccountId: number | string, accountIdentifier: string) => string;
2665
2784
  };
2666
2785
  readonly selectAccountTypePrompt: {
2667
- readonly message: "[--testing-account] Choose the type of account to test on";
2786
+ readonly message: "Choose the type of account to test on";
2668
2787
  readonly developerTestAccountOption: "Test on a developer test account (recommended)";
2669
2788
  readonly sandboxAccountOption: "Test on a sandbox account";
2670
2789
  readonly sandboxAccountOptionDisabled: "Disabled - requires access to sandbox accounts";
@@ -2792,6 +2911,7 @@ Run ${string} to upgrade to version ${string}`;
2792
2911
  readonly compressed: (byteCount: number) => string;
2793
2912
  readonly compressing: (path: string) => string;
2794
2913
  readonly fileFiltered: (filename: string) => string;
2914
+ readonly legacyFileDetected: (filename: string, platformVersion: string) => string;
2795
2915
  };
2796
2916
  };
2797
2917
  readonly boxen: {
@@ -2808,13 +2928,15 @@ Run ${string} to upgrade to version ${string}`;
2808
2928
  readonly viewImportLink: (baseUrl: string, accountId: number, importId: string) => string;
2809
2929
  };
2810
2930
  readonly ui: {
2811
- readonly betaTag: string;
2931
+ readonly betaTag: "[BETA]";
2932
+ readonly betaTagWithStyle: string;
2812
2933
  readonly betaWarning: {
2813
2934
  readonly header: string;
2814
2935
  readonly footer: string;
2815
2936
  };
2816
2937
  readonly infoTag: string;
2817
- readonly deprecatedTag: string;
2938
+ readonly deprecatedTag: "[DEPRECATED]";
2939
+ readonly deprecatedTagWithStyle: string;
2818
2940
  readonly errorTag: string;
2819
2941
  readonly deprecatedMessage: (command: string, url: string) => string;
2820
2942
  readonly deprecatedDescription: (message: string, command: string, url: string) => string;
@@ -2833,7 +2955,7 @@ Run ${string} to upgrade to version ${string}`;
2833
2955
  readonly message: (command: string) => string;
2834
2956
  };
2835
2957
  readonly accountsUseCommand: {
2836
- readonly command: "hs accounts use";
2958
+ readonly command: "hs account use";
2837
2959
  readonly message: (command: string) => string;
2838
2960
  };
2839
2961
  readonly authCommand: {
@@ -2872,6 +2994,9 @@ Run ${string} to upgrade to version ${string}`;
2872
2994
  readonly command: "hs project install-deps";
2873
2995
  readonly message: (command: string) => string;
2874
2996
  };
2997
+ readonly projectCommandTip: {
2998
+ readonly message: "Tip: All project commands must be run from within a project directory";
2999
+ };
2875
3000
  readonly sampleProjects: {
2876
3001
  readonly linkText: "HubSpot's sample projects";
2877
3002
  readonly url: "https://developers.hubspot.com/docs/platform/sample-projects?utm_source=cli&utm_content=project_create_whats_next";
@@ -2924,11 +3049,12 @@ Run ${string} to upgrade to version ${string}`;
2924
3049
  readonly setHttpTimeout: {
2925
3050
  readonly promptMessage: "Enter http timeout duration";
2926
3051
  readonly success: (timeout: string) => string;
3052
+ readonly error: (timeout: string) => string;
2927
3053
  };
2928
3054
  readonly setAutoOpenBrowser: {
2929
3055
  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";
3056
+ readonly enabled: `Successfully updated ${string} to ${string}`;
3057
+ readonly disabled: `Successfully updated ${string} to ${string}`;
2932
3058
  };
2933
3059
  };
2934
3060
  readonly commonOpts: {
@@ -2966,6 +3092,11 @@ Run ${string} to upgrade to version ${string}`;
2966
3092
  };
2967
3093
  };
2968
3094
  readonly prompts: {
3095
+ readonly promptUtils: {
3096
+ readonly errors: {
3097
+ readonly noSelectableChoices: "Exiting prompt because no selectable choices are available";
3098
+ };
3099
+ };
2969
3100
  readonly importDataFilePathPrompt: {
2970
3101
  readonly promptContext: `To view the JSON schema for data imports, visit ${string}`;
2971
3102
  readonly promptMessage: "[--file-path] Select the JSON file that will be used to import your data.";
@@ -2982,11 +3113,11 @@ Run ${string} to upgrade to version ${string}`;
2982
3113
  readonly projectDevTargetAccountPrompt: {
2983
3114
  readonly createNewSandboxOption: "<Test on a new development sandbox>";
2984
3115
  readonly createNewDeveloperTestAccountOption: "<Test on a new developer test account>";
2985
- readonly chooseDefaultAccountOption: () => string;
3116
+ readonly chooseDefaultAccountOption: `<${string} Test on this production account ${string}>`;
2986
3117
  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;
3118
+ readonly sandboxLimit: (limit: number) => string;
3119
+ readonly sandboxLimitWithSuggestion: (limit: number) => string;
3120
+ readonly developerTestAccountLimit: (limit: number) => string;
2990
3121
  readonly confirmDefaultAccount: (accountName: string, accountType: string) => string;
2991
3122
  readonly confirmUseExistingDeveloperTestAccount: (accountName: string) => string;
2992
3123
  readonly noAccountId: "No account ID found for the selected account. Please try again.";
@@ -2997,7 +3128,7 @@ Run ${string} to upgrade to version ${string}`;
2997
3128
  readonly setAsDefaultAccountPrompt: {
2998
3129
  readonly setAsDefaultAccountMessage: "Set this account as the default?";
2999
3130
  readonly setAsDefaultAccount: (accountName: string) => string;
3000
- readonly keepingCurrentDefault: (accountName: string) => string;
3131
+ readonly keepingCurrentDefault: (accountName: string | number) => string;
3001
3132
  };
3002
3133
  readonly createDeveloperTestAccountConfigPrompt: {
3003
3134
  readonly namePrompt: (withFlag?: boolean) => string;
@@ -3027,7 +3158,7 @@ Run ${string} to upgrade to version ${string}`;
3027
3158
  readonly enterStandardSandboxName: "Name your standard sandbox:";
3028
3159
  readonly enterDevelopmentSandboxName: "Name your development sandbox:";
3029
3160
  readonly sandboxDefaultName: (sandboxType: string) => string;
3030
- readonly developerTestAccountDefaultName: (count: string) => string;
3161
+ readonly developerTestAccountDefaultName: (count: number) => string;
3031
3162
  readonly errors: {
3032
3163
  readonly invalidName: "You entered an invalid name. Please try again.";
3033
3164
  readonly nameRequired: "The name may not be blank. Please try again.";
@@ -3125,8 +3256,8 @@ Run ${string} to upgrade to version ${string}`;
3125
3256
  readonly selectAppIdClone: (accountName: string) => string;
3126
3257
  readonly errors: {
3127
3258
  readonly noAccountId: "An account ID is required to select an app.";
3128
- readonly noAppsMigration: () => string;
3129
- readonly noAppsClone: () => string;
3259
+ readonly noAppsMigration: string;
3260
+ readonly noAppsClone: string;
3130
3261
  readonly noAppsMigrationMessage: (accountName: string) => string;
3131
3262
  readonly noAppsCloneMessage: (accountName: string) => string;
3132
3263
  readonly errorFetchingApps: "There was an error fetching public apps.";
@@ -3136,7 +3267,7 @@ Run ${string} to upgrade to version ${string}`;
3136
3267
  readonly downloadProjectPrompt: {
3137
3268
  readonly selectProject: "Select a project to download:";
3138
3269
  readonly errors: {
3139
- readonly projectNotFound: (projectName: string, accountId: string) => string;
3270
+ readonly projectNotFound: (projectName: string, accountId: number) => string;
3140
3271
  readonly accountIdRequired: "An account ID is required to download a project.";
3141
3272
  };
3142
3273
  };
@@ -3147,6 +3278,7 @@ Run ${string} to upgrade to version ${string}`;
3147
3278
  readonly errors: {
3148
3279
  readonly nameRequired: "A component name is required";
3149
3280
  readonly componentRequired: "Must select a feature to add";
3281
+ readonly noSelectableChoices: "There are no available features that can be added to this project";
3150
3282
  readonly invalidType: (type: string) => string;
3151
3283
  readonly cannotAddFeature: (feature: string, reasons: string | boolean) => string;
3152
3284
  };
@@ -3182,7 +3314,7 @@ Run ${string} to upgrade to version ${string}`;
3182
3314
  readonly enterName: "[--project] Enter project name:";
3183
3315
  readonly errors: {
3184
3316
  readonly invalidName: "You entered an invalid name. Please try again.";
3185
- readonly projectDoesNotExist: (projectName: string, accountIdentifier: string) => string;
3317
+ readonly projectDoesNotExist: (projectName: string, accountId: number) => string;
3186
3318
  };
3187
3319
  };
3188
3320
  readonly previewPrompt: {
@@ -3242,8 +3374,8 @@ Run ${string} to upgrade to version ${string}`;
3242
3374
  };
3243
3375
  readonly failure: {
3244
3376
  readonly invalidUser: (accountName: string, parentAccountName: string) => string;
3245
- readonly limit: (accountName: string, limit: string) => string;
3246
- readonly alreadyInConfig: (accountName: string, limit: string) => string;
3377
+ readonly limit: (accountName: string | number, limit: number) => string;
3378
+ readonly alreadyInConfig: (accountName: string | number, limit: number) => string;
3247
3379
  readonly scopes: {
3248
3380
  readonly message: "The personal access key you provided doesn't include developer test account permissions.";
3249
3381
  readonly instructions: (accountName: string | number, url: string) => string;
@@ -3263,14 +3395,13 @@ Run ${string} to upgrade to version ${string}`;
3263
3395
  readonly configFileUpdated: (accountName: string, authType: string) => string;
3264
3396
  };
3265
3397
  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;
3398
+ readonly limit: (accountId: number, limit: number, link: string) => string;
3399
+ readonly alreadyInConfig: (accountId: number, limit: number) => string;
3400
+ readonly generic: "An error occurred while creating a developer sandbox";
3269
3401
  readonly scopes: {
3270
3402
  readonly message: "The personal access key you provided doesn't include developer sandbox permissions.";
3271
- readonly instructions: (accountName: string | number, url: string) => string;
3403
+ readonly instructions: (account: string | number, url: string) => string;
3272
3404
  };
3273
- readonly generic: "An error occurred while creating a developer sandbox";
3274
3405
  };
3275
3406
  };
3276
3407
  readonly standard: {
@@ -3283,27 +3414,51 @@ Run ${string} to upgrade to version ${string}`;
3283
3414
  readonly configFileUpdated: (accountName: string, authType: string) => string;
3284
3415
  };
3285
3416
  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;
3417
+ readonly limit: (accountId: number, limit: number, link: string) => string;
3418
+ readonly alreadyInConfig: (accountId: number, limit: number) => string;
3289
3419
  readonly scopes: {
3290
3420
  readonly message: "The personal access key you provided doesn't include standard sandbox permissions.";
3291
- readonly instructions: (accountName: string, url: string) => string;
3421
+ readonly instructions: (account: string | number, url: string) => string;
3292
3422
  };
3293
3423
  };
3294
3424
  };
3425
+ readonly failure: {
3426
+ readonly usageLimitsFetch: "Unable to fetch sandbox usage limits. Please try again.";
3427
+ readonly scopes: {
3428
+ readonly message: "The personal access key you provided doesn't include sandbox permissions.";
3429
+ readonly instructions: (account: string | number, url: string) => string;
3430
+ };
3431
+ readonly invalidUser: (accountName: string, parentAccountId: number) => string;
3432
+ readonly '403Gating': (accountName: string, parentAccountId: number) => string;
3433
+ };
3295
3434
  };
3296
3435
  readonly sync: {
3436
+ readonly info: {
3437
+ readonly syncMessage: (url: string) => string;
3438
+ readonly syncMessageDevSb: (url: string) => string;
3439
+ };
3440
+ readonly confirm: {
3441
+ readonly syncContactRecords: {
3442
+ readonly standard: "Do you want to sync contact records from your production account?";
3443
+ };
3444
+ };
3297
3445
  readonly loading: {
3298
3446
  readonly add: (accountName: string) => string;
3299
- readonly fail: (accountName: string) => string;
3300
- readonly succeed: (accountName: string) => string;
3447
+ readonly fail: (accountId: number) => string;
3448
+ readonly succeed: (accountId: number) => string;
3449
+ readonly startSync: "Initiating sync...";
3450
+ readonly succeedDevSb: (accountId: number) => string;
3451
+ readonly successDevSbInfo: (accountId: number, url: string) => string;
3301
3452
  };
3302
3453
  readonly success: {
3303
3454
  readonly configFileUpdated: (accountName: string, authType: string) => string;
3304
3455
  };
3305
3456
  readonly failure: {
3457
+ readonly syncTypeFetch: "Unable to fetch available sandbox sync types. Please try again.";
3306
3458
  readonly invalidUser: (accountName: string, parentAccountName: string) => string;
3459
+ readonly syncInProgress: (url: string) => string;
3460
+ readonly notSuperAdmin: (accountId: number) => string;
3461
+ readonly objectNotFound: (accountId: number) => string;
3307
3462
  readonly scopes: {
3308
3463
  readonly message: "The personal access key you provided doesn't include sandbox sync permissions.";
3309
3464
  readonly instructions: (accountName: string, url: string) => string;
@@ -3317,6 +3472,8 @@ Run ${string} to upgrade to version ${string}`;
3317
3472
  readonly errorContext: (context: string) => string;
3318
3473
  readonly errorCause: (cause: string) => string;
3319
3474
  readonly unknownErrorOccurred: "An unknown error has occurred.";
3475
+ readonly configTimeoutErrorOccurred: (timeout: number, configSetCommand: string) => string;
3476
+ readonly genericTimeoutErrorOccurred: "This error occurred because an HTTP request timed out. Re-running the command may resolve this issue.";
3320
3477
  };
3321
3478
  readonly suppressErrors: {
3322
3479
  readonly platformVersionErrors: {
@@ -3328,7 +3485,7 @@ Run ${string} to upgrade to version ${string}`;
3328
3485
  readonly docsLink: "Projects platform versioning (BETA)";
3329
3486
  readonly betaLink: (docsLink: string) => string;
3330
3487
  };
3331
- readonly missingScopeError: (request: string, accountName: string, authCommand: string) => string;
3488
+ readonly missingScopeError: (request: string, accountName: string) => string;
3332
3489
  };
3333
3490
  };
3334
3491
  readonly serverless: {
@@ -3336,7 +3493,7 @@ Run ${string} to upgrade to version ${string}`;
3336
3493
  readonly fetchScopeDataError: (scopeGroup: string) => string;
3337
3494
  readonly portalMissingScope: "Your account does not have access to this action. Talk to an account admin to request it.";
3338
3495
  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`.";
3496
+ readonly genericMissingScope: `Your access key does not allow this action. Please generate a new access key by running ${string}.`;
3340
3497
  };
3341
3498
  };
3342
3499
  readonly doctor: {
@@ -3349,9 +3506,9 @@ Run ${string} to upgrade to version ${string}`;
3349
3506
  readonly unableToDetermine: "Unable to determine if the portal is active";
3350
3507
  readonly pak: {
3351
3508
  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;
3509
+ readonly incompleteSecondary: (link: string) => string;
3353
3510
  readonly invalid: "Personal access key is invalid";
3354
- readonly invalidSecondary: (command: string) => string;
3511
+ 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
3512
  readonly valid: (link: string) => string;
3356
3513
  readonly viewScopes: "View selected scopes";
3357
3514
  };
@@ -3372,7 +3529,6 @@ Run ${string} to upgrade to version ${string}`;
3372
3529
  readonly latest: (hsVersion: string) => string;
3373
3530
  readonly unableToDetermine: "Unable to determine if HubSpot CLI is up to date.";
3374
3531
  readonly unableToDetermineSecondary: (command: string, link: string) => string;
3375
- readonly unableToDetermineSecondaryLink: "npm HubSpot CLI version history";
3376
3532
  };
3377
3533
  readonly projectDependenciesChecks: {
3378
3534
  readonly missingDependencies: (dir: string) => string;
@@ -3385,9 +3541,9 @@ Run ${string} to upgrade to version ${string}`;
3385
3541
  readonly validJson: "JSON files valid";
3386
3542
  };
3387
3543
  readonly port: {
3388
- readonly inUse: (port: string) => string;
3544
+ readonly inUse: (port: number) => string;
3389
3545
  readonly inUseSecondary: (command: string) => string;
3390
- readonly available: (port: string) => string;
3546
+ readonly available: (port: number) => string;
3391
3547
  };
3392
3548
  readonly diagnosis: {
3393
3549
  readonly cli: {
@@ -3399,21 +3555,51 @@ Run ${string} to upgrade to version ${string}`;
3399
3555
  readonly defaultAccountSubHeader: (accountDetails: string) => string;
3400
3556
  readonly noConfigFile: "CLI configuration not found";
3401
3557
  readonly noConfigFileSecondary: (command: string) => string;
3558
+ readonly settings: {
3559
+ readonly httpUseLocalhost: `The setting ${string} is enabled`;
3560
+ readonly httpUseLocalhostSecondary: "This setting causes all CLI requests to route to localhost";
3561
+ };
3402
3562
  };
3403
3563
  readonly projectConfig: {
3404
3564
  readonly header: "Project configuration";
3405
3565
  readonly projectDirSubHeader: (projectDir: string) => string;
3406
3566
  readonly projectNameSubHeader: (projectName: string) => string;
3407
3567
  };
3568
+ readonly defaultAccountOverrideFile: {
3569
+ readonly header: "Default account override file path:";
3570
+ };
3408
3571
  readonly counts: {
3409
- readonly errors: (count: string) => string;
3410
- readonly warnings: (count: string) => string;
3572
+ readonly errors: (count: number) => string;
3573
+ readonly warnings: (count: number) => string;
3411
3574
  };
3412
3575
  };
3576
+ readonly defaultAccountOverrideFileChecks: {
3577
+ readonly overrideActive: (defaultAccountOverrideFile: string) => string;
3578
+ readonly overrideAccountId: (overrideAccountId: number | string) => string;
3579
+ };
3413
3580
  };
3414
3581
  readonly oauth: {
3415
3582
  readonly missingClientId: "Error building oauth URL: missing client ID.";
3416
3583
  };
3584
+ readonly validation: {
3585
+ readonly accountNotFoundInConfig: (userProvidedAccount: string) => string;
3586
+ readonly accountRequired: "An account needs to be supplied either via \"--account\" or through setting a \"defaultPortal\"";
3587
+ readonly userProvidedAccount: "Cannot specify an account when environment variables are supplied. Please unset the environment variables or do not use the \"--account\" flag.";
3588
+ readonly accountNotConfigured: (accountId: number) => string;
3589
+ readonly invalidAuthType: (authType: string, accountId: number, configPath: string, validValues: string) => string;
3590
+ readonly oauth2ConfigMissing: (accountId: number) => string;
3591
+ readonly oauth2ConfigIncorrect: (accountId: number) => string;
3592
+ readonly oauth2AccessTokenNotFound: (accountId: number) => string;
3593
+ readonly personalAccessKeyMissing: (accountId: number) => string;
3594
+ readonly personalAccessKeyTokenRetrievalFailed: (accountId: number) => string;
3595
+ readonly authConfigurationMissing: (accountId: number) => string;
3596
+ readonly availableCMSModes: (modes: string) => string;
3597
+ readonly invalidCmsPublishMode: (cmsPublishMode: string, modesMessage: string) => string;
3598
+ readonly missingCmsPublishMode: (modesMessage: string) => string;
3599
+ readonly pathNotFile: (path: string) => string;
3600
+ readonly fileNotJson: (path: string) => string;
3601
+ readonly fileInvalidJson: (path: string) => string;
3602
+ };
3417
3603
  readonly migrate: {
3418
3604
  readonly componentsToBeMigrated: (components: string) => string;
3419
3605
  readonly componentsThatWillNotBeMigrated: (components: string) => string;
@@ -3447,7 +3633,7 @@ Run ${string} to upgrade to version ${string}`;
3447
3633
  };
3448
3634
  readonly noAppsEligible: (accountId: string, reasons: string[]) => string;
3449
3635
  readonly invalidAccountTypeTitle: string;
3450
- readonly invalidAccountTypeDescription: (useCommand: string, authCommand: string) => string;
3636
+ readonly invalidAccountTypeDescription: (useCommand: string) => string;
3451
3637
  readonly appWithAppIdNotFound: (appId: number) => string;
3452
3638
  readonly noAppsForProject: (projectName: string) => string;
3453
3639
  readonly migrationFailed: "Migration Failed";