@hubspot/cli 8.0.11-experimental.0 → 8.0.11-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 (534) hide show
  1. package/bin/cli.js +2 -0
  2. package/commands/account/auth.js +12 -22
  3. package/commands/account/clean.js +5 -6
  4. package/commands/account/createOverride.js +7 -7
  5. package/commands/account/info.js +2 -1
  6. package/commands/account/list.js +3 -5
  7. package/commands/account/remove.js +2 -3
  8. package/commands/account/removeOverride.js +8 -10
  9. package/commands/account/rename.js +5 -6
  10. package/commands/account/use.js +8 -19
  11. package/commands/api.d.ts +10 -0
  12. package/commands/api.js +164 -0
  13. package/commands/app/migrate.js +8 -8
  14. package/commands/app/secret/add.js +6 -7
  15. package/commands/app/secret/delete.js +9 -10
  16. package/commands/app/secret/list.js +6 -7
  17. package/commands/app/secret/update.js +8 -9
  18. package/commands/auth.js +12 -12
  19. package/commands/cms/app/create.js +9 -5
  20. package/commands/cms/convertFields.js +8 -8
  21. package/commands/cms/delete.js +2 -3
  22. package/commands/cms/fetch.js +7 -7
  23. package/commands/cms/function/create.js +9 -5
  24. package/commands/cms/function/deploy.js +2 -3
  25. package/commands/cms/function/list.js +11 -7
  26. package/commands/cms/function/logs.js +17 -23
  27. package/commands/cms/function/server.js +2 -3
  28. package/commands/cms/getReactModule.js +7 -8
  29. package/commands/cms/lighthouseScore.js +25 -24
  30. package/commands/cms/lint.js +4 -5
  31. package/commands/cms/list.js +5 -6
  32. package/commands/cms/module/create.js +9 -5
  33. package/commands/cms/module/marketplace-validate.js +7 -8
  34. package/commands/cms/mv.js +2 -3
  35. package/commands/cms/template/create.js +10 -6
  36. package/commands/cms/theme/create.js +5 -5
  37. package/commands/cms/theme/generate-selectors.js +5 -4
  38. package/commands/cms/theme/marketplace-validate.js +8 -9
  39. package/commands/cms/theme/preview.js +16 -8
  40. package/commands/cms/upload.js +15 -12
  41. package/commands/cms/watch.js +5 -5
  42. package/commands/cms/webpack/create.js +5 -5
  43. package/commands/completion.js +3 -5
  44. package/commands/config/migrate.js +6 -7
  45. package/commands/config/set.js +5 -6
  46. package/commands/customObject/create.js +4 -5
  47. package/commands/customObject/createSchema.js +4 -5
  48. package/commands/customObject/deleteSchema.js +4 -5
  49. package/commands/customObject/fetchAllSchemas.js +2 -3
  50. package/commands/customObject/fetchSchema.js +2 -3
  51. package/commands/customObject/listSchemas.js +2 -3
  52. package/commands/customObject/updateSchema.js +4 -5
  53. package/commands/doctor.js +8 -8
  54. package/commands/feedback.js +6 -4
  55. package/commands/filemanager/fetch.js +5 -6
  56. package/commands/filemanager/upload.js +5 -5
  57. package/commands/getStarted.js +14 -16
  58. package/commands/hubdb/clear.js +5 -6
  59. package/commands/hubdb/create.js +4 -5
  60. package/commands/hubdb/delete.js +8 -9
  61. package/commands/hubdb/fetch.js +5 -6
  62. package/commands/hubdb/list.js +16 -14
  63. package/commands/init.js +14 -17
  64. package/commands/mcp/setup.js +5 -6
  65. package/commands/mcp/start.js +2 -3
  66. package/commands/open.js +4 -5
  67. package/commands/project/add.js +10 -5
  68. package/commands/project/create.js +10 -10
  69. package/commands/project/delete.d.ts +7 -0
  70. package/commands/project/delete.js +74 -0
  71. package/commands/project/deploy.js +36 -34
  72. package/commands/project/dev/deprecatedFlow.js +42 -15
  73. package/commands/project/dev/index.d.ts +3 -3
  74. package/commands/project/dev/index.js +24 -30
  75. package/commands/project/dev/unifiedFlow.js +37 -14
  76. package/commands/project/download.js +10 -11
  77. package/commands/project/info.js +17 -17
  78. package/commands/project/installDeps.js +9 -6
  79. package/commands/project/lint.js +11 -8
  80. package/commands/project/list.js +14 -14
  81. package/commands/project/listBuilds.js +8 -6
  82. package/commands/project/logs.js +5 -6
  83. package/commands/project/migrate.js +8 -8
  84. package/commands/project/open.js +5 -6
  85. package/commands/project/profile/add.js +12 -8
  86. package/commands/project/profile/delete.js +15 -11
  87. package/commands/project/updateDeps.js +9 -6
  88. package/commands/project/upload.js +31 -17
  89. package/commands/project/validate.js +11 -11
  90. package/commands/project/watch.js +20 -20
  91. package/commands/project.js +2 -0
  92. package/commands/sandbox/create.js +15 -15
  93. package/commands/sandbox/delete.js +13 -14
  94. package/commands/secret/addSecret.js +6 -7
  95. package/commands/secret/deleteSecret.js +5 -6
  96. package/commands/secret/listSecret.js +2 -3
  97. package/commands/secret/updateSecret.js +4 -5
  98. package/commands/testAccount/create.d.ts +1 -1
  99. package/commands/testAccount/create.js +20 -16
  100. package/commands/testAccount/createConfig.js +7 -8
  101. package/commands/testAccount/delete.js +27 -18
  102. package/commands/testAccount/importData.js +6 -7
  103. package/commands/upgrade.js +9 -10
  104. package/lang/en.d.ts +94 -7
  105. package/lang/en.js +94 -10
  106. package/lib/accountAuth.js +2 -2
  107. package/lib/buildAccount.js +3 -3
  108. package/lib/constants.d.ts +0 -1
  109. package/lib/constants.js +0 -1
  110. package/lib/doctor/Diagnosis.js +5 -5
  111. package/lib/errorHandlers/index.js +4 -3
  112. package/lib/errorHandlers/suppressError.js +4 -0
  113. package/lib/errors/PromptExitError.d.ts +4 -2
  114. package/lib/errors/PromptExitError.js +3 -0
  115. package/lib/hasFeature.js +1 -2
  116. package/lib/middleware/autoUpdateMiddleware.js +6 -3
  117. package/lib/process.d.ts +1 -1
  118. package/lib/process.js +10 -3
  119. package/lib/projects/create/v2.js +1 -2
  120. package/lib/projects/delete.d.ts +13 -0
  121. package/lib/projects/delete.js +193 -0
  122. package/lib/projects/localDev/AppDevModeInterface.js +11 -11
  123. package/lib/projects/localDev/DevServerManager_DEPRECATED.d.ts +3 -1
  124. package/lib/projects/localDev/DevServerManager_DEPRECATED.js +2 -2
  125. package/lib/projects/localDev/DevSessionManager.d.ts +6 -3
  126. package/lib/projects/localDev/DevSessionManager.js +31 -19
  127. package/lib/projects/localDev/LocalDevManager_DEPRECATED.d.ts +3 -0
  128. package/lib/projects/localDev/LocalDevManager_DEPRECATED.js +16 -12
  129. package/lib/projects/localDev/LocalDevProcess.js +6 -5
  130. package/lib/projects/localDev/LocalDevState.d.ts +3 -2
  131. package/lib/projects/localDev/LocalDevState.js +3 -1
  132. package/lib/projects/localDev/helpers/account.d.ts +4 -3
  133. package/lib/projects/localDev/helpers/account.js +16 -19
  134. package/lib/projects/localDev/helpers/process.d.ts +1 -1
  135. package/lib/projects/localDev/helpers/process.js +4 -10
  136. package/lib/projects/localDev/helpers/project.d.ts +4 -3
  137. package/lib/projects/localDev/helpers/project.js +31 -15
  138. package/lib/projects/projectInfo.d.ts +3 -20
  139. package/lib/projects/projectInfo.js +32 -54
  140. package/lib/projects/projectProfiles.d.ts +1 -2
  141. package/lib/projects/projectProfiles.js +5 -17
  142. package/lib/projects/upload.js +19 -0
  143. package/lib/projects/workspaces.d.ts +42 -0
  144. package/lib/projects/workspaces.js +350 -0
  145. package/lib/prompts/createApiSamplePrompt.js +4 -0
  146. package/lib/prompts/projectProfilePrompt.d.ts +2 -0
  147. package/lib/prompts/projectProfilePrompt.js +46 -0
  148. package/lib/prompts/promptUtils.js +3 -2
  149. package/lib/prompts/selectHubDBTablePrompt.js +2 -2
  150. package/lib/prompts/selectPublicAppForMigrationPrompt.js +2 -2
  151. package/lib/theme/cmsDevServerProcess.d.ts +2 -0
  152. package/lib/theme/cmsDevServerProcess.js +7 -6
  153. package/lib/ui/SpinniesManager.d.ts +1 -0
  154. package/lib/ui/SpinniesManager.js +20 -6
  155. package/lib/ui/spinniesUtils.d.ts +0 -1
  156. package/lib/ui/spinniesUtils.js +6 -16
  157. package/lib/usageTracking.d.ts +3 -4
  158. package/lib/yargs/makeYargsBuilder.d.ts +13 -0
  159. package/lib/yargs/makeYargsBuilder.js +33 -0
  160. package/lib/yargs/makeYargsHandlerWithUsageTracking.d.ts +3 -0
  161. package/lib/yargs/makeYargsHandlerWithUsageTracking.js +95 -0
  162. package/lib/yargs/strictEnforceBoolean.d.ts +1 -0
  163. package/lib/yargs/strictEnforceBoolean.js +13 -0
  164. package/lib/yargsUtils.d.ts +3 -16
  165. package/lib/yargsUtils.js +3 -48
  166. package/mcp-server/tools/cms/HsCreateTemplateTool.d.ts +1 -1
  167. package/package.json +10 -5
  168. package/types/LocalDev.d.ts +5 -0
  169. package/types/Projects.d.ts +19 -0
  170. package/types/Yargs.d.ts +18 -1
  171. package/api/__tests__/migrate.test.d.ts +0 -1
  172. package/api/__tests__/migrate.test.js +0 -199
  173. package/commands/__tests__/account.test.d.ts +0 -1
  174. package/commands/__tests__/account.test.js +0 -69
  175. package/commands/__tests__/auth.test.d.ts +0 -1
  176. package/commands/__tests__/auth.test.js +0 -43
  177. package/commands/__tests__/cms.test.d.ts +0 -1
  178. package/commands/__tests__/cms.test.js +0 -87
  179. package/commands/__tests__/config.test.d.ts +0 -1
  180. package/commands/__tests__/config.test.js +0 -44
  181. package/commands/__tests__/customObject.test.d.ts +0 -1
  182. package/commands/__tests__/customObject.test.js +0 -68
  183. package/commands/__tests__/doctor.test.d.ts +0 -1
  184. package/commands/__tests__/doctor.test.js +0 -132
  185. package/commands/__tests__/feedback.test.d.ts +0 -1
  186. package/commands/__tests__/feedback.test.js +0 -24
  187. package/commands/__tests__/filemanager.test.d.ts +0 -1
  188. package/commands/__tests__/filemanager.test.js +0 -45
  189. package/commands/__tests__/getStarted.test.d.ts +0 -1
  190. package/commands/__tests__/getStarted.test.js +0 -173
  191. package/commands/__tests__/hubdb.test.d.ts +0 -1
  192. package/commands/__tests__/hubdb.test.js +0 -50
  193. package/commands/__tests__/init.test.d.ts +0 -1
  194. package/commands/__tests__/init.test.js +0 -42
  195. package/commands/__tests__/mcp.test.d.ts +0 -1
  196. package/commands/__tests__/mcp.test.js +0 -46
  197. package/commands/__tests__/open.test.d.ts +0 -1
  198. package/commands/__tests__/open.test.js +0 -58
  199. package/commands/__tests__/project.test.d.ts +0 -1
  200. package/commands/__tests__/project.test.js +0 -125
  201. package/commands/__tests__/sandbox.test.d.ts +0 -1
  202. package/commands/__tests__/sandbox.test.js +0 -44
  203. package/commands/__tests__/secret.test.d.ts +0 -1
  204. package/commands/__tests__/secret.test.js +0 -49
  205. package/commands/__tests__/testAccount.test.d.ts +0 -1
  206. package/commands/__tests__/testAccount.test.js +0 -57
  207. package/commands/__tests__/upgrade.test.d.ts +0 -1
  208. package/commands/__tests__/upgrade.test.js +0 -309
  209. package/commands/account/__tests__/auth.test.d.ts +0 -1
  210. package/commands/account/__tests__/auth.test.js +0 -206
  211. package/commands/account/__tests__/clean.test.d.ts +0 -1
  212. package/commands/account/__tests__/clean.test.js +0 -28
  213. package/commands/account/__tests__/createOverride.test.d.ts +0 -1
  214. package/commands/account/__tests__/createOverride.test.js +0 -32
  215. package/commands/account/__tests__/info.test.d.ts +0 -1
  216. package/commands/account/__tests__/info.test.js +0 -28
  217. package/commands/account/__tests__/list.test.d.ts +0 -1
  218. package/commands/account/__tests__/list.test.js +0 -153
  219. package/commands/account/__tests__/remove.test.d.ts +0 -1
  220. package/commands/account/__tests__/remove.test.js +0 -36
  221. package/commands/account/__tests__/removeOverride.d.ts +0 -1
  222. package/commands/account/__tests__/removeOverride.js +0 -25
  223. package/commands/account/__tests__/rename.test.d.ts +0 -1
  224. package/commands/account/__tests__/rename.test.js +0 -82
  225. package/commands/account/__tests__/use.test.d.ts +0 -1
  226. package/commands/account/__tests__/use.test.js +0 -170
  227. package/commands/app/__tests__/migrate.test.d.ts +0 -1
  228. package/commands/app/__tests__/migrate.test.js +0 -111
  229. package/commands/app/secret/__tests__/add.test.d.ts +0 -1
  230. package/commands/app/secret/__tests__/add.test.js +0 -140
  231. package/commands/app/secret/__tests__/delete.test.d.ts +0 -1
  232. package/commands/app/secret/__tests__/delete.test.js +0 -28
  233. package/commands/app/secret/__tests__/list.test.d.ts +0 -1
  234. package/commands/app/secret/__tests__/list.test.js +0 -25
  235. package/commands/app/secret/__tests__/update.test.d.ts +0 -1
  236. package/commands/app/secret/__tests__/update.test.js +0 -28
  237. package/commands/cms/__tests__/delete.test.d.ts +0 -1
  238. package/commands/cms/__tests__/delete.test.js +0 -39
  239. package/commands/cms/__tests__/fetch.test.d.ts +0 -1
  240. package/commands/cms/__tests__/fetch.test.js +0 -156
  241. package/commands/cms/__tests__/function.test.d.ts +0 -1
  242. package/commands/cms/__tests__/function.test.js +0 -50
  243. package/commands/cms/__tests__/lint.test.d.ts +0 -1
  244. package/commands/cms/__tests__/lint.test.js +0 -33
  245. package/commands/cms/__tests__/list.test.d.ts +0 -1
  246. package/commands/cms/__tests__/list.test.js +0 -42
  247. package/commands/cms/__tests__/module.test.d.ts +0 -1
  248. package/commands/cms/__tests__/module.test.js +0 -45
  249. package/commands/cms/__tests__/mv.test.d.ts +0 -1
  250. package/commands/cms/__tests__/mv.test.js +0 -46
  251. package/commands/cms/__tests__/theme.test.d.ts +0 -1
  252. package/commands/cms/__tests__/theme.test.js +0 -54
  253. package/commands/cms/__tests__/upload.test.d.ts +0 -1
  254. package/commands/cms/__tests__/upload.test.js +0 -312
  255. package/commands/cms/__tests__/watch.test.d.ts +0 -1
  256. package/commands/cms/__tests__/watch.test.js +0 -204
  257. package/commands/cms/function/__tests__/logs.test.d.ts +0 -1
  258. package/commands/cms/function/__tests__/logs.test.js +0 -70
  259. package/commands/cms/theme/__tests__/generate-selectors.test.d.ts +0 -1
  260. package/commands/cms/theme/__tests__/generate-selectors.test.js +0 -28
  261. package/commands/cms/theme/__tests__/marketplace-validate.test.d.ts +0 -1
  262. package/commands/cms/theme/__tests__/marketplace-validate.test.js +0 -36
  263. package/commands/cms/theme/__tests__/preview.test.d.ts +0 -1
  264. package/commands/cms/theme/__tests__/preview.test.js +0 -54
  265. package/commands/customObject/__tests__/create.test.d.ts +0 -1
  266. package/commands/customObject/__tests__/create.test.js +0 -40
  267. package/commands/customObject/__tests__/createSchema.test.d.ts +0 -1
  268. package/commands/customObject/__tests__/createSchema.test.js +0 -28
  269. package/commands/customObject/__tests__/deleteSchema.test.d.ts +0 -1
  270. package/commands/customObject/__tests__/deleteSchema.test.js +0 -42
  271. package/commands/customObject/__tests__/fetch-all-schemas.test.d.ts +0 -1
  272. package/commands/customObject/__tests__/fetch-all-schemas.test.js +0 -41
  273. package/commands/customObject/__tests__/fetchSchema.test.d.ts +0 -1
  274. package/commands/customObject/__tests__/fetchSchema.test.js +0 -45
  275. package/commands/customObject/__tests__/listSchemas.test.d.ts +0 -1
  276. package/commands/customObject/__tests__/listSchemas.test.js +0 -29
  277. package/commands/customObject/__tests__/updateSchema.test.d.ts +0 -1
  278. package/commands/customObject/__tests__/updateSchema.test.js +0 -40
  279. package/commands/filemanager/__tests__/fetch.test.d.ts +0 -1
  280. package/commands/filemanager/__tests__/fetch.test.js +0 -32
  281. package/commands/filemanager/__tests__/upload.test.d.ts +0 -1
  282. package/commands/filemanager/__tests__/upload.test.js +0 -191
  283. package/commands/hubdb/__tests__/clear.test.d.ts +0 -1
  284. package/commands/hubdb/__tests__/clear.test.js +0 -28
  285. package/commands/hubdb/__tests__/create.test.d.ts +0 -1
  286. package/commands/hubdb/__tests__/create.test.js +0 -28
  287. package/commands/hubdb/__tests__/delete.test.d.ts +0 -1
  288. package/commands/hubdb/__tests__/delete.test.js +0 -28
  289. package/commands/hubdb/__tests__/fetch.test.d.ts +0 -1
  290. package/commands/hubdb/__tests__/fetch.test.js +0 -28
  291. package/commands/hubdb/__tests__/list.test.d.ts +0 -1
  292. package/commands/hubdb/__tests__/list.test.js +0 -88
  293. package/commands/mcp/__tests__/setup.test.d.ts +0 -1
  294. package/commands/mcp/__tests__/setup.test.js +0 -26
  295. package/commands/mcp/__tests__/start.test.d.ts +0 -1
  296. package/commands/mcp/__tests__/start.test.js +0 -144
  297. package/commands/project/__tests__/add.test.d.ts +0 -1
  298. package/commands/project/__tests__/add.test.js +0 -107
  299. package/commands/project/__tests__/create.test.d.ts +0 -1
  300. package/commands/project/__tests__/create.test.js +0 -97
  301. package/commands/project/__tests__/deploy.test.d.ts +0 -1
  302. package/commands/project/__tests__/deploy.test.js +0 -307
  303. package/commands/project/__tests__/dev.test.d.ts +0 -1
  304. package/commands/project/__tests__/dev.test.js +0 -273
  305. package/commands/project/__tests__/devUnifiedFlow.test.d.ts +0 -1
  306. package/commands/project/__tests__/devUnifiedFlow.test.js +0 -434
  307. package/commands/project/__tests__/download.test.d.ts +0 -1
  308. package/commands/project/__tests__/download.test.js +0 -39
  309. package/commands/project/__tests__/info.test.d.ts +0 -1
  310. package/commands/project/__tests__/info.test.js +0 -145
  311. package/commands/project/__tests__/installDeps.test.d.ts +0 -1
  312. package/commands/project/__tests__/installDeps.test.js +0 -140
  313. package/commands/project/__tests__/lint.test.d.ts +0 -1
  314. package/commands/project/__tests__/lint.test.js +0 -704
  315. package/commands/project/__tests__/list.test.d.ts +0 -1
  316. package/commands/project/__tests__/list.test.js +0 -31
  317. package/commands/project/__tests__/listBuilds.test.d.ts +0 -1
  318. package/commands/project/__tests__/listBuilds.test.js +0 -38
  319. package/commands/project/__tests__/logs.test.d.ts +0 -1
  320. package/commands/project/__tests__/logs.test.js +0 -202
  321. package/commands/project/__tests__/migrate.test.d.ts +0 -1
  322. package/commands/project/__tests__/migrate.test.js +0 -106
  323. package/commands/project/__tests__/open.test.d.ts +0 -1
  324. package/commands/project/__tests__/open.test.js +0 -39
  325. package/commands/project/__tests__/profile.test.d.ts +0 -1
  326. package/commands/project/__tests__/profile.test.js +0 -42
  327. package/commands/project/__tests__/updateDeps.test.d.ts +0 -1
  328. package/commands/project/__tests__/updateDeps.test.js +0 -140
  329. package/commands/project/__tests__/upload.test.d.ts +0 -1
  330. package/commands/project/__tests__/upload.test.js +0 -234
  331. package/commands/project/__tests__/validate.test.d.ts +0 -1
  332. package/commands/project/__tests__/validate.test.js +0 -381
  333. package/commands/project/__tests__/watch.test.d.ts +0 -1
  334. package/commands/project/__tests__/watch.test.js +0 -35
  335. package/commands/sandbox/__tests__/create.test.d.ts +0 -1
  336. package/commands/sandbox/__tests__/create.test.js +0 -198
  337. package/commands/sandbox/__tests__/delete.test.d.ts +0 -1
  338. package/commands/sandbox/__tests__/delete.test.js +0 -31
  339. package/commands/secret/__tests__/addSecret.test.d.ts +0 -1
  340. package/commands/secret/__tests__/addSecret.test.js +0 -162
  341. package/commands/secret/__tests__/deleteSecret.test.d.ts +0 -1
  342. package/commands/secret/__tests__/deleteSecret.test.js +0 -41
  343. package/commands/secret/__tests__/listSecret.test.d.ts +0 -1
  344. package/commands/secret/__tests__/listSecret.test.js +0 -29
  345. package/commands/secret/__tests__/updateSecret.test.d.ts +0 -1
  346. package/commands/secret/__tests__/updateSecret.test.js +0 -29
  347. package/commands/testAccount/__tests__/create.test.d.ts +0 -1
  348. package/commands/testAccount/__tests__/create.test.js +0 -106
  349. package/commands/testAccount/__tests__/createConfig.test.d.ts +0 -1
  350. package/commands/testAccount/__tests__/createConfig.test.js +0 -32
  351. package/commands/testAccount/__tests__/delete.test.d.ts +0 -1
  352. package/commands/testAccount/__tests__/delete.test.js +0 -29
  353. package/commands/testAccount/__tests__/importData.test.d.ts +0 -1
  354. package/commands/testAccount/__tests__/importData.test.js +0 -92
  355. package/lib/__tests__/CLIWebSocketServer.test.d.ts +0 -1
  356. package/lib/__tests__/CLIWebSocketServer.test.js +0 -252
  357. package/lib/__tests__/accountAuth.test.d.ts +0 -1
  358. package/lib/__tests__/accountAuth.test.js +0 -258
  359. package/lib/__tests__/accountTypes.test.d.ts +0 -1
  360. package/lib/__tests__/accountTypes.test.js +0 -98
  361. package/lib/__tests__/buildAccount.test.d.ts +0 -1
  362. package/lib/__tests__/buildAccount.test.js +0 -211
  363. package/lib/__tests__/cliUpgradeUtils.test.d.ts +0 -1
  364. package/lib/__tests__/cliUpgradeUtils.test.js +0 -131
  365. package/lib/__tests__/commandSuggestion.test.d.ts +0 -1
  366. package/lib/__tests__/commandSuggestion.test.js +0 -121
  367. package/lib/__tests__/commonOpts.test.d.ts +0 -1
  368. package/lib/__tests__/commonOpts.test.js +0 -80
  369. package/lib/__tests__/dependencyManagement.test.d.ts +0 -1
  370. package/lib/__tests__/dependencyManagement.test.js +0 -1067
  371. package/lib/__tests__/developerTestAccounts.test.d.ts +0 -1
  372. package/lib/__tests__/developerTestAccounts.test.js +0 -156
  373. package/lib/__tests__/hasFeature.test.d.ts +0 -1
  374. package/lib/__tests__/hasFeature.test.js +0 -167
  375. package/lib/__tests__/http.test.d.ts +0 -1
  376. package/lib/__tests__/http.test.js +0 -40
  377. package/lib/__tests__/importData.test.d.ts +0 -1
  378. package/lib/__tests__/importData.test.js +0 -98
  379. package/lib/__tests__/npmCli.test.d.ts +0 -1
  380. package/lib/__tests__/npmCli.test.js +0 -84
  381. package/lib/__tests__/oauth.test.d.ts +0 -1
  382. package/lib/__tests__/oauth.test.js +0 -109
  383. package/lib/__tests__/parsing.test.d.ts +0 -1
  384. package/lib/__tests__/parsing.test.js +0 -34
  385. package/lib/__tests__/polling.test.d.ts +0 -1
  386. package/lib/__tests__/polling.test.js +0 -76
  387. package/lib/__tests__/process.test.d.ts +0 -1
  388. package/lib/__tests__/process.test.js +0 -89
  389. package/lib/__tests__/sandboxes.test.d.ts +0 -1
  390. package/lib/__tests__/sandboxes.test.js +0 -128
  391. package/lib/__tests__/serverlessLogs.test.d.ts +0 -1
  392. package/lib/__tests__/serverlessLogs.test.js +0 -163
  393. package/lib/__tests__/usageTracking.test.d.ts +0 -1
  394. package/lib/__tests__/usageTracking.test.js +0 -197
  395. package/lib/__tests__/validation.test.d.ts +0 -1
  396. package/lib/__tests__/validation.test.js +0 -143
  397. package/lib/__tests__/yargsUtils.test.d.ts +0 -1
  398. package/lib/__tests__/yargsUtils.test.js +0 -124
  399. package/lib/app/__tests__/migrate.test.d.ts +0 -1
  400. package/lib/app/__tests__/migrate.test.js +0 -638
  401. package/lib/doctor/__tests__/Diagnosis.test.d.ts +0 -1
  402. package/lib/doctor/__tests__/Diagnosis.test.js +0 -84
  403. package/lib/doctor/__tests__/DiagnosticInfoBuilder.test.d.ts +0 -1
  404. package/lib/doctor/__tests__/DiagnosticInfoBuilder.test.js +0 -177
  405. package/lib/doctor/__tests__/Doctor.test.d.ts +0 -1
  406. package/lib/doctor/__tests__/Doctor.test.js +0 -560
  407. package/lib/errorHandlers/__tests__/index.test.d.ts +0 -1
  408. package/lib/errorHandlers/__tests__/index.test.js +0 -278
  409. package/lib/mcp/__tests__/setup.test.d.ts +0 -1
  410. package/lib/mcp/__tests__/setup.test.js +0 -523
  411. package/lib/middleware/__tests__/commandTargetingUtils.test.d.ts +0 -1
  412. package/lib/middleware/__tests__/commandTargetingUtils.test.js +0 -99
  413. package/lib/middleware/__tests__/configMiddleware.test.d.ts +0 -1
  414. package/lib/middleware/__tests__/configMiddleware.test.js +0 -118
  415. package/lib/middleware/__tests__/gitMiddleware.test.d.ts +0 -1
  416. package/lib/middleware/__tests__/gitMiddleware.test.js +0 -43
  417. package/lib/middleware/__tests__/requestMiddleware.test.d.ts +0 -1
  418. package/lib/middleware/__tests__/requestMiddleware.test.js +0 -15
  419. package/lib/middleware/__tests__/usageTrackingMiddleware.test.d.ts +0 -1
  420. package/lib/middleware/__tests__/usageTrackingMiddleware.test.js +0 -44
  421. package/lib/middleware/__tests__/yargsChecksMiddleware.test.d.ts +0 -1
  422. package/lib/middleware/__tests__/yargsChecksMiddleware.test.js +0 -39
  423. package/lib/projects/__tests__/AppDevModeInterface.test.d.ts +0 -1
  424. package/lib/projects/__tests__/AppDevModeInterface.test.js +0 -541
  425. package/lib/projects/__tests__/DevServerManager.test.d.ts +0 -1
  426. package/lib/projects/__tests__/DevServerManager.test.js +0 -185
  427. package/lib/projects/__tests__/DevSessionManager.test.d.ts +0 -1
  428. package/lib/projects/__tests__/DevSessionManager.test.js +0 -250
  429. package/lib/projects/__tests__/LocalDevProcess.test.d.ts +0 -1
  430. package/lib/projects/__tests__/LocalDevProcess.test.js +0 -481
  431. package/lib/projects/__tests__/LocalDevWebsocketServer.test.d.ts +0 -1
  432. package/lib/projects/__tests__/LocalDevWebsocketServer.test.js +0 -231
  433. package/lib/projects/__tests__/ProjectLogsManager.test.d.ts +0 -1
  434. package/lib/projects/__tests__/ProjectLogsManager.test.js +0 -302
  435. package/lib/projects/__tests__/UIExtensionsDevModeInterface.test.d.ts +0 -1
  436. package/lib/projects/__tests__/UIExtensionsDevModeInterface.test.js +0 -160
  437. package/lib/projects/__tests__/components.test.d.ts +0 -1
  438. package/lib/projects/__tests__/components.test.js +0 -440
  439. package/lib/projects/__tests__/deploy.test.d.ts +0 -1
  440. package/lib/projects/__tests__/deploy.test.js +0 -231
  441. package/lib/projects/__tests__/localDevProjectHelpers.test.d.ts +0 -1
  442. package/lib/projects/__tests__/localDevProjectHelpers.test.js +0 -120
  443. package/lib/projects/__tests__/platformVersion.test.d.ts +0 -1
  444. package/lib/projects/__tests__/platformVersion.test.js +0 -63
  445. package/lib/projects/__tests__/pollProjectBuildAndDeploy.test.d.ts +0 -1
  446. package/lib/projects/__tests__/pollProjectBuildAndDeploy.test.js +0 -328
  447. package/lib/projects/__tests__/projectInfo.test.d.ts +0 -1
  448. package/lib/projects/__tests__/projectInfo.test.js +0 -114
  449. package/lib/projects/__tests__/projectProfiles.test.d.ts +0 -1
  450. package/lib/projects/__tests__/projectProfiles.test.js +0 -441
  451. package/lib/projects/__tests__/projects.test.d.ts +0 -1
  452. package/lib/projects/__tests__/projects.test.js +0 -58
  453. package/lib/projects/__tests__/structure.test.d.ts +0 -1
  454. package/lib/projects/__tests__/structure.test.js +0 -210
  455. package/lib/projects/__tests__/uieLinting.test.d.ts +0 -1
  456. package/lib/projects/__tests__/uieLinting.test.js +0 -631
  457. package/lib/projects/__tests__/upload.test.d.ts +0 -1
  458. package/lib/projects/__tests__/upload.test.js +0 -183
  459. package/lib/projects/add/__tests__/legacyAddComponent.test.d.ts +0 -1
  460. package/lib/projects/add/__tests__/legacyAddComponent.test.js +0 -245
  461. package/lib/projects/add/__tests__/v2AddComponent.test.d.ts +0 -1
  462. package/lib/projects/add/__tests__/v2AddComponent.test.js +0 -343
  463. package/lib/projects/create/__tests__/legacy.test.d.ts +0 -1
  464. package/lib/projects/create/__tests__/legacy.test.js +0 -72
  465. package/lib/projects/create/__tests__/v2.test.d.ts +0 -1
  466. package/lib/projects/create/__tests__/v2.test.js +0 -257
  467. package/lib/prompts/__tests__/createDeveloperTestAccountConfigPrompt.test.d.ts +0 -1
  468. package/lib/prompts/__tests__/createDeveloperTestAccountConfigPrompt.test.js +0 -157
  469. package/lib/prompts/__tests__/createFunctionPrompt.test.d.ts +0 -1
  470. package/lib/prompts/__tests__/createFunctionPrompt.test.js +0 -129
  471. package/lib/prompts/__tests__/createModulePrompt.test.d.ts +0 -1
  472. package/lib/prompts/__tests__/createModulePrompt.test.js +0 -187
  473. package/lib/prompts/__tests__/createTemplatePrompt.test.d.ts +0 -1
  474. package/lib/prompts/__tests__/createTemplatePrompt.test.js +0 -102
  475. package/lib/prompts/__tests__/downloadProjectPrompt.test.d.ts +0 -1
  476. package/lib/prompts/__tests__/downloadProjectPrompt.test.js +0 -31
  477. package/lib/prompts/__tests__/projectAddPrompt.test.d.ts +0 -1
  478. package/lib/prompts/__tests__/projectAddPrompt.test.js +0 -143
  479. package/lib/prompts/__tests__/projectsLogsPrompt.test.d.ts +0 -1
  480. package/lib/prompts/__tests__/projectsLogsPrompt.test.js +0 -37
  481. package/lib/prompts/__tests__/selectProjectTemplatePrompt.test.d.ts +0 -1
  482. package/lib/prompts/__tests__/selectProjectTemplatePrompt.test.js +0 -160
  483. package/lib/theme/__tests__/migrate.test.d.ts +0 -1
  484. package/lib/theme/__tests__/migrate.test.js +0 -247
  485. package/lib/ui/__tests__/SpinniesManager.test.d.ts +0 -1
  486. package/lib/ui/__tests__/SpinniesManager.test.js +0 -488
  487. package/lib/ui/__tests__/removeAnsiCodes.test.d.ts +0 -1
  488. package/lib/ui/__tests__/removeAnsiCodes.test.js +0 -84
  489. package/mcp-server/tools/cms/__tests__/HsCreateFunctionTool.test.d.ts +0 -1
  490. package/mcp-server/tools/cms/__tests__/HsCreateFunctionTool.test.js +0 -254
  491. package/mcp-server/tools/cms/__tests__/HsCreateModuleTool.test.d.ts +0 -1
  492. package/mcp-server/tools/cms/__tests__/HsCreateModuleTool.test.js +0 -227
  493. package/mcp-server/tools/cms/__tests__/HsCreateTemplateTool.test.d.ts +0 -1
  494. package/mcp-server/tools/cms/__tests__/HsCreateTemplateTool.test.js +0 -208
  495. package/mcp-server/tools/cms/__tests__/HsFunctionLogsTool.test.d.ts +0 -1
  496. package/mcp-server/tools/cms/__tests__/HsFunctionLogsTool.test.js +0 -186
  497. package/mcp-server/tools/cms/__tests__/HsListFunctionsTool.test.d.ts +0 -1
  498. package/mcp-server/tools/cms/__tests__/HsListFunctionsTool.test.js +0 -124
  499. package/mcp-server/tools/cms/__tests__/HsListTool.test.d.ts +0 -1
  500. package/mcp-server/tools/cms/__tests__/HsListTool.test.js +0 -124
  501. package/mcp-server/tools/project/__tests__/AddFeatureToProjectTool.test.d.ts +0 -1
  502. package/mcp-server/tools/project/__tests__/AddFeatureToProjectTool.test.js +0 -157
  503. package/mcp-server/tools/project/__tests__/CreateProjectTool.test.d.ts +0 -1
  504. package/mcp-server/tools/project/__tests__/CreateProjectTool.test.js +0 -131
  505. package/mcp-server/tools/project/__tests__/CreateTestAccountTool.test.d.ts +0 -1
  506. package/mcp-server/tools/project/__tests__/CreateTestAccountTool.test.js +0 -461
  507. package/mcp-server/tools/project/__tests__/DeployProjectTool.test.d.ts +0 -1
  508. package/mcp-server/tools/project/__tests__/DeployProjectTool.test.js +0 -125
  509. package/mcp-server/tools/project/__tests__/DocFetchTool.test.d.ts +0 -1
  510. package/mcp-server/tools/project/__tests__/DocFetchTool.test.js +0 -125
  511. package/mcp-server/tools/project/__tests__/DocsSearchTool.test.d.ts +0 -1
  512. package/mcp-server/tools/project/__tests__/DocsSearchTool.test.js +0 -210
  513. package/mcp-server/tools/project/__tests__/GetApiUsagePatternsByAppIdTool.test.d.ts +0 -1
  514. package/mcp-server/tools/project/__tests__/GetApiUsagePatternsByAppIdTool.test.js +0 -146
  515. package/mcp-server/tools/project/__tests__/GetApplicationInfoTool.test.d.ts +0 -1
  516. package/mcp-server/tools/project/__tests__/GetApplicationInfoTool.test.js +0 -124
  517. package/mcp-server/tools/project/__tests__/GetBuildLogsTool.test.d.ts +0 -1
  518. package/mcp-server/tools/project/__tests__/GetBuildLogsTool.test.js +0 -307
  519. package/mcp-server/tools/project/__tests__/GetBuildStatusTool.test.d.ts +0 -1
  520. package/mcp-server/tools/project/__tests__/GetBuildStatusTool.test.js +0 -242
  521. package/mcp-server/tools/project/__tests__/GetConfigValuesTool.test.d.ts +0 -1
  522. package/mcp-server/tools/project/__tests__/GetConfigValuesTool.test.js +0 -209
  523. package/mcp-server/tools/project/__tests__/GuidedWalkthroughTool.test.d.ts +0 -1
  524. package/mcp-server/tools/project/__tests__/GuidedWalkthroughTool.test.js +0 -158
  525. package/mcp-server/tools/project/__tests__/UploadProjectTools.test.d.ts +0 -1
  526. package/mcp-server/tools/project/__tests__/UploadProjectTools.test.js +0 -187
  527. package/mcp-server/tools/project/__tests__/ValidateProjectTool.test.d.ts +0 -1
  528. package/mcp-server/tools/project/__tests__/ValidateProjectTool.test.js +0 -118
  529. package/mcp-server/utils/__tests__/command.test.d.ts +0 -1
  530. package/mcp-server/utils/__tests__/command.test.js +0 -275
  531. package/mcp-server/utils/__tests__/content.test.d.ts +0 -1
  532. package/mcp-server/utils/__tests__/content.test.js +0 -164
  533. package/mcp-server/utils/__tests__/feedbackTracking.test.d.ts +0 -1
  534. package/mcp-server/utils/__tests__/feedbackTracking.test.js +0 -69
@@ -1,328 +0,0 @@
1
- import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
2
- import chalk from 'chalk';
3
- import { pollBuildStatus, pollDeployStatus, } from '../pollProjectBuildAndDeploy.js';
4
- import { getBuildStatus, getBuildStructure, getDeployStatus, getDeployStructure, } from '@hubspot/local-dev-lib/api/projects';
5
- import SpinniesManager from '../../ui/SpinniesManager.js';
6
- import { uiLogger } from '../../ui/logger.js';
7
- // Mock external dependencies
8
- vi.mock('@hubspot/local-dev-lib/api/projects');
9
- vi.mock('@hubspot/local-dev-lib/config');
10
- vi.mock('../../ui/SpinniesManager.js');
11
- vi.mock('../../ui/index.js', async (importOriginal) => {
12
- const actual = (await importOriginal());
13
- return {
14
- ...actual,
15
- uiLine: vi.fn(),
16
- uiLink: vi.fn((text) => text),
17
- uiAccountDescription: vi.fn((accountId) => `account ${accountId}`),
18
- };
19
- });
20
- vi.mock('../../errorHandlers/index.js');
21
- const mockGetBuildStatus = vi.mocked(getBuildStatus);
22
- const mockGetBuildStructure = vi.mocked(getBuildStructure);
23
- const mockGetDeployStatus = vi.mocked(getDeployStatus);
24
- const mockGetDeployStructure = vi.mocked(getDeployStructure);
25
- describe('lib/projects/pollProjectBuildAndDeploy', () => {
26
- beforeEach(() => {
27
- vi.resetAllMocks();
28
- vi.useFakeTimers();
29
- // Mock SpinniesManager methods
30
- vi.mocked(SpinniesManager.init).mockImplementation(() => { });
31
- vi.mocked(SpinniesManager.add).mockImplementation(() => { });
32
- vi.mocked(SpinniesManager.update).mockImplementation(() => { });
33
- vi.mocked(SpinniesManager.succeed).mockImplementation(() => { });
34
- vi.mocked(SpinniesManager.fail).mockImplementation(() => { });
35
- vi.mocked(SpinniesManager.remove).mockImplementation(() => { });
36
- vi.mocked(SpinniesManager.pick).mockReturnValue(undefined);
37
- });
38
- afterEach(() => {
39
- vi.useRealTimers();
40
- });
41
- describe('pollBuildStatus', () => {
42
- it('logs correct INITIALIZE message when build starts', async () => {
43
- const mockBuild = {
44
- buildId: 123,
45
- status: 'SUCCESS',
46
- subbuildStatuses: [],
47
- enqueuedAt: '2023-01-01T00:00:00Z',
48
- startedAt: '2023-01-01T00:01:00Z',
49
- finishedAt: '2023-01-01T00:05:00Z',
50
- portalId: 12345,
51
- projectName: 'test-project',
52
- // @ts-expect-error - Testing with minimal Build object, activitySource not relevant for this test
53
- activitySource: undefined,
54
- // @ts-expect-error - Testing with minimal Build object, createdAt not relevant for this test
55
- createdAt: undefined,
56
- // @ts-expect-error - Testing with minimal Build object, deployableState not relevant for this test
57
- deployableState: undefined,
58
- // @ts-expect-error - Testing successful build without deploy locator
59
- deployStatusTaskLocator: undefined,
60
- source: 'HUBSPOT_USER',
61
- isAutoDeployEnabled: false,
62
- autoDeployId: 0,
63
- };
64
- mockGetBuildStatus.mockResolvedValue({ data: mockBuild });
65
- mockGetBuildStructure.mockResolvedValue({
66
- data: { topLevelComponentsWithChildren: {} },
67
- });
68
- pollBuildStatus(12345, 'test-project', 123, null, true);
69
- // Wait for initial async setup to complete
70
- await vi.waitFor(() => {
71
- expect(SpinniesManager.update).toHaveBeenCalled();
72
- });
73
- // Check that SpinniesManager.update was called with correct INITIALIZE message
74
- expect(SpinniesManager.update).toHaveBeenCalledWith(expect.any(String), expect.objectContaining({
75
- text: expect.stringContaining(`Building ${chalk.bold('test-project')} #123`),
76
- }));
77
- // Complete the polling
78
- vi.mocked(SpinniesManager.hasActiveSpinners).mockReturnValue(true);
79
- await vi.runOnlyPendingTimersAsync();
80
- });
81
- it('logs correct SUCCESS message when build completes', async () => {
82
- const mockBuild = {
83
- buildId: 456,
84
- status: 'SUCCESS',
85
- subbuildStatuses: [],
86
- enqueuedAt: '2023-01-01T00:00:00Z',
87
- startedAt: '2023-01-01T00:01:00Z',
88
- finishedAt: '2023-01-01T00:05:00Z',
89
- portalId: 12345,
90
- projectName: 'my-project',
91
- // @ts-expect-error - Testing with minimal Build object, non-essential fields omitted
92
- activitySource: undefined,
93
- // @ts-expect-error - Testing with minimal Build object, non-essential fields omitted
94
- createdAt: undefined,
95
- // @ts-expect-error - Testing with minimal Build object, non-essential fields omitted
96
- deployableState: undefined,
97
- // @ts-expect-error - Testing successful build without deploy locator
98
- deployStatusTaskLocator: undefined,
99
- source: 'HUBSPOT_USER',
100
- isAutoDeployEnabled: false,
101
- autoDeployId: 0,
102
- };
103
- mockGetBuildStatus.mockResolvedValue({ data: mockBuild });
104
- mockGetBuildStructure.mockResolvedValue({
105
- data: { topLevelComponentsWithChildren: {} },
106
- });
107
- vi.mocked(SpinniesManager.hasActiveSpinners).mockReturnValue(true);
108
- pollBuildStatus(12345, 'my-project', 456, null, true);
109
- // Wait for polling to complete
110
- vi.mocked(SpinniesManager.hasActiveSpinners).mockReturnValue(true);
111
- await vi.runOnlyPendingTimersAsync();
112
- // Check that SpinniesManager.succeed was called with correct SUCCESS message
113
- expect(SpinniesManager.succeed).toHaveBeenCalledWith(expect.any(String), expect.objectContaining({
114
- text: `Built ${chalk.bold('my-project')} #456`,
115
- }));
116
- });
117
- it('logs correct FAIL message when build fails', async () => {
118
- const mockBuild = {
119
- buildId: 789,
120
- status: 'FAILURE',
121
- subbuildStatuses: [],
122
- enqueuedAt: '2023-01-01T00:00:00Z',
123
- startedAt: '2023-01-01T00:01:00Z',
124
- finishedAt: '2023-01-01T00:05:00Z',
125
- portalId: 12345,
126
- projectName: 'failed-project',
127
- // @ts-expect-error - Testing with minimal Build object, non-essential fields omitted
128
- activitySource: undefined,
129
- // @ts-expect-error - Testing with minimal Build object, non-essential fields omitted
130
- createdAt: undefined,
131
- // @ts-expect-error - Testing with minimal Build object, non-essential fields omitted
132
- deployableState: undefined,
133
- // @ts-expect-error - Testing failed build without deploy locator
134
- deployStatusTaskLocator: undefined,
135
- source: 'HUBSPOT_USER',
136
- isAutoDeployEnabled: false,
137
- autoDeployId: 0,
138
- };
139
- mockGetBuildStatus.mockResolvedValue({ data: mockBuild });
140
- mockGetBuildStructure.mockResolvedValue({
141
- data: { topLevelComponentsWithChildren: {} },
142
- });
143
- vi.mocked(SpinniesManager.hasActiveSpinners).mockReturnValue(true);
144
- pollBuildStatus(12345, 'failed-project', 789, null, true);
145
- // Wait for polling to complete
146
- await vi.runOnlyPendingTimersAsync();
147
- // Check that SpinniesManager.fail was called with correct FAIL message
148
- expect(SpinniesManager.fail).toHaveBeenCalledWith(expect.any(String), expect.objectContaining({
149
- text: `Failed to build ${chalk.bold('failed-project')} #789`,
150
- }));
151
- });
152
- it('logs correct SUBTASK_FAIL message with proper parameter order', async () => {
153
- const mockBuild = {
154
- buildId: 999,
155
- status: 'FAILURE',
156
- subbuildStatuses: [
157
- {
158
- id: 'sub-1',
159
- buildName: 'api-component',
160
- buildType: 'APP',
161
- status: 'FAILURE',
162
- visible: true,
163
- errorMessage: 'Build failed',
164
- standardError: null,
165
- finishedAt: '2023-01-01T00:05:00Z',
166
- rootPath: '/src',
167
- startedAt: '2023-01-01T00:01:00Z',
168
- },
169
- ],
170
- enqueuedAt: '2023-01-01T00:00:00Z',
171
- startedAt: '2023-01-01T00:01:00Z',
172
- finishedAt: '2023-01-01T00:05:00Z',
173
- portalId: 12345,
174
- projectName: 'test-project',
175
- // @ts-expect-error - Testing with minimal Build object, non-essential fields omitted
176
- activitySource: undefined,
177
- // @ts-expect-error - Testing with minimal Build object, non-essential fields omitted
178
- createdAt: undefined,
179
- // @ts-expect-error - Testing with minimal Build object, non-essential fields omitted
180
- deployableState: undefined,
181
- // @ts-expect-error - Testing failed build without deploy locator
182
- deployStatusTaskLocator: undefined,
183
- source: 'HUBSPOT_USER',
184
- isAutoDeployEnabled: false,
185
- autoDeployId: 0,
186
- };
187
- mockGetBuildStatus.mockResolvedValue({ data: mockBuild });
188
- mockGetBuildStructure.mockResolvedValue({
189
- data: { topLevelComponentsWithChildren: { 'sub-1': [] } },
190
- });
191
- vi.mocked(SpinniesManager.hasActiveSpinners).mockReturnValue(true);
192
- pollBuildStatus(12345, 'test-project', 999, null, false);
193
- // Wait for polling to complete
194
- await vi.runOnlyPendingTimersAsync();
195
- // Verify SUBTASK_FAIL message has correct parameter order (name first, buildId second)
196
- // The message should be: "Build #999 failed because there was a problem\nbuilding api-component"
197
- expect(uiLogger.log).toHaveBeenCalledWith(expect.stringContaining('Build #999 failed because there was a problem'));
198
- expect(uiLogger.log).toHaveBeenCalledWith(expect.stringContaining(`building ${chalk.bold('api-component')}`));
199
- });
200
- });
201
- describe('pollDeployStatus', () => {
202
- it('logs correct INITIALIZE message when deploy starts', async () => {
203
- const mockDeploy = {
204
- deployId: 123,
205
- buildId: 100,
206
- status: 'SUCCESS',
207
- subdeployStatuses: [],
208
- enqueuedAt: '2023-01-01T00:00:00Z',
209
- startedAt: '2023-01-01T00:01:00Z',
210
- finishedAt: '2023-01-01T00:05:00Z',
211
- portalId: 12345,
212
- projectName: 'test-project',
213
- userId: 456,
214
- source: 'HUBSPOT_USER',
215
- };
216
- mockGetDeployStatus.mockResolvedValue({ data: mockDeploy });
217
- mockGetDeployStructure.mockResolvedValue({
218
- data: { topLevelComponentsWithChildren: {} },
219
- });
220
- pollDeployStatus(12345, 'test-project', 123, 100, true);
221
- // Wait for initial async setup to complete
222
- await vi.waitFor(() => {
223
- expect(SpinniesManager.update).toHaveBeenCalled();
224
- });
225
- // Check that SpinniesManager.update was called with correct INITIALIZE message
226
- expect(SpinniesManager.update).toHaveBeenCalledWith(expect.any(String), expect.objectContaining({
227
- text: expect.stringContaining(`Deploying build #100 in ${chalk.bold('test-project')}`),
228
- }));
229
- // Complete the polling
230
- vi.mocked(SpinniesManager.hasActiveSpinners).mockReturnValue(true);
231
- await vi.runOnlyPendingTimersAsync();
232
- });
233
- it('logs correct SUCCESS message when deploy completes', async () => {
234
- const mockDeploy = {
235
- deployId: 456,
236
- buildId: 200,
237
- status: 'SUCCESS',
238
- subdeployStatuses: [],
239
- enqueuedAt: '2023-01-01T00:00:00Z',
240
- startedAt: '2023-01-01T00:01:00Z',
241
- finishedAt: '2023-01-01T00:05:00Z',
242
- portalId: 12345,
243
- projectName: 'my-project',
244
- userId: 456,
245
- source: 'HUBSPOT_USER',
246
- };
247
- mockGetDeployStatus.mockResolvedValue({ data: mockDeploy });
248
- mockGetDeployStructure.mockResolvedValue({
249
- data: { topLevelComponentsWithChildren: {} },
250
- });
251
- vi.mocked(SpinniesManager.hasActiveSpinners).mockReturnValue(true);
252
- pollDeployStatus(12345, 'my-project', 456, 200, true);
253
- // Wait for polling to complete
254
- await vi.runOnlyPendingTimersAsync();
255
- // Check that SpinniesManager.succeed was called with correct SUCCESS message
256
- expect(SpinniesManager.succeed).toHaveBeenCalledWith(expect.any(String), expect.objectContaining({
257
- text: `Deployed build #200 in ${chalk.bold('my-project')}`,
258
- }));
259
- });
260
- it('logs correct FAIL message when deploy fails', async () => {
261
- const mockDeploy = {
262
- deployId: 789,
263
- buildId: 300,
264
- status: 'FAILURE',
265
- subdeployStatuses: [],
266
- enqueuedAt: '2023-01-01T00:00:00Z',
267
- startedAt: '2023-01-01T00:01:00Z',
268
- finishedAt: '2023-01-01T00:05:00Z',
269
- portalId: 12345,
270
- projectName: 'failed-project',
271
- userId: 456,
272
- source: 'HUBSPOT_USER',
273
- };
274
- mockGetDeployStatus.mockResolvedValue({ data: mockDeploy });
275
- mockGetDeployStructure.mockResolvedValue({
276
- data: { topLevelComponentsWithChildren: {} },
277
- });
278
- vi.mocked(SpinniesManager.hasActiveSpinners).mockReturnValue(true);
279
- pollDeployStatus(12345, 'failed-project', 789, 300, true);
280
- // Wait for polling to complete
281
- await vi.runOnlyPendingTimersAsync();
282
- // Check that SpinniesManager.fail was called with correct FAIL message
283
- expect(SpinniesManager.fail).toHaveBeenCalledWith(expect.any(String), expect.objectContaining({
284
- text: `Failed to deploy build #300 in ${chalk.bold('failed-project')}`,
285
- }));
286
- });
287
- it('logs correct SUBTASK_FAIL message with proper parameter order', async () => {
288
- const mockDeploy = {
289
- deployId: 888,
290
- buildId: 999,
291
- status: 'FAILURE',
292
- subdeployStatuses: [
293
- {
294
- id: 'sub-1',
295
- deployName: 'api-component',
296
- deployType: 'APP',
297
- status: 'FAILURE',
298
- visible: true,
299
- errorMessage: 'Deploy failed',
300
- standardError: null,
301
- action: 'DEPLOY',
302
- finishedAt: '2023-01-01T00:05:00Z',
303
- startedAt: '2023-01-01T00:01:00Z',
304
- },
305
- ],
306
- enqueuedAt: '2023-01-01T00:00:00Z',
307
- startedAt: '2023-01-01T00:01:00Z',
308
- finishedAt: '2023-01-01T00:05:00Z',
309
- portalId: 12345,
310
- projectName: 'test-project',
311
- userId: 456,
312
- source: 'HUBSPOT_USER',
313
- };
314
- mockGetDeployStatus.mockResolvedValue({ data: mockDeploy });
315
- mockGetDeployStructure.mockResolvedValue({
316
- data: { topLevelComponentsWithChildren: { 'sub-1': [] } },
317
- });
318
- vi.mocked(SpinniesManager.hasActiveSpinners).mockReturnValue(true);
319
- pollDeployStatus(12345, 'test-project', 888, 999, false);
320
- // Wait for polling to complete
321
- await vi.runOnlyPendingTimersAsync();
322
- // Verify SUBTASK_FAIL message has correct parameter order (name first, deployedBuildId second)
323
- // The message should be: "Deploy for build #999 failed because there was a\nproblem deploying api-component"
324
- expect(uiLogger.log).toHaveBeenCalledWith(expect.stringContaining('Deploy for build #999 failed because there was a'));
325
- expect(uiLogger.log).toHaveBeenCalledWith(expect.stringContaining(`deploying ${chalk.bold('api-component')}`));
326
- });
327
- });
328
- });
@@ -1 +0,0 @@
1
- export {};
@@ -1,114 +0,0 @@
1
- import { fetchAppMetadataBySourceId } from '@hubspot/local-dev-lib/api/appsDev';
2
- import { getProjectInfo } from '../projectInfo.js';
3
- import { getProjectDetailUrl } from '../urls.js';
4
- vi.mock('@hubspot/local-dev-lib/api/appsDev');
5
- vi.mock('../urls');
6
- vi.mock('../../errorHandlers/index.js');
7
- const mockedFetchAppMetadataBySourceId = vi.mocked(fetchAppMetadataBySourceId);
8
- const mockedGetProjectDetailUrl = vi.mocked(getProjectDetailUrl);
9
- const mockProject = {
10
- id: 42,
11
- name: 'my-project',
12
- deployedBuild: {
13
- buildId: 7,
14
- isAutoDeployEnabled: true,
15
- subbuildStatuses: [
16
- {
17
- buildName: 'my-app',
18
- buildType: 'APPLICATION',
19
- },
20
- {
21
- buildName: 'card-one',
22
- buildType: 'APP_CARD',
23
- userDefinedId: 'card-one-uid',
24
- },
25
- {
26
- buildName: 'func-one',
27
- buildType: 'SERVERLESS_FUNCTION',
28
- },
29
- ],
30
- },
31
- };
32
- const mockAppMetadata = {
33
- name: 'My App',
34
- id: 99,
35
- authType: 'OAUTH',
36
- distributionType: 'PRIVATE',
37
- };
38
- describe('lib/projects/projectInfo', () => {
39
- beforeEach(() => {
40
- mockedGetProjectDetailUrl.mockReturnValue('https://app.hubspot.com/project/my-project');
41
- mockedFetchAppMetadataBySourceId.mockResolvedValue({
42
- data: mockAppMetadata,
43
- });
44
- });
45
- describe('getProjectInfo', () => {
46
- it('should return project metadata', async () => {
47
- const result = await getProjectInfo(mockProject, '2025.2', 100);
48
- expect(result.projectName).toEqual('my-project');
49
- expect(result.platformVersion).toEqual('2025.2');
50
- expect(result.projectId).toEqual(42);
51
- expect(result.deployedBuildId).toEqual(7);
52
- expect(result.autoDeployEnabled).toEqual(true);
53
- });
54
- it('should include projectUrl when available', async () => {
55
- const result = await getProjectInfo(mockProject, '2025.2', 100);
56
- expect(result.projectUrl).toEqual('https://app.hubspot.com/project/my-project');
57
- });
58
- it('should not include projectUrl when getProjectDetailUrl returns undefined', async () => {
59
- mockedGetProjectDetailUrl.mockReturnValue(undefined);
60
- const result = await getProjectInfo(mockProject, '2025.2', 100);
61
- expect(result.projectUrl).toBeUndefined();
62
- });
63
- it('should fetch and include app metadata for APPLICATION subbuild', async () => {
64
- const result = await getProjectInfo(mockProject, '2025.2', 100);
65
- expect(mockedFetchAppMetadataBySourceId).toHaveBeenCalledWith(42, 'my-app', 100);
66
- expect(result.app).toEqual({
67
- name: 'My App',
68
- id: 99,
69
- uid: 'my-app',
70
- authType: 'OAUTH',
71
- distributionType: 'PRIVATE',
72
- });
73
- });
74
- it('should gracefully handle app metadata fetch failure', async () => {
75
- mockedFetchAppMetadataBySourceId.mockRejectedValue(new Error('App fetch failed'));
76
- const result = await getProjectInfo(mockProject, '2025.2', 100);
77
- expect(result.app).toBeUndefined();
78
- });
79
- it('should not fetch app metadata when no APPLICATION subbuild exists', async () => {
80
- const projectWithoutApp = {
81
- ...mockProject,
82
- deployedBuild: {
83
- ...mockProject.deployedBuild,
84
- subbuildStatuses: [
85
- {
86
- buildName: 'card-one',
87
- buildType: 'APP_CARD',
88
- userDefinedId: 'card-one-uid',
89
- },
90
- ],
91
- },
92
- };
93
- const result = await getProjectInfo(projectWithoutApp, '2025.2', 100);
94
- expect(mockedFetchAppMetadataBySourceId).not.toHaveBeenCalled();
95
- expect(result.app).toBeUndefined();
96
- });
97
- it('should use userDefinedId for component uid when available', async () => {
98
- const result = await getProjectInfo(mockProject, '2025.2', 100);
99
- const cardComponent = result.components.find(c => c.type === 'APP_CARD');
100
- expect(cardComponent?.uid).toEqual('card-one-uid');
101
- });
102
- it('should fall back to buildName when userDefinedId is not present', async () => {
103
- const result = await getProjectInfo(mockProject, '2025.2', 100);
104
- const funcComponent = result.components.find(c => c.type === 'SERVERLESS_FUNCTION');
105
- expect(funcComponent?.uid).toEqual('func-one');
106
- });
107
- it('should exclude APPLICATION subbuild from components list', async () => {
108
- const result = await getProjectInfo(mockProject, '2025.2', 100);
109
- const appComponent = result.components.find(c => c.type === 'APPLICATION');
110
- expect(appComponent).toBeUndefined();
111
- expect(result.components).toHaveLength(2);
112
- });
113
- });
114
- });
@@ -1 +0,0 @@
1
- export {};