@hubspot/cli 8.2.0-beta.0 → 8.2.0-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 (700) hide show
  1. package/api/migrate.js +8 -4
  2. package/api/releases.d.ts +36 -0
  3. package/api/releases.js +41 -0
  4. package/bin/cli.js +12 -6
  5. package/commands/account/auth.d.ts +3 -1
  6. package/commands/account/auth.js +23 -7
  7. package/commands/account/clean.js +7 -6
  8. package/commands/account/createOverride.js +10 -7
  9. package/commands/account/info.js +36 -17
  10. package/commands/account/link.d.ts +4 -0
  11. package/commands/account/link.js +87 -0
  12. package/commands/account/list.js +32 -76
  13. package/commands/account/remove.js +4 -3
  14. package/commands/account/removeOverride.js +11 -10
  15. package/commands/account/rename.js +5 -6
  16. package/commands/account/unlink.d.ts +4 -0
  17. package/commands/account/unlink.js +68 -0
  18. package/commands/account/use.js +75 -6
  19. package/commands/account.js +4 -0
  20. package/commands/api.d.ts +10 -0
  21. package/commands/api.js +164 -0
  22. package/commands/app/logDetails.d.ts +9 -0
  23. package/commands/app/logDetails.js +86 -0
  24. package/commands/app/logs.d.ts +13 -0
  25. package/commands/app/logs.js +122 -0
  26. package/commands/app/migrate.js +13 -13
  27. package/commands/app/secret/add.js +6 -7
  28. package/commands/app/secret/delete.js +9 -10
  29. package/commands/app/secret/list.js +6 -7
  30. package/commands/app/secret/update.js +8 -9
  31. package/commands/app.js +8 -1
  32. package/commands/auth.js +20 -16
  33. package/commands/cms/app/create.js +9 -5
  34. package/commands/cms/convertFields.js +8 -8
  35. package/commands/cms/delete.js +2 -3
  36. package/commands/cms/fetch.js +7 -7
  37. package/commands/cms/function/create.js +9 -5
  38. package/commands/cms/function/deploy.js +2 -3
  39. package/commands/cms/function/list.js +11 -7
  40. package/commands/cms/function/logs.js +17 -23
  41. package/commands/cms/function/server.js +2 -3
  42. package/commands/cms/getReactModule.js +7 -8
  43. package/commands/cms/lighthouseScore.js +25 -24
  44. package/commands/cms/lint.js +4 -5
  45. package/commands/cms/list.js +5 -6
  46. package/commands/cms/module/create.js +15 -5
  47. package/commands/cms/module/marketplace-validate.js +7 -8
  48. package/commands/cms/mv.js +2 -3
  49. package/commands/cms/template/create.js +10 -6
  50. package/commands/cms/theme/create.js +5 -5
  51. package/commands/cms/theme/generate-selectors.js +5 -4
  52. package/commands/cms/theme/marketplace-validate.js +8 -9
  53. package/commands/cms/theme/preview.js +16 -8
  54. package/commands/cms/upload.js +15 -12
  55. package/commands/cms/watch.js +5 -5
  56. package/commands/cms/webpack/create.js +5 -5
  57. package/commands/completion.js +3 -5
  58. package/commands/config/migrate.js +6 -7
  59. package/commands/config/set.js +5 -6
  60. package/commands/customObject/create.js +4 -5
  61. package/commands/customObject/createSchema.js +4 -5
  62. package/commands/customObject/deleteSchema.js +4 -5
  63. package/commands/customObject/fetchAllSchemas.js +2 -3
  64. package/commands/customObject/fetchSchema.js +2 -3
  65. package/commands/customObject/listSchemas.js +2 -3
  66. package/commands/customObject/updateSchema.js +4 -5
  67. package/commands/doctor.js +8 -8
  68. package/commands/feedback.js +6 -4
  69. package/commands/filemanager/fetch.js +5 -6
  70. package/commands/filemanager/upload.js +5 -5
  71. package/commands/getStarted.js +17 -19
  72. package/commands/hubdb/clear.js +6 -3
  73. package/commands/hubdb/create.js +4 -5
  74. package/commands/hubdb/delete.js +9 -6
  75. package/commands/hubdb/fetch.js +6 -3
  76. package/commands/hubdb/list.js +16 -14
  77. package/commands/init.js +16 -15
  78. package/commands/mcp/setup.js +5 -6
  79. package/commands/mcp/start.js +2 -3
  80. package/commands/open.js +4 -5
  81. package/commands/project/add.js +13 -8
  82. package/commands/project/appInstallStatus.d.ts +4 -0
  83. package/commands/project/appInstallStatus.js +133 -0
  84. package/commands/project/create.js +28 -17
  85. package/commands/project/delete.d.ts +7 -0
  86. package/commands/project/delete.js +74 -0
  87. package/commands/project/deploy.js +39 -36
  88. package/commands/project/dev/deprecatedFlow.js +62 -17
  89. package/commands/project/dev/index.d.ts +3 -3
  90. package/commands/project/dev/index.js +59 -48
  91. package/commands/project/dev/unifiedFlow.js +70 -21
  92. package/commands/project/download.js +12 -9
  93. package/commands/project/info.d.ts +4 -0
  94. package/commands/project/info.js +68 -0
  95. package/commands/project/installDeps.js +9 -6
  96. package/commands/project/lint.js +43 -12
  97. package/commands/project/list.d.ts +2 -2
  98. package/commands/project/list.js +15 -14
  99. package/commands/project/listBuilds.js +8 -6
  100. package/commands/project/logs.js +5 -6
  101. package/commands/project/migrate.js +18 -18
  102. package/commands/project/open.js +5 -6
  103. package/commands/project/profile/add.js +12 -8
  104. package/commands/project/profile/delete.js +15 -11
  105. package/commands/project/release/create.d.ts +7 -0
  106. package/commands/project/release/create.js +159 -0
  107. package/commands/project/release/info.d.ts +6 -0
  108. package/commands/project/release/info.js +147 -0
  109. package/commands/project/release/list.d.ts +6 -0
  110. package/commands/project/release/list.js +111 -0
  111. package/commands/project/release.d.ts +3 -0
  112. package/commands/project/release.js +20 -0
  113. package/commands/project/updateDeps.js +9 -6
  114. package/commands/project/upload.d.ts +3 -0
  115. package/commands/project/upload.js +107 -25
  116. package/commands/project/validate.js +12 -12
  117. package/commands/project/watch.js +22 -22
  118. package/commands/project.js +14 -3
  119. package/commands/sandbox/create.js +18 -45
  120. package/commands/sandbox/delete.js +13 -14
  121. package/commands/secret/addSecret.js +6 -7
  122. package/commands/secret/deleteSecret.js +5 -6
  123. package/commands/secret/listSecret.js +2 -3
  124. package/commands/secret/updateSecret.js +4 -5
  125. package/commands/testAccount/create.d.ts +1 -1
  126. package/commands/testAccount/create.js +25 -17
  127. package/commands/testAccount/createConfig.js +7 -8
  128. package/commands/testAccount/delete.js +27 -18
  129. package/commands/testAccount/importData.js +6 -7
  130. package/commands/upgrade.js +9 -10
  131. package/lang/en.d.ts +441 -9
  132. package/lang/en.js +456 -22
  133. package/lib/CLIWebSocketServer.d.ts +5 -3
  134. package/lib/CLIWebSocketServer.js +31 -4
  135. package/lib/accountAuth.d.ts +3 -1
  136. package/lib/accountAuth.js +47 -17
  137. package/lib/api/usageTracking.d.ts +30 -0
  138. package/lib/api/usageTracking.js +11 -0
  139. package/lib/app/logs.d.ts +38 -0
  140. package/lib/app/logs.js +225 -0
  141. package/lib/app/migrate.js +18 -5
  142. package/lib/app/urls.d.ts +2 -0
  143. package/lib/app/urls.js +7 -0
  144. package/lib/auth/awaitPersonalAccessKeyOverWebsocket.d.ts +4 -0
  145. package/lib/auth/awaitPersonalAccessKeyOverWebsocket.js +145 -0
  146. package/lib/buildAccount.d.ts +1 -6
  147. package/lib/buildAccount.js +10 -43
  148. package/lib/commonOpts.js +0 -1
  149. package/lib/constants.d.ts +10 -3
  150. package/lib/constants.js +12 -3
  151. package/lib/doctor/Diagnosis.js +5 -5
  152. package/lib/doctor/Doctor.js +7 -7
  153. package/lib/errorHandlers/index.js +4 -3
  154. package/lib/errorHandlers/suppressError.js +4 -0
  155. package/lib/errors/PromptExitError.d.ts +6 -0
  156. package/lib/errors/PromptExitError.js +11 -0
  157. package/lib/getStartedV2Actions.js +3 -3
  158. package/lib/hasFeature.js +1 -2
  159. package/lib/link/accountTableUtils.d.ts +10 -0
  160. package/lib/link/accountTableUtils.js +39 -0
  161. package/lib/link/index.d.ts +18 -0
  162. package/lib/link/index.js +185 -0
  163. package/lib/link/linkUtils.d.ts +5 -0
  164. package/lib/link/linkUtils.js +49 -0
  165. package/lib/link/prompts.d.ts +7 -0
  166. package/lib/link/prompts.js +126 -0
  167. package/lib/link/renderLinkedAccountsTable.d.ts +2 -0
  168. package/lib/link/renderLinkedAccountsTable.js +14 -0
  169. package/lib/link/warnIfLinkedDirectory.d.ts +1 -0
  170. package/lib/link/warnIfLinkedDirectory.js +9 -0
  171. package/lib/middleware/autoUpdateMiddleware.js +6 -3
  172. package/lib/middleware/commandTargetingUtils.js +1 -0
  173. package/lib/process.d.ts +1 -1
  174. package/lib/process.js +10 -3
  175. package/lib/projects/ProjectLogsManager.js +6 -3
  176. package/lib/projects/components.js +15 -4
  177. package/lib/projects/create/index.js +2 -2
  178. package/lib/projects/create/legacy.js +2 -2
  179. package/lib/projects/create/v2.js +4 -5
  180. package/lib/projects/delete.d.ts +13 -0
  181. package/lib/projects/delete.js +193 -0
  182. package/lib/projects/deploy.d.ts +1 -1
  183. package/lib/projects/deploy.js +2 -2
  184. package/lib/projects/localDev/AppDevModeInterface.js +13 -9
  185. package/lib/projects/localDev/DevServerManager_DEPRECATED.d.ts +4 -1
  186. package/lib/projects/localDev/DevServerManager_DEPRECATED.js +3 -3
  187. package/lib/projects/localDev/DevSessionManager.d.ts +6 -3
  188. package/lib/projects/localDev/DevSessionManager.js +31 -19
  189. package/lib/projects/localDev/LocalDevManager_DEPRECATED.d.ts +5 -0
  190. package/lib/projects/localDev/LocalDevManager_DEPRECATED.js +21 -10
  191. package/lib/projects/localDev/LocalDevProcess.js +6 -5
  192. package/lib/projects/localDev/LocalDevState.d.ts +3 -2
  193. package/lib/projects/localDev/LocalDevState.js +3 -1
  194. package/lib/projects/localDev/LocalDevWebsocketServer.js +1 -1
  195. package/lib/projects/localDev/UIExtensionsDevModeInterface.js +2 -0
  196. package/lib/projects/localDev/helpers/account.d.ts +4 -3
  197. package/lib/projects/localDev/helpers/account.js +21 -30
  198. package/lib/projects/localDev/helpers/process.d.ts +1 -1
  199. package/lib/projects/localDev/helpers/process.js +4 -10
  200. package/lib/projects/localDev/helpers/project.d.ts +4 -3
  201. package/lib/projects/localDev/helpers/project.js +32 -16
  202. package/lib/projects/npmAuditOnUpload.d.ts +10 -0
  203. package/lib/projects/npmAuditOnUpload.js +73 -0
  204. package/lib/projects/pollProjectBuildAndDeploy.d.ts +5 -1
  205. package/lib/projects/pollProjectBuildAndDeploy.js +3 -2
  206. package/lib/projects/preview.d.ts +7 -0
  207. package/lib/projects/preview.js +48 -0
  208. package/lib/projects/projectInfo.d.ts +5 -0
  209. package/lib/projects/projectInfo.js +82 -0
  210. package/lib/projects/projectProfiles.d.ts +1 -2
  211. package/lib/projects/projectProfiles.js +5 -17
  212. package/lib/projects/uieLinting.d.ts +21 -3
  213. package/lib/projects/uieLinting.js +132 -28
  214. package/lib/projects/upload.d.ts +3 -1
  215. package/lib/projects/upload.js +46 -7
  216. package/lib/projects/validateLintConfigOnUpload.d.ts +9 -0
  217. package/lib/projects/validateLintConfigOnUpload.js +45 -0
  218. package/lib/projects/workspaces.d.ts +60 -0
  219. package/lib/projects/workspaces.js +411 -0
  220. package/lib/prompts/createApiSamplePrompt.js +4 -0
  221. package/lib/prompts/downloadProjectPrompt.js +11 -10
  222. package/lib/prompts/installAppPrompt.js +3 -2
  223. package/lib/prompts/personalAccessKeyPrompt.d.ts +2 -5
  224. package/lib/prompts/personalAccessKeyPrompt.js +10 -7
  225. package/lib/prompts/projectDevTargetAccountPrompt.d.ts +1 -0
  226. package/lib/prompts/projectDevTargetAccountPrompt.js +23 -16
  227. package/lib/prompts/projectProfilePrompt.d.ts +2 -0
  228. package/lib/prompts/projectProfilePrompt.js +46 -0
  229. package/lib/prompts/projectsLogsPrompt.js +3 -0
  230. package/lib/prompts/promptUtils.js +4 -2
  231. package/lib/prompts/selectAppPrompt.js +1 -0
  232. package/lib/prompts/selectHubDBTablePrompt.js +8 -4
  233. package/lib/prompts/selectPublicAppForMigrationPrompt.js +12 -6
  234. package/lib/prompts/setAsDefaultAccountPrompt.js +2 -1
  235. package/lib/sandboxes.d.ts +1 -9
  236. package/lib/sandboxes.js +0 -21
  237. package/lib/serverlessLogs.js +2 -2
  238. package/lib/theme/cmsDevServerProcess.d.ts +2 -0
  239. package/lib/theme/cmsDevServerProcess.js +8 -7
  240. package/lib/theme/migrate.d.ts +1 -1
  241. package/lib/theme/migrate.js +1 -5
  242. package/lib/ui/SpinniesManager.d.ts +1 -0
  243. package/lib/ui/SpinniesManager.js +22 -6
  244. package/lib/ui/accountTable.d.ts +8 -0
  245. package/lib/ui/accountTable.js +67 -0
  246. package/lib/ui/appLogs.d.ts +32 -0
  247. package/lib/ui/appLogs.js +175 -0
  248. package/lib/ui/spinniesUtils.d.ts +0 -1
  249. package/lib/ui/spinniesUtils.js +6 -16
  250. package/lib/usageTracking.d.ts +9 -20
  251. package/lib/usageTracking.js +68 -30
  252. package/lib/yargs/makeWrappedYargsHandler.d.ts +3 -0
  253. package/lib/yargs/makeWrappedYargsHandler.js +121 -0
  254. package/lib/yargs/makeYargsBuilder.d.ts +13 -0
  255. package/lib/yargs/makeYargsBuilder.js +33 -0
  256. package/lib/yargs/parseYargsOrExit.d.ts +4 -0
  257. package/lib/yargs/parseYargsOrExit.js +25 -0
  258. package/lib/yargs/strictEnforceBoolean.d.ts +1 -0
  259. package/lib/yargs/strictEnforceBoolean.js +13 -0
  260. package/lib/yargsUtils.d.ts +3 -16
  261. package/lib/yargsUtils.js +3 -48
  262. package/mcp-server/Tool.d.ts +15 -0
  263. package/mcp-server/Tool.js +53 -0
  264. package/mcp-server/server.js +43 -3
  265. package/mcp-server/tools/cms/HsCreateFunctionTool.d.ts +4 -2
  266. package/mcp-server/tools/cms/HsCreateFunctionTool.js +10 -8
  267. package/mcp-server/tools/cms/HsCreateModuleTool.d.ts +4 -2
  268. package/mcp-server/tools/cms/HsCreateModuleTool.js +12 -11
  269. package/mcp-server/tools/cms/HsCreateTemplateTool.d.ts +4 -2
  270. package/mcp-server/tools/cms/HsCreateTemplateTool.js +10 -8
  271. package/mcp-server/tools/cms/HsFunctionLogsTool.d.ts +4 -2
  272. package/mcp-server/tools/cms/HsFunctionLogsTool.js +10 -9
  273. package/mcp-server/tools/cms/HsListFunctionsTool.d.ts +4 -2
  274. package/mcp-server/tools/cms/HsListFunctionsTool.js +10 -9
  275. package/mcp-server/tools/cms/HsListTool.d.ts +4 -2
  276. package/mcp-server/tools/cms/HsListTool.js +10 -8
  277. package/mcp-server/tools/index.d.ts +3 -2
  278. package/mcp-server/tools/index.js +24 -22
  279. package/mcp-server/tools/project/AddFeatureToProjectTool.d.ts +6 -3
  280. package/mcp-server/tools/project/AddFeatureToProjectTool.js +9 -7
  281. package/mcp-server/tools/project/CreateProjectTool.d.ts +6 -3
  282. package/mcp-server/tools/project/CreateProjectTool.js +10 -7
  283. package/mcp-server/tools/project/CreateTestAccountTool.d.ts +4 -2
  284. package/mcp-server/tools/project/CreateTestAccountTool.js +21 -9
  285. package/mcp-server/tools/project/DeployProjectTool.d.ts +4 -2
  286. package/mcp-server/tools/project/DeployProjectTool.js +5 -7
  287. package/mcp-server/tools/project/DocFetchTool.d.ts +4 -2
  288. package/mcp-server/tools/project/DocFetchTool.js +8 -6
  289. package/mcp-server/tools/project/DocsSearchTool.d.ts +9 -3
  290. package/mcp-server/tools/project/DocsSearchTool.js +32 -9
  291. package/mcp-server/tools/project/FindProjectsTool.d.ts +15 -0
  292. package/mcp-server/tools/project/FindProjectsTool.js +60 -0
  293. package/mcp-server/tools/project/GetApiUsagePatternsByAppIdTool.d.ts +4 -2
  294. package/mcp-server/tools/project/GetApiUsagePatternsByAppIdTool.js +8 -6
  295. package/mcp-server/tools/project/GetApplicationInfoTool.d.ts +4 -2
  296. package/mcp-server/tools/project/GetApplicationInfoTool.js +8 -6
  297. package/mcp-server/tools/project/GetBuildLogsTool.d.ts +4 -2
  298. package/mcp-server/tools/project/GetBuildLogsTool.js +9 -7
  299. package/mcp-server/tools/project/GetBuildStatusTool.d.ts +4 -2
  300. package/mcp-server/tools/project/GetBuildStatusTool.js +9 -7
  301. package/mcp-server/tools/project/GetConfigValuesTool.d.ts +4 -2
  302. package/mcp-server/tools/project/GetConfigValuesTool.js +12 -7
  303. package/mcp-server/tools/project/GuidedWalkthroughTool.d.ts +4 -2
  304. package/mcp-server/tools/project/GuidedWalkthroughTool.js +4 -6
  305. package/mcp-server/tools/project/UploadProjectTools.d.ts +4 -2
  306. package/mcp-server/tools/project/UploadProjectTools.js +10 -8
  307. package/mcp-server/tools/project/ValidateProjectTool.d.ts +4 -2
  308. package/mcp-server/tools/project/ValidateProjectTool.js +9 -7
  309. package/mcp-server/tools/project/constants.d.ts +2 -1
  310. package/mcp-server/tools/project/constants.js +2 -1
  311. package/mcp-server/types.d.ts +0 -7
  312. package/mcp-server/types.js +1 -13
  313. package/mcp-server/utils/command.js +3 -1
  314. package/mcp-server/utils/config.js +1 -0
  315. package/mcp-server/utils/logger.d.ts +10 -0
  316. package/mcp-server/utils/logger.js +29 -0
  317. package/mcp-server/utils/toolUsageTracking.js +10 -8
  318. package/package.json +16 -11
  319. package/types/Link.d.ts +32 -0
  320. package/types/Link.js +5 -0
  321. package/types/LocalDev.d.ts +5 -0
  322. package/types/PackageJson.d.ts +1 -0
  323. package/types/Projects.d.ts +19 -0
  324. package/types/Prompts.d.ts +1 -0
  325. package/types/Yargs.d.ts +19 -1
  326. package/ui/components/ActionSection.d.ts +1 -1
  327. package/ui/components/InputField.d.ts +1 -1
  328. package/ui/components/SelectInput.d.ts +1 -1
  329. package/ui/components/StatusIcon.d.ts +1 -1
  330. package/ui/components/Table.d.ts +5 -5
  331. package/ui/components/getStarted/GetStartedFlow.d.ts +1 -1
  332. package/ui/components/getStarted/screens/InstallationScreen.d.ts +1 -1
  333. package/ui/components/getStarted/screens/ProjectSetupScreen.d.ts +1 -1
  334. package/ui/components/getStarted/screens/UploadScreen.d.ts +1 -1
  335. package/api/__tests__/migrate.test.d.ts +0 -1
  336. package/api/__tests__/migrate.test.js +0 -199
  337. package/commands/__tests__/account.test.d.ts +0 -1
  338. package/commands/__tests__/account.test.js +0 -69
  339. package/commands/__tests__/auth.test.d.ts +0 -1
  340. package/commands/__tests__/auth.test.js +0 -43
  341. package/commands/__tests__/cms.test.d.ts +0 -1
  342. package/commands/__tests__/cms.test.js +0 -87
  343. package/commands/__tests__/config.test.d.ts +0 -1
  344. package/commands/__tests__/config.test.js +0 -44
  345. package/commands/__tests__/customObject.test.d.ts +0 -1
  346. package/commands/__tests__/customObject.test.js +0 -68
  347. package/commands/__tests__/doctor.test.d.ts +0 -1
  348. package/commands/__tests__/doctor.test.js +0 -132
  349. package/commands/__tests__/feedback.test.d.ts +0 -1
  350. package/commands/__tests__/feedback.test.js +0 -24
  351. package/commands/__tests__/filemanager.test.d.ts +0 -1
  352. package/commands/__tests__/filemanager.test.js +0 -45
  353. package/commands/__tests__/getStarted.test.d.ts +0 -1
  354. package/commands/__tests__/getStarted.test.js +0 -173
  355. package/commands/__tests__/hubdb.test.d.ts +0 -1
  356. package/commands/__tests__/hubdb.test.js +0 -50
  357. package/commands/__tests__/init.test.d.ts +0 -1
  358. package/commands/__tests__/init.test.js +0 -42
  359. package/commands/__tests__/mcp.test.d.ts +0 -1
  360. package/commands/__tests__/mcp.test.js +0 -46
  361. package/commands/__tests__/open.test.d.ts +0 -1
  362. package/commands/__tests__/open.test.js +0 -58
  363. package/commands/__tests__/project.test.d.ts +0 -1
  364. package/commands/__tests__/project.test.js +0 -125
  365. package/commands/__tests__/sandbox.test.d.ts +0 -1
  366. package/commands/__tests__/sandbox.test.js +0 -44
  367. package/commands/__tests__/secret.test.d.ts +0 -1
  368. package/commands/__tests__/secret.test.js +0 -49
  369. package/commands/__tests__/testAccount.test.d.ts +0 -1
  370. package/commands/__tests__/testAccount.test.js +0 -57
  371. package/commands/__tests__/upgrade.test.d.ts +0 -1
  372. package/commands/__tests__/upgrade.test.js +0 -309
  373. package/commands/account/__tests__/auth.test.d.ts +0 -1
  374. package/commands/account/__tests__/auth.test.js +0 -206
  375. package/commands/account/__tests__/clean.test.d.ts +0 -1
  376. package/commands/account/__tests__/clean.test.js +0 -28
  377. package/commands/account/__tests__/createOverride.test.d.ts +0 -1
  378. package/commands/account/__tests__/createOverride.test.js +0 -32
  379. package/commands/account/__tests__/info.test.d.ts +0 -1
  380. package/commands/account/__tests__/info.test.js +0 -28
  381. package/commands/account/__tests__/list.test.d.ts +0 -1
  382. package/commands/account/__tests__/list.test.js +0 -153
  383. package/commands/account/__tests__/remove.test.d.ts +0 -1
  384. package/commands/account/__tests__/remove.test.js +0 -36
  385. package/commands/account/__tests__/removeOverride.d.ts +0 -1
  386. package/commands/account/__tests__/removeOverride.js +0 -25
  387. package/commands/account/__tests__/rename.test.d.ts +0 -1
  388. package/commands/account/__tests__/rename.test.js +0 -82
  389. package/commands/account/__tests__/use.test.d.ts +0 -1
  390. package/commands/account/__tests__/use.test.js +0 -170
  391. package/commands/app/__tests__/migrate.test.d.ts +0 -1
  392. package/commands/app/__tests__/migrate.test.js +0 -111
  393. package/commands/app/secret/__tests__/add.test.d.ts +0 -1
  394. package/commands/app/secret/__tests__/add.test.js +0 -140
  395. package/commands/app/secret/__tests__/delete.test.d.ts +0 -1
  396. package/commands/app/secret/__tests__/delete.test.js +0 -28
  397. package/commands/app/secret/__tests__/list.test.d.ts +0 -1
  398. package/commands/app/secret/__tests__/list.test.js +0 -25
  399. package/commands/app/secret/__tests__/update.test.d.ts +0 -1
  400. package/commands/app/secret/__tests__/update.test.js +0 -28
  401. package/commands/cms/__tests__/delete.test.d.ts +0 -1
  402. package/commands/cms/__tests__/delete.test.js +0 -39
  403. package/commands/cms/__tests__/fetch.test.d.ts +0 -1
  404. package/commands/cms/__tests__/fetch.test.js +0 -156
  405. package/commands/cms/__tests__/function.test.d.ts +0 -1
  406. package/commands/cms/__tests__/function.test.js +0 -50
  407. package/commands/cms/__tests__/lint.test.d.ts +0 -1
  408. package/commands/cms/__tests__/lint.test.js +0 -33
  409. package/commands/cms/__tests__/list.test.d.ts +0 -1
  410. package/commands/cms/__tests__/list.test.js +0 -42
  411. package/commands/cms/__tests__/module.test.d.ts +0 -1
  412. package/commands/cms/__tests__/module.test.js +0 -45
  413. package/commands/cms/__tests__/mv.test.d.ts +0 -1
  414. package/commands/cms/__tests__/mv.test.js +0 -46
  415. package/commands/cms/__tests__/theme.test.d.ts +0 -1
  416. package/commands/cms/__tests__/theme.test.js +0 -54
  417. package/commands/cms/__tests__/upload.test.d.ts +0 -1
  418. package/commands/cms/__tests__/upload.test.js +0 -308
  419. package/commands/cms/__tests__/watch.test.d.ts +0 -1
  420. package/commands/cms/__tests__/watch.test.js +0 -204
  421. package/commands/cms/function/__tests__/logs.test.d.ts +0 -1
  422. package/commands/cms/function/__tests__/logs.test.js +0 -70
  423. package/commands/cms/theme/__tests__/generate-selectors.test.d.ts +0 -1
  424. package/commands/cms/theme/__tests__/generate-selectors.test.js +0 -28
  425. package/commands/cms/theme/__tests__/marketplace-validate.test.d.ts +0 -1
  426. package/commands/cms/theme/__tests__/marketplace-validate.test.js +0 -36
  427. package/commands/cms/theme/__tests__/preview.test.d.ts +0 -1
  428. package/commands/cms/theme/__tests__/preview.test.js +0 -54
  429. package/commands/customObject/__tests__/create.test.d.ts +0 -1
  430. package/commands/customObject/__tests__/create.test.js +0 -40
  431. package/commands/customObject/__tests__/createSchema.test.d.ts +0 -1
  432. package/commands/customObject/__tests__/createSchema.test.js +0 -28
  433. package/commands/customObject/__tests__/deleteSchema.test.d.ts +0 -1
  434. package/commands/customObject/__tests__/deleteSchema.test.js +0 -42
  435. package/commands/customObject/__tests__/fetch-all-schemas.test.d.ts +0 -1
  436. package/commands/customObject/__tests__/fetch-all-schemas.test.js +0 -41
  437. package/commands/customObject/__tests__/fetchSchema.test.d.ts +0 -1
  438. package/commands/customObject/__tests__/fetchSchema.test.js +0 -45
  439. package/commands/customObject/__tests__/listSchemas.test.d.ts +0 -1
  440. package/commands/customObject/__tests__/listSchemas.test.js +0 -29
  441. package/commands/customObject/__tests__/updateSchema.test.d.ts +0 -1
  442. package/commands/customObject/__tests__/updateSchema.test.js +0 -40
  443. package/commands/filemanager/__tests__/fetch.test.d.ts +0 -1
  444. package/commands/filemanager/__tests__/fetch.test.js +0 -32
  445. package/commands/filemanager/__tests__/upload.test.d.ts +0 -1
  446. package/commands/filemanager/__tests__/upload.test.js +0 -191
  447. package/commands/hubdb/__tests__/clear.test.d.ts +0 -1
  448. package/commands/hubdb/__tests__/clear.test.js +0 -28
  449. package/commands/hubdb/__tests__/create.test.d.ts +0 -1
  450. package/commands/hubdb/__tests__/create.test.js +0 -28
  451. package/commands/hubdb/__tests__/delete.test.d.ts +0 -1
  452. package/commands/hubdb/__tests__/delete.test.js +0 -28
  453. package/commands/hubdb/__tests__/fetch.test.d.ts +0 -1
  454. package/commands/hubdb/__tests__/fetch.test.js +0 -28
  455. package/commands/hubdb/__tests__/list.test.d.ts +0 -1
  456. package/commands/hubdb/__tests__/list.test.js +0 -88
  457. package/commands/mcp/__tests__/setup.test.d.ts +0 -1
  458. package/commands/mcp/__tests__/setup.test.js +0 -26
  459. package/commands/mcp/__tests__/start.test.d.ts +0 -1
  460. package/commands/mcp/__tests__/start.test.js +0 -144
  461. package/commands/project/__tests__/add.test.d.ts +0 -1
  462. package/commands/project/__tests__/add.test.js +0 -107
  463. package/commands/project/__tests__/create.test.d.ts +0 -1
  464. package/commands/project/__tests__/create.test.js +0 -97
  465. package/commands/project/__tests__/deploy.test.d.ts +0 -1
  466. package/commands/project/__tests__/deploy.test.js +0 -307
  467. package/commands/project/__tests__/dev.test.d.ts +0 -1
  468. package/commands/project/__tests__/dev.test.js +0 -273
  469. package/commands/project/__tests__/devUnifiedFlow.test.d.ts +0 -1
  470. package/commands/project/__tests__/devUnifiedFlow.test.js +0 -434
  471. package/commands/project/__tests__/download.test.d.ts +0 -1
  472. package/commands/project/__tests__/download.test.js +0 -39
  473. package/commands/project/__tests__/installDeps.test.d.ts +0 -1
  474. package/commands/project/__tests__/installDeps.test.js +0 -140
  475. package/commands/project/__tests__/lint.test.d.ts +0 -1
  476. package/commands/project/__tests__/lint.test.js +0 -704
  477. package/commands/project/__tests__/list.test.d.ts +0 -1
  478. package/commands/project/__tests__/list.test.js +0 -31
  479. package/commands/project/__tests__/listBuilds.test.d.ts +0 -1
  480. package/commands/project/__tests__/listBuilds.test.js +0 -38
  481. package/commands/project/__tests__/logs.test.d.ts +0 -1
  482. package/commands/project/__tests__/logs.test.js +0 -202
  483. package/commands/project/__tests__/migrate.test.d.ts +0 -1
  484. package/commands/project/__tests__/migrate.test.js +0 -106
  485. package/commands/project/__tests__/open.test.d.ts +0 -1
  486. package/commands/project/__tests__/open.test.js +0 -39
  487. package/commands/project/__tests__/profile.test.d.ts +0 -1
  488. package/commands/project/__tests__/profile.test.js +0 -42
  489. package/commands/project/__tests__/updateDeps.test.d.ts +0 -1
  490. package/commands/project/__tests__/updateDeps.test.js +0 -140
  491. package/commands/project/__tests__/upload.test.d.ts +0 -1
  492. package/commands/project/__tests__/upload.test.js +0 -234
  493. package/commands/project/__tests__/validate.test.d.ts +0 -1
  494. package/commands/project/__tests__/validate.test.js +0 -381
  495. package/commands/project/__tests__/watch.test.d.ts +0 -1
  496. package/commands/project/__tests__/watch.test.js +0 -35
  497. package/commands/sandbox/__tests__/create.test.d.ts +0 -1
  498. package/commands/sandbox/__tests__/create.test.js +0 -245
  499. package/commands/sandbox/__tests__/delete.test.d.ts +0 -1
  500. package/commands/sandbox/__tests__/delete.test.js +0 -31
  501. package/commands/secret/__tests__/addSecret.test.d.ts +0 -1
  502. package/commands/secret/__tests__/addSecret.test.js +0 -162
  503. package/commands/secret/__tests__/deleteSecret.test.d.ts +0 -1
  504. package/commands/secret/__tests__/deleteSecret.test.js +0 -41
  505. package/commands/secret/__tests__/listSecret.test.d.ts +0 -1
  506. package/commands/secret/__tests__/listSecret.test.js +0 -29
  507. package/commands/secret/__tests__/updateSecret.test.d.ts +0 -1
  508. package/commands/secret/__tests__/updateSecret.test.js +0 -29
  509. package/commands/testAccount/__tests__/create.test.d.ts +0 -1
  510. package/commands/testAccount/__tests__/create.test.js +0 -106
  511. package/commands/testAccount/__tests__/createConfig.test.d.ts +0 -1
  512. package/commands/testAccount/__tests__/createConfig.test.js +0 -32
  513. package/commands/testAccount/__tests__/delete.test.d.ts +0 -1
  514. package/commands/testAccount/__tests__/delete.test.js +0 -29
  515. package/commands/testAccount/__tests__/importData.test.d.ts +0 -1
  516. package/commands/testAccount/__tests__/importData.test.js +0 -92
  517. package/lib/__tests__/CLIWebSocketServer.test.d.ts +0 -1
  518. package/lib/__tests__/CLIWebSocketServer.test.js +0 -252
  519. package/lib/__tests__/accountAuth.test.d.ts +0 -1
  520. package/lib/__tests__/accountAuth.test.js +0 -258
  521. package/lib/__tests__/accountTypes.test.d.ts +0 -1
  522. package/lib/__tests__/accountTypes.test.js +0 -98
  523. package/lib/__tests__/buildAccount.test.d.ts +0 -1
  524. package/lib/__tests__/buildAccount.test.js +0 -262
  525. package/lib/__tests__/cliUpgradeUtils.test.d.ts +0 -1
  526. package/lib/__tests__/cliUpgradeUtils.test.js +0 -131
  527. package/lib/__tests__/commandSuggestion.test.d.ts +0 -1
  528. package/lib/__tests__/commandSuggestion.test.js +0 -121
  529. package/lib/__tests__/commonOpts.test.d.ts +0 -1
  530. package/lib/__tests__/commonOpts.test.js +0 -80
  531. package/lib/__tests__/dependencyManagement.test.d.ts +0 -1
  532. package/lib/__tests__/dependencyManagement.test.js +0 -1067
  533. package/lib/__tests__/developerTestAccounts.test.d.ts +0 -1
  534. package/lib/__tests__/developerTestAccounts.test.js +0 -156
  535. package/lib/__tests__/hasFeature.test.d.ts +0 -1
  536. package/lib/__tests__/hasFeature.test.js +0 -167
  537. package/lib/__tests__/http.test.d.ts +0 -1
  538. package/lib/__tests__/http.test.js +0 -40
  539. package/lib/__tests__/importData.test.d.ts +0 -1
  540. package/lib/__tests__/importData.test.js +0 -98
  541. package/lib/__tests__/npmCli.test.d.ts +0 -1
  542. package/lib/__tests__/npmCli.test.js +0 -84
  543. package/lib/__tests__/oauth.test.d.ts +0 -1
  544. package/lib/__tests__/oauth.test.js +0 -109
  545. package/lib/__tests__/parsing.test.d.ts +0 -1
  546. package/lib/__tests__/parsing.test.js +0 -34
  547. package/lib/__tests__/polling.test.d.ts +0 -1
  548. package/lib/__tests__/polling.test.js +0 -76
  549. package/lib/__tests__/process.test.d.ts +0 -1
  550. package/lib/__tests__/process.test.js +0 -89
  551. package/lib/__tests__/sandboxSync.test.d.ts +0 -1
  552. package/lib/__tests__/sandboxSync.test.js +0 -147
  553. package/lib/__tests__/sandboxes.test.d.ts +0 -1
  554. package/lib/__tests__/sandboxes.test.js +0 -156
  555. package/lib/__tests__/serverlessLogs.test.d.ts +0 -1
  556. package/lib/__tests__/serverlessLogs.test.js +0 -163
  557. package/lib/__tests__/usageTracking.test.d.ts +0 -1
  558. package/lib/__tests__/usageTracking.test.js +0 -197
  559. package/lib/__tests__/validation.test.d.ts +0 -1
  560. package/lib/__tests__/validation.test.js +0 -143
  561. package/lib/__tests__/yargsUtils.test.d.ts +0 -1
  562. package/lib/__tests__/yargsUtils.test.js +0 -124
  563. package/lib/app/__tests__/migrate.test.d.ts +0 -1
  564. package/lib/app/__tests__/migrate.test.js +0 -638
  565. package/lib/doctor/__tests__/Diagnosis.test.d.ts +0 -1
  566. package/lib/doctor/__tests__/Diagnosis.test.js +0 -84
  567. package/lib/doctor/__tests__/DiagnosticInfoBuilder.test.d.ts +0 -1
  568. package/lib/doctor/__tests__/DiagnosticInfoBuilder.test.js +0 -177
  569. package/lib/doctor/__tests__/Doctor.test.d.ts +0 -1
  570. package/lib/doctor/__tests__/Doctor.test.js +0 -560
  571. package/lib/errorHandlers/__tests__/index.test.d.ts +0 -1
  572. package/lib/errorHandlers/__tests__/index.test.js +0 -278
  573. package/lib/mcp/__tests__/setup.test.d.ts +0 -1
  574. package/lib/mcp/__tests__/setup.test.js +0 -523
  575. package/lib/middleware/__tests__/commandTargetingUtils.test.d.ts +0 -1
  576. package/lib/middleware/__tests__/commandTargetingUtils.test.js +0 -99
  577. package/lib/middleware/__tests__/configMiddleware.test.d.ts +0 -1
  578. package/lib/middleware/__tests__/configMiddleware.test.js +0 -118
  579. package/lib/middleware/__tests__/gitMiddleware.test.d.ts +0 -1
  580. package/lib/middleware/__tests__/gitMiddleware.test.js +0 -43
  581. package/lib/middleware/__tests__/requestMiddleware.test.d.ts +0 -1
  582. package/lib/middleware/__tests__/requestMiddleware.test.js +0 -15
  583. package/lib/middleware/__tests__/usageTrackingMiddleware.test.d.ts +0 -1
  584. package/lib/middleware/__tests__/usageTrackingMiddleware.test.js +0 -44
  585. package/lib/middleware/__tests__/yargsChecksMiddleware.test.d.ts +0 -1
  586. package/lib/middleware/__tests__/yargsChecksMiddleware.test.js +0 -39
  587. package/lib/projects/__tests__/AppDevModeInterface.test.d.ts +0 -1
  588. package/lib/projects/__tests__/AppDevModeInterface.test.js +0 -541
  589. package/lib/projects/__tests__/DevServerManager.test.d.ts +0 -1
  590. package/lib/projects/__tests__/DevServerManager.test.js +0 -185
  591. package/lib/projects/__tests__/DevSessionManager.test.d.ts +0 -1
  592. package/lib/projects/__tests__/DevSessionManager.test.js +0 -250
  593. package/lib/projects/__tests__/LocalDevProcess.test.d.ts +0 -1
  594. package/lib/projects/__tests__/LocalDevProcess.test.js +0 -481
  595. package/lib/projects/__tests__/LocalDevWebsocketServer.test.d.ts +0 -1
  596. package/lib/projects/__tests__/LocalDevWebsocketServer.test.js +0 -231
  597. package/lib/projects/__tests__/ProjectLogsManager.test.d.ts +0 -1
  598. package/lib/projects/__tests__/ProjectLogsManager.test.js +0 -302
  599. package/lib/projects/__tests__/UIExtensionsDevModeInterface.test.d.ts +0 -1
  600. package/lib/projects/__tests__/UIExtensionsDevModeInterface.test.js +0 -160
  601. package/lib/projects/__tests__/components.test.d.ts +0 -1
  602. package/lib/projects/__tests__/components.test.js +0 -426
  603. package/lib/projects/__tests__/deploy.test.d.ts +0 -1
  604. package/lib/projects/__tests__/deploy.test.js +0 -231
  605. package/lib/projects/__tests__/localDevProjectHelpers.test.d.ts +0 -1
  606. package/lib/projects/__tests__/localDevProjectHelpers.test.js +0 -120
  607. package/lib/projects/__tests__/platformVersion.test.d.ts +0 -1
  608. package/lib/projects/__tests__/platformVersion.test.js +0 -63
  609. package/lib/projects/__tests__/pollProjectBuildAndDeploy.test.d.ts +0 -1
  610. package/lib/projects/__tests__/pollProjectBuildAndDeploy.test.js +0 -328
  611. package/lib/projects/__tests__/projectProfiles.test.d.ts +0 -1
  612. package/lib/projects/__tests__/projectProfiles.test.js +0 -441
  613. package/lib/projects/__tests__/projects.test.d.ts +0 -1
  614. package/lib/projects/__tests__/projects.test.js +0 -58
  615. package/lib/projects/__tests__/structure.test.d.ts +0 -1
  616. package/lib/projects/__tests__/structure.test.js +0 -210
  617. package/lib/projects/__tests__/uieLinting.test.d.ts +0 -1
  618. package/lib/projects/__tests__/uieLinting.test.js +0 -631
  619. package/lib/projects/__tests__/upload.test.d.ts +0 -1
  620. package/lib/projects/__tests__/upload.test.js +0 -183
  621. package/lib/projects/add/__tests__/legacyAddComponent.test.d.ts +0 -1
  622. package/lib/projects/add/__tests__/legacyAddComponent.test.js +0 -245
  623. package/lib/projects/add/__tests__/v2AddComponent.test.d.ts +0 -1
  624. package/lib/projects/add/__tests__/v2AddComponent.test.js +0 -343
  625. package/lib/projects/create/__tests__/legacy.test.d.ts +0 -1
  626. package/lib/projects/create/__tests__/legacy.test.js +0 -72
  627. package/lib/projects/create/__tests__/v2.test.d.ts +0 -1
  628. package/lib/projects/create/__tests__/v2.test.js +0 -257
  629. package/lib/projects/platformVersion.d.ts +0 -9
  630. package/lib/projects/platformVersion.js +0 -39
  631. package/lib/prompts/__tests__/createDeveloperTestAccountConfigPrompt.test.d.ts +0 -1
  632. package/lib/prompts/__tests__/createDeveloperTestAccountConfigPrompt.test.js +0 -157
  633. package/lib/prompts/__tests__/createFunctionPrompt.test.d.ts +0 -1
  634. package/lib/prompts/__tests__/createFunctionPrompt.test.js +0 -129
  635. package/lib/prompts/__tests__/createModulePrompt.test.d.ts +0 -1
  636. package/lib/prompts/__tests__/createModulePrompt.test.js +0 -187
  637. package/lib/prompts/__tests__/createTemplatePrompt.test.d.ts +0 -1
  638. package/lib/prompts/__tests__/createTemplatePrompt.test.js +0 -102
  639. package/lib/prompts/__tests__/downloadProjectPrompt.test.d.ts +0 -1
  640. package/lib/prompts/__tests__/downloadProjectPrompt.test.js +0 -31
  641. package/lib/prompts/__tests__/projectAddPrompt.test.d.ts +0 -1
  642. package/lib/prompts/__tests__/projectAddPrompt.test.js +0 -143
  643. package/lib/prompts/__tests__/projectsLogsPrompt.test.d.ts +0 -1
  644. package/lib/prompts/__tests__/projectsLogsPrompt.test.js +0 -37
  645. package/lib/prompts/__tests__/selectProjectTemplatePrompt.test.d.ts +0 -1
  646. package/lib/prompts/__tests__/selectProjectTemplatePrompt.test.js +0 -160
  647. package/lib/sandboxSync.d.ts +0 -4
  648. package/lib/sandboxSync.js +0 -102
  649. package/lib/theme/__tests__/migrate.test.d.ts +0 -1
  650. package/lib/theme/__tests__/migrate.test.js +0 -256
  651. package/lib/ui/__tests__/SpinniesManager.test.d.ts +0 -1
  652. package/lib/ui/__tests__/SpinniesManager.test.js +0 -488
  653. package/lib/ui/__tests__/removeAnsiCodes.test.d.ts +0 -1
  654. package/lib/ui/__tests__/removeAnsiCodes.test.js +0 -84
  655. package/mcp-server/tools/cms/__tests__/HsCreateFunctionTool.test.d.ts +0 -1
  656. package/mcp-server/tools/cms/__tests__/HsCreateFunctionTool.test.js +0 -254
  657. package/mcp-server/tools/cms/__tests__/HsCreateModuleTool.test.d.ts +0 -1
  658. package/mcp-server/tools/cms/__tests__/HsCreateModuleTool.test.js +0 -227
  659. package/mcp-server/tools/cms/__tests__/HsCreateTemplateTool.test.d.ts +0 -1
  660. package/mcp-server/tools/cms/__tests__/HsCreateTemplateTool.test.js +0 -208
  661. package/mcp-server/tools/cms/__tests__/HsFunctionLogsTool.test.d.ts +0 -1
  662. package/mcp-server/tools/cms/__tests__/HsFunctionLogsTool.test.js +0 -186
  663. package/mcp-server/tools/cms/__tests__/HsListFunctionsTool.test.d.ts +0 -1
  664. package/mcp-server/tools/cms/__tests__/HsListFunctionsTool.test.js +0 -124
  665. package/mcp-server/tools/cms/__tests__/HsListTool.test.d.ts +0 -1
  666. package/mcp-server/tools/cms/__tests__/HsListTool.test.js +0 -124
  667. package/mcp-server/tools/project/__tests__/AddFeatureToProjectTool.test.d.ts +0 -1
  668. package/mcp-server/tools/project/__tests__/AddFeatureToProjectTool.test.js +0 -157
  669. package/mcp-server/tools/project/__tests__/CreateProjectTool.test.d.ts +0 -1
  670. package/mcp-server/tools/project/__tests__/CreateProjectTool.test.js +0 -132
  671. package/mcp-server/tools/project/__tests__/CreateTestAccountTool.test.d.ts +0 -1
  672. package/mcp-server/tools/project/__tests__/CreateTestAccountTool.test.js +0 -461
  673. package/mcp-server/tools/project/__tests__/DeployProjectTool.test.d.ts +0 -1
  674. package/mcp-server/tools/project/__tests__/DeployProjectTool.test.js +0 -125
  675. package/mcp-server/tools/project/__tests__/DocFetchTool.test.d.ts +0 -1
  676. package/mcp-server/tools/project/__tests__/DocFetchTool.test.js +0 -125
  677. package/mcp-server/tools/project/__tests__/DocsSearchTool.test.d.ts +0 -1
  678. package/mcp-server/tools/project/__tests__/DocsSearchTool.test.js +0 -210
  679. package/mcp-server/tools/project/__tests__/GetApiUsagePatternsByAppIdTool.test.d.ts +0 -1
  680. package/mcp-server/tools/project/__tests__/GetApiUsagePatternsByAppIdTool.test.js +0 -146
  681. package/mcp-server/tools/project/__tests__/GetApplicationInfoTool.test.d.ts +0 -1
  682. package/mcp-server/tools/project/__tests__/GetApplicationInfoTool.test.js +0 -124
  683. package/mcp-server/tools/project/__tests__/GetBuildLogsTool.test.d.ts +0 -1
  684. package/mcp-server/tools/project/__tests__/GetBuildLogsTool.test.js +0 -307
  685. package/mcp-server/tools/project/__tests__/GetBuildStatusTool.test.d.ts +0 -1
  686. package/mcp-server/tools/project/__tests__/GetBuildStatusTool.test.js +0 -242
  687. package/mcp-server/tools/project/__tests__/GetConfigValuesTool.test.d.ts +0 -1
  688. package/mcp-server/tools/project/__tests__/GetConfigValuesTool.test.js +0 -209
  689. package/mcp-server/tools/project/__tests__/GuidedWalkthroughTool.test.d.ts +0 -1
  690. package/mcp-server/tools/project/__tests__/GuidedWalkthroughTool.test.js +0 -158
  691. package/mcp-server/tools/project/__tests__/UploadProjectTools.test.d.ts +0 -1
  692. package/mcp-server/tools/project/__tests__/UploadProjectTools.test.js +0 -187
  693. package/mcp-server/tools/project/__tests__/ValidateProjectTool.test.d.ts +0 -1
  694. package/mcp-server/tools/project/__tests__/ValidateProjectTool.test.js +0 -118
  695. package/mcp-server/utils/__tests__/command.test.d.ts +0 -1
  696. package/mcp-server/utils/__tests__/command.test.js +0 -275
  697. package/mcp-server/utils/__tests__/content.test.d.ts +0 -1
  698. package/mcp-server/utils/__tests__/content.test.js +0 -164
  699. package/mcp-server/utils/__tests__/feedbackTracking.test.d.ts +0 -1
  700. package/mcp-server/utils/__tests__/feedbackTracking.test.js +0 -69
@@ -0,0 +1,145 @@
1
+ import readline from 'readline';
2
+ import { randomUUID } from 'crypto';
3
+ import open from 'open';
4
+ import { getHubSpotWebsiteOrigin } from '@hubspot/local-dev-lib/urls';
5
+ import CLIWebSocketServer from '../CLIWebSocketServer.js';
6
+ import { ACCOUNT_AUTH_UI_MESSAGE_SEND_TYPES, ACCOUNT_AUTH_UI_MESSAGE_RECEIVE_TYPES, ACCOUNT_AUTH_WEBSOCKET_SERVER_VERSION, } from '../constants.js';
7
+ import { personalAccessKeyPrompt } from '../prompts/personalAccessKeyPrompt.js';
8
+ import SpinniesManager from '../ui/SpinniesManager.js';
9
+ import { uiLogger } from '../ui/logger.js';
10
+ import { lib } from '../../lang/en.js';
11
+ import { PromptExitError } from '../errors/PromptExitError.js';
12
+ import { EXIT_CODES } from '../enums/exitCodes.js';
13
+ const LOG_PREFIX = '[AccountAuthWebsocketServer]';
14
+ const SPINNER_ID = 'pak-websocket';
15
+ const CTRL_C = 3;
16
+ function isPersonalAccessKeyMessageData(data) {
17
+ if (typeof data !== 'object' || data === null)
18
+ return false;
19
+ const d = data;
20
+ return (typeof d.personalAccessKey === 'string' &&
21
+ typeof d.cliCallbackToken === 'string');
22
+ }
23
+ function buildPakUrl(env, account, cliCallbackPort, cliCallbackToken) {
24
+ const websiteOrigin = getHubSpotWebsiteOrigin(env);
25
+ const baseUrl = account
26
+ ? `${websiteOrigin}/personal-access-key/${account}`
27
+ : `${websiteOrigin}/l/personal-access-key`;
28
+ return `${baseUrl}?cliCallbackPort=${cliCallbackPort}&cliCallbackToken=${cliCallbackToken}`;
29
+ }
30
+ function createMessageHandler(server, cliCallbackToken, resolveWebsocketPak) {
31
+ return (ws, message) => {
32
+ if (message.type !== ACCOUNT_AUTH_UI_MESSAGE_RECEIVE_TYPES.PERSONAL_ACCESS_KEY) {
33
+ return false;
34
+ }
35
+ if (!isPersonalAccessKeyMessageData(message.data)) {
36
+ return true;
37
+ }
38
+ const { cliCallbackToken: receivedToken, personalAccessKey } = message.data;
39
+ if (receivedToken !== cliCallbackToken) {
40
+ server.sendMessage(ws, {
41
+ type: ACCOUNT_AUTH_UI_MESSAGE_SEND_TYPES.AUTH_FAILED,
42
+ data: { reason: 'cliCallbackTokenMismatch' },
43
+ });
44
+ return true;
45
+ }
46
+ if (personalAccessKey.length === 0) {
47
+ return true;
48
+ }
49
+ server.sendMessage(ws, {
50
+ type: ACCOUNT_AUTH_UI_MESSAGE_SEND_TYPES.AUTH_RECEIVED,
51
+ });
52
+ resolveWebsocketPak(personalAccessKey);
53
+ return true;
54
+ };
55
+ }
56
+ async function awaitKeypressOrWebsocketPak(websocketPakPromise) {
57
+ if (!process.stdin.isTTY) {
58
+ return { type: 'keypress' };
59
+ }
60
+ SpinniesManager.init();
61
+ SpinniesManager.add(SPINNER_ID, {
62
+ text: lib.accountAuthWebsocket.logs.spinner,
63
+ });
64
+ let cleanupStdin;
65
+ const keypressPromise = new Promise((resolve, reject) => {
66
+ readline.emitKeypressEvents(process.stdin);
67
+ process.stdin.setRawMode(true);
68
+ const onData = (chunk) => {
69
+ doCleanup();
70
+ if (chunk[0] === CTRL_C) {
71
+ return reject(new PromptExitError(lib.prompts.personalAccessKeyPrompt.errors.authCancelled, EXIT_CODES.SUCCESS));
72
+ }
73
+ resolve({ type: 'keypress' });
74
+ };
75
+ const doCleanup = () => {
76
+ process.stdin.removeListener('data', onData);
77
+ try {
78
+ process.stdin.setRawMode(false);
79
+ }
80
+ catch { }
81
+ process.stdin.pause();
82
+ };
83
+ cleanupStdin = doCleanup;
84
+ process.stdin.on('data', onData);
85
+ });
86
+ try {
87
+ const result = await Promise.race([
88
+ websocketPakPromise.then(pak => ({ type: 'pak', pak })),
89
+ keypressPromise,
90
+ ]);
91
+ if (result.type === 'pak') {
92
+ SpinniesManager.succeed(SPINNER_ID, {
93
+ text: lib.accountAuthWebsocket.logs.received,
94
+ });
95
+ }
96
+ else {
97
+ SpinniesManager.remove(SPINNER_ID);
98
+ }
99
+ return result;
100
+ }
101
+ catch (e) {
102
+ SpinniesManager.remove(SPINNER_ID);
103
+ throw e;
104
+ }
105
+ finally {
106
+ cleanupStdin?.();
107
+ }
108
+ }
109
+ export async function awaitPersonalAccessKeyOverWebsocket({ env, account, }) {
110
+ const cliCallbackToken = randomUUID();
111
+ const server = new CLIWebSocketServer({ logPrefix: LOG_PREFIX });
112
+ let resolveWebsocketPak;
113
+ const websocketPakPromise = new Promise(resolve => {
114
+ resolveWebsocketPak = resolve;
115
+ });
116
+ try {
117
+ const cliCallbackPort = await server.start({
118
+ metadata: {
119
+ accountAuthWebsocketServerVersion: ACCOUNT_AUTH_WEBSOCKET_SERVER_VERSION,
120
+ },
121
+ onMessage: createMessageHandler(server, cliCallbackToken, resolveWebsocketPak),
122
+ });
123
+ const url = buildPakUrl(env, account, cliCallbackPort, cliCallbackToken);
124
+ await open(url, { url: true });
125
+ uiLogger.log(lib.accountAuthWebsocket.logs.openingWebBrowser(url));
126
+ const waitResult = await awaitKeypressOrWebsocketPak(websocketPakPromise);
127
+ if (waitResult.type === 'pak') {
128
+ return waitResult.pak;
129
+ }
130
+ let pastePhaseActive = true;
131
+ websocketPakPromise
132
+ .then(pak => {
133
+ if (pastePhaseActive) {
134
+ process.stdin.push(`${pak}\n`);
135
+ }
136
+ })
137
+ .catch(() => { });
138
+ const personalAccessKey = await personalAccessKeyPrompt();
139
+ pastePhaseActive = false;
140
+ return personalAccessKey;
141
+ }
142
+ finally {
143
+ server.shutdown();
144
+ }
145
+ }
@@ -1,7 +1,7 @@
1
1
  import { DeveloperTestAccountConfig } from '@hubspot/local-dev-lib/types/developerTestAccounts';
2
2
  import { Environment } from '@hubspot/local-dev-lib/types/Accounts';
3
3
  import { HubSpotConfigAccount } from '@hubspot/local-dev-lib/types/Accounts';
4
- import { SandboxResponse, V2Sandbox } from '@hubspot/local-dev-lib/types/Sandbox';
4
+ import { V2Sandbox } from '@hubspot/local-dev-lib/types/Sandbox';
5
5
  import { SandboxAccountType } from '../types/Sandboxes.js';
6
6
  export declare function saveAccountToConfig(accountId: number | undefined, accountName: string, env: Environment, personalAccessKey?: string, force?: boolean): Promise<string>;
7
7
  export declare function createDeveloperTestAccountV2(parentAccountId: number, testAccountConfig: DeveloperTestAccountConfig): Promise<{
@@ -10,11 +10,6 @@ export declare function createDeveloperTestAccountV2(parentAccountId: number, te
10
10
  personalAccessKey?: string;
11
11
  }>;
12
12
  export declare function buildDeveloperTestAccount(testAccountName: string, parentAccountConfig: HubSpotConfigAccount, env: Environment, portalLimit: number, useV2?: boolean): Promise<number>;
13
- type SandboxAccount = SandboxResponse & {
14
- name: string;
15
- };
16
- export declare function buildSandbox(sandboxName: string, parentAccountConfig: HubSpotConfigAccount, sandboxType: SandboxAccountType, env: Environment, force?: boolean): Promise<SandboxAccount>;
17
13
  export declare function buildV2Sandbox(sandboxName: string, parentAccountConfig: HubSpotConfigAccount, sandboxType: SandboxAccountType, syncObjectRecords: boolean, env: Environment, force?: boolean): Promise<{
18
14
  sandbox: V2Sandbox;
19
15
  }>;
20
- export {};
@@ -3,13 +3,14 @@ import { getConfigAccountIfExists, updateConfigAccount, } from '@hubspot/local-d
3
3
  import { uiLogger } from './ui/logger.js';
4
4
  import { createDeveloperTestAccount, fetchDeveloperTestAccountGateSyncStatus, generateDeveloperTestAccountPersonalAccessKey, } from '@hubspot/local-dev-lib/api/developerTestAccounts';
5
5
  import { HUBSPOT_ACCOUNT_TYPES } from '@hubspot/local-dev-lib/constants/config';
6
- import { createSandbox, createV2Sandbox, getSandboxPersonalAccessKey, } from '@hubspot/local-dev-lib/api/sandboxHubs';
7
- import { personalAccessKeyPrompt } from './prompts/personalAccessKeyPrompt.js';
6
+ import { createV2Sandbox, getSandboxPersonalAccessKey, } from '@hubspot/local-dev-lib/api/sandboxHubs';
7
+ import { isPromptExitError } from './errors/PromptExitError.js';
8
+ import { legacyPersonalAccessKeyPrompt as personalAccessKeyPrompt } from './prompts/personalAccessKeyPrompt.js';
8
9
  import { createDeveloperTestAccountConfigPrompt } from './prompts/createDeveloperTestAccountConfigPrompt.js';
9
10
  import { cliAccountNamePrompt } from './prompts/accountNamePrompt.js';
10
11
  import SpinniesManager from './ui/SpinniesManager.js';
11
12
  import { debugError, logError } from './errorHandlers/index.js';
12
- import { SANDBOX_API_TYPE_MAP, SANDBOX_TYPE_MAP_V2, handleSandboxCreateError, } from './sandboxes.js';
13
+ import { SANDBOX_TYPE_MAP_V2, handleSandboxCreateError } from './sandboxes.js';
13
14
  import { handleDeveloperTestAccountCreateError } from './developerTestAccounts.js';
14
15
  import { lib } from '../lang/en.js';
15
16
  import { poll } from './polling.js';
@@ -127,51 +128,14 @@ export async function buildDeveloperTestAccount(testAccountName, parentAccountCo
127
128
  await saveAccountToConfig(developerTestAccountId, testAccountName, env, developerTestAccountPersonalAccessKey);
128
129
  }
129
130
  catch (err) {
131
+ if (isPromptExitError(err)) {
132
+ throw err;
133
+ }
130
134
  logError(err);
131
135
  throw err;
132
136
  }
133
137
  return developerTestAccountId;
134
138
  }
135
- export async function buildSandbox(sandboxName, parentAccountConfig, sandboxType, env, force = false) {
136
- const sandboxTypeKey = sandboxType === HUBSPOT_ACCOUNT_TYPES.STANDARD_SANDBOX
137
- ? 'standard'
138
- : 'developer';
139
- const parentAccountId = parentAccountConfig.accountId;
140
- if (!parentAccountId) {
141
- throw new Error(lib.sandbox.create[sandboxTypeKey].loading.fail(''));
142
- }
143
- SpinniesManager.init({
144
- succeedColor: 'white',
145
- });
146
- uiLogger.log('');
147
- SpinniesManager.add('buildSandbox', {
148
- text: lib.sandbox.create[sandboxTypeKey].loading.add(sandboxName),
149
- });
150
- let sandbox;
151
- try {
152
- const sandboxApiType = SANDBOX_API_TYPE_MAP[sandboxType];
153
- const { data } = await createSandbox(parentAccountId, sandboxName, sandboxApiType);
154
- sandbox = { name: sandboxName, ...data };
155
- SpinniesManager.succeed('buildSandbox', {
156
- text: lib.sandbox.create[sandboxTypeKey].loading.succeed(sandboxName, sandbox.sandbox.sandboxHubId.toString()),
157
- });
158
- }
159
- catch (e) {
160
- debugError(e);
161
- SpinniesManager.fail('buildSandbox', {
162
- text: lib.sandbox.create[sandboxTypeKey].loading.fail(sandboxName),
163
- });
164
- handleSandboxCreateError(e, env, sandboxName, parentAccountId);
165
- }
166
- try {
167
- await saveAccountToConfig(sandbox.sandbox.sandboxHubId, sandboxName, env, sandbox.personalAccessKey, force);
168
- }
169
- catch (err) {
170
- logError(err);
171
- throw err;
172
- }
173
- return sandbox;
174
- }
175
139
  export async function buildV2Sandbox(sandboxName, parentAccountConfig, sandboxType, syncObjectRecords, env, force = false) {
176
140
  const sandboxTypeKey = sandboxType === HUBSPOT_ACCOUNT_TYPES.STANDARD_SANDBOX
177
141
  ? 'standard'
@@ -210,6 +174,9 @@ export async function buildV2Sandbox(sandboxName, parentAccountConfig, sandboxTy
210
174
  await saveAccountToConfig(sandbox.sandboxHubId, sandboxName, env, pak, force);
211
175
  }
212
176
  catch (err) {
177
+ if (isPromptExitError(err)) {
178
+ throw err;
179
+ }
213
180
  logError(err);
214
181
  throw err;
215
182
  }
package/lib/commonOpts.js CHANGED
@@ -76,7 +76,6 @@ export function addJSONOutputOptions(yargs) {
76
76
  alias: 'format-output-as-json',
77
77
  describe: lib.commonOpts.options.jsonOutput,
78
78
  type: 'boolean',
79
- hidden: true,
80
79
  });
81
80
  }
82
81
  // Remove this once we've upgraded to yargs 18.0.0
@@ -4,6 +4,7 @@ export declare const FEEDBACK_INTERVAL: 10;
4
4
  export declare const HUBSPOT_FOLDER: "@hubspot";
5
5
  export declare const MARKETPLACE_FOLDER: "@marketplace";
6
6
  export declare const DEFAULT_POLLING_DELAY = 2000;
7
+ export declare const PREVIEW_POLL_TIMEOUT: number;
7
8
  export declare const PROJECT_CONFIG_FILE: "hsproject.json";
8
9
  export declare const PROJECT_BUILD_STATES: {
9
10
  readonly BUILDING: "BUILDING";
@@ -77,10 +78,7 @@ export declare const APP_AUTH_TYPES: {
77
78
  };
78
79
  export declare const FEATURES: {
79
80
  readonly UNIFIED_APPS: "Developers:UnifiedApps:PrivateBeta";
80
- readonly SANDBOXES_V2: "sandboxes:v2:enabled";
81
- readonly SANDBOXES_V2_CLI: "sandboxes:v2:cliEnabled";
82
81
  readonly APP_EVENTS: "Developers:UnifiedApps:AppEventsAccess";
83
- readonly APPS_HOME: "UIE:AppHome";
84
82
  readonly THEME_MIGRATION_2025_2: "Developers:ProjectThemeMigrations:2025.2";
85
83
  readonly AGENT_TOOLS: "ThirdPartyAgentTools";
86
84
  };
@@ -126,6 +124,14 @@ export declare const LOCAL_DEV_SERVER_MESSAGE_TYPES: {
126
124
  readonly OAUTH_APP_INSTALL_INITIATED: "APP_INSTALL_INITIATED";
127
125
  };
128
126
  export declare const LOCAL_DEV_WEBSOCKET_SERVER_INSTANCE_ID = "local-dev-ui-websocket-server";
127
+ export declare const ACCOUNT_AUTH_UI_MESSAGE_SEND_TYPES: {
128
+ readonly AUTH_RECEIVED: "server:authReceived";
129
+ readonly AUTH_FAILED: "server:authFailed";
130
+ };
131
+ export declare const ACCOUNT_AUTH_UI_MESSAGE_RECEIVE_TYPES: {
132
+ readonly PERSONAL_ACCESS_KEY: "client:personalAccessKey";
133
+ };
134
+ export declare const ACCOUNT_AUTH_WEBSOCKET_SERVER_VERSION = 1;
129
135
  export declare const CONFIG_LOCAL_STATE_FLAGS: {
130
136
  readonly LOCAL_DEV_UI_WELCOME: "LOCAL_DEV_UI_WELCOME";
131
137
  };
@@ -145,3 +151,4 @@ export declare const ACCOUNT_LEVELS: {
145
151
  };
146
152
  export declare const ACCOUNT_LEVEL_CHOICES: readonly ["FREE", "STARTER", "PROFESSIONAL", "ENTERPRISE"];
147
153
  export declare const FEEDBACK_URL = "https://developers.hubspot.com/feedback";
154
+ export declare const LOCAL_DEV_DEFAULT_PORT = 4828;
package/lib/constants.js CHANGED
@@ -4,6 +4,7 @@ export const FEEDBACK_INTERVAL = 10;
4
4
  export const HUBSPOT_FOLDER = '@hubspot';
5
5
  export const MARKETPLACE_FOLDER = '@marketplace';
6
6
  export const DEFAULT_POLLING_DELAY = 2000;
7
+ export const PREVIEW_POLL_TIMEOUT = 5 * 60 * 1000;
7
8
  export const PROJECT_CONFIG_FILE = 'hsproject.json';
8
9
  export const PROJECT_BUILD_STATES = {
9
10
  BUILDING: 'BUILDING',
@@ -69,10 +70,7 @@ export const APP_AUTH_TYPES = {
69
70
  };
70
71
  export const FEATURES = {
71
72
  UNIFIED_APPS: 'Developers:UnifiedApps:PrivateBeta',
72
- SANDBOXES_V2: 'sandboxes:v2:enabled',
73
- SANDBOXES_V2_CLI: 'sandboxes:v2:cliEnabled',
74
73
  APP_EVENTS: 'Developers:UnifiedApps:AppEventsAccess',
75
- APPS_HOME: 'UIE:AppHome',
76
74
  THEME_MIGRATION_2025_2: 'Developers:ProjectThemeMigrations:2025.2',
77
75
  AGENT_TOOLS: 'ThirdPartyAgentTools',
78
76
  };
@@ -118,6 +116,14 @@ export const LOCAL_DEV_SERVER_MESSAGE_TYPES = {
118
116
  OAUTH_APP_INSTALL_INITIATED: 'APP_INSTALL_INITIATED',
119
117
  };
120
118
  export const LOCAL_DEV_WEBSOCKET_SERVER_INSTANCE_ID = 'local-dev-ui-websocket-server';
119
+ export const ACCOUNT_AUTH_UI_MESSAGE_SEND_TYPES = {
120
+ AUTH_RECEIVED: 'server:authReceived',
121
+ AUTH_FAILED: 'server:authFailed',
122
+ };
123
+ export const ACCOUNT_AUTH_UI_MESSAGE_RECEIVE_TYPES = {
124
+ PERSONAL_ACCESS_KEY: 'client:personalAccessKey',
125
+ };
126
+ export const ACCOUNT_AUTH_WEBSOCKET_SERVER_VERSION = 1;
121
127
  export const CONFIG_LOCAL_STATE_FLAGS = {
122
128
  LOCAL_DEV_UI_WELCOME: 'LOCAL_DEV_UI_WELCOME',
123
129
  };
@@ -146,3 +152,6 @@ export const ACCOUNT_LEVEL_CHOICES = [
146
152
  ACCOUNT_LEVELS.ENTERPRISE,
147
153
  ];
148
154
  export const FEEDBACK_URL = 'https://developers.hubspot.com/feedback';
155
+ // TODO: remove this constant and use PORT_MANAGER_SERVER_PORT from
156
+ // @hubspot/local-dev-lib once LDL changes its default to 4828.
157
+ export const LOCAL_DEV_DEFAULT_PORT = 4828;
@@ -1,4 +1,4 @@
1
- import { prefixOptions } from '../ui/spinniesUtils.js';
1
+ import { getLabels } from '@hubspot/local-dev-lib/logger';
2
2
  import chalk from 'chalk';
3
3
  import { helpers } from '../interpolation.js';
4
4
  import { uiAccountDescription } from '../ui/index.js';
@@ -10,11 +10,11 @@ export class Diagnosis {
10
10
  errorCount = 0;
11
11
  warningCount = 0;
12
12
  constructor({ diagnosticInfo, accountId }) {
13
- const { succeedPrefix, failPrefix } = prefixOptions({});
13
+ const labels = getLabels();
14
14
  this.prefixes = {
15
- success: chalk.green(succeedPrefix),
16
- error: chalk.red(failPrefix),
17
- warning: helpers.orange('!'),
15
+ success: chalk.green(labels.success),
16
+ error: chalk.red(labels.error),
17
+ warning: helpers.orange(labels.warning),
18
18
  };
19
19
  this.diagnosis = {
20
20
  cli: {
@@ -10,8 +10,8 @@ import fs from 'fs';
10
10
  import path from 'path';
11
11
  import { Diagnosis } from './Diagnosis.js';
12
12
  import { DiagnosticInfoBuilder, } from './DiagnosticInfoBuilder.js';
13
- import { isPortManagerPortAvailable } from '@hubspot/local-dev-lib/portManager';
14
- import { PORT_MANAGER_SERVER_PORT } from '@hubspot/local-dev-lib/constants/ports';
13
+ import { isPortAvailable } from '@hubspot/local-dev-lib/portManager';
14
+ import { LOCAL_DEV_DEFAULT_PORT } from '../constants.js';
15
15
  import { accessTokenForPersonalAccessKey,
16
16
  // scopesOnAccessToken,
17
17
  } from '@hubspot/local-dev-lib/personalAccessKey';
@@ -26,7 +26,7 @@ import { isServerRunningAtUrl } from '../http.js';
26
26
  import { WEBHOOKS_KEY, APP_KEY } from '@hubspot/project-parsing-lib/constants';
27
27
  import { validateProjectConfig } from '../projects/config.js';
28
28
  import { validateSourceDirectory, handleTranslate, } from '../projects/upload.js';
29
- import { isV2Project } from '../projects/platformVersion.js';
29
+ import { isLegacyProject } from '@hubspot/project-parsing-lib/projects';
30
30
  import { validateProjectForProfile } from '../projects/projectProfiles.js';
31
31
  import { getAllHsProfiles } from '@hubspot/project-parsing-lib/profiles';
32
32
  const minMajorNodeVersion = 20;
@@ -322,16 +322,16 @@ export class Doctor {
322
322
  }
323
323
  }
324
324
  async checkIfPortsAreAvailable() {
325
- if (await isPortManagerPortAvailable()) {
325
+ if (await isPortAvailable(LOCAL_DEV_DEFAULT_PORT)) {
326
326
  this.diagnosis?.addProjectSection({
327
327
  type: 'success',
328
- message: lib.doctor.port.available(PORT_MANAGER_SERVER_PORT),
328
+ message: lib.doctor.port.available(LOCAL_DEV_DEFAULT_PORT),
329
329
  });
330
330
  return;
331
331
  }
332
332
  this.diagnosis?.addProjectSection({
333
333
  type: 'warning',
334
- message: lib.doctor.port.inUse(PORT_MANAGER_SERVER_PORT),
334
+ message: lib.doctor.port.inUse(LOCAL_DEV_DEFAULT_PORT),
335
335
  secondaryMessaging: lib.doctor.port.inUseSecondary,
336
336
  });
337
337
  }
@@ -534,7 +534,7 @@ export class Doctor {
534
534
  if (!this.validateProjectConfigWrapper(projectConfig, projectDir)) {
535
535
  return;
536
536
  }
537
- if (!isV2Project(projectConfig.platformVersion)) {
537
+ if (isLegacyProject(projectConfig.platformVersion)) {
538
538
  this.diagnosis?.addProjectSection({
539
539
  type: 'success',
540
540
  message: lib.doctor.projectValidation.valid,
@@ -7,11 +7,12 @@ import util from 'util';
7
7
  import { isProjectValidationError } from '../errors/ProjectValidationError.js';
8
8
  export function logError(error, context) {
9
9
  debugError(error, context);
10
- if (isProjectValidationError(error)) {
11
- uiLogger.error(error.message);
10
+ // This should be right after debugError. Add anything else below it
11
+ if (shouldSuppressError(error, context)) {
12
12
  return;
13
13
  }
14
- if (shouldSuppressError(error, context)) {
14
+ if (isProjectValidationError(error)) {
15
+ uiLogger.error(error.message);
15
16
  return;
16
17
  }
17
18
  if (isHubSpotHttpError(error)) {
@@ -3,6 +3,7 @@ import { uiLogger } from '../ui/logger.js';
3
3
  import { PLATFORM_VERSION_ERROR_TYPES } from '../constants.js';
4
4
  import { lib } from '../../lang/en.js';
5
5
  import { uiAccountDescription, uiLine, uiLink } from '../ui/index.js';
6
+ import { isPromptExitError } from '../errors/PromptExitError.js';
6
7
  function createPlatformVersionError(err, subCategory) {
7
8
  let translationKey = 'unspecifiedPlatformVersion';
8
9
  let platformVersion = 'unspecified platformVersion';
@@ -27,6 +28,9 @@ function createPlatformVersionError(err, subCategory) {
27
28
  uiLine();
28
29
  }
29
30
  export function shouldSuppressError(err, context) {
31
+ if (isPromptExitError(err)) {
32
+ return true;
33
+ }
30
34
  if (isMissingScopeError(err)) {
31
35
  uiLogger.error(lib.errorHandlers.suppressErrors.missingScopeError(context?.request || 'request', context?.accountId ? uiAccountDescription(context.accountId) : ''));
32
36
  return true;
@@ -0,0 +1,6 @@
1
+ import { ExitCode } from '../../types/Yargs.js';
2
+ export declare class PromptExitError extends Error {
3
+ exitCode: ExitCode;
4
+ constructor(message: string, exitCode: ExitCode);
5
+ }
6
+ export declare function isPromptExitError(e: unknown): e is PromptExitError;
@@ -0,0 +1,11 @@
1
+ export class PromptExitError extends Error {
2
+ exitCode;
3
+ constructor(message, exitCode) {
4
+ super(message);
5
+ this.name = 'PromptExitError';
6
+ this.exitCode = exitCode;
7
+ }
8
+ }
9
+ export function isPromptExitError(e) {
10
+ return e instanceof PromptExitError;
11
+ }
@@ -13,7 +13,7 @@ import { getStaticAuthAppInstallUrl } from '../lib/app/urls.js';
13
13
  import { HUBSPOT_PROJECT_COMPONENTS_GITHUB_PATH, PROJECT_CONFIG_FILE, } from '../lib/constants.js';
14
14
  import { ProjectNestingError, ProjectConfigNotFoundError, ProjectValidationError, ProjectUploadError, ProjectBuildDeployError, } from './errors/ProjectErrors.js';
15
15
  import { getProjectConfig, validateProjectConfig, writeProjectConfig, } from '../lib/projects/config.js';
16
- import { isV2Project } from '../lib/projects/platformVersion.js';
16
+ import { isLegacyProject } from '@hubspot/project-parsing-lib/projects';
17
17
  import { pollProjectBuildAndDeploy } from '../lib/projects/pollProjectBuildAndDeploy.js';
18
18
  import { handleProjectUpload } from '../lib/projects/upload.js';
19
19
  import { validateProjectDirectory } from '../lib/prompts/projectNameAndDestPrompt.js';
@@ -37,7 +37,7 @@ export async function createProjectAction({ projectName, projectDest, }) {
37
37
  }
38
38
  try {
39
39
  await cloneGithubRepo(HUBSPOT_PROJECT_COMPONENTS_GITHUB_PATH, projectDestAbsolute, {
40
- sourceDir: '2025.2/private-app-get-started-template',
40
+ sourceDir: '2026.03/private-app-get-started-template',
41
41
  hideLogs: true,
42
42
  });
43
43
  const projectConfigPath = path.join(projectDestAbsolute, PROJECT_CONFIG_FILE);
@@ -109,7 +109,7 @@ export async function uploadAndDeployAction({ accountId, projectDest, }) {
109
109
  uploadMessage: commands.getStarted.logs.initialUploadMessage,
110
110
  forceCreate: true,
111
111
  isUploadCommand: false,
112
- sendIR: isV2Project(projectConfig.platformVersion),
112
+ sendIR: !isLegacyProject(projectConfig.platformVersion),
113
113
  skipValidation: false,
114
114
  });
115
115
  if (uploadError) {
package/lib/hasFeature.js CHANGED
@@ -1,7 +1,6 @@
1
1
  import { http } from '@hubspot/local-dev-lib/http';
2
2
  import { fetchEnabledFeatures } from '@hubspot/local-dev-lib/api/localDevAuth';
3
- import { FEATURES } from './constants.js';
4
- const FEATURES_THAT_DEFAULT_ON = [FEATURES.APPS_HOME];
3
+ const FEATURES_THAT_DEFAULT_ON = [];
5
4
  export async function hasFeature(accountId, feature) {
6
5
  const { data: { enabledFeatures }, } = await fetchEnabledFeatures(accountId);
7
6
  if (enabledFeatures[feature] === undefined &&
@@ -0,0 +1,10 @@
1
+ export interface AccountRow {
2
+ name: string;
3
+ accountId: string;
4
+ }
5
+ export declare function buildAccountRow(accountId: number, isDefault: boolean): AccountRow;
6
+ export declare function buildAccountHeader(nameColumnWidth: number): string;
7
+ export declare function getNameColumnWidth(rows: AccountRow[]): number;
8
+ export declare function sortDefaultFirst<T extends number | {
9
+ accountId: number;
10
+ }>(items: T[], defaultAccount: number | undefined): T[];
@@ -0,0 +1,39 @@
1
+ import { HUBSPOT_ACCOUNT_TYPE_STRINGS } from '@hubspot/local-dev-lib/constants/config';
2
+ import { getConfigAccountIfExists } from '@hubspot/local-dev-lib/config';
3
+ import chalk from 'chalk';
4
+ import { commands } from '../../lang/en.js';
5
+ import { indent } from '../ui/index.js';
6
+ import { INK_COLORS } from '../../ui/styles.js';
7
+ export function buildAccountRow(accountId, isDefault) {
8
+ const account = getConfigAccountIfExists(accountId);
9
+ let name = String(accountId);
10
+ if (account && account.accountType) {
11
+ const typeStr = HUBSPOT_ACCOUNT_TYPE_STRINGS[account.accountType];
12
+ name = `${account.name} [${typeStr}]`;
13
+ }
14
+ if (isDefault) {
15
+ name = `${name} (default)`;
16
+ }
17
+ return { name, accountId: String(accountId) };
18
+ }
19
+ export function buildAccountHeader(nameColumnWidth) {
20
+ const labels = commands.account.subcommands.list.labels;
21
+ const paddedName = chalk.bold(chalk.hex(INK_COLORS.INFO_BLUE)(labels.name.padEnd(nameColumnWidth)));
22
+ const accountId = chalk.bold(chalk.hex(INK_COLORS.INFO_BLUE)(labels.accountId));
23
+ return `${indent(1)}${paddedName} ${accountId}`;
24
+ }
25
+ export function getNameColumnWidth(rows) {
26
+ const labels = commands.account.subcommands.list.labels;
27
+ return Math.max(labels.name.length, ...rows.map(r => r.name.length));
28
+ }
29
+ export function sortDefaultFirst(items, defaultAccount) {
30
+ return [...items].sort((a, b) => {
31
+ const aId = typeof a === 'number' ? a : a.accountId;
32
+ const bId = typeof b === 'number' ? b : b.accountId;
33
+ if (aId === defaultAccount)
34
+ return -1;
35
+ if (bId === defaultAccount)
36
+ return 1;
37
+ return 0;
38
+ });
39
+ }
@@ -0,0 +1,18 @@
1
+ import { HsSettingsFile } from '@hubspot/local-dev-lib/types/HsSettings';
2
+ import { ActionHandlerParams, ActionResult, LinkArgs } from '../../types/Link.js';
3
+ import { ArgumentsCamelCase } from 'yargs';
4
+ export declare class ActionHandlers {
5
+ static link({ state, context, }: ActionHandlerParams): Promise<ActionResult>;
6
+ static unlink({ state }: ActionHandlerParams): Promise<ActionResult>;
7
+ static authenticate({ state, context, args, }: ActionHandlerParams): Promise<ActionResult>;
8
+ static cancel(): Promise<ActionResult>;
9
+ }
10
+ export declare function handleLinkFlow({ settings, accountOverrideId, args, }: {
11
+ settings: HsSettingsFile;
12
+ accountOverrideId: number | null;
13
+ args: ArgumentsCamelCase<LinkArgs>;
14
+ }): Promise<ActionResult>;
15
+ export declare function handleLinkedUseAction({ state, targetAccountId, }: {
16
+ state: HsSettingsFile;
17
+ targetAccountId?: number;
18
+ }): Promise<ActionResult>;