@hubspot/cli 8.2.0 → 8.2.1-experimental.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (748) 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 +25 -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 +13 -0
  21. package/commands/api.js +161 -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 +126 -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 +29 -11
  60. package/commands/customObject/create.js +4 -5
  61. package/commands/customObject/createSchema.js +6 -8
  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 +6 -8
  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 +20 -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.d.ts +1 -1
  77. package/commands/hubdb/list.js +23 -22
  78. package/commands/init.js +18 -15
  79. package/commands/mcp/setup.d.ts +2 -0
  80. package/commands/mcp/setup.js +35 -8
  81. package/commands/mcp/start.js +2 -3
  82. package/commands/open.js +4 -5
  83. package/commands/project/add.js +13 -8
  84. package/commands/project/appInstallStatus.d.ts +5 -0
  85. package/commands/project/appInstallStatus.js +135 -0
  86. package/commands/project/create.js +29 -17
  87. package/commands/project/delete.d.ts +7 -0
  88. package/commands/project/delete.js +74 -0
  89. package/commands/project/deploy.d.ts +2 -1
  90. package/commands/project/deploy.js +68 -48
  91. package/commands/project/dev/index.d.ts +3 -3
  92. package/commands/project/dev/index.js +33 -68
  93. package/commands/project/dev/unifiedFlow.js +73 -22
  94. package/commands/project/download.js +12 -9
  95. package/commands/project/info.d.ts +5 -0
  96. package/commands/project/info.js +70 -0
  97. package/commands/project/installApp.d.ts +8 -0
  98. package/commands/project/installApp.js +180 -0
  99. package/commands/project/installDeps.js +11 -6
  100. package/commands/project/lint.js +43 -12
  101. package/commands/project/list.d.ts +2 -2
  102. package/commands/project/list.js +15 -14
  103. package/commands/project/listBuilds.d.ts +1 -1
  104. package/commands/project/listBuilds.js +16 -12
  105. package/commands/project/logs.js +7 -10
  106. package/commands/project/migrate.js +18 -18
  107. package/commands/project/open.js +5 -6
  108. package/commands/project/profile/add.d.ts +2 -1
  109. package/commands/project/profile/add.js +34 -9
  110. package/commands/project/profile/delete.d.ts +1 -1
  111. package/commands/project/profile/delete.js +15 -11
  112. package/commands/project/release/create.d.ts +8 -0
  113. package/commands/project/release/create.js +158 -0
  114. package/commands/project/release/info.d.ts +7 -0
  115. package/commands/project/release/info.js +148 -0
  116. package/commands/project/release/list.d.ts +7 -0
  117. package/commands/project/release/list.js +119 -0
  118. package/commands/project/release.d.ts +3 -0
  119. package/commands/project/release.js +20 -0
  120. package/commands/project/updateDeps.js +9 -6
  121. package/commands/project/upload.d.ts +7 -1
  122. package/commands/project/upload.js +145 -32
  123. package/commands/project/validate.d.ts +1 -1
  124. package/commands/project/validate.js +12 -12
  125. package/commands/project/watch.js +23 -22
  126. package/commands/project.js +16 -3
  127. package/commands/sandbox/create.js +18 -45
  128. package/commands/sandbox/delete.js +15 -17
  129. package/commands/secret/addSecret.js +6 -7
  130. package/commands/secret/deleteSecret.js +5 -6
  131. package/commands/secret/listSecret.js +2 -3
  132. package/commands/secret/updateSecret.js +4 -5
  133. package/commands/testAccount/create.d.ts +3 -2
  134. package/commands/testAccount/create.js +30 -22
  135. package/commands/testAccount/createConfig.js +7 -8
  136. package/commands/testAccount/delete.js +27 -18
  137. package/commands/testAccount/importData.d.ts +1 -1
  138. package/commands/testAccount/importData.js +6 -7
  139. package/commands/upgrade.js +11 -10
  140. package/lang/en.d.ts +558 -40
  141. package/lang/en.js +595 -63
  142. package/lib/CLIWebSocketServer.d.ts +5 -3
  143. package/lib/CLIWebSocketServer.js +31 -4
  144. package/lib/accountAuth.d.ts +3 -1
  145. package/lib/accountAuth.js +47 -17
  146. package/lib/accountTargetDiscovery.d.ts +15 -0
  147. package/lib/accountTargetDiscovery.js +175 -0
  148. package/lib/api/usageTracking.d.ts +30 -0
  149. package/lib/api/usageTracking.js +11 -0
  150. package/lib/app/install.d.ts +22 -0
  151. package/lib/app/install.js +42 -0
  152. package/lib/app/logs.d.ts +38 -0
  153. package/lib/app/logs.js +225 -0
  154. package/lib/app/migrate.js +18 -5
  155. package/lib/app/urls.d.ts +2 -0
  156. package/lib/app/urls.js +7 -1
  157. package/lib/auth/awaitPersonalAccessKeyOverWebsocket.d.ts +4 -0
  158. package/lib/auth/awaitPersonalAccessKeyOverWebsocket.js +146 -0
  159. package/lib/buildAccount.d.ts +1 -6
  160. package/lib/buildAccount.js +10 -43
  161. package/lib/commonOpts.js +6 -2
  162. package/lib/configOptions.d.ts +10 -10
  163. package/lib/configOptions.js +10 -11
  164. package/lib/constants.d.ts +12 -3
  165. package/lib/constants.js +14 -3
  166. package/lib/dependencyManagement.js +7 -7
  167. package/lib/doctor/Diagnosis.js +5 -5
  168. package/lib/doctor/Doctor.d.ts +1 -0
  169. package/lib/doctor/Doctor.js +33 -7
  170. package/lib/errorHandlers/index.js +4 -3
  171. package/lib/errorHandlers/suppressError.js +4 -0
  172. package/lib/errors/PromptExitError.d.ts +6 -0
  173. package/lib/errors/PromptExitError.js +11 -0
  174. package/lib/getStartedV2Actions.js +5 -4
  175. package/lib/hasFeature.js +1 -2
  176. package/lib/importData.js +3 -4
  177. package/lib/jsonOutput.d.ts +109 -0
  178. package/lib/jsonOutput.js +94 -0
  179. package/lib/link/accountTableUtils.d.ts +10 -0
  180. package/lib/link/accountTableUtils.js +39 -0
  181. package/lib/link/index.d.ts +18 -0
  182. package/lib/link/index.js +185 -0
  183. package/lib/link/linkUtils.d.ts +5 -0
  184. package/lib/link/linkUtils.js +49 -0
  185. package/lib/link/prompts.d.ts +7 -0
  186. package/lib/link/prompts.js +126 -0
  187. package/lib/link/renderLinkedAccountsTable.d.ts +2 -0
  188. package/lib/link/renderLinkedAccountsTable.js +14 -0
  189. package/lib/link/warnIfLinkedDirectory.d.ts +1 -0
  190. package/lib/link/warnIfLinkedDirectory.js +9 -0
  191. package/lib/links.js +6 -5
  192. package/lib/mcp/clients.d.ts +13 -0
  193. package/lib/mcp/clients.js +62 -0
  194. package/lib/mcp/promotion.d.ts +3 -0
  195. package/lib/mcp/promotion.js +109 -0
  196. package/lib/mcp/setup.d.ts +8 -2
  197. package/lib/mcp/setup.js +123 -38
  198. package/lib/middleware/autoUpdateMiddleware.js +6 -3
  199. package/lib/middleware/commandTargetingUtils.js +1 -0
  200. package/lib/npm/npmCli.d.ts +1 -0
  201. package/lib/npm/npmCli.js +13 -0
  202. package/lib/process.d.ts +1 -1
  203. package/lib/process.js +10 -3
  204. package/lib/projects/ProjectLogsManager.js +6 -3
  205. package/lib/projects/builds.d.ts +2 -0
  206. package/lib/projects/builds.js +22 -0
  207. package/lib/projects/components.js +15 -4
  208. package/lib/projects/create/index.js +2 -2
  209. package/lib/projects/create/legacy.js +2 -2
  210. package/lib/projects/create/v2.js +5 -5
  211. package/lib/projects/delete.d.ts +13 -0
  212. package/lib/projects/delete.js +193 -0
  213. package/lib/projects/deploy.d.ts +1 -1
  214. package/lib/projects/deploy.js +2 -2
  215. package/lib/projects/installApp.d.ts +58 -0
  216. package/lib/projects/installApp.js +283 -0
  217. package/lib/projects/localDev/AppDevModeInterface.d.ts +0 -3
  218. package/lib/projects/localDev/AppDevModeInterface.js +35 -53
  219. package/lib/projects/localDev/DevSessionManager.d.ts +8 -5
  220. package/lib/projects/localDev/DevSessionManager.js +35 -49
  221. package/lib/projects/localDev/LocalDevProcess.js +13 -10
  222. package/lib/projects/localDev/LocalDevState.d.ts +3 -2
  223. package/lib/projects/localDev/LocalDevState.js +3 -1
  224. package/lib/projects/localDev/LocalDevWebsocketServer.js +1 -1
  225. package/lib/projects/localDev/UIExtensionsDevModeInterface.js +2 -0
  226. package/lib/projects/localDev/helpers/account.d.ts +1 -7
  227. package/lib/projects/localDev/helpers/account.js +12 -100
  228. package/lib/projects/localDev/helpers/process.d.ts +1 -1
  229. package/lib/projects/localDev/helpers/process.js +4 -10
  230. package/lib/projects/localDev/helpers/project.d.ts +8 -6
  231. package/lib/projects/localDev/helpers/project.js +80 -29
  232. package/lib/projects/npmAuditOnUpload.d.ts +10 -0
  233. package/lib/projects/npmAuditOnUpload.js +73 -0
  234. package/lib/projects/pollProjectBuildAndDeploy.d.ts +5 -1
  235. package/lib/projects/pollProjectBuildAndDeploy.js +3 -2
  236. package/lib/projects/preview.d.ts +7 -0
  237. package/lib/projects/preview.js +48 -0
  238. package/lib/projects/projectInfo.d.ts +5 -0
  239. package/lib/projects/projectInfo.js +82 -0
  240. package/lib/projects/projectProfiles.d.ts +1 -2
  241. package/lib/projects/projectProfiles.js +5 -17
  242. package/lib/projects/release.d.ts +4 -0
  243. package/lib/projects/release.js +90 -0
  244. package/lib/projects/ui.d.ts +1 -0
  245. package/lib/projects/ui.js +14 -0
  246. package/lib/projects/uieLinting.d.ts +21 -3
  247. package/lib/projects/uieLinting.js +132 -28
  248. package/lib/projects/upload.d.ts +12 -2
  249. package/lib/projects/upload.js +59 -13
  250. package/lib/projects/urls.d.ts +0 -1
  251. package/lib/projects/urls.js +6 -13
  252. package/lib/projects/validateLintConfigOnUpload.d.ts +9 -0
  253. package/lib/projects/validateLintConfigOnUpload.js +45 -0
  254. package/lib/projects/workspaces.d.ts +60 -0
  255. package/lib/projects/workspaces.js +411 -0
  256. package/lib/prompts/createApiSamplePrompt.js +4 -0
  257. package/lib/prompts/downloadProjectPrompt.js +11 -10
  258. package/lib/prompts/installAppPrompt.js +3 -2
  259. package/lib/prompts/personalAccessKeyPrompt.d.ts +2 -5
  260. package/lib/prompts/personalAccessKeyPrompt.js +10 -7
  261. package/lib/prompts/projectDevTargetAccountPrompt.d.ts +1 -0
  262. package/lib/prompts/projectDevTargetAccountPrompt.js +26 -18
  263. package/lib/prompts/projectProfilePrompt.d.ts +2 -0
  264. package/lib/prompts/projectProfilePrompt.js +46 -0
  265. package/lib/prompts/projectsLogsPrompt.js +3 -0
  266. package/lib/prompts/promptUtils.js +4 -2
  267. package/lib/prompts/selectAppPrompt.js +1 -0
  268. package/lib/prompts/selectHubDBTablePrompt.js +8 -4
  269. package/lib/prompts/selectPublicAppForMigrationPrompt.js +12 -6
  270. package/lib/prompts/setAsDefaultAccountPrompt.js +2 -1
  271. package/lib/sandboxes.d.ts +1 -9
  272. package/lib/sandboxes.js +0 -21
  273. package/lib/serverlessLogs.js +2 -2
  274. package/lib/theme/cmsDevServerProcess.d.ts +2 -0
  275. package/lib/theme/cmsDevServerProcess.js +8 -7
  276. package/lib/theme/migrate.d.ts +1 -1
  277. package/lib/theme/migrate.js +1 -5
  278. package/lib/ui/SpinniesManager.d.ts +1 -0
  279. package/lib/ui/SpinniesManager.js +22 -6
  280. package/lib/ui/accountTable.d.ts +8 -0
  281. package/lib/ui/accountTable.js +67 -0
  282. package/lib/ui/appLogs.d.ts +32 -0
  283. package/lib/ui/appLogs.js +175 -0
  284. package/lib/ui/spinniesUtils.d.ts +0 -1
  285. package/lib/ui/spinniesUtils.js +6 -16
  286. package/lib/usageTracking.d.ts +10 -20
  287. package/lib/usageTracking.js +77 -30
  288. package/lib/yargs/makeWrappedYargsHandler.d.ts +7 -0
  289. package/lib/yargs/makeWrappedYargsHandler.js +179 -0
  290. package/lib/yargs/makeYargsBuilder.d.ts +13 -0
  291. package/lib/yargs/makeYargsBuilder.js +33 -0
  292. package/lib/yargs/parseYargsOrExit.d.ts +4 -0
  293. package/lib/yargs/parseYargsOrExit.js +25 -0
  294. package/lib/yargs/strictEnforceBoolean.d.ts +1 -0
  295. package/lib/yargs/strictEnforceBoolean.js +13 -0
  296. package/lib/yargsUtils.d.ts +3 -16
  297. package/lib/yargsUtils.js +3 -48
  298. package/mcp-server/Tool.d.ts +20 -0
  299. package/mcp-server/Tool.js +79 -0
  300. package/mcp-server/server.js +47 -3
  301. package/mcp-server/tools/cms/HsCreateFunctionTool.d.ts +5 -3
  302. package/mcp-server/tools/cms/HsCreateFunctionTool.js +18 -23
  303. package/mcp-server/tools/cms/HsCreateModuleTool.d.ts +5 -3
  304. package/mcp-server/tools/cms/HsCreateModuleTool.js +21 -26
  305. package/mcp-server/tools/cms/HsCreateTemplateTool.d.ts +5 -3
  306. package/mcp-server/tools/cms/HsCreateTemplateTool.js +16 -16
  307. package/mcp-server/tools/cms/HsFunctionLogsTool.d.ts +5 -3
  308. package/mcp-server/tools/cms/HsFunctionLogsTool.js +16 -15
  309. package/mcp-server/tools/cms/HsListFunctionsTool.d.ts +5 -3
  310. package/mcp-server/tools/cms/HsListFunctionsTool.js +14 -13
  311. package/mcp-server/tools/cms/HsListTool.d.ts +5 -3
  312. package/mcp-server/tools/cms/HsListTool.js +14 -16
  313. package/mcp-server/tools/index.d.ts +3 -2
  314. package/mcp-server/tools/index.js +26 -22
  315. package/mcp-server/tools/project/AddFeatureToProjectTool.d.ts +8 -4
  316. package/mcp-server/tools/project/AddFeatureToProjectTool.js +16 -15
  317. package/mcp-server/tools/project/AuthAccountTool.d.ts +18 -0
  318. package/mcp-server/tools/project/AuthAccountTool.js +78 -0
  319. package/mcp-server/tools/project/CreateProjectTool.d.ts +8 -4
  320. package/mcp-server/tools/project/CreateProjectTool.js +21 -17
  321. package/mcp-server/tools/project/CreateTestAccountTool.d.ts +5 -3
  322. package/mcp-server/tools/project/CreateTestAccountTool.js +35 -24
  323. package/mcp-server/tools/project/DeployProjectTool.d.ts +5 -3
  324. package/mcp-server/tools/project/DeployProjectTool.js +14 -16
  325. package/mcp-server/tools/project/DocFetchTool.d.ts +4 -2
  326. package/mcp-server/tools/project/DocFetchTool.js +8 -6
  327. package/mcp-server/tools/project/DocsSearchTool.d.ts +9 -3
  328. package/mcp-server/tools/project/DocsSearchTool.js +39 -15
  329. package/mcp-server/tools/project/FindProjectsTool.d.ts +15 -0
  330. package/mcp-server/tools/project/FindProjectsTool.js +60 -0
  331. package/mcp-server/tools/project/GetApiUsagePatternsByAppIdTool.d.ts +6 -3
  332. package/mcp-server/tools/project/GetApiUsagePatternsByAppIdTool.js +16 -13
  333. package/mcp-server/tools/project/GetApplicationInfoTool.d.ts +6 -3
  334. package/mcp-server/tools/project/GetApplicationInfoTool.js +19 -14
  335. package/mcp-server/tools/project/GetBuildLogsTool.d.ts +4 -2
  336. package/mcp-server/tools/project/GetBuildLogsTool.js +19 -13
  337. package/mcp-server/tools/project/GetBuildStatusTool.d.ts +4 -2
  338. package/mcp-server/tools/project/GetBuildStatusTool.js +19 -13
  339. package/mcp-server/tools/project/GetConfigValuesTool.d.ts +6 -3
  340. package/mcp-server/tools/project/GetConfigValuesTool.js +20 -13
  341. package/mcp-server/tools/project/GuidedWalkthroughTool.d.ts +4 -2
  342. package/mcp-server/tools/project/GuidedWalkthroughTool.js +4 -6
  343. package/mcp-server/tools/project/UploadProjectTools.d.ts +5 -3
  344. package/mcp-server/tools/project/UploadProjectTools.js +18 -15
  345. package/mcp-server/tools/project/ValidateProjectTool.d.ts +5 -3
  346. package/mcp-server/tools/project/ValidateProjectTool.js +13 -10
  347. package/mcp-server/tools/project/constants.d.ts +3 -1
  348. package/mcp-server/tools/project/constants.js +3 -1
  349. package/mcp-server/types.d.ts +0 -7
  350. package/mcp-server/types.js +1 -13
  351. package/mcp-server/utils/command.d.ts +25 -2
  352. package/mcp-server/utils/command.js +68 -16
  353. package/mcp-server/utils/config.js +6 -0
  354. package/mcp-server/utils/logger.d.ts +13 -0
  355. package/mcp-server/utils/logger.js +59 -0
  356. package/mcp-server/utils/toolUsageTracking.js +28 -11
  357. package/package.json +22 -15
  358. package/types/AccountTargets.d.ts +37 -0
  359. package/types/AccountTargets.js +12 -0
  360. package/types/Link.d.ts +32 -0
  361. package/types/Link.js +5 -0
  362. package/types/LocalDev.d.ts +8 -2
  363. package/types/PackageJson.d.ts +1 -0
  364. package/types/ProjectComponents.d.ts +2 -1
  365. package/types/Projects.d.ts +24 -0
  366. package/types/Prompts.d.ts +1 -0
  367. package/types/Yargs.d.ts +22 -2
  368. package/ui/components/ActionSection.d.ts +1 -1
  369. package/ui/components/InputField.d.ts +1 -1
  370. package/ui/components/SelectInput.d.ts +1 -1
  371. package/ui/components/StatusIcon.d.ts +1 -1
  372. package/ui/components/Table.d.ts +5 -5
  373. package/ui/components/getStarted/GetStartedFlow.d.ts +1 -1
  374. package/ui/components/getStarted/screens/InstallationScreen.d.ts +1 -1
  375. package/ui/components/getStarted/screens/ProjectSetupScreen.d.ts +1 -1
  376. package/ui/components/getStarted/screens/UploadScreen.d.ts +1 -1
  377. package/api/__tests__/migrate.test.d.ts +0 -1
  378. package/api/__tests__/migrate.test.js +0 -199
  379. package/commands/__tests__/account.test.d.ts +0 -1
  380. package/commands/__tests__/account.test.js +0 -69
  381. package/commands/__tests__/auth.test.d.ts +0 -1
  382. package/commands/__tests__/auth.test.js +0 -43
  383. package/commands/__tests__/cms.test.d.ts +0 -1
  384. package/commands/__tests__/cms.test.js +0 -87
  385. package/commands/__tests__/config.test.d.ts +0 -1
  386. package/commands/__tests__/config.test.js +0 -44
  387. package/commands/__tests__/customObject.test.d.ts +0 -1
  388. package/commands/__tests__/customObject.test.js +0 -68
  389. package/commands/__tests__/doctor.test.d.ts +0 -1
  390. package/commands/__tests__/doctor.test.js +0 -132
  391. package/commands/__tests__/feedback.test.d.ts +0 -1
  392. package/commands/__tests__/feedback.test.js +0 -24
  393. package/commands/__tests__/filemanager.test.d.ts +0 -1
  394. package/commands/__tests__/filemanager.test.js +0 -45
  395. package/commands/__tests__/getStarted.test.d.ts +0 -1
  396. package/commands/__tests__/getStarted.test.js +0 -173
  397. package/commands/__tests__/hubdb.test.d.ts +0 -1
  398. package/commands/__tests__/hubdb.test.js +0 -50
  399. package/commands/__tests__/init.test.d.ts +0 -1
  400. package/commands/__tests__/init.test.js +0 -42
  401. package/commands/__tests__/mcp.test.d.ts +0 -1
  402. package/commands/__tests__/mcp.test.js +0 -46
  403. package/commands/__tests__/open.test.d.ts +0 -1
  404. package/commands/__tests__/open.test.js +0 -58
  405. package/commands/__tests__/project.test.d.ts +0 -1
  406. package/commands/__tests__/project.test.js +0 -125
  407. package/commands/__tests__/sandbox.test.d.ts +0 -1
  408. package/commands/__tests__/sandbox.test.js +0 -44
  409. package/commands/__tests__/secret.test.d.ts +0 -1
  410. package/commands/__tests__/secret.test.js +0 -49
  411. package/commands/__tests__/testAccount.test.d.ts +0 -1
  412. package/commands/__tests__/testAccount.test.js +0 -57
  413. package/commands/__tests__/upgrade.test.d.ts +0 -1
  414. package/commands/__tests__/upgrade.test.js +0 -309
  415. package/commands/account/__tests__/auth.test.d.ts +0 -1
  416. package/commands/account/__tests__/auth.test.js +0 -206
  417. package/commands/account/__tests__/clean.test.d.ts +0 -1
  418. package/commands/account/__tests__/clean.test.js +0 -28
  419. package/commands/account/__tests__/createOverride.test.d.ts +0 -1
  420. package/commands/account/__tests__/createOverride.test.js +0 -32
  421. package/commands/account/__tests__/info.test.d.ts +0 -1
  422. package/commands/account/__tests__/info.test.js +0 -28
  423. package/commands/account/__tests__/list.test.d.ts +0 -1
  424. package/commands/account/__tests__/list.test.js +0 -153
  425. package/commands/account/__tests__/remove.test.d.ts +0 -1
  426. package/commands/account/__tests__/remove.test.js +0 -36
  427. package/commands/account/__tests__/removeOverride.d.ts +0 -1
  428. package/commands/account/__tests__/removeOverride.js +0 -25
  429. package/commands/account/__tests__/rename.test.d.ts +0 -1
  430. package/commands/account/__tests__/rename.test.js +0 -82
  431. package/commands/account/__tests__/use.test.d.ts +0 -1
  432. package/commands/account/__tests__/use.test.js +0 -170
  433. package/commands/app/__tests__/migrate.test.d.ts +0 -1
  434. package/commands/app/__tests__/migrate.test.js +0 -111
  435. package/commands/app/secret/__tests__/add.test.d.ts +0 -1
  436. package/commands/app/secret/__tests__/add.test.js +0 -140
  437. package/commands/app/secret/__tests__/delete.test.d.ts +0 -1
  438. package/commands/app/secret/__tests__/delete.test.js +0 -28
  439. package/commands/app/secret/__tests__/list.test.d.ts +0 -1
  440. package/commands/app/secret/__tests__/list.test.js +0 -25
  441. package/commands/app/secret/__tests__/update.test.d.ts +0 -1
  442. package/commands/app/secret/__tests__/update.test.js +0 -28
  443. package/commands/cms/__tests__/delete.test.d.ts +0 -1
  444. package/commands/cms/__tests__/delete.test.js +0 -39
  445. package/commands/cms/__tests__/fetch.test.d.ts +0 -1
  446. package/commands/cms/__tests__/fetch.test.js +0 -156
  447. package/commands/cms/__tests__/function.test.d.ts +0 -1
  448. package/commands/cms/__tests__/function.test.js +0 -50
  449. package/commands/cms/__tests__/lint.test.d.ts +0 -1
  450. package/commands/cms/__tests__/lint.test.js +0 -33
  451. package/commands/cms/__tests__/list.test.d.ts +0 -1
  452. package/commands/cms/__tests__/list.test.js +0 -42
  453. package/commands/cms/__tests__/module.test.d.ts +0 -1
  454. package/commands/cms/__tests__/module.test.js +0 -45
  455. package/commands/cms/__tests__/mv.test.d.ts +0 -1
  456. package/commands/cms/__tests__/mv.test.js +0 -46
  457. package/commands/cms/__tests__/theme.test.d.ts +0 -1
  458. package/commands/cms/__tests__/theme.test.js +0 -54
  459. package/commands/cms/__tests__/upload.test.d.ts +0 -1
  460. package/commands/cms/__tests__/upload.test.js +0 -308
  461. package/commands/cms/__tests__/watch.test.d.ts +0 -1
  462. package/commands/cms/__tests__/watch.test.js +0 -204
  463. package/commands/cms/function/__tests__/logs.test.d.ts +0 -1
  464. package/commands/cms/function/__tests__/logs.test.js +0 -70
  465. package/commands/cms/theme/__tests__/generate-selectors.test.d.ts +0 -1
  466. package/commands/cms/theme/__tests__/generate-selectors.test.js +0 -28
  467. package/commands/cms/theme/__tests__/marketplace-validate.test.d.ts +0 -1
  468. package/commands/cms/theme/__tests__/marketplace-validate.test.js +0 -36
  469. package/commands/cms/theme/__tests__/preview.test.d.ts +0 -1
  470. package/commands/cms/theme/__tests__/preview.test.js +0 -54
  471. package/commands/customObject/__tests__/create.test.d.ts +0 -1
  472. package/commands/customObject/__tests__/create.test.js +0 -40
  473. package/commands/customObject/__tests__/createSchema.test.d.ts +0 -1
  474. package/commands/customObject/__tests__/createSchema.test.js +0 -28
  475. package/commands/customObject/__tests__/deleteSchema.test.d.ts +0 -1
  476. package/commands/customObject/__tests__/deleteSchema.test.js +0 -42
  477. package/commands/customObject/__tests__/fetch-all-schemas.test.d.ts +0 -1
  478. package/commands/customObject/__tests__/fetch-all-schemas.test.js +0 -41
  479. package/commands/customObject/__tests__/fetchSchema.test.d.ts +0 -1
  480. package/commands/customObject/__tests__/fetchSchema.test.js +0 -45
  481. package/commands/customObject/__tests__/listSchemas.test.d.ts +0 -1
  482. package/commands/customObject/__tests__/listSchemas.test.js +0 -29
  483. package/commands/customObject/__tests__/updateSchema.test.d.ts +0 -1
  484. package/commands/customObject/__tests__/updateSchema.test.js +0 -40
  485. package/commands/filemanager/__tests__/fetch.test.d.ts +0 -1
  486. package/commands/filemanager/__tests__/fetch.test.js +0 -32
  487. package/commands/filemanager/__tests__/upload.test.d.ts +0 -1
  488. package/commands/filemanager/__tests__/upload.test.js +0 -191
  489. package/commands/hubdb/__tests__/clear.test.d.ts +0 -1
  490. package/commands/hubdb/__tests__/clear.test.js +0 -28
  491. package/commands/hubdb/__tests__/create.test.d.ts +0 -1
  492. package/commands/hubdb/__tests__/create.test.js +0 -28
  493. package/commands/hubdb/__tests__/delete.test.d.ts +0 -1
  494. package/commands/hubdb/__tests__/delete.test.js +0 -28
  495. package/commands/hubdb/__tests__/fetch.test.d.ts +0 -1
  496. package/commands/hubdb/__tests__/fetch.test.js +0 -28
  497. package/commands/hubdb/__tests__/list.test.d.ts +0 -1
  498. package/commands/hubdb/__tests__/list.test.js +0 -88
  499. package/commands/mcp/__tests__/setup.test.d.ts +0 -1
  500. package/commands/mcp/__tests__/setup.test.js +0 -26
  501. package/commands/mcp/__tests__/start.test.d.ts +0 -1
  502. package/commands/mcp/__tests__/start.test.js +0 -144
  503. package/commands/project/__tests__/add.test.d.ts +0 -1
  504. package/commands/project/__tests__/add.test.js +0 -107
  505. package/commands/project/__tests__/create.test.d.ts +0 -1
  506. package/commands/project/__tests__/create.test.js +0 -97
  507. package/commands/project/__tests__/deploy.test.d.ts +0 -1
  508. package/commands/project/__tests__/deploy.test.js +0 -307
  509. package/commands/project/__tests__/dev.test.d.ts +0 -1
  510. package/commands/project/__tests__/dev.test.js +0 -273
  511. package/commands/project/__tests__/devUnifiedFlow.test.d.ts +0 -1
  512. package/commands/project/__tests__/devUnifiedFlow.test.js +0 -434
  513. package/commands/project/__tests__/download.test.d.ts +0 -1
  514. package/commands/project/__tests__/download.test.js +0 -39
  515. package/commands/project/__tests__/installDeps.test.d.ts +0 -1
  516. package/commands/project/__tests__/installDeps.test.js +0 -140
  517. package/commands/project/__tests__/lint.test.d.ts +0 -1
  518. package/commands/project/__tests__/lint.test.js +0 -704
  519. package/commands/project/__tests__/list.test.d.ts +0 -1
  520. package/commands/project/__tests__/list.test.js +0 -31
  521. package/commands/project/__tests__/listBuilds.test.d.ts +0 -1
  522. package/commands/project/__tests__/listBuilds.test.js +0 -38
  523. package/commands/project/__tests__/logs.test.d.ts +0 -1
  524. package/commands/project/__tests__/logs.test.js +0 -202
  525. package/commands/project/__tests__/migrate.test.d.ts +0 -1
  526. package/commands/project/__tests__/migrate.test.js +0 -106
  527. package/commands/project/__tests__/open.test.d.ts +0 -1
  528. package/commands/project/__tests__/open.test.js +0 -39
  529. package/commands/project/__tests__/profile.test.d.ts +0 -1
  530. package/commands/project/__tests__/profile.test.js +0 -42
  531. package/commands/project/__tests__/updateDeps.test.d.ts +0 -1
  532. package/commands/project/__tests__/updateDeps.test.js +0 -140
  533. package/commands/project/__tests__/upload.test.d.ts +0 -1
  534. package/commands/project/__tests__/upload.test.js +0 -234
  535. package/commands/project/__tests__/validate.test.d.ts +0 -1
  536. package/commands/project/__tests__/validate.test.js +0 -381
  537. package/commands/project/__tests__/watch.test.d.ts +0 -1
  538. package/commands/project/__tests__/watch.test.js +0 -35
  539. package/commands/project/dev/deprecatedFlow.d.ts +0 -11
  540. package/commands/project/dev/deprecatedFlow.js +0 -135
  541. package/commands/sandbox/__tests__/create.test.d.ts +0 -1
  542. package/commands/sandbox/__tests__/create.test.js +0 -245
  543. package/commands/sandbox/__tests__/delete.test.d.ts +0 -1
  544. package/commands/sandbox/__tests__/delete.test.js +0 -31
  545. package/commands/secret/__tests__/addSecret.test.d.ts +0 -1
  546. package/commands/secret/__tests__/addSecret.test.js +0 -162
  547. package/commands/secret/__tests__/deleteSecret.test.d.ts +0 -1
  548. package/commands/secret/__tests__/deleteSecret.test.js +0 -41
  549. package/commands/secret/__tests__/listSecret.test.d.ts +0 -1
  550. package/commands/secret/__tests__/listSecret.test.js +0 -29
  551. package/commands/secret/__tests__/updateSecret.test.d.ts +0 -1
  552. package/commands/secret/__tests__/updateSecret.test.js +0 -29
  553. package/commands/testAccount/__tests__/create.test.d.ts +0 -1
  554. package/commands/testAccount/__tests__/create.test.js +0 -106
  555. package/commands/testAccount/__tests__/createConfig.test.d.ts +0 -1
  556. package/commands/testAccount/__tests__/createConfig.test.js +0 -32
  557. package/commands/testAccount/__tests__/delete.test.d.ts +0 -1
  558. package/commands/testAccount/__tests__/delete.test.js +0 -29
  559. package/commands/testAccount/__tests__/importData.test.d.ts +0 -1
  560. package/commands/testAccount/__tests__/importData.test.js +0 -92
  561. package/lib/__tests__/CLIWebSocketServer.test.d.ts +0 -1
  562. package/lib/__tests__/CLIWebSocketServer.test.js +0 -252
  563. package/lib/__tests__/accountAuth.test.d.ts +0 -1
  564. package/lib/__tests__/accountAuth.test.js +0 -258
  565. package/lib/__tests__/accountTypes.test.d.ts +0 -1
  566. package/lib/__tests__/accountTypes.test.js +0 -98
  567. package/lib/__tests__/buildAccount.test.d.ts +0 -1
  568. package/lib/__tests__/buildAccount.test.js +0 -262
  569. package/lib/__tests__/cliUpgradeUtils.test.d.ts +0 -1
  570. package/lib/__tests__/cliUpgradeUtils.test.js +0 -131
  571. package/lib/__tests__/commandSuggestion.test.d.ts +0 -1
  572. package/lib/__tests__/commandSuggestion.test.js +0 -121
  573. package/lib/__tests__/commonOpts.test.d.ts +0 -1
  574. package/lib/__tests__/commonOpts.test.js +0 -80
  575. package/lib/__tests__/dependencyManagement.test.d.ts +0 -1
  576. package/lib/__tests__/dependencyManagement.test.js +0 -1067
  577. package/lib/__tests__/developerTestAccounts.test.d.ts +0 -1
  578. package/lib/__tests__/developerTestAccounts.test.js +0 -156
  579. package/lib/__tests__/hasFeature.test.d.ts +0 -1
  580. package/lib/__tests__/hasFeature.test.js +0 -167
  581. package/lib/__tests__/http.test.d.ts +0 -1
  582. package/lib/__tests__/http.test.js +0 -40
  583. package/lib/__tests__/importData.test.d.ts +0 -1
  584. package/lib/__tests__/importData.test.js +0 -98
  585. package/lib/__tests__/npmCli.test.d.ts +0 -1
  586. package/lib/__tests__/npmCli.test.js +0 -84
  587. package/lib/__tests__/oauth.test.d.ts +0 -1
  588. package/lib/__tests__/oauth.test.js +0 -109
  589. package/lib/__tests__/parsing.test.d.ts +0 -1
  590. package/lib/__tests__/parsing.test.js +0 -34
  591. package/lib/__tests__/polling.test.d.ts +0 -1
  592. package/lib/__tests__/polling.test.js +0 -76
  593. package/lib/__tests__/process.test.d.ts +0 -1
  594. package/lib/__tests__/process.test.js +0 -89
  595. package/lib/__tests__/sandboxSync.test.d.ts +0 -1
  596. package/lib/__tests__/sandboxSync.test.js +0 -147
  597. package/lib/__tests__/sandboxes.test.d.ts +0 -1
  598. package/lib/__tests__/sandboxes.test.js +0 -156
  599. package/lib/__tests__/serverlessLogs.test.d.ts +0 -1
  600. package/lib/__tests__/serverlessLogs.test.js +0 -163
  601. package/lib/__tests__/usageTracking.test.d.ts +0 -1
  602. package/lib/__tests__/usageTracking.test.js +0 -197
  603. package/lib/__tests__/validation.test.d.ts +0 -1
  604. package/lib/__tests__/validation.test.js +0 -143
  605. package/lib/__tests__/yargsUtils.test.d.ts +0 -1
  606. package/lib/__tests__/yargsUtils.test.js +0 -124
  607. package/lib/app/__tests__/migrate.test.d.ts +0 -1
  608. package/lib/app/__tests__/migrate.test.js +0 -638
  609. package/lib/doctor/__tests__/Diagnosis.test.d.ts +0 -1
  610. package/lib/doctor/__tests__/Diagnosis.test.js +0 -84
  611. package/lib/doctor/__tests__/DiagnosticInfoBuilder.test.d.ts +0 -1
  612. package/lib/doctor/__tests__/DiagnosticInfoBuilder.test.js +0 -177
  613. package/lib/doctor/__tests__/Doctor.test.d.ts +0 -1
  614. package/lib/doctor/__tests__/Doctor.test.js +0 -560
  615. package/lib/errorHandlers/__tests__/index.test.d.ts +0 -1
  616. package/lib/errorHandlers/__tests__/index.test.js +0 -278
  617. package/lib/mcp/__tests__/setup.test.d.ts +0 -1
  618. package/lib/mcp/__tests__/setup.test.js +0 -523
  619. package/lib/middleware/__tests__/commandTargetingUtils.test.d.ts +0 -1
  620. package/lib/middleware/__tests__/commandTargetingUtils.test.js +0 -99
  621. package/lib/middleware/__tests__/configMiddleware.test.d.ts +0 -1
  622. package/lib/middleware/__tests__/configMiddleware.test.js +0 -118
  623. package/lib/middleware/__tests__/gitMiddleware.test.d.ts +0 -1
  624. package/lib/middleware/__tests__/gitMiddleware.test.js +0 -43
  625. package/lib/middleware/__tests__/requestMiddleware.test.d.ts +0 -1
  626. package/lib/middleware/__tests__/requestMiddleware.test.js +0 -15
  627. package/lib/middleware/__tests__/usageTrackingMiddleware.test.d.ts +0 -1
  628. package/lib/middleware/__tests__/usageTrackingMiddleware.test.js +0 -44
  629. package/lib/middleware/__tests__/yargsChecksMiddleware.test.d.ts +0 -1
  630. package/lib/middleware/__tests__/yargsChecksMiddleware.test.js +0 -39
  631. package/lib/projects/__tests__/AppDevModeInterface.test.d.ts +0 -1
  632. package/lib/projects/__tests__/AppDevModeInterface.test.js +0 -541
  633. package/lib/projects/__tests__/DevServerManager.test.d.ts +0 -1
  634. package/lib/projects/__tests__/DevServerManager.test.js +0 -185
  635. package/lib/projects/__tests__/DevSessionManager.test.d.ts +0 -1
  636. package/lib/projects/__tests__/DevSessionManager.test.js +0 -250
  637. package/lib/projects/__tests__/LocalDevProcess.test.d.ts +0 -1
  638. package/lib/projects/__tests__/LocalDevProcess.test.js +0 -481
  639. package/lib/projects/__tests__/LocalDevWebsocketServer.test.d.ts +0 -1
  640. package/lib/projects/__tests__/LocalDevWebsocketServer.test.js +0 -231
  641. package/lib/projects/__tests__/ProjectLogsManager.test.d.ts +0 -1
  642. package/lib/projects/__tests__/ProjectLogsManager.test.js +0 -302
  643. package/lib/projects/__tests__/UIExtensionsDevModeInterface.test.d.ts +0 -1
  644. package/lib/projects/__tests__/UIExtensionsDevModeInterface.test.js +0 -160
  645. package/lib/projects/__tests__/components.test.d.ts +0 -1
  646. package/lib/projects/__tests__/components.test.js +0 -426
  647. package/lib/projects/__tests__/deploy.test.d.ts +0 -1
  648. package/lib/projects/__tests__/deploy.test.js +0 -231
  649. package/lib/projects/__tests__/localDevProjectHelpers.test.d.ts +0 -1
  650. package/lib/projects/__tests__/localDevProjectHelpers.test.js +0 -120
  651. package/lib/projects/__tests__/platformVersion.test.d.ts +0 -1
  652. package/lib/projects/__tests__/platformVersion.test.js +0 -63
  653. package/lib/projects/__tests__/pollProjectBuildAndDeploy.test.d.ts +0 -1
  654. package/lib/projects/__tests__/pollProjectBuildAndDeploy.test.js +0 -328
  655. package/lib/projects/__tests__/projectProfiles.test.d.ts +0 -1
  656. package/lib/projects/__tests__/projectProfiles.test.js +0 -441
  657. package/lib/projects/__tests__/projects.test.d.ts +0 -1
  658. package/lib/projects/__tests__/projects.test.js +0 -58
  659. package/lib/projects/__tests__/structure.test.d.ts +0 -1
  660. package/lib/projects/__tests__/structure.test.js +0 -210
  661. package/lib/projects/__tests__/uieLinting.test.d.ts +0 -1
  662. package/lib/projects/__tests__/uieLinting.test.js +0 -631
  663. package/lib/projects/__tests__/upload.test.d.ts +0 -1
  664. package/lib/projects/__tests__/upload.test.js +0 -183
  665. package/lib/projects/add/__tests__/legacyAddComponent.test.d.ts +0 -1
  666. package/lib/projects/add/__tests__/legacyAddComponent.test.js +0 -245
  667. package/lib/projects/add/__tests__/v2AddComponent.test.d.ts +0 -1
  668. package/lib/projects/add/__tests__/v2AddComponent.test.js +0 -343
  669. package/lib/projects/create/__tests__/legacy.test.d.ts +0 -1
  670. package/lib/projects/create/__tests__/legacy.test.js +0 -72
  671. package/lib/projects/create/__tests__/v2.test.d.ts +0 -1
  672. package/lib/projects/create/__tests__/v2.test.js +0 -257
  673. package/lib/projects/localDev/DevServerManager_DEPRECATED.d.ts +0 -40
  674. package/lib/projects/localDev/DevServerManager_DEPRECATED.js +0 -128
  675. package/lib/projects/localDev/LocalDevManager_DEPRECATED.d.ts +0 -59
  676. package/lib/projects/localDev/LocalDevManager_DEPRECATED.js +0 -383
  677. package/lib/projects/platformVersion.d.ts +0 -9
  678. package/lib/projects/platformVersion.js +0 -39
  679. package/lib/prompts/__tests__/createDeveloperTestAccountConfigPrompt.test.d.ts +0 -1
  680. package/lib/prompts/__tests__/createDeveloperTestAccountConfigPrompt.test.js +0 -157
  681. package/lib/prompts/__tests__/createFunctionPrompt.test.d.ts +0 -1
  682. package/lib/prompts/__tests__/createFunctionPrompt.test.js +0 -129
  683. package/lib/prompts/__tests__/createModulePrompt.test.d.ts +0 -1
  684. package/lib/prompts/__tests__/createModulePrompt.test.js +0 -187
  685. package/lib/prompts/__tests__/createTemplatePrompt.test.d.ts +0 -1
  686. package/lib/prompts/__tests__/createTemplatePrompt.test.js +0 -102
  687. package/lib/prompts/__tests__/downloadProjectPrompt.test.d.ts +0 -1
  688. package/lib/prompts/__tests__/downloadProjectPrompt.test.js +0 -31
  689. package/lib/prompts/__tests__/projectAddPrompt.test.d.ts +0 -1
  690. package/lib/prompts/__tests__/projectAddPrompt.test.js +0 -143
  691. package/lib/prompts/__tests__/projectsLogsPrompt.test.d.ts +0 -1
  692. package/lib/prompts/__tests__/projectsLogsPrompt.test.js +0 -37
  693. package/lib/prompts/__tests__/selectProjectTemplatePrompt.test.d.ts +0 -1
  694. package/lib/prompts/__tests__/selectProjectTemplatePrompt.test.js +0 -160
  695. package/lib/sandboxSync.d.ts +0 -4
  696. package/lib/sandboxSync.js +0 -102
  697. package/lib/theme/__tests__/migrate.test.d.ts +0 -1
  698. package/lib/theme/__tests__/migrate.test.js +0 -256
  699. package/lib/ui/__tests__/SpinniesManager.test.d.ts +0 -1
  700. package/lib/ui/__tests__/SpinniesManager.test.js +0 -488
  701. package/lib/ui/__tests__/removeAnsiCodes.test.d.ts +0 -1
  702. package/lib/ui/__tests__/removeAnsiCodes.test.js +0 -84
  703. package/mcp-server/tools/cms/__tests__/HsCreateFunctionTool.test.d.ts +0 -1
  704. package/mcp-server/tools/cms/__tests__/HsCreateFunctionTool.test.js +0 -254
  705. package/mcp-server/tools/cms/__tests__/HsCreateModuleTool.test.d.ts +0 -1
  706. package/mcp-server/tools/cms/__tests__/HsCreateModuleTool.test.js +0 -227
  707. package/mcp-server/tools/cms/__tests__/HsCreateTemplateTool.test.d.ts +0 -1
  708. package/mcp-server/tools/cms/__tests__/HsCreateTemplateTool.test.js +0 -208
  709. package/mcp-server/tools/cms/__tests__/HsFunctionLogsTool.test.d.ts +0 -1
  710. package/mcp-server/tools/cms/__tests__/HsFunctionLogsTool.test.js +0 -186
  711. package/mcp-server/tools/cms/__tests__/HsListFunctionsTool.test.d.ts +0 -1
  712. package/mcp-server/tools/cms/__tests__/HsListFunctionsTool.test.js +0 -124
  713. package/mcp-server/tools/cms/__tests__/HsListTool.test.d.ts +0 -1
  714. package/mcp-server/tools/cms/__tests__/HsListTool.test.js +0 -124
  715. package/mcp-server/tools/project/__tests__/AddFeatureToProjectTool.test.d.ts +0 -1
  716. package/mcp-server/tools/project/__tests__/AddFeatureToProjectTool.test.js +0 -157
  717. package/mcp-server/tools/project/__tests__/CreateProjectTool.test.d.ts +0 -1
  718. package/mcp-server/tools/project/__tests__/CreateProjectTool.test.js +0 -132
  719. package/mcp-server/tools/project/__tests__/CreateTestAccountTool.test.d.ts +0 -1
  720. package/mcp-server/tools/project/__tests__/CreateTestAccountTool.test.js +0 -461
  721. package/mcp-server/tools/project/__tests__/DeployProjectTool.test.d.ts +0 -1
  722. package/mcp-server/tools/project/__tests__/DeployProjectTool.test.js +0 -125
  723. package/mcp-server/tools/project/__tests__/DocFetchTool.test.d.ts +0 -1
  724. package/mcp-server/tools/project/__tests__/DocFetchTool.test.js +0 -125
  725. package/mcp-server/tools/project/__tests__/DocsSearchTool.test.d.ts +0 -1
  726. package/mcp-server/tools/project/__tests__/DocsSearchTool.test.js +0 -210
  727. package/mcp-server/tools/project/__tests__/GetApiUsagePatternsByAppIdTool.test.d.ts +0 -1
  728. package/mcp-server/tools/project/__tests__/GetApiUsagePatternsByAppIdTool.test.js +0 -146
  729. package/mcp-server/tools/project/__tests__/GetApplicationInfoTool.test.d.ts +0 -1
  730. package/mcp-server/tools/project/__tests__/GetApplicationInfoTool.test.js +0 -124
  731. package/mcp-server/tools/project/__tests__/GetBuildLogsTool.test.d.ts +0 -1
  732. package/mcp-server/tools/project/__tests__/GetBuildLogsTool.test.js +0 -307
  733. package/mcp-server/tools/project/__tests__/GetBuildStatusTool.test.d.ts +0 -1
  734. package/mcp-server/tools/project/__tests__/GetBuildStatusTool.test.js +0 -242
  735. package/mcp-server/tools/project/__tests__/GetConfigValuesTool.test.d.ts +0 -1
  736. package/mcp-server/tools/project/__tests__/GetConfigValuesTool.test.js +0 -209
  737. package/mcp-server/tools/project/__tests__/GuidedWalkthroughTool.test.d.ts +0 -1
  738. package/mcp-server/tools/project/__tests__/GuidedWalkthroughTool.test.js +0 -158
  739. package/mcp-server/tools/project/__tests__/UploadProjectTools.test.d.ts +0 -1
  740. package/mcp-server/tools/project/__tests__/UploadProjectTools.test.js +0 -187
  741. package/mcp-server/tools/project/__tests__/ValidateProjectTool.test.d.ts +0 -1
  742. package/mcp-server/tools/project/__tests__/ValidateProjectTool.test.js +0 -118
  743. package/mcp-server/utils/__tests__/command.test.d.ts +0 -1
  744. package/mcp-server/utils/__tests__/command.test.js +0 -275
  745. package/mcp-server/utils/__tests__/content.test.d.ts +0 -1
  746. package/mcp-server/utils/__tests__/content.test.js +0 -164
  747. package/mcp-server/utils/__tests__/feedbackTracking.test.d.ts +0 -1
  748. package/mcp-server/utils/__tests__/feedbackTracking.test.js +0 -69
@@ -1,5 +1,3 @@
1
- import { HUBSPOT_ACCOUNT_TYPE_STRINGS } from '@hubspot/local-dev-lib/constants/config';
2
- import { getConfigAccountById, getConfigAccountIfExists, } from '@hubspot/local-dev-lib/config';
3
1
  import { HUBSPOT_ACCOUNT_TYPES } from '@hubspot/local-dev-lib/constants/config';
4
2
  import { getHubSpotWebsiteOrigin } from '@hubspot/local-dev-lib/urls';
5
3
  import { isMissingScopeError } from '@hubspot/local-dev-lib/errors/index';
@@ -7,96 +5,15 @@ import { PERSONAL_ACCESS_KEY_AUTH_METHOD } from '@hubspot/local-dev-lib/constant
7
5
  import { getSandboxUsageLimits } from '@hubspot/local-dev-lib/api/sandboxHubs';
8
6
  import { uiLogger } from '../../../ui/logger.js';
9
7
  import { lib } from '../../../../lang/en.js';
10
- import { EXIT_CODES } from '../../../enums/exitCodes.js';
11
- import { confirmDefaultAccountPrompt } from '../../../prompts/projectDevTargetAccountPrompt.js';
12
- import { isUnifiedAccount } from '../../../accountTypes.js';
13
- import { isAppDeveloperAccount } from '../../../accountTypes.js';
14
- import { isDeveloperTestAccount } from '../../../accountTypes.js';
15
- import { uiAccountDescription } from '../../../ui/index.js';
16
- import { uiLine } from '../../../ui/index.js';
17
- import { selectDeveloperTestTargetAccountPrompt } from '../../../prompts/projectDevTargetAccountPrompt.js';
18
- import { selectSandboxTargetAccountPrompt } from '../../../prompts/projectDevTargetAccountPrompt.js';
19
8
  import { validateSandboxUsageLimits } from '../../../sandboxes.js';
20
9
  import { logError } from '../../../errorHandlers/index.js';
21
- import { syncSandbox } from '../../../sandboxSync.js';
22
- import { getAvailableSyncTypes } from '../../../sandboxes.js';
23
10
  import { hubspotAccountNamePrompt } from '../../../prompts/accountNamePrompt.js';
24
11
  import { trackCommandMetadataUsage } from '../../../usageTracking.js';
25
12
  import { validateDevTestAccountUsageLimits } from '../../../developerTestAccounts.js';
26
- import { buildSandbox, buildDeveloperTestAccount, saveAccountToConfig, } from '../../../buildAccount.js';
13
+ import { buildDeveloperTestAccount, saveAccountToConfig, buildV2Sandbox, } from '../../../buildAccount.js';
27
14
  import { debugError } from '../../../errorHandlers/index.js';
28
15
  import { listPrompt } from '../../../prompts/promptUtils.js';
29
16
  import { confirmUseExistingDeveloperTestAccountPrompt } from '../../../prompts/projectDevTargetAccountPrompt.js';
30
- // If the user passed in the --account flag, confirm they want to use that account as
31
- // their target account, otherwise exit
32
- export async function confirmDefaultAccountIsTarget(accountConfig) {
33
- if (!accountConfig.name || !accountConfig.accountType) {
34
- uiLogger.error(lib.localDevHelpers.account.confirmDefaultAccountIsTarget.configError);
35
- process.exit(EXIT_CODES.ERROR);
36
- }
37
- uiLogger.log('');
38
- const useDefaultAccount = await confirmDefaultAccountPrompt(accountConfig.name, HUBSPOT_ACCOUNT_TYPE_STRINGS[accountConfig.accountType]);
39
- if (!useDefaultAccount) {
40
- uiLogger.log(lib.localDevHelpers.account.confirmDefaultAccountIsTarget
41
- .declineDefaultAccountExplanation);
42
- process.exit(EXIT_CODES.SUCCESS);
43
- }
44
- }
45
- // Confirm the default account is supported for the type of apps being developed
46
- export async function checkIfDefaultAccountIsSupported(accountConfig, hasPublicApps) {
47
- const defaultAccountIsUnified = await isUnifiedAccount(accountConfig);
48
- if (hasPublicApps &&
49
- !(isAppDeveloperAccount(accountConfig) ||
50
- isDeveloperTestAccount(accountConfig) ||
51
- defaultAccountIsUnified)) {
52
- uiLogger.error(lib.localDevHelpers.account.checkIfDefaultAccountIsSupported.publicApp);
53
- process.exit(EXIT_CODES.SUCCESS);
54
- }
55
- else if (!hasPublicApps && isAppDeveloperAccount(accountConfig)) {
56
- uiLogger.error(lib.localDevHelpers.account.checkIfDefaultAccountIsSupported.privateApp);
57
- process.exit(EXIT_CODES.SUCCESS);
58
- }
59
- }
60
- export function checkIfParentAccountIsAuthed(accountConfig) {
61
- if (!accountConfig.parentAccountId ||
62
- !getConfigAccountIfExists(accountConfig.parentAccountId)?.accountId) {
63
- uiLogger.error(lib.localDevHelpers.account.checkIfParentAccountIsAuthed.notAuthedError(accountConfig.parentAccountId || '', uiAccountDescription(accountConfig.accountId)));
64
- process.exit(EXIT_CODES.SUCCESS);
65
- }
66
- }
67
- // Confirm the default account is a developer account if developing public apps
68
- export function checkIfAccountFlagIsSupported(accountConfig, hasPublicApps) {
69
- if (hasPublicApps) {
70
- if (!isDeveloperTestAccount(accountConfig)) {
71
- uiLogger.error(lib.localDevHelpers.account.validateAccountOption
72
- .invalidPublicAppAccount);
73
- process.exit(EXIT_CODES.SUCCESS);
74
- }
75
- checkIfParentAccountIsAuthed(accountConfig);
76
- }
77
- else if (isAppDeveloperAccount(accountConfig)) {
78
- uiLogger.error(lib.localDevHelpers.account.validateAccountOption.invalidPrivateAppAccount);
79
- process.exit(EXIT_CODES.SUCCESS);
80
- }
81
- }
82
- // If the user isn't using the recommended account type, prompt them to use or create one
83
- export async function suggestRecommendedNestedAccount(accounts, accountConfig, hasPublicApps) {
84
- uiLogger.log('');
85
- uiLine();
86
- if (hasPublicApps) {
87
- uiLogger.log(lib.localDevHelpers.account.validateAccountOption
88
- .publicAppNonDeveloperTestAccountWarning);
89
- }
90
- else {
91
- uiLogger.log(lib.localDevHelpers.account.validateAccountOption.nonSandboxWarning);
92
- }
93
- uiLine();
94
- uiLogger.log('');
95
- const targetAccountPrompt = hasPublicApps
96
- ? selectDeveloperTestTargetAccountPrompt
97
- : selectSandboxTargetAccountPrompt;
98
- return targetAccountPrompt(accounts, accountConfig);
99
- }
100
17
  // Create a new sandbox and return its accountId
101
18
  export async function createSandboxForLocalDev(accountId, accountConfig, env) {
102
19
  try {
@@ -112,24 +29,20 @@ export async function createSandboxForLocalDev(accountId, accountConfig, env) {
112
29
  else {
113
30
  logError(err);
114
31
  }
115
- process.exit(EXIT_CODES.ERROR);
32
+ throw err;
116
33
  }
117
34
  try {
118
35
  const { name } = await hubspotAccountNamePrompt({
119
36
  accountType: HUBSPOT_ACCOUNT_TYPES.DEVELOPMENT_SANDBOX,
120
37
  });
121
38
  trackCommandMetadataUsage('sandbox-create', { step: 'project-dev' }, accountId);
122
- const result = await buildSandbox(name, accountConfig, HUBSPOT_ACCOUNT_TYPES.DEVELOPMENT_SANDBOX, env);
123
- const targetAccountId = result.sandbox.sandboxHubId;
124
- const sandboxAccountConfig = getConfigAccountById(result.sandbox.sandboxHubId);
125
- const syncTasks = await getAvailableSyncTypes(accountConfig, sandboxAccountConfig);
126
- // For v1 sandboxes, keep sync here. Once we migrate to v2, this will be handled by BE automatically
127
- await syncSandbox(sandboxAccountConfig, accountConfig, env, syncTasks, true);
128
- return targetAccountId;
39
+ const result = await buildV2Sandbox(name, accountConfig, HUBSPOT_ACCOUNT_TYPES.DEVELOPMENT_SANDBOX, false, // syncObjectRecords
40
+ env);
41
+ return result.sandbox.sandboxHubId;
129
42
  }
130
43
  catch (err) {
131
44
  logError(err);
132
- process.exit(EXIT_CODES.ERROR);
45
+ throw err;
133
46
  }
134
47
  }
135
48
  // Create a developer test account and return its accountId
@@ -155,7 +68,7 @@ export async function createDeveloperTestAccountForLocalDev(accountId, accountCo
155
68
  else {
156
69
  logError(err);
157
70
  }
158
- process.exit(EXIT_CODES.ERROR);
71
+ throw err;
159
72
  }
160
73
  try {
161
74
  const { name } = await hubspotAccountNamePrompt({
@@ -163,12 +76,11 @@ export async function createDeveloperTestAccountForLocalDev(accountId, accountCo
163
76
  accountType: HUBSPOT_ACCOUNT_TYPES.DEVELOPER_TEST,
164
77
  });
165
78
  trackCommandMetadataUsage('developer-test-account-create', { step: 'project-dev' }, accountId);
166
- const result = await buildDeveloperTestAccount(name, accountConfig, env, maxTestPortals, useV2);
167
- return result;
79
+ return await buildDeveloperTestAccount(name, accountConfig, env, maxTestPortals, useV2);
168
80
  }
169
81
  catch (err) {
170
82
  logError(err);
171
- process.exit(EXIT_CODES.ERROR);
83
+ throw err;
172
84
  }
173
85
  }
174
86
  // Prompt user to confirm usage of an existing developer test account that is not currently in the config
@@ -176,13 +88,13 @@ export async function useExistingDevTestAccount(env, account) {
176
88
  const useExistingDevTestAcct = await confirmUseExistingDeveloperTestAccountPrompt(account);
177
89
  if (!useExistingDevTestAcct) {
178
90
  uiLogger.log('');
179
- uiLogger.log(lib.localDevHelpers.account.confirmDefaultAccountIsTarget
180
- .declineDefaultAccountExplanation);
91
+ uiLogger.log(lib.localDevHelpers.account.declineDefaultAccountExplanation);
181
92
  uiLogger.log('');
182
- process.exit(EXIT_CODES.SUCCESS);
93
+ return false;
183
94
  }
184
95
  const devTestAcctConfigName = await saveAccountToConfig(account.id, account.accountName, env);
185
96
  uiLogger.success(lib.developerTestAccount.create.success.configFileUpdated(devTestAcctConfigName, PERSONAL_ACCESS_KEY_AUTH_METHOD.name));
97
+ return true;
186
98
  }
187
99
  export async function hasSandboxes(account) {
188
100
  const accountId = account.accountId;
@@ -1 +1 @@
1
- export declare function confirmLocalDevIsNotRunning(): Promise<void>;
1
+ export declare function isLocalDevRunning(): Promise<boolean>;
@@ -1,17 +1,11 @@
1
1
  import { LOCAL_DEV_WEBSOCKET_SERVER_INSTANCE_ID } from '../../../constants.js';
2
- import { EXIT_CODES } from '../../../enums/exitCodes.js';
3
2
  import { getServerPortByInstanceId } from '@hubspot/local-dev-lib/portManager';
4
- import { uiLogger } from '../../../ui/logger.js';
5
- import { commands } from '../../../../lang/en.js';
6
- export async function confirmLocalDevIsNotRunning() {
3
+ export async function isLocalDevRunning() {
7
4
  try {
8
5
  const existingPortInUse = await getServerPortByInstanceId(LOCAL_DEV_WEBSOCKET_SERVER_INSTANCE_ID);
9
- if (existingPortInUse) {
10
- uiLogger.error(commands.project.dev.errors.localDevAlreadyRunning);
11
- process.exit(EXIT_CODES.ERROR);
12
- }
6
+ return Boolean(existingPortInUse);
13
7
  }
14
- catch (error) {
15
- return;
8
+ catch {
9
+ return false;
16
10
  }
17
11
  }
@@ -1,16 +1,18 @@
1
1
  import { type IntermediateRepresentationNode, type IntermediateRepresentationNodeLocalDev } from '@hubspot/project-parsing-lib/translate';
2
2
  import { Build } from '@hubspot/local-dev-lib/types/Build';
3
3
  import { Project } from '@hubspot/local-dev-lib/types/Project';
4
- import { ProjectConfig } from '../../../../types/Projects.js';
5
- export declare function createNewProjectForLocalDev(projectConfig: ProjectConfig, targetAccountId: number, shouldCreateWithoutConfirmation: boolean, hasPublicApps: boolean): Promise<Project>;
6
- export declare function createInitialBuildForNewProject(projectConfig: ProjectConfig, projectDir: string, targetAccountId: number, sendIR?: boolean, profile?: string): Promise<Build>;
4
+ import { LocallyChangedComponents, ProjectConfig } from '../../../../types/Projects.js';
5
+ import { ExitFunction } from '../../../../types/Yargs.js';
6
+ export declare function createNewProjectForLocalDev(projectConfig: ProjectConfig, targetAccountId: number, shouldCreateWithoutConfirmation: boolean, hasPublicApps: boolean, exit: ExitFunction): Promise<Project>;
7
+ export declare function createInitialBuildForNewProject(projectConfig: ProjectConfig, projectDir: string, targetAccountId: number, exit: ExitFunction, sendIR?: boolean, profile?: string): Promise<Build>;
7
8
  export declare function compareLocalProjectToDeployed(projectConfig: ProjectConfig, accountId: number, deployedBuildId: number | undefined, localProjectNodes: {
8
9
  [key: string]: IntermediateRepresentationNodeLocalDev;
9
- }, profile?: string): Promise<void>;
10
+ }, exit: ExitFunction, profile?: string): Promise<void>;
10
11
  export declare function getDeployedProjectNodes(projectConfig: ProjectConfig, accountId: number, deployedBuildId: number, profile?: string): Promise<{
11
12
  [key: string]: IntermediateRepresentationNode;
12
13
  }>;
13
- export declare function isDeployedProjectUpToDateWithLocal(projectConfig: ProjectConfig, accountId: number, deployedBuildId: number, localProjectNodes: {
14
+ export declare function hasLocalComponentChanges(changed: LocallyChangedComponents): boolean;
15
+ export declare function getLocallyChangedComponents(projectConfig: ProjectConfig, accountId: number, deployedBuildId: number, localProjectNodes: {
14
16
  [key: string]: IntermediateRepresentationNodeLocalDev;
15
- }, profile?: string): Promise<boolean>;
17
+ }, profile?: string): Promise<LocallyChangedComponents>;
16
18
  export declare function checkAndInstallDependencies(): Promise<void>;
@@ -1,28 +1,27 @@
1
1
  import fs from 'fs-extra';
2
2
  import os from 'os';
3
3
  import path from 'path';
4
- import { createProject } from '@hubspot/local-dev-lib/api/projects';
5
- import { downloadProject } from '@hubspot/local-dev-lib/api/projects';
4
+ import { createProject, downloadProject, } from '@hubspot/local-dev-lib/api/projects';
6
5
  import { extractZipArchive } from '@hubspot/local-dev-lib/archive';
7
6
  import { sanitizeFileName } from '@hubspot/local-dev-lib/path';
8
7
  import { isDeepEqual } from '@hubspot/local-dev-lib/isDeepEqual';
9
8
  import { translate, } from '@hubspot/project-parsing-lib/translate';
9
+ import { AUTO_GENERATED_COMPONENT_TYPES } from '@hubspot/project-parsing-lib/constants';
10
+ import { mapToUserFacingType } from '@hubspot/project-parsing-lib/transform';
10
11
  import { isSpecifiedError } from '@hubspot/local-dev-lib/errors/index';
11
- import { PROJECT_ERROR_TYPES, PROJECT_BUILD_TEXT, PROJECT_DEPLOY_TEXT, } from '../../../constants.js';
12
+ import { PROJECT_BUILD_TEXT, PROJECT_CONFIG_FILE, PROJECT_DEPLOY_TEXT, PROJECT_ERROR_TYPES, } from '../../../constants.js';
12
13
  import { lib } from '../../../../lang/en.js';
13
14
  import { uiLogger } from '../../../ui/logger.js';
14
- import { uiLine } from '../../../ui/index.js';
15
+ import { uiAccountDescription, uiLine } from '../../../ui/index.js';
15
16
  import { confirmPrompt } from '../../../prompts/promptUtils.js';
16
- import { uiAccountDescription } from '../../../ui/index.js';
17
17
  import SpinniesManager from '../../../ui/SpinniesManager.js';
18
18
  import { EXIT_CODES } from '../../../enums/exitCodes.js';
19
19
  import { handleProjectUpload } from '../../upload.js';
20
20
  import { pollProjectBuildAndDeploy } from '../../pollProjectBuildAndDeploy.js';
21
- import { debugError, logError } from '../../../errorHandlers/index.js';
22
- import { ApiErrorContext } from '../../../errorHandlers/index.js';
21
+ import { ApiErrorContext, debugError, logError, } from '../../../errorHandlers/index.js';
23
22
  import { getProjectPackageJsonLocations, hasMissingPackages, installPackages, } from '../../../dependencyManagement.js';
24
23
  // Prompt the user to create a new project if one doesn't exist on their target account
25
- export async function createNewProjectForLocalDev(projectConfig, targetAccountId, shouldCreateWithoutConfirmation, hasPublicApps) {
24
+ export async function createNewProjectForLocalDev(projectConfig, targetAccountId, shouldCreateWithoutConfirmation, hasPublicApps, exit) {
26
25
  // Create the project without prompting if this is a newly created sandbox
27
26
  let shouldCreateProject = shouldCreateWithoutConfirmation;
28
27
  if (!shouldCreateProject) {
@@ -54,7 +53,7 @@ export async function createNewProjectForLocalDev(projectConfig, targetAccountId
54
53
  SpinniesManager.fail('createProject');
55
54
  uiLogger.log(lib.localDevHelpers.project.createNewProjectForLocalDev
56
55
  .failedToCreateProject);
57
- process.exit(EXIT_CODES.ERROR);
56
+ return exit(EXIT_CODES.ERROR);
58
57
  }
59
58
  }
60
59
  else {
@@ -62,30 +61,31 @@ export async function createNewProjectForLocalDev(projectConfig, targetAccountId
62
61
  uiLogger.log('');
63
62
  uiLogger.log(lib.localDevHelpers.project.createNewProjectForLocalDev
64
63
  .choseNotToCreateProject);
65
- process.exit(EXIT_CODES.SUCCESS);
64
+ return exit(EXIT_CODES.SUCCESS);
66
65
  }
67
66
  }
68
- function projectUploadCallback(accountId, projectConfig, tempFile, buildId) {
67
+ function projectUploadCallback(accountId, projectConfig, tempFile, exit, buildId) {
69
68
  if (!buildId) {
70
69
  uiLogger.error(lib.localDevHelpers.project.createInitialBuildForNewProject.genericError);
71
- process.exit(EXIT_CODES.ERROR);
70
+ return exit(EXIT_CODES.ERROR);
72
71
  }
73
- return pollProjectBuildAndDeploy(accountId, projectConfig, tempFile, buildId, true);
72
+ return pollProjectBuildAndDeploy(accountId, projectConfig, tempFile, buildId, { silenceLogs: true });
74
73
  }
75
74
  // Create an initial build if the project was newly created in the account
76
75
  // Return the newly deployed build
77
- export async function createInitialBuildForNewProject(projectConfig, projectDir, targetAccountId, sendIR, profile) {
76
+ export async function createInitialBuildForNewProject(projectConfig, projectDir, targetAccountId, exit, sendIR, profile) {
78
77
  const { result: initialUploadResult, uploadError } = await handleProjectUpload({
79
78
  accountId: targetAccountId,
80
79
  projectConfig,
81
80
  projectDir,
82
- callbackFunc: projectUploadCallback,
81
+ callbackFunc: (accountId, config, tempFile, buildId) => projectUploadCallback(accountId, config, tempFile, exit, buildId),
83
82
  uploadMessage: lib.localDevHelpers.project.createInitialBuildForNewProject
84
83
  .initialUploadMessage,
85
84
  forceCreate: true,
86
85
  skipValidation: true,
87
86
  sendIR,
88
87
  profile,
88
+ force: true,
89
89
  });
90
90
  if (uploadError) {
91
91
  if (isSpecifiedError(uploadError, {
@@ -102,7 +102,7 @@ export async function createInitialBuildForNewProject(projectConfig, projectDir,
102
102
  projectName: projectConfig.name,
103
103
  }));
104
104
  }
105
- process.exit(EXIT_CODES.ERROR);
105
+ return exit(EXIT_CODES.ERROR);
106
106
  }
107
107
  if (!initialUploadResult?.succeeded) {
108
108
  let subTasks = [];
@@ -120,21 +120,21 @@ export async function createInitialBuildForNewProject(projectConfig, projectDir,
120
120
  uiLogger.error(failedSubTask.errorMessage);
121
121
  });
122
122
  uiLogger.log('');
123
- process.exit(EXIT_CODES.ERROR);
123
+ return exit(EXIT_CODES.ERROR);
124
124
  }
125
125
  return initialUploadResult.buildResult;
126
126
  }
127
- export async function compareLocalProjectToDeployed(projectConfig, accountId, deployedBuildId, localProjectNodes, profile) {
127
+ export async function compareLocalProjectToDeployed(projectConfig, accountId, deployedBuildId, localProjectNodes, exit, profile) {
128
128
  uiLogger.log('');
129
129
  if (!deployedBuildId) {
130
130
  uiLogger.error(lib.localDevHelpers.project.compareLocalProjectToDeployed.noDeployedBuild(projectConfig.name, uiAccountDescription(accountId)));
131
- process.exit(EXIT_CODES.SUCCESS);
131
+ return exit(EXIT_CODES.SUCCESS);
132
132
  }
133
133
  SpinniesManager.add('compareLocalProjectToDeployed', {
134
134
  text: lib.localDevHelpers.project.compareLocalProjectToDeployed.checking,
135
135
  });
136
- const isUpToDate = await isDeployedProjectUpToDateWithLocal(projectConfig, accountId, deployedBuildId, localProjectNodes, profile);
137
- if (isUpToDate) {
136
+ const changedComponents = await getLocallyChangedComponents(projectConfig, accountId, deployedBuildId, localProjectNodes, profile);
137
+ if (!hasLocalComponentChanges(changedComponents)) {
138
138
  SpinniesManager.succeed('compareLocalProjectToDeployed', {
139
139
  text: lib.localDevHelpers.project.compareLocalProjectToDeployed.upToDate,
140
140
  });
@@ -145,8 +145,10 @@ export async function compareLocalProjectToDeployed(projectConfig, accountId, de
145
145
  .notUpToDate,
146
146
  });
147
147
  uiLogger.log('');
148
+ uiLogger.log(lib.localDevHelpers.project.compareLocalProjectToDeployed.changedFiles(changedComponents));
149
+ uiLogger.log('');
148
150
  uiLogger.log(lib.localDevHelpers.project.compareLocalProjectToDeployed.notUpToDateExplanation(profile));
149
- process.exit(EXIT_CODES.SUCCESS);
151
+ return exit(EXIT_CODES.SUCCESS);
150
152
  }
151
153
  }
152
154
  export async function getDeployedProjectNodes(projectConfig, accountId, deployedBuildId, profile) {
@@ -155,13 +157,29 @@ export async function getDeployedProjectNodes(projectConfig, accountId, deployed
155
157
  tempDir = await fs.mkdtemp(path.join(os.tmpdir(), 'hubspot-project-compare-'));
156
158
  const { data: zippedProject } = await downloadProject(accountId, projectConfig.name, deployedBuildId);
157
159
  await extractZipArchive(zippedProject, sanitizeFileName(projectConfig.name), tempDir, { hideLogs: true });
158
- const deployedProjectSourceDir = path.join(tempDir, projectConfig.srcDir);
159
- const { intermediateNodesIndexedByUid } = await translate({
160
+ // Read the deployed project's hsproject.json to get its srcDir
161
+ // Deployed projects always use "src" as the srcDir
162
+ const possibleProjectPaths = [
163
+ path.join(tempDir, PROJECT_CONFIG_FILE),
164
+ path.join(tempDir, sanitizeFileName(projectConfig.name), PROJECT_CONFIG_FILE),
165
+ ];
166
+ let deployedSrcDir = 'src';
167
+ for (const projectJsonPath of possibleProjectPaths) {
168
+ if (await fs.pathExists(projectJsonPath)) {
169
+ const deployedProjectConfig = await fs.readJson(projectJsonPath);
170
+ if (deployedProjectConfig.srcDir) {
171
+ deployedSrcDir = deployedProjectConfig.srcDir;
172
+ }
173
+ break;
174
+ }
175
+ }
176
+ const deployedProjectSourceDir = path.join(tempDir, deployedSrcDir);
177
+ const { intermediateRepresentation } = await translate({
160
178
  projectSourceDir: deployedProjectSourceDir,
161
179
  platformVersion: projectConfig.platformVersion,
162
180
  accountId: accountId,
163
181
  }, { profile });
164
- return intermediateNodesIndexedByUid;
182
+ return intermediateRepresentation.intermediateNodesIndexedByUid;
165
183
  }
166
184
  finally {
167
185
  if (tempDir && (await fs.pathExists(tempDir))) {
@@ -169,14 +187,47 @@ export async function getDeployedProjectNodes(projectConfig, accountId, deployed
169
187
  }
170
188
  }
171
189
  }
172
- export async function isDeployedProjectUpToDateWithLocal(projectConfig, accountId, deployedBuildId, localProjectNodes, profile) {
190
+ function filterAutoGeneratedNodes(nodes) {
191
+ return Object.fromEntries(Object.entries(nodes).filter(([, node]) => !AUTO_GENERATED_COMPONENT_TYPES.includes(mapToUserFacingType(node.componentType))));
192
+ }
193
+ export function hasLocalComponentChanges(changed) {
194
+ return (changed.added.length > 0 ||
195
+ changed.updated.length > 0 ||
196
+ changed.removed.length > 0);
197
+ }
198
+ export async function getLocallyChangedComponents(projectConfig, accountId, deployedBuildId, localProjectNodes, profile) {
199
+ const result = {
200
+ added: [],
201
+ updated: [],
202
+ removed: [],
203
+ };
173
204
  try {
174
205
  const deployedProjectNodes = await getDeployedProjectNodes(projectConfig, accountId, deployedBuildId, profile);
175
- return isDeepEqual(localProjectNodes, deployedProjectNodes, ['localDev']);
206
+ const filteredLocal = filterAutoGeneratedNodes(localProjectNodes);
207
+ const filteredDeployed = filterAutoGeneratedNodes(deployedProjectNodes);
208
+ const allUids = new Set([
209
+ ...Object.keys(filteredLocal),
210
+ ...Object.keys(filteredDeployed),
211
+ ]);
212
+ for (const uid of allUids) {
213
+ const local = filteredLocal[uid];
214
+ const deployed = filteredDeployed[uid];
215
+ if (!local) {
216
+ result.removed.push(path.join(projectConfig.srcDir, deployed.metaFilePath));
217
+ }
218
+ else if (!deployed) {
219
+ result.added.push(path.join(projectConfig.srcDir, local.metaFilePath));
220
+ }
221
+ else if (!isDeepEqual(local, deployed, ['localDev', 'componentDeps'])) {
222
+ result.updated.push(path.join(projectConfig.srcDir, local.metaFilePath));
223
+ }
224
+ }
225
+ return result;
176
226
  }
177
227
  catch (err) {
178
228
  debugError(err);
179
- return false;
229
+ uiLogger.warn(lib.localDevHelpers.project.compareLocalProjectToDeployed.unableToCompare);
230
+ return result;
180
231
  }
181
232
  }
182
233
  export async function checkAndInstallDependencies() {
@@ -211,6 +262,6 @@ export async function checkAndInstallDependencies() {
211
262
  text: lib.localDevHelpers.project.checkAndInstallDependencies
212
263
  .dependenciesFailure,
213
264
  });
214
- process.exit(EXIT_CODES.ERROR);
265
+ throw e;
215
266
  }
216
267
  }
@@ -0,0 +1,10 @@
1
+ import type { ParsedPackageJson } from '@hubspot/project-parsing-lib/workspaces';
2
+ export declare function summarizeNpmAuditJson(source: string): string | null;
3
+ type RunNpmAuditsBeforeProjectUploadArgs = {
4
+ srcDir: string;
5
+ projectDir: string;
6
+ parsedPackageJsons: ParsedPackageJson[];
7
+ isLegacyPlatform: boolean;
8
+ };
9
+ export declare function runNpmAuditsBeforeProjectUpload({ srcDir, projectDir, parsedPackageJsons, isLegacyPlatform, }: RunNpmAuditsBeforeProjectUploadArgs): Promise<void>;
10
+ export {};
@@ -0,0 +1,73 @@
1
+ import path from 'path';
2
+ import { runNpmAuditJson } from '@hubspot/ui-extensions-dev-server';
3
+ import { lib } from '../../lang/en.js';
4
+ import { uiLogger } from '../ui/logger.js';
5
+ export function summarizeNpmAuditJson(source) {
6
+ try {
7
+ const data = JSON.parse(source);
8
+ const errorMessage = data.error?.message ?? data.error?.summary;
9
+ if (errorMessage) {
10
+ return errorMessage;
11
+ }
12
+ const v = data.metadata?.vulnerabilities;
13
+ if (!v) {
14
+ return null;
15
+ }
16
+ const total = v.total ?? 0;
17
+ if (total === 0) {
18
+ return null;
19
+ }
20
+ const severityOrder = [
21
+ 'critical',
22
+ 'high',
23
+ 'moderate',
24
+ 'low',
25
+ 'info',
26
+ ];
27
+ const parts = severityOrder
28
+ .filter(severity => (v[severity] ?? 0) > 0)
29
+ .map(severity => `${v[severity]} ${severity}`);
30
+ return `${total} total (${parts.join(', ')})`;
31
+ }
32
+ catch {
33
+ return null;
34
+ }
35
+ }
36
+ export async function runNpmAuditsBeforeProjectUpload({ srcDir, projectDir, parsedPackageJsons, isLegacyPlatform, }) {
37
+ const auditRoots = new Set();
38
+ if (isLegacyPlatform) {
39
+ auditRoots.add(srcDir);
40
+ }
41
+ else {
42
+ for (const { dir } of parsedPackageJsons) {
43
+ auditRoots.add(dir);
44
+ }
45
+ if (auditRoots.size === 0) {
46
+ auditRoots.add(srcDir);
47
+ }
48
+ }
49
+ const auditRootArray = [...auditRoots];
50
+ const results = await Promise.all(auditRootArray.map(auditRoot => runNpmAuditJson(auditRoot)));
51
+ for (let i = 0; i < auditRootArray.length; i++) {
52
+ const auditRoot = auditRootArray[i];
53
+ const result = results[i];
54
+ if (result.skipped) {
55
+ continue;
56
+ }
57
+ const relativeRoot = path.relative(projectDir, auditRoot) || '.';
58
+ const summary = summarizeNpmAuditJson(result.source);
59
+ if (result.exitCode === 127) {
60
+ uiLogger.warn(lib.projectUpload.handleProjectUpload.npmAuditNpmUnavailable(relativeRoot));
61
+ continue;
62
+ }
63
+ if (summary) {
64
+ uiLogger.warn(lib.projectUpload.handleProjectUpload.npmAuditIssues(relativeRoot, summary));
65
+ continue;
66
+ }
67
+ if (result.exitCode !== 0) {
68
+ uiLogger.warn(lib.projectUpload.handleProjectUpload.npmAuditNonZeroExit(relativeRoot, result.exitCode));
69
+ continue;
70
+ }
71
+ uiLogger.success(lib.projectUpload.handleProjectUpload.npmAuditClean(relativeRoot));
72
+ }
73
+ }
@@ -6,5 +6,9 @@ type PollTaskStatusFunction<T extends ProjectTask> = (accountId: number, taskNam
6
6
  export declare const pollBuildStatus: PollTaskStatusFunction<Build>;
7
7
  export declare const pollDeployStatus: PollTaskStatusFunction<Deploy>;
8
8
  export declare function displayWarnLogs(accountId: number, projectName: string, taskId: number, isDeploy?: boolean): Promise<void>;
9
- export declare function pollProjectBuildAndDeploy(accountId: number, projectConfig: ProjectConfig, tempFile: FileResult, buildId: number, silenceLogs?: boolean): Promise<ProjectPollResult>;
9
+ type PollOptions = {
10
+ silenceLogs?: boolean;
11
+ skipDeploy?: boolean;
12
+ };
13
+ export declare function pollProjectBuildAndDeploy(accountId: number, projectConfig: ProjectConfig, tempFile: FileResult, buildId: number, options?: PollOptions): Promise<ProjectPollResult>;
10
14
  export {};
@@ -291,7 +291,8 @@ export async function displayWarnLogs(accountId, projectName, taskId, isDeploy =
291
291
  });
292
292
  }
293
293
  }
294
- export async function pollProjectBuildAndDeploy(accountId, projectConfig, tempFile, buildId, silenceLogs = false) {
294
+ export async function pollProjectBuildAndDeploy(accountId, projectConfig, tempFile, buildId, options = {}) {
295
+ const { silenceLogs = false, skipDeploy = false } = options;
295
296
  let buildStatus = await pollBuildStatus(accountId, projectConfig.name, buildId, null, silenceLogs);
296
297
  if (!silenceLogs) {
297
298
  uiLine();
@@ -306,7 +307,7 @@ export async function pollProjectBuildAndDeploy(accountId, projectConfig, tempFi
306
307
  result.succeeded = false;
307
308
  return result;
308
309
  }
309
- else if (buildStatus.isAutoDeployEnabled) {
310
+ else if (buildStatus.isAutoDeployEnabled && !skipDeploy) {
310
311
  if (!silenceLogs) {
311
312
  uiLogger.log(lib.projectBuildAndDeploy.pollProjectBuildAndDeploy.buildSucceededAutomaticallyDeploying(buildId, uiAccountDescription(accountId)));
312
313
  await displayWarnLogs(accountId, projectConfig.name, buildId);
@@ -0,0 +1,7 @@
1
+ type PreviewResult = {
2
+ succeeded: boolean;
3
+ releaseTag?: string;
4
+ appId?: number;
5
+ };
6
+ export declare function triggerAndPollPreview(accountId: number, projectId: number, buildId: number, targetPortalId: number): Promise<PreviewResult>;
7
+ export {};
@@ -0,0 +1,48 @@
1
+ import { triggerAutoRelease, getAutoReleaseStatus, } from '../../api/releases.js';
2
+ import { PREVIEW_POLL_TIMEOUT } from '../constants.js';
3
+ import { poll } from '../polling.js';
4
+ import SpinniesManager from '../ui/SpinniesManager.js';
5
+ import { logError, ApiErrorContext } from '../errorHandlers/index.js';
6
+ import { lib } from '../../lang/en.js';
7
+ export async function triggerAndPollPreview(accountId, projectId, buildId, targetPortalId) {
8
+ let triggerResponse;
9
+ SpinniesManager.add('preview', {
10
+ text: lib.projectPreview.triggeringPreview(buildId, targetPortalId),
11
+ succeedColor: 'white',
12
+ });
13
+ try {
14
+ const { data } = await triggerAutoRelease(accountId, projectId, buildId, targetPortalId);
15
+ triggerResponse = data;
16
+ }
17
+ catch (e) {
18
+ SpinniesManager.fail('preview', {
19
+ text: lib.projectPreview.triggerFailed,
20
+ });
21
+ logError(e, new ApiErrorContext({
22
+ accountId,
23
+ request: 'preview trigger',
24
+ }));
25
+ return { succeeded: false };
26
+ }
27
+ const { releaseTag, appId } = triggerResponse;
28
+ SpinniesManager.update('preview', {
29
+ text: lib.projectPreview.pollingStatus(releaseTag, targetPortalId),
30
+ });
31
+ try {
32
+ await poll(() => getAutoReleaseStatus(accountId, projectId, targetPortalId, releaseTag, appId), { successStates: ['COMPLETE'], errorStates: [] }, PREVIEW_POLL_TIMEOUT);
33
+ }
34
+ catch (e) {
35
+ SpinniesManager.fail('preview', {
36
+ text: lib.projectPreview.pollFailed,
37
+ });
38
+ logError(e, new ApiErrorContext({
39
+ accountId,
40
+ request: 'preview status',
41
+ }));
42
+ return { succeeded: false, releaseTag, appId };
43
+ }
44
+ SpinniesManager.succeed('preview', {
45
+ text: lib.projectPreview.succeeded(releaseTag, targetPortalId),
46
+ });
47
+ return { succeeded: true, releaseTag, appId };
48
+ }
@@ -0,0 +1,5 @@
1
+ import { Project } from '@hubspot/local-dev-lib/types/Project';
2
+ import { ProjectInfo } from '../../types/Projects.js';
3
+ export type { ProjectInfo };
4
+ export declare function getProjectInfo(project: Project, platformVersion: string, accountId: number): Promise<ProjectInfo>;
5
+ export declare function logProjectInfo(projectInfo: ProjectInfo): void;