@hubspot/cli 7.7.21-experimental.0 → 7.7.21-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 (570) hide show
  1. package/api/__tests__/migrate.test.js +29 -27
  2. package/api/migrate.js +22 -14
  3. package/bin/cli.js +101 -92
  4. package/bin/hs +2 -2
  5. package/bin/hscms +2 -2
  6. package/bin/silenceErrors.js +2 -1
  7. package/commands/__tests__/account.test.js +34 -29
  8. package/commands/__tests__/auth.test.js +16 -11
  9. package/commands/__tests__/cms.test.js +20 -15
  10. package/commands/__tests__/config.test.js +19 -14
  11. package/commands/__tests__/create.test.js +15 -10
  12. package/commands/__tests__/customObject.test.js +19 -14
  13. package/commands/__tests__/doctor.test.js +48 -43
  14. package/commands/__tests__/feedback.test.js +45 -7
  15. package/commands/__tests__/fetch.test.js +28 -29
  16. package/commands/__tests__/filemanager.test.js +19 -14
  17. package/commands/__tests__/function.test.js +21 -16
  18. package/commands/__tests__/getStarted.test.js +50 -55
  19. package/commands/__tests__/hubdb.test.js +22 -17
  20. package/commands/__tests__/init.test.js +17 -12
  21. package/commands/__tests__/lint.test.js +18 -13
  22. package/commands/__tests__/list.test.js +23 -18
  23. package/commands/__tests__/logs.test.js +27 -28
  24. package/commands/__tests__/mcp.test.js +19 -14
  25. package/commands/__tests__/mv.test.js +52 -14
  26. package/commands/__tests__/open.test.js +51 -13
  27. package/commands/__tests__/project.test.js +49 -44
  28. package/commands/__tests__/remove.test.js +51 -13
  29. package/commands/__tests__/sandbox.test.js +19 -14
  30. package/commands/__tests__/secret.test.js +21 -16
  31. package/commands/__tests__/testAccount.test.js +21 -16
  32. package/commands/__tests__/theme.test.js +20 -15
  33. package/commands/account/__tests__/auth.test.js +16 -11
  34. package/commands/account/__tests__/clean.test.js +17 -12
  35. package/commands/account/__tests__/createOverride.test.js +15 -10
  36. package/commands/account/__tests__/info.test.js +16 -11
  37. package/commands/account/__tests__/list.test.js +16 -11
  38. package/commands/account/__tests__/remove.test.js +18 -13
  39. package/commands/account/__tests__/removeOverride.js +13 -8
  40. package/commands/account/__tests__/rename.test.js +20 -15
  41. package/commands/account/__tests__/use.test.js +15 -10
  42. package/commands/account/auth.d.ts +1 -1
  43. package/commands/account/auth.js +67 -65
  44. package/commands/account/clean.d.ts +1 -1
  45. package/commands/account/clean.js +60 -55
  46. package/commands/account/createOverride.d.ts +1 -1
  47. package/commands/account/createOverride.js +57 -52
  48. package/commands/account/info.d.ts +1 -1
  49. package/commands/account/info.js +35 -33
  50. package/commands/account/list.d.ts +1 -1
  51. package/commands/account/list.js +45 -43
  52. package/commands/account/remove.d.ts +1 -1
  53. package/commands/account/remove.js +42 -37
  54. package/commands/account/removeOverride.d.ts +1 -1
  55. package/commands/account/removeOverride.js +43 -38
  56. package/commands/account/rename.d.ts +1 -1
  57. package/commands/account/rename.js +20 -18
  58. package/commands/account/use.d.ts +1 -1
  59. package/commands/account/use.js +31 -29
  60. package/commands/account.d.ts +1 -1
  61. package/commands/account.js +28 -23
  62. package/commands/app/__tests__/install.test.js +52 -0
  63. package/commands/app/__tests__/migrate.test.js +34 -29
  64. package/commands/app/install.d.ts +8 -0
  65. package/commands/app/install.js +127 -0
  66. package/commands/app/migrate.d.ts +2 -2
  67. package/commands/app/migrate.js +43 -40
  68. package/commands/app/secret/__tests__/add.test.js +11 -6
  69. package/commands/app/secret/__tests__/delete.test.js +11 -6
  70. package/commands/app/secret/__tests__/list.test.js +11 -6
  71. package/commands/app/secret/__tests__/update.test.js +11 -6
  72. package/commands/app/secret/add.d.ts +1 -1
  73. package/commands/app/secret/add.js +30 -28
  74. package/commands/app/secret/delete.d.ts +1 -1
  75. package/commands/app/secret/delete.js +36 -34
  76. package/commands/app/secret/list.d.ts +1 -1
  77. package/commands/app/secret/list.js +27 -25
  78. package/commands/app/secret/update.d.ts +1 -1
  79. package/commands/app/secret/update.js +34 -32
  80. package/commands/app/secret.d.ts +1 -1
  81. package/commands/app/secret.js +17 -12
  82. package/commands/app.d.ts +1 -1
  83. package/commands/app.js +16 -6
  84. package/commands/auth.d.ts +1 -1
  85. package/commands/auth.js +72 -70
  86. package/commands/cms/convertFields.d.ts +1 -1
  87. package/commands/cms/convertFields.js +39 -34
  88. package/commands/cms/getReactModule.d.ts +1 -1
  89. package/commands/cms/getReactModule.js +37 -32
  90. package/commands/cms/lighthouseScore.d.ts +1 -1
  91. package/commands/cms/lighthouseScore.js +72 -67
  92. package/commands/cms.d.ts +1 -1
  93. package/commands/cms.js +16 -11
  94. package/commands/completion.d.ts +1 -1
  95. package/commands/completion.js +15 -10
  96. package/commands/config/migrate.d.ts +1 -1
  97. package/commands/config/migrate.js +32 -27
  98. package/commands/config/set.d.ts +1 -1
  99. package/commands/config/set.js +25 -23
  100. package/commands/config.d.ts +1 -1
  101. package/commands/config.js +13 -8
  102. package/commands/create/api-sample.d.ts +1 -1
  103. package/commands/create/api-sample.js +33 -28
  104. package/commands/create/app.d.ts +1 -1
  105. package/commands/create/app.js +5 -3
  106. package/commands/create/function.d.ts +1 -1
  107. package/commands/create/function.js +11 -9
  108. package/commands/create/index.d.ts +1 -1
  109. package/commands/create/index.js +24 -19
  110. package/commands/create/module.d.ts +1 -1
  111. package/commands/create/module.js +14 -12
  112. package/commands/create/react-app.d.ts +1 -1
  113. package/commands/create/react-app.js +5 -3
  114. package/commands/create/template.d.ts +1 -1
  115. package/commands/create/template.js +14 -12
  116. package/commands/create/vue-app.d.ts +1 -1
  117. package/commands/create/vue-app.js +5 -3
  118. package/commands/create/webpack-serverless.d.ts +1 -1
  119. package/commands/create/webpack-serverless.js +5 -3
  120. package/commands/create/website-theme.d.ts +1 -1
  121. package/commands/create/website-theme.js +7 -5
  122. package/commands/create.d.ts +2 -2
  123. package/commands/create.js +35 -30
  124. package/commands/customObject/__tests__/create.test.js +18 -13
  125. package/commands/customObject/__tests__/schema.test.js +23 -18
  126. package/commands/customObject/create.d.ts +1 -1
  127. package/commands/customObject/create.js +30 -28
  128. package/commands/customObject/schema/__tests__/create.test.js +18 -13
  129. package/commands/customObject/schema/__tests__/delete.test.js +18 -13
  130. package/commands/customObject/schema/__tests__/fetch-all.test.js +18 -13
  131. package/commands/customObject/schema/__tests__/fetch.test.js +18 -13
  132. package/commands/customObject/schema/__tests__/list.test.js +18 -13
  133. package/commands/customObject/schema/__tests__/update.test.js +18 -13
  134. package/commands/customObject/schema/create.d.ts +1 -1
  135. package/commands/customObject/schema/create.js +30 -28
  136. package/commands/customObject/schema/delete.d.ts +1 -1
  137. package/commands/customObject/schema/delete.js +26 -24
  138. package/commands/customObject/schema/fetch-all.d.ts +1 -1
  139. package/commands/customObject/schema/fetch-all.js +24 -22
  140. package/commands/customObject/schema/fetch.d.ts +1 -1
  141. package/commands/customObject/schema/fetch.js +26 -24
  142. package/commands/customObject/schema/list.d.ts +1 -1
  143. package/commands/customObject/schema/list.js +15 -13
  144. package/commands/customObject/schema/update.d.ts +1 -1
  145. package/commands/customObject/schema/update.js +34 -32
  146. package/commands/customObject/schema.d.ts +1 -1
  147. package/commands/customObject/schema.js +22 -17
  148. package/commands/customObject.d.ts +1 -1
  149. package/commands/customObject.js +18 -13
  150. package/commands/doctor.d.ts +1 -1
  151. package/commands/doctor.js +33 -28
  152. package/commands/feedback.d.ts +1 -1
  153. package/commands/feedback.js +24 -19
  154. package/commands/fetch.d.ts +1 -1
  155. package/commands/fetch.js +30 -28
  156. package/commands/filemanager/__tests__/fetch.test.js +22 -17
  157. package/commands/filemanager/__tests__/upload.test.js +20 -15
  158. package/commands/filemanager/fetch.d.ts +1 -1
  159. package/commands/filemanager/fetch.js +25 -23
  160. package/commands/filemanager/upload.d.ts +1 -1
  161. package/commands/filemanager/upload.js +44 -39
  162. package/commands/filemanager.d.ts +1 -1
  163. package/commands/filemanager.js +13 -8
  164. package/commands/function/deploy.d.ts +1 -1
  165. package/commands/function/deploy.js +40 -35
  166. package/commands/function/list.d.ts +1 -1
  167. package/commands/function/list.js +29 -24
  168. package/commands/function/server.d.ts +1 -1
  169. package/commands/function/server.js +17 -15
  170. package/commands/function.d.ts +1 -1
  171. package/commands/function.js +18 -12
  172. package/commands/getStarted.d.ts +1 -1
  173. package/commands/getStarted.js +131 -140
  174. package/commands/hubdb/__tests__/clear.test.js +18 -13
  175. package/commands/hubdb/__tests__/create.test.js +18 -13
  176. package/commands/hubdb/__tests__/delete.test.js +18 -13
  177. package/commands/hubdb/__tests__/fetch.test.js +18 -13
  178. package/commands/hubdb/__tests__/list.test.js +28 -23
  179. package/commands/hubdb/clear.d.ts +1 -1
  180. package/commands/hubdb/clear.js +22 -20
  181. package/commands/hubdb/create.d.ts +1 -1
  182. package/commands/hubdb/create.js +35 -30
  183. package/commands/hubdb/delete.d.ts +1 -1
  184. package/commands/hubdb/delete.js +26 -24
  185. package/commands/hubdb/fetch.d.ts +1 -1
  186. package/commands/hubdb/fetch.js +19 -17
  187. package/commands/hubdb/list.d.ts +1 -1
  188. package/commands/hubdb/list.js +35 -33
  189. package/commands/hubdb.d.ts +1 -1
  190. package/commands/hubdb.js +24 -18
  191. package/commands/init.d.ts +1 -1
  192. package/commands/init.js +88 -83
  193. package/commands/lint.d.ts +1 -1
  194. package/commands/lint.js +26 -24
  195. package/commands/list.d.ts +1 -1
  196. package/commands/list.js +37 -32
  197. package/commands/logs.d.ts +1 -1
  198. package/commands/logs.js +37 -35
  199. package/commands/mcp/__tests__/setup.test.js +12 -7
  200. package/commands/mcp/__tests__/start.test.js +12 -7
  201. package/commands/mcp/setup.d.ts +1 -1
  202. package/commands/mcp/setup.js +20 -17
  203. package/commands/mcp/start.d.ts +5 -2
  204. package/commands/mcp/start.js +41 -31
  205. package/commands/mcp.d.ts +1 -1
  206. package/commands/mcp.js +12 -7
  207. package/commands/module/marketplace-validate.d.ts +1 -1
  208. package/commands/module/marketplace-validate.js +26 -21
  209. package/commands/module.d.ts +1 -1
  210. package/commands/module.js +13 -7
  211. package/commands/mv.d.ts +1 -1
  212. package/commands/mv.js +22 -20
  213. package/commands/open.d.ts +1 -1
  214. package/commands/open.js +21 -19
  215. package/commands/project/__tests__/add.test.js +15 -10
  216. package/commands/project/__tests__/create.test.js +19 -14
  217. package/commands/project/__tests__/deploy.test.js +143 -103
  218. package/commands/project/__tests__/devUnifiedFlow.test.js +157 -148
  219. package/commands/project/__tests__/download.test.js +19 -14
  220. package/commands/project/__tests__/installDeps.test.js +70 -32
  221. package/commands/project/__tests__/listBuilds.test.js +19 -14
  222. package/commands/project/__tests__/logs.test.js +94 -56
  223. package/commands/project/__tests__/migrate.test.js +30 -25
  224. package/commands/project/__tests__/migrateApp.test.js +22 -17
  225. package/commands/project/__tests__/open.test.js +21 -16
  226. package/commands/project/__tests__/profile.test.js +19 -14
  227. package/commands/project/__tests__/upload.test.js +23 -18
  228. package/commands/project/__tests__/watch.test.js +19 -14
  229. package/commands/project/add.d.ts +1 -1
  230. package/commands/project/add.js +36 -34
  231. package/commands/project/cloneApp.d.ts +1 -1
  232. package/commands/project/cloneApp.js +72 -67
  233. package/commands/project/create.d.ts +2 -2
  234. package/commands/project/create.js +68 -63
  235. package/commands/project/deploy.d.ts +3 -2
  236. package/commands/project/deploy.js +102 -91
  237. package/commands/project/dev/deprecatedFlow.d.ts +2 -2
  238. package/commands/project/dev/deprecatedFlow.js +58 -52
  239. package/commands/project/dev/index.d.ts +1 -1
  240. package/commands/project/dev/index.js +47 -44
  241. package/commands/project/dev/unifiedFlow.d.ts +3 -3
  242. package/commands/project/dev/unifiedFlow.js +74 -67
  243. package/commands/project/download.d.ts +1 -1
  244. package/commands/project/download.js +40 -35
  245. package/commands/project/installDeps.d.ts +1 -1
  246. package/commands/project/installDeps.js +34 -29
  247. package/commands/project/listBuilds.d.ts +1 -1
  248. package/commands/project/listBuilds.js +45 -40
  249. package/commands/project/logs.d.ts +1 -1
  250. package/commands/project/logs.js +54 -52
  251. package/commands/project/migrate.d.ts +1 -1
  252. package/commands/project/migrate.js +26 -24
  253. package/commands/project/migrateApp.d.ts +2 -2
  254. package/commands/project/migrateApp.js +20 -18
  255. package/commands/project/open.d.ts +1 -1
  256. package/commands/project/open.js +30 -25
  257. package/commands/project/profile/add.d.ts +1 -1
  258. package/commands/project/profile/add.js +73 -68
  259. package/commands/project/profile/delete.d.ts +1 -1
  260. package/commands/project/profile/delete.js +56 -51
  261. package/commands/project/profile.d.ts +1 -1
  262. package/commands/project/profile.js +14 -9
  263. package/commands/project/upload.d.ts +1 -1
  264. package/commands/project/upload.js +55 -50
  265. package/commands/project/validate.d.ts +1 -1
  266. package/commands/project/validate.js +40 -35
  267. package/commands/project/watch.d.ts +1 -1
  268. package/commands/project/watch.js +61 -59
  269. package/commands/project.d.ts +1 -1
  270. package/commands/project.js +43 -38
  271. package/commands/remove.d.ts +1 -1
  272. package/commands/remove.js +17 -15
  273. package/commands/sandbox/__tests__/create.test.js +20 -15
  274. package/commands/sandbox/__tests__/delete.test.js +20 -15
  275. package/commands/sandbox/create.d.ts +1 -1
  276. package/commands/sandbox/create.js +69 -67
  277. package/commands/sandbox/delete.d.ts +1 -1
  278. package/commands/sandbox/delete.js +96 -94
  279. package/commands/sandbox.d.ts +1 -1
  280. package/commands/sandbox.js +14 -9
  281. package/commands/secret/__tests__/addSecret.test.js +18 -13
  282. package/commands/secret/__tests__/deleteSecret.test.js +18 -13
  283. package/commands/secret/__tests__/listSecret.test.js +18 -13
  284. package/commands/secret/__tests__/updateSecret.test.js +18 -13
  285. package/commands/secret/addSecret.d.ts +1 -1
  286. package/commands/secret/addSecret.js +28 -26
  287. package/commands/secret/deleteSecret.d.ts +1 -1
  288. package/commands/secret/deleteSecret.js +29 -27
  289. package/commands/secret/listSecret.d.ts +1 -1
  290. package/commands/secret/listSecret.js +21 -19
  291. package/commands/secret/updateSecret.d.ts +1 -1
  292. package/commands/secret/updateSecret.js +27 -25
  293. package/commands/secret.d.ts +1 -1
  294. package/commands/secret.js +18 -13
  295. package/commands/testAccount/__tests__/create.test.js +22 -17
  296. package/commands/testAccount/__tests__/createConfig.test.js +11 -9
  297. package/commands/testAccount/__tests__/delete.test.js +20 -15
  298. package/commands/testAccount/create.d.ts +1 -1
  299. package/commands/testAccount/create.js +57 -62
  300. package/commands/testAccount/createConfig.d.ts +1 -3
  301. package/commands/testAccount/createConfig.js +47 -43
  302. package/commands/testAccount/delete.d.ts +1 -1
  303. package/commands/testAccount/delete.js +19 -17
  304. package/commands/testAccount.d.ts +1 -1
  305. package/commands/testAccount.js +15 -10
  306. package/commands/theme/__tests__/generate-selectors.test.js +12 -7
  307. package/commands/theme/__tests__/marketplace-validate.test.js +19 -14
  308. package/commands/theme/__tests__/preview.test.js +17 -12
  309. package/commands/theme/generate-selectors.d.ts +1 -1
  310. package/commands/theme/generate-selectors.js +28 -23
  311. package/commands/theme/marketplace-validate.d.ts +1 -1
  312. package/commands/theme/marketplace-validate.js +24 -19
  313. package/commands/theme/preview.d.ts +1 -1
  314. package/commands/theme/preview.js +65 -60
  315. package/commands/theme.d.ts +1 -1
  316. package/commands/theme.js +16 -11
  317. package/commands/upload.d.ts +1 -1
  318. package/commands/upload.js +82 -77
  319. package/commands/watch.d.ts +1 -1
  320. package/commands/watch.js +51 -45
  321. package/lang/en.d.ts +62 -23
  322. package/lang/en.js +434 -389
  323. package/lang/en.lyaml +0 -26
  324. package/lib/__tests__/accountTypes.test.js +22 -20
  325. package/lib/__tests__/buildAccount.test.js +90 -27
  326. package/lib/__tests__/commonOpts.test.js +22 -20
  327. package/lib/__tests__/dependencyManagement.test.js +51 -46
  328. package/lib/__tests__/developerTestAccounts.test.js +62 -27
  329. package/lib/__tests__/hasFeature.test.js +8 -6
  330. package/lib/__tests__/npm.test.js +20 -15
  331. package/lib/__tests__/oauth.test.js +28 -23
  332. package/lib/__tests__/parsing.test.js +20 -18
  333. package/lib/__tests__/polling.test.js +26 -24
  334. package/lib/__tests__/process.test.js +19 -14
  335. package/lib/__tests__/projectProfiles.test.js +39 -34
  336. package/lib/__tests__/sandboxSync.test.js +35 -30
  337. package/lib/__tests__/sandboxes.test.js +31 -29
  338. package/lib/__tests__/serverlessLogs.test.js +13 -8
  339. package/lib/__tests__/usageTracking.test.js +42 -47
  340. package/lib/__tests__/validation.test.js +20 -18
  341. package/lib/__tests__/yargsUtils.test.js +41 -6
  342. package/lib/accountTypes.js +34 -24
  343. package/lib/app/__tests__/migrate.test.js +99 -94
  344. package/lib/app/__tests__/migrate_legacy.test.js +31 -29
  345. package/lib/app/migrate.d.ts +3 -3
  346. package/lib/app/migrate.js +145 -127
  347. package/lib/app/migrate_legacy.d.ts +1 -1
  348. package/lib/app/migrate_legacy.js +78 -72
  349. package/lib/app/urls.js +9 -5
  350. package/lib/buildAccount.d.ts +8 -2
  351. package/lib/buildAccount.js +119 -61
  352. package/lib/commonOpts.d.ts +1 -1
  353. package/lib/commonOpts.js +59 -42
  354. package/lib/configMigrate.js +38 -34
  355. package/lib/configOptions.js +40 -34
  356. package/lib/constants.js +34 -31
  357. package/lib/customObject.js +6 -2
  358. package/lib/dependencyManagement.js +45 -37
  359. package/lib/developerTestAccounts.d.ts +1 -1
  360. package/lib/developerTestAccounts.js +39 -34
  361. package/lib/doctor/Diagnosis.d.ts +1 -1
  362. package/lib/doctor/Diagnosis.js +29 -25
  363. package/lib/doctor/DiagnosticInfoBuilder.d.ts +1 -1
  364. package/lib/doctor/DiagnosticInfoBuilder.js +37 -30
  365. package/lib/doctor/Doctor.d.ts +1 -1
  366. package/lib/doctor/Doctor.js +101 -94
  367. package/lib/doctor/__tests__/Diagnosis.test.js +14 -9
  368. package/lib/doctor/__tests__/DiagnosticInfoBuilder.test.js +34 -29
  369. package/lib/doctor/__tests__/Doctor.test.js +26 -24
  370. package/lib/enums/exitCodes.js +4 -1
  371. package/lib/errorHandlers/index.js +41 -32
  372. package/lib/errorHandlers/suppressError.d.ts +1 -1
  373. package/lib/errorHandlers/suppressError.js +31 -28
  374. package/lib/filesystem.js +15 -8
  375. package/lib/generateSelectors.js +29 -18
  376. package/lib/hasFeature.d.ts +1 -1
  377. package/lib/hasFeature.js +6 -3
  378. package/lib/interpolation.js +18 -11
  379. package/lib/lang.d.ts +1 -1
  380. package/lib/lang.js +27 -22
  381. package/lib/links.js +24 -16
  382. package/lib/marketplaceValidate.js +39 -29
  383. package/lib/mcp/setup.js +105 -72
  384. package/lib/middleware/__test__/configMiddleware.test.js +55 -20
  385. package/lib/middleware/__test__/gitMiddleware.test.js +42 -7
  386. package/lib/middleware/__test__/notificationsMiddleware.test.js +4 -2
  387. package/lib/middleware/__test__/requestMiddleware.test.js +11 -6
  388. package/lib/middleware/__test__/utils.test.js +11 -9
  389. package/lib/middleware/__test__/yargsChecksMiddleware.test.js +44 -9
  390. package/lib/middleware/autoUpdateMiddleware.js +40 -33
  391. package/lib/middleware/configMiddleware.js +42 -36
  392. package/lib/middleware/fireAlarmMiddleware.js +18 -12
  393. package/lib/middleware/gitMiddleware.js +8 -5
  394. package/lib/middleware/notificationsMiddleware.js +23 -16
  395. package/lib/middleware/requestMiddleware.js +10 -4
  396. package/lib/middleware/utils.js +4 -1
  397. package/lib/middleware/yargsChecksMiddleware.js +13 -10
  398. package/lib/npm.js +23 -14
  399. package/lib/oauth.js +35 -29
  400. package/lib/parsing.js +6 -3
  401. package/lib/polling.js +15 -11
  402. package/lib/process.js +19 -11
  403. package/lib/projectProfiles.d.ts +2 -2
  404. package/lib/projectProfiles.js +42 -32
  405. package/lib/projects/ProjectLogsManager.js +21 -18
  406. package/lib/projects/__tests__/AppDevModeInterface.test.js +145 -140
  407. package/lib/projects/__tests__/LocalDevProcess.test.js +73 -68
  408. package/lib/projects/__tests__/LocalDevWebsocketServer.test.js +37 -32
  409. package/lib/projects/__tests__/ProjectLogsManager.test.js +58 -56
  410. package/lib/projects/__tests__/buildAndDeploy.test.js +9 -7
  411. package/lib/projects/__tests__/components.test.js +14 -9
  412. package/lib/projects/__tests__/projects.test.js +40 -35
  413. package/lib/projects/__tests__/structure.test.js +81 -43
  414. package/lib/projects/add/__tests__/legacyAddComponent.test.js +28 -26
  415. package/lib/projects/add/__tests__/v3AddComponent.test.js +30 -25
  416. package/lib/projects/add/legacyAddComponent.d.ts +1 -1
  417. package/lib/projects/add/legacyAddComponent.js +30 -24
  418. package/lib/projects/add/v3AddComponent.d.ts +1 -1
  419. package/lib/projects/add/v3AddComponent.js +42 -36
  420. package/lib/projects/buildAndDeploy.d.ts +1 -1
  421. package/lib/projects/buildAndDeploy.js +97 -88
  422. package/lib/projects/components.js +25 -19
  423. package/lib/projects/config.d.ts +1 -1
  424. package/lib/projects/config.js +41 -32
  425. package/lib/projects/create/__tests__/legacy.test.js +57 -22
  426. package/lib/projects/create/__tests__/v3.test.js +7 -5
  427. package/lib/projects/create/index.d.ts +3 -3
  428. package/lib/projects/create/index.js +22 -19
  429. package/lib/projects/create/legacy.d.ts +1 -1
  430. package/lib/projects/create/legacy.js +31 -25
  431. package/lib/projects/create/v3.d.ts +3 -3
  432. package/lib/projects/create/v3.js +59 -49
  433. package/lib/projects/ensureProjectExists.js +37 -31
  434. package/lib/projects/localDev/AppDevModeInterface.d.ts +3 -3
  435. package/lib/projects/localDev/AppDevModeInterface.js +60 -58
  436. package/lib/projects/localDev/DevServerManager.d.ts +1 -1
  437. package/lib/projects/localDev/DevServerManager.js +24 -24
  438. package/lib/projects/localDev/DevServerManagerV2.d.ts +2 -2
  439. package/lib/projects/localDev/DevServerManagerV2.js +20 -17
  440. package/lib/projects/localDev/LocalDevLogger.d.ts +1 -1
  441. package/lib/projects/localDev/LocalDevLogger.js +64 -59
  442. package/lib/projects/localDev/LocalDevManager.d.ts +1 -1
  443. package/lib/projects/localDev/LocalDevManager.js +111 -106
  444. package/lib/projects/localDev/LocalDevProcess.d.ts +4 -4
  445. package/lib/projects/localDev/LocalDevProcess.js +30 -25
  446. package/lib/projects/localDev/LocalDevState.d.ts +3 -3
  447. package/lib/projects/localDev/LocalDevState.js +5 -3
  448. package/lib/projects/localDev/LocalDevWatcher.d.ts +1 -1
  449. package/lib/projects/localDev/LocalDevWatcher.js +11 -6
  450. package/lib/projects/localDev/LocalDevWebsocketServer.d.ts +1 -1
  451. package/lib/projects/localDev/LocalDevWebsocketServer.js +27 -25
  452. package/lib/projects/localDev/helpers.d.ts +4 -4
  453. package/lib/projects/localDev/helpers.js +174 -156
  454. package/lib/projects/structure.d.ts +4 -4
  455. package/lib/projects/structure.js +78 -32
  456. package/lib/projects/ui.js +13 -10
  457. package/lib/projects/upload.d.ts +3 -2
  458. package/lib/projects/upload.js +65 -55
  459. package/lib/projects/urls.js +24 -14
  460. package/lib/projects/watch.d.ts +1 -1
  461. package/lib/projects/watch.js +54 -48
  462. package/lib/prompts/__tests__/downloadProjectPrompt.test.js +11 -9
  463. package/lib/prompts/__tests__/projectsLogsPrompt.test.js +16 -11
  464. package/lib/prompts/accountNamePrompt.d.ts +1 -1
  465. package/lib/prompts/accountNamePrompt.js +31 -26
  466. package/lib/prompts/accountsPrompt.js +15 -12
  467. package/lib/prompts/cmsFieldPrompt.js +19 -13
  468. package/lib/prompts/createApiSamplePrompt.d.ts +1 -1
  469. package/lib/prompts/createApiSamplePrompt.js +12 -9
  470. package/lib/prompts/createDeveloperTestAccountConfigPrompt.d.ts +11 -10
  471. package/lib/prompts/createDeveloperTestAccountConfigPrompt.js +88 -43
  472. package/lib/prompts/createFunctionPrompt.js +20 -17
  473. package/lib/prompts/createModulePrompt.js +15 -12
  474. package/lib/prompts/createTemplatePrompt.js +8 -5
  475. package/lib/prompts/downloadProjectPrompt.js +20 -17
  476. package/lib/prompts/installAppPrompt.js +26 -19
  477. package/lib/prompts/personalAccessKeyPrompt.d.ts +2 -2
  478. package/lib/prompts/personalAccessKeyPrompt.js +47 -40
  479. package/lib/prompts/previewPrompt.js +22 -15
  480. package/lib/prompts/projectAddPrompt.d.ts +1 -1
  481. package/lib/prompts/projectAddPrompt.js +18 -14
  482. package/lib/prompts/projectDevTargetAccountPrompt.d.ts +1 -1
  483. package/lib/prompts/projectDevTargetAccountPrompt.js +54 -48
  484. package/lib/prompts/projectNameAndDestPrompt.d.ts +1 -1
  485. package/lib/prompts/projectNameAndDestPrompt.js +29 -22
  486. package/lib/prompts/projectNamePrompt.js +14 -11
  487. package/lib/prompts/projectsLogsPrompt.js +8 -5
  488. package/lib/prompts/promptUtils.d.ts +1 -1
  489. package/lib/prompts/promptUtils.js +87 -70
  490. package/lib/prompts/sandboxesPrompt.d.ts +1 -1
  491. package/lib/prompts/sandboxesPrompt.js +30 -26
  492. package/lib/prompts/secretPrompt.js +15 -10
  493. package/lib/prompts/selectAppPrompt.js +14 -11
  494. package/lib/prompts/selectHubDBTablePrompt.js +30 -24
  495. package/lib/prompts/selectProjectTemplatePrompt.d.ts +1 -1
  496. package/lib/prompts/selectProjectTemplatePrompt.js +13 -10
  497. package/lib/prompts/selectPublicAppForMigrationPrompt.js +25 -22
  498. package/lib/prompts/setAsDefaultAccountPrompt.js +16 -13
  499. package/lib/prompts/uploadPrompt.js +17 -11
  500. package/lib/sandboxSync.d.ts +1 -1
  501. package/lib/sandboxSync.js +65 -58
  502. package/lib/sandboxes.d.ts +1 -1
  503. package/lib/sandboxes.js +76 -68
  504. package/lib/schema.js +23 -12
  505. package/lib/serverlessLogs.js +52 -45
  506. package/lib/testUtils.js +8 -4
  507. package/lib/ui/SpinniesManager.d.ts +1 -1
  508. package/lib/ui/SpinniesManager.js +34 -29
  509. package/lib/ui/boxen.js +14 -11
  510. package/lib/ui/git.js +20 -14
  511. package/lib/ui/index.js +74 -56
  512. package/lib/ui/logger.js +13 -10
  513. package/lib/ui/serverlessFunctionLogs.js +20 -14
  514. package/lib/ui/spinniesUtils.js +39 -24
  515. package/lib/ui/supportHyperlinks.js +6 -3
  516. package/lib/ui/supportsColor.js +17 -11
  517. package/lib/ui/table.js +13 -6
  518. package/lib/upload.js +21 -15
  519. package/lib/usageTracking.d.ts +11 -0
  520. package/lib/usageTracking.js +95 -95
  521. package/lib/utils/hasFlag.js +8 -2
  522. package/lib/validation.js +87 -48
  523. package/lib/yargsUtils.d.ts +1 -1
  524. package/lib/yargsUtils.js +16 -13
  525. package/mcp-server/server.js +8 -6
  526. package/mcp-server/tools/index.js +16 -13
  527. package/mcp-server/tools/project/AddFeatureToProject.d.ts +1 -1
  528. package/mcp-server/tools/project/AddFeatureToProject.js +41 -34
  529. package/mcp-server/tools/project/CreateProjectTool.d.ts +3 -3
  530. package/mcp-server/tools/project/CreateProjectTool.js +52 -45
  531. package/mcp-server/tools/project/DeployProject.d.ts +1 -1
  532. package/mcp-server/tools/project/DeployProject.js +24 -17
  533. package/mcp-server/tools/project/GuidedWalkthroughTool.d.ts +1 -1
  534. package/mcp-server/tools/project/GuidedWalkthroughTool.js +27 -20
  535. package/mcp-server/tools/project/UploadProjectTools.d.ts +1 -1
  536. package/mcp-server/tools/project/UploadProjectTools.js +21 -11
  537. package/mcp-server/tools/project/ValidateProjectTool.d.ts +1 -1
  538. package/mcp-server/tools/project/ValidateProjectTool.js +19 -12
  539. package/mcp-server/tools/project/__tests__/AddFeatureToProject.test.js +15 -12
  540. package/mcp-server/tools/project/__tests__/CreateProjectTool.test.js +16 -13
  541. package/mcp-server/tools/project/__tests__/DeployProject.test.js +9 -6
  542. package/mcp-server/tools/project/__tests__/GuidedWalkthroughTool.test.js +7 -4
  543. package/mcp-server/tools/project/__tests__/UploadProjectTools.test.js +7 -4
  544. package/mcp-server/tools/project/__tests__/ValidateProjectTool.test.js +7 -4
  545. package/mcp-server/tools/project/constants.js +9 -3
  546. package/mcp-server/types.js +5 -1
  547. package/mcp-server/utils/__tests__/command.test.js +11 -9
  548. package/mcp-server/utils/__tests__/project.test.js +26 -18
  549. package/mcp-server/utils/command.d.ts +1 -1
  550. package/mcp-server/utils/command.js +11 -4
  551. package/mcp-server/utils/content.d.ts +1 -1
  552. package/mcp-server/utils/content.js +6 -2
  553. package/mcp-server/utils/project.js +17 -8
  554. package/mcp-server/utils/toolUsageTracking.d.ts +1 -0
  555. package/mcp-server/utils/toolUsageTracking.js +25 -0
  556. package/package.json +13 -17
  557. package/types/{cms.d.ts → Cms.d.ts} +1 -1
  558. package/types/Cms.js +2 -0
  559. package/types/LocalDev.d.ts +4 -4
  560. package/types/LocalDev.js +2 -1
  561. package/types/ProjectComponents.d.ts +2 -2
  562. package/types/ProjectComponents.js +2 -1
  563. package/types/Projects.d.ts +1 -1
  564. package/types/Projects.js +5 -2
  565. package/types/Prompts.js +2 -1
  566. package/types/Sandboxes.js +2 -0
  567. package/types/Yargs.js +2 -1
  568. package/types/sandboxes.js +0 -1
  569. /package/{types/cms.js → commands/app/__tests__/install.test.d.ts} +0 -0
  570. /package/types/{sandboxes.d.ts → Sandboxes.d.ts} +0 -0
@@ -1,19 +1,57 @@
1
- import yargs from 'yargs';
2
- import path from 'path';
3
- import { logger } from '@hubspot/local-dev-lib/logger';
4
- import * as projectUtils from '../../../lib/projects/config.js';
5
- import { EXIT_CODES } from '../../../lib/enums/exitCodes.js';
6
- import { trackCommandUsage } from '../../../lib/usageTracking.js';
7
- import * as dependencyManagement from '../../../lib/dependencyManagement.js';
8
- import * as promptUtils from '../../../lib/prompts/promptUtils.js';
9
- import projectInstallDepsCommand from '../installDeps.js';
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ const yargs_1 = __importDefault(require("yargs"));
40
+ const path_1 = __importDefault(require("path"));
41
+ const logger_1 = require("@hubspot/local-dev-lib/logger");
42
+ const projectUtils = __importStar(require("../../../lib/projects/config"));
43
+ const exitCodes_1 = require("../../../lib/enums/exitCodes");
44
+ const usageTracking_1 = require("../../../lib/usageTracking");
45
+ const dependencyManagement = __importStar(require("../../../lib/dependencyManagement"));
46
+ const promptUtils = __importStar(require("../../../lib/prompts/promptUtils"));
47
+ const installDeps_1 = __importDefault(require("../installDeps"));
10
48
  vi.mock('@hubspot/local-dev-lib/logger');
11
49
  vi.mock('../../../lib/projects/config');
12
50
  vi.mock('../../../lib/dependencyManagement');
13
51
  vi.mock('../../../lib/prompts/promptUtils');
14
52
  vi.mock('../../../lib/usageTracking');
15
53
  vi.mock('../../../lib/commonOpts');
16
- const exampleSpy = vi.spyOn(yargs, 'example');
54
+ const exampleSpy = vi.spyOn(yargs_1.default, 'example');
17
55
  const processExitSpy = vi.spyOn(process, 'exit');
18
56
  const getProjectConfigSpy = vi.spyOn(projectUtils, 'getProjectConfig');
19
57
  const promptUserSpy = vi.spyOn(promptUtils, 'promptUser');
@@ -22,17 +60,17 @@ const installPackagesSpy = vi.spyOn(dependencyManagement, 'installPackages');
22
60
  describe('commands/project/installDeps', () => {
23
61
  describe('command', () => {
24
62
  it('should have the correct command structure', () => {
25
- expect(projectInstallDepsCommand.command).toEqual('install-deps [packages..]');
63
+ expect(installDeps_1.default.command).toEqual('install-deps [packages..]');
26
64
  });
27
65
  });
28
66
  describe('describe', () => {
29
67
  it('should not provide a description', () => {
30
- expect(projectInstallDepsCommand.describe).toEqual(expect.stringMatching(/Install the dependencies for your project, or add a dependency to a subcomponent of a project/));
68
+ expect(installDeps_1.default.describe).toEqual(expect.stringMatching(/Install the dependencies for your project, or add a dependency to a subcomponent of a project/));
31
69
  });
32
70
  });
33
71
  describe('builder', () => {
34
72
  it('should provide examples', () => {
35
- projectInstallDepsCommand.builder(yargs);
73
+ installDeps_1.default.builder(yargs_1.default);
36
74
  expect(exampleSpy).toHaveBeenCalledTimes(1);
37
75
  });
38
76
  });
@@ -46,42 +84,42 @@ describe('commands/project/installDeps', () => {
46
84
  processExitSpy.mockImplementation(() => { });
47
85
  });
48
86
  it('should track the command usage', async () => {
49
- await projectInstallDepsCommand.handler(args);
50
- expect(trackCommandUsage).toHaveBeenCalledTimes(1);
51
- expect(trackCommandUsage).toHaveBeenCalledWith('project-install-deps', undefined, args.derivedAccountId);
87
+ await installDeps_1.default.handler(args);
88
+ expect(usageTracking_1.trackCommandUsage).toHaveBeenCalledTimes(1);
89
+ expect(usageTracking_1.trackCommandUsage).toHaveBeenCalledWith('project-install-deps', undefined, args.derivedAccountId);
52
90
  });
53
91
  it('should handle exceptions', async () => {
54
92
  const error = new Error('Something went super wrong');
55
93
  getProjectConfigSpy.mockImplementationOnce(() => {
56
94
  throw error;
57
95
  });
58
- await projectInstallDepsCommand.handler(args);
59
- expect(logger.error).toHaveBeenCalledTimes(1);
60
- expect(logger.error).toHaveBeenCalledWith(error.message);
96
+ await installDeps_1.default.handler(args);
97
+ expect(logger_1.logger.error).toHaveBeenCalledTimes(1);
98
+ expect(logger_1.logger.error).toHaveBeenCalledWith(error.message);
61
99
  expect(processExitSpy).toHaveBeenCalledTimes(1);
62
- expect(processExitSpy).toHaveBeenCalledWith(EXIT_CODES.ERROR);
100
+ expect(processExitSpy).toHaveBeenCalledWith(exitCodes_1.EXIT_CODES.ERROR);
63
101
  });
64
102
  it('should log an error and exit when the project config is not defined', async () => {
65
103
  getProjectConfigSpy.mockResolvedValueOnce({
66
104
  projectDir: null,
67
105
  projectConfig: null,
68
106
  });
69
- await projectInstallDepsCommand.handler(args);
70
- expect(logger.error).toHaveBeenCalledTimes(1);
71
- expect(logger.error).toHaveBeenCalledWith('No project detected. Run this command from a project directory.');
107
+ await installDeps_1.default.handler(args);
108
+ expect(logger_1.logger.error).toHaveBeenCalledTimes(1);
109
+ expect(logger_1.logger.error).toHaveBeenCalledWith('No project detected. Run this command from a project directory.');
72
110
  expect(processExitSpy).toHaveBeenCalledTimes(1);
73
- expect(processExitSpy).toHaveBeenCalledWith(EXIT_CODES.ERROR);
111
+ expect(processExitSpy).toHaveBeenCalledWith(exitCodes_1.EXIT_CODES.ERROR);
74
112
  });
75
113
  it('should log an error and exit when the project config has no projectDir', async () => {
76
114
  getProjectConfigSpy.mockResolvedValueOnce({
77
115
  projectDir: null,
78
116
  projectConfig: null,
79
117
  });
80
- await projectInstallDepsCommand.handler(args);
81
- expect(logger.error).toHaveBeenCalledTimes(1);
82
- expect(logger.error).toHaveBeenCalledWith('No project detected. Run this command from a project directory.');
118
+ await installDeps_1.default.handler(args);
119
+ expect(logger_1.logger.error).toHaveBeenCalledTimes(1);
120
+ expect(logger_1.logger.error).toHaveBeenCalledWith('No project detected. Run this command from a project directory.');
83
121
  expect(processExitSpy).toHaveBeenCalledTimes(1);
84
- expect(processExitSpy).toHaveBeenCalledWith(EXIT_CODES.ERROR);
122
+ expect(processExitSpy).toHaveBeenCalledWith(exitCodes_1.EXIT_CODES.ERROR);
85
123
  });
86
124
  it('should prompt for input when packages is defined', async () => {
87
125
  const projectDir = 'src';
@@ -89,14 +127,14 @@ describe('commands/project/installDeps', () => {
89
127
  projectDir,
90
128
  projectConfig: null,
91
129
  });
92
- const packageJsonLocation = path.join(projectDir, 'directory1');
130
+ const packageJsonLocation = path_1.default.join(projectDir, 'directory1');
93
131
  promptUserSpy.mockResolvedValueOnce({
94
132
  selectedInstallLocations: packageJsonLocation,
95
133
  });
96
134
  getProjectPackageJsonLocationsSpy.mockResolvedValue([
97
135
  packageJsonLocation,
98
136
  ]);
99
- await projectInstallDepsCommand.handler({
137
+ await installDeps_1.default.handler({
100
138
  ...args,
101
139
  packages: ['@hubspot/local-dev-lib'],
102
140
  });
@@ -120,7 +158,7 @@ describe('commands/project/installDeps', () => {
120
158
  });
121
159
  it('should call installPackages correctly', async () => {
122
160
  const projectDir = 'src';
123
- const packageJsonLocation = path.join(projectDir, 'directory1');
161
+ const packageJsonLocation = path_1.default.join(projectDir, 'directory1');
124
162
  const installLocations = [packageJsonLocation];
125
163
  const packages = ['@hubspot/local-dev-lib'];
126
164
  getProjectConfigSpy.mockResolvedValue({
@@ -131,7 +169,7 @@ describe('commands/project/installDeps', () => {
131
169
  selectedInstallLocations: packageJsonLocation,
132
170
  });
133
171
  getProjectPackageJsonLocationsSpy.mockResolvedValue(installLocations);
134
- await projectInstallDepsCommand.handler({ ...args, packages });
172
+ await installDeps_1.default.handler({ ...args, packages });
135
173
  expect(installPackagesSpy).toHaveBeenCalledTimes(1);
136
174
  expect(installPackagesSpy).toHaveBeenCalledWith({
137
175
  packages,
@@ -1,33 +1,38 @@
1
- import yargs from 'yargs';
2
- import { addAccountOptions, addConfigOptions, addUseEnvironmentOptions, } from '../../../lib/commonOpts.js';
3
- import projectListBuildsCommand from '../listBuilds.js';
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const yargs_1 = __importDefault(require("yargs"));
7
+ const commonOpts_1 = require("../../../lib/commonOpts");
8
+ const listBuilds_1 = __importDefault(require("../listBuilds"));
4
9
  vi.mock('../../../lib/commonOpts');
5
10
  describe('commands/project/listBuilds', () => {
6
- const yargsMock = yargs;
11
+ const yargsMock = yargs_1.default;
7
12
  describe('command', () => {
8
13
  it('should have the correct command structure', () => {
9
- expect(projectListBuildsCommand.command).toEqual('list-builds');
14
+ expect(listBuilds_1.default.command).toEqual('list-builds');
10
15
  });
11
16
  });
12
17
  describe('describe', () => {
13
18
  it('should provide a description', () => {
14
- expect(projectListBuildsCommand.describe).toBeDefined();
19
+ expect(listBuilds_1.default.describe).toBeDefined();
15
20
  });
16
21
  });
17
22
  describe('builder', () => {
18
23
  it('should support the correct options', () => {
19
- projectListBuildsCommand.builder(yargsMock);
20
- expect(addAccountOptions).toHaveBeenCalledTimes(1);
21
- expect(addAccountOptions).toHaveBeenCalledWith(yargsMock);
22
- expect(addConfigOptions).toHaveBeenCalledTimes(1);
23
- expect(addConfigOptions).toHaveBeenCalledWith(yargsMock);
24
- expect(addUseEnvironmentOptions).toHaveBeenCalledTimes(1);
25
- expect(addUseEnvironmentOptions).toHaveBeenCalledWith(yargsMock);
24
+ listBuilds_1.default.builder(yargsMock);
25
+ expect(commonOpts_1.addAccountOptions).toHaveBeenCalledTimes(1);
26
+ expect(commonOpts_1.addAccountOptions).toHaveBeenCalledWith(yargsMock);
27
+ expect(commonOpts_1.addConfigOptions).toHaveBeenCalledTimes(1);
28
+ expect(commonOpts_1.addConfigOptions).toHaveBeenCalledWith(yargsMock);
29
+ expect(commonOpts_1.addUseEnvironmentOptions).toHaveBeenCalledTimes(1);
30
+ expect(commonOpts_1.addUseEnvironmentOptions).toHaveBeenCalledWith(yargsMock);
26
31
  });
27
32
  it('should define project and limit options', () => {
28
33
  const optionsSpy = vi.spyOn(yargsMock, 'options');
29
34
  const exampleSpy = vi.spyOn(yargsMock, 'example');
30
- projectListBuildsCommand.builder(yargsMock);
35
+ listBuilds_1.default.builder(yargsMock);
31
36
  expect(optionsSpy).toHaveBeenCalledWith(expect.objectContaining({
32
37
  project: expect.any(Object),
33
38
  limit: expect.any(Object),
@@ -1,13 +1,51 @@
1
- import yargs from 'yargs';
2
- import { addUseEnvironmentOptions } from '../../../lib/commonOpts.js';
3
- import { ProjectLogsManager } from '../../../lib/projects/ProjectLogsManager.js';
4
- import * as projectLogsPrompt from '../../../lib/prompts/projectsLogsPrompt.js';
5
- import * as table from '../../../lib/ui/table.js';
6
- import { trackCommandUsage } from '../../../lib/usageTracking.js';
7
- import * as ui from '../../../lib/ui/index.js';
8
- import { EXIT_CODES } from '../../../lib/enums/exitCodes.js';
9
- import { logError } from '../../../lib/errorHandlers/index.js';
10
- import projectLogsCommand from '../logs.js';
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ const yargs_1 = __importDefault(require("yargs"));
40
+ const commonOpts_1 = require("../../../lib/commonOpts");
41
+ const ProjectLogsManager_1 = require("../../../lib/projects/ProjectLogsManager");
42
+ const projectLogsPrompt = __importStar(require("../../../lib/prompts/projectsLogsPrompt"));
43
+ const table = __importStar(require("../../../lib/ui/table"));
44
+ const usageTracking_1 = require("../../../lib/usageTracking");
45
+ const ui = __importStar(require("../../../lib/ui"));
46
+ const exitCodes_1 = require("../../../lib/enums/exitCodes");
47
+ const errorHandlers_1 = require("../../../lib/errorHandlers");
48
+ const logs_1 = __importDefault(require("../logs"));
11
49
  vi.mock('@hubspot/local-dev-lib/logger');
12
50
  vi.mock('../../../lib/commonOpts');
13
51
  vi.mock('../../../lib/usageTracking');
@@ -20,20 +58,20 @@ const uiLinkSpy = vi.spyOn(ui, 'uiLink');
20
58
  const uiLineSpy = vi.spyOn(ui, 'uiLine');
21
59
  const processExitSpy = vi.spyOn(process, 'exit');
22
60
  const projectLogsPromptSpy = vi.spyOn(projectLogsPrompt, 'projectLogsPrompt');
23
- const projectLogsManagerSetFunctionSpy = vi.spyOn(ProjectLogsManager, 'setFunction');
24
- const projectLogsManagerGetFunctionNamesSpy = vi.spyOn(ProjectLogsManager, 'getFunctionNames');
25
- const projectLogsManagerInitSpy = vi.spyOn(ProjectLogsManager, 'init');
61
+ const projectLogsManagerSetFunctionSpy = vi.spyOn(ProjectLogsManager_1.ProjectLogsManager, 'setFunction');
62
+ const projectLogsManagerGetFunctionNamesSpy = vi.spyOn(ProjectLogsManager_1.ProjectLogsManager, 'getFunctionNames');
63
+ const projectLogsManagerInitSpy = vi.spyOn(ProjectLogsManager_1.ProjectLogsManager, 'init');
26
64
  const getTableHeaderSpy = vi.spyOn(table, 'getTableHeader');
27
65
  const getTableContentsSpy = vi.spyOn(table, 'getTableContents');
28
66
  const optionsSpy = vi
29
- .spyOn(yargs, 'options')
30
- .mockReturnValue(yargs);
67
+ .spyOn(yargs_1.default, 'options')
68
+ .mockReturnValue(yargs_1.default);
31
69
  const conflictsSpy = vi
32
- .spyOn(yargs, 'conflicts')
33
- .mockReturnValue(yargs);
70
+ .spyOn(yargs_1.default, 'conflicts')
71
+ .mockReturnValue(yargs_1.default);
34
72
  const exampleSpy = vi
35
- .spyOn(yargs, 'example')
36
- .mockReturnValue(yargs);
73
+ .spyOn(yargs_1.default, 'example')
74
+ .mockReturnValue(yargs_1.default);
37
75
  describe('commands/project/logs', () => {
38
76
  beforeEach(() => {
39
77
  // @ts-expect-error Doesn't match the actual signature because then the linter complains about unused variables
@@ -41,20 +79,20 @@ describe('commands/project/logs', () => {
41
79
  });
42
80
  describe('command', () => {
43
81
  it('should have the correct command structure', async () => {
44
- expect(projectLogsCommand.command).toEqual('logs');
82
+ expect(logs_1.default.command).toEqual('logs');
45
83
  });
46
84
  });
47
85
  describe('describe', () => {
48
86
  it('should contain the beta tag', () => {
49
- expect(projectLogsCommand.describe).toContain('[BETA]');
87
+ expect(logs_1.default.describe).toContain('[BETA]');
50
88
  });
51
89
  it('should provide a description', () => {
52
- expect(projectLogsCommand.describe).toBeDefined();
90
+ expect(logs_1.default.describe).toBeDefined();
53
91
  });
54
92
  });
55
93
  describe('builder', () => {
56
94
  it('should support the correct options', () => {
57
- projectLogsCommand.builder(yargs);
95
+ logs_1.default.builder(yargs_1.default);
58
96
  expect(optionsSpy).toHaveBeenCalledTimes(1);
59
97
  expect(optionsSpy).toHaveBeenCalledWith({
60
98
  function: expect.objectContaining({
@@ -77,16 +115,16 @@ describe('commands/project/logs', () => {
77
115
  type: 'number',
78
116
  }),
79
117
  });
80
- expect(addUseEnvironmentOptions).toHaveBeenCalledTimes(1);
81
- expect(addUseEnvironmentOptions).toHaveBeenCalledWith(yargs);
118
+ expect(commonOpts_1.addUseEnvironmentOptions).toHaveBeenCalledTimes(1);
119
+ expect(commonOpts_1.addUseEnvironmentOptions).toHaveBeenCalledWith(yargs_1.default);
82
120
  });
83
121
  it('should set the correct conflicts', () => {
84
- projectLogsCommand.builder(yargs);
122
+ logs_1.default.builder(yargs_1.default);
85
123
  expect(conflictsSpy).toHaveBeenCalledTimes(1);
86
124
  expect(conflictsSpy).toHaveBeenCalledWith('tail', 'limit');
87
125
  });
88
126
  it('should provide examples', () => {
89
- projectLogsCommand.builder(yargs);
127
+ logs_1.default.builder(yargs_1.default);
90
128
  expect(exampleSpy).toHaveBeenCalledTimes(1);
91
129
  });
92
130
  });
@@ -99,19 +137,19 @@ describe('commands/project/logs', () => {
99
137
  projectLogsPromptSpy.mockResolvedValue({ functionName: 'foo' });
100
138
  });
101
139
  it('should track the command usage', async () => {
102
- await projectLogsCommand.handler(options);
103
- expect(trackCommandUsage).toHaveBeenCalledTimes(1);
104
- expect(trackCommandUsage).toHaveBeenCalledWith('project-logs', undefined, options.derivedAccountId);
140
+ await logs_1.default.handler(options);
141
+ expect(usageTracking_1.trackCommandUsage).toHaveBeenCalledTimes(1);
142
+ expect(usageTracking_1.trackCommandUsage).toHaveBeenCalledWith('project-logs', undefined, options.derivedAccountId);
105
143
  });
106
144
  it('should initialize the ProjectLogsManager', async () => {
107
- await projectLogsCommand.handler(options);
145
+ await logs_1.default.handler(options);
108
146
  expect(projectLogsManagerInitSpy).toHaveBeenCalledTimes(1);
109
147
  expect(projectLogsManagerInitSpy).toHaveBeenCalledWith(options.derivedAccountId);
110
148
  });
111
149
  it('should prompt the user for input', async () => {
112
150
  const functionNames = ['function1', 'function2'];
113
151
  projectLogsManagerGetFunctionNamesSpy.mockReturnValue(functionNames);
114
- await projectLogsCommand.handler(options);
152
+ await logs_1.default.handler(options);
115
153
  expect(projectLogsPromptSpy).toHaveBeenCalledTimes(1);
116
154
  expect(projectLogsPromptSpy).toHaveBeenCalledWith({
117
155
  functionChoices: functionNames,
@@ -127,7 +165,7 @@ describe('commands/project/logs', () => {
127
165
  projectLogsPromptSpy.mockResolvedValue({
128
166
  functionName: selectedFunction,
129
167
  });
130
- await projectLogsCommand.handler(options);
168
+ await logs_1.default.handler(options);
131
169
  expect(projectLogsManagerSetFunctionSpy).toHaveBeenCalledTimes(1);
132
170
  expect(projectLogsManagerSetFunctionSpy).toHaveBeenCalledWith(selectedFunction);
133
171
  });
@@ -140,12 +178,12 @@ describe('commands/project/logs', () => {
140
178
  });
141
179
  const tableHeaders = ['Header 1', 'Header 2'];
142
180
  getTableHeaderSpy.mockReturnValue(tableHeaders);
143
- ProjectLogsManager.isPublicFunction = true;
144
- ProjectLogsManager.accountId = options.derivedAccountId;
145
- ProjectLogsManager.functionName = selectedFunction;
146
- ProjectLogsManager.endpointName = 'my-endpoint';
147
- ProjectLogsManager.appId = 123456;
148
- await projectLogsCommand.handler(options);
181
+ ProjectLogsManager_1.ProjectLogsManager.isPublicFunction = true;
182
+ ProjectLogsManager_1.ProjectLogsManager.accountId = options.derivedAccountId;
183
+ ProjectLogsManager_1.ProjectLogsManager.functionName = selectedFunction;
184
+ ProjectLogsManager_1.ProjectLogsManager.endpointName = 'my-endpoint';
185
+ ProjectLogsManager_1.ProjectLogsManager.appId = 123456;
186
+ await logs_1.default.handler(options);
149
187
  expect(getTableHeaderSpy).toHaveBeenCalledTimes(1);
150
188
  expect(getTableHeaderSpy).toHaveBeenCalledWith([
151
189
  'Account',
@@ -156,13 +194,13 @@ describe('commands/project/logs', () => {
156
194
  expect(getTableContentsSpy).toHaveBeenCalledWith([
157
195
  tableHeaders,
158
196
  [
159
- ProjectLogsManager.accountId,
160
- ProjectLogsManager.functionName,
161
- ProjectLogsManager.endpointName,
197
+ ProjectLogsManager_1.ProjectLogsManager.accountId,
198
+ ProjectLogsManager_1.ProjectLogsManager.functionName,
199
+ ProjectLogsManager_1.ProjectLogsManager.endpointName,
162
200
  ],
163
201
  ], { border: { bodyLeft: ' ' } });
164
202
  expect(uiLinkSpy).toHaveBeenCalledTimes(1);
165
- expect(uiLinkSpy).toHaveBeenCalledWith('View function logs in HubSpot', `https://app.hubspot.com/private-apps/${options.derivedAccountId}/${ProjectLogsManager.appId}/logs/serverlessGatewayExecution?path=${ProjectLogsManager.endpointName}`);
203
+ expect(uiLinkSpy).toHaveBeenCalledWith('View function logs in HubSpot', `https://app.hubspot.com/private-apps/${options.derivedAccountId}/${ProjectLogsManager_1.ProjectLogsManager.appId}/logs/serverlessGatewayExecution?path=${ProjectLogsManager_1.ProjectLogsManager.endpointName}`);
166
204
  expect(uiLineSpy).toHaveBeenCalledTimes(1);
167
205
  });
168
206
  it('should log private functions correctly', async () => {
@@ -174,19 +212,19 @@ describe('commands/project/logs', () => {
174
212
  });
175
213
  const tableHeaders = ['Header 1', 'Header 2'];
176
214
  getTableHeaderSpy.mockReturnValue(tableHeaders);
177
- ProjectLogsManager.isPublicFunction = false;
178
- ProjectLogsManager.accountId = options.derivedAccountId;
179
- ProjectLogsManager.functionName = selectedFunction;
180
- ProjectLogsManager.appId = 456789;
181
- await projectLogsCommand.handler(options);
215
+ ProjectLogsManager_1.ProjectLogsManager.isPublicFunction = false;
216
+ ProjectLogsManager_1.ProjectLogsManager.accountId = options.derivedAccountId;
217
+ ProjectLogsManager_1.ProjectLogsManager.functionName = selectedFunction;
218
+ ProjectLogsManager_1.ProjectLogsManager.appId = 456789;
219
+ await logs_1.default.handler(options);
182
220
  expect(getTableHeaderSpy).toHaveBeenCalledTimes(1);
183
221
  expect(getTableHeaderSpy).toHaveBeenCalledWith(['Account', 'Function']);
184
222
  expect(getTableContentsSpy).toHaveBeenCalledTimes(1);
185
223
  expect(getTableContentsSpy).toHaveBeenCalledWith([
186
224
  tableHeaders,
187
- [ProjectLogsManager.accountId, ProjectLogsManager.functionName],
225
+ [ProjectLogsManager_1.ProjectLogsManager.accountId, ProjectLogsManager_1.ProjectLogsManager.functionName],
188
226
  ], { border: { bodyLeft: ' ' } });
189
- expect(uiLinkSpy).toHaveBeenCalledWith('View function logs in HubSpot', `https://app.hubspot.com/private-apps/${options.derivedAccountId}/${ProjectLogsManager.appId}/logs/crm?serverlessFunction=${selectedFunction}`);
227
+ expect(uiLinkSpy).toHaveBeenCalledWith('View function logs in HubSpot', `https://app.hubspot.com/private-apps/${options.derivedAccountId}/${ProjectLogsManager_1.ProjectLogsManager.appId}/logs/crm?serverlessFunction=${selectedFunction}`);
190
228
  expect(uiLineSpy).toHaveBeenCalledTimes(1);
191
229
  });
192
230
  it('should handle errors correctly', async () => {
@@ -194,15 +232,15 @@ describe('commands/project/logs', () => {
194
232
  projectLogsManagerInitSpy.mockImplementation(() => {
195
233
  throw error;
196
234
  });
197
- ProjectLogsManager.projectName = 'Super cool project';
198
- await projectLogsCommand.handler(options);
199
- expect(logError).toHaveBeenCalledTimes(1);
200
- expect(logError).toHaveBeenCalledWith(error, {
235
+ ProjectLogsManager_1.ProjectLogsManager.projectName = 'Super cool project';
236
+ await logs_1.default.handler(options);
237
+ expect(errorHandlers_1.logError).toHaveBeenCalledTimes(1);
238
+ expect(errorHandlers_1.logError).toHaveBeenCalledWith(error, {
201
239
  accountId: options.derivedAccountId,
202
- projectName: ProjectLogsManager.projectName,
240
+ projectName: ProjectLogsManager_1.ProjectLogsManager.projectName,
203
241
  });
204
242
  expect(processExitSpy).toHaveBeenCalledTimes(1);
205
- expect(processExitSpy).toHaveBeenCalledWith(EXIT_CODES.ERROR);
243
+ expect(processExitSpy).toHaveBeenCalledWith(exitCodes_1.EXIT_CODES.ERROR);
206
244
  });
207
245
  });
208
246
  });
@@ -1,31 +1,36 @@
1
- import yargs from 'yargs';
2
- import { logger } from '@hubspot/local-dev-lib/logger';
3
- import { PLATFORM_VERSIONS } from '@hubspot/local-dev-lib/constants/projects';
4
- import migrateCommand from '../migrate.js';
5
- import { migrateApp2025_2 } from '../../../lib/app/migrate.js';
6
- import { getProjectConfig } from '../../../lib/projects/config.js';
7
- import { commands } from '../../../lang/en.js';
8
- import { uiBetaTag, uiCommandReference } from '../../../lib/ui/index.js';
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const yargs_1 = __importDefault(require("yargs"));
7
+ const logger_1 = require("@hubspot/local-dev-lib/logger");
8
+ const projects_1 = require("@hubspot/local-dev-lib/constants/projects");
9
+ const migrate_1 = __importDefault(require("../migrate"));
10
+ const migrate_2 = require("../../../lib/app/migrate");
11
+ const config_1 = require("../../../lib/projects/config");
12
+ const en_1 = require("../../../lang/en");
13
+ const ui_1 = require("../../../lib/ui");
9
14
  vi.mock('@hubspot/local-dev-lib/logger');
10
15
  vi.mock('../../../lib/app/migrate');
11
16
  vi.mock('../../../lib/projects/config');
12
17
  vi.mock('../../../lib/ui');
13
- const { v2025_2 } = PLATFORM_VERSIONS;
18
+ const { v2025_2 } = projects_1.PLATFORM_VERSIONS;
14
19
  describe('commands/project/migrate', () => {
15
- const yargsMock = yargs;
20
+ const yargsMock = yargs_1.default;
16
21
  const optionsSpy = vi.spyOn(yargsMock, 'option').mockReturnValue(yargsMock);
17
22
  // Mock the imported functions
18
- const migrateApp2025_2Mock = migrateApp2025_2;
19
- const getProjectConfigMock = getProjectConfig;
20
- const uiBetaTagMock = uiBetaTag;
21
- const uiCommandReferenceMock = uiCommandReference;
23
+ const migrateApp2025_2Mock = migrate_2.migrateApp2025_2;
24
+ const getProjectConfigMock = config_1.getProjectConfig;
25
+ const uiBetaTagMock = ui_1.uiBetaTag;
26
+ const uiCommandReferenceMock = ui_1.uiCommandReference;
22
27
  const mockExit = vi
23
28
  .spyOn(process, 'exit')
24
29
  .mockImplementation(() => undefined);
25
30
  beforeEach(() => {
26
31
  // Mock logger methods
27
- vi.spyOn(logger, 'log').mockImplementation(() => { });
28
- vi.spyOn(logger, 'error').mockImplementation(() => { });
32
+ vi.spyOn(logger_1.logger, 'log').mockImplementation(() => { });
33
+ vi.spyOn(logger_1.logger, 'error').mockImplementation(() => { });
29
34
  migrateApp2025_2Mock.mockResolvedValue(undefined);
30
35
  getProjectConfigMock.mockResolvedValue({
31
36
  projectConfig: { name: 'test-project' },
@@ -39,17 +44,17 @@ describe('commands/project/migrate', () => {
39
44
  });
40
45
  describe('command', () => {
41
46
  it('should have the correct command structure', () => {
42
- expect(migrateCommand.command).toEqual('migrate');
47
+ expect(migrate_1.default.command).toEqual('migrate');
43
48
  });
44
49
  });
45
50
  describe('describe', () => {
46
51
  it('should provide a description', () => {
47
- expect(migrateCommand.describe).toBe(undefined);
52
+ expect(migrate_1.default.describe).toBe(undefined);
48
53
  });
49
54
  });
50
55
  describe('builder', () => {
51
56
  it('should support the correct options', () => {
52
- migrateCommand.builder(yargsMock);
57
+ migrate_1.default.builder(yargsMock);
53
58
  expect(optionsSpy).toHaveBeenCalledWith('platform-version', {
54
59
  type: 'string',
55
60
  choices: [v2025_2],
@@ -74,13 +79,13 @@ describe('commands/project/migrate', () => {
74
79
  });
75
80
  it('should exit with error if no project config exists', async () => {
76
81
  getProjectConfigMock.mockResolvedValue({ projectConfig: null });
77
- await migrateCommand.handler(options);
78
- expect(logger.error).toHaveBeenCalledWith(commands.project.migrate.errors.noProjectConfig('command reference'));
82
+ await migrate_1.default.handler(options);
83
+ expect(logger_1.logger.error).toHaveBeenCalledWith(en_1.commands.project.migrate.errors.noProjectConfig('command reference'));
79
84
  expect(mockExit).toHaveBeenCalledWith(1);
80
85
  expect(mockExit).toHaveBeenCalledTimes(1);
81
86
  });
82
87
  it('should call migrateApp2025_2 with correct parameters', async () => {
83
- await migrateCommand.handler(options);
88
+ await migrate_1.default.handler(options);
84
89
  expect(migrateApp2025_2Mock).toHaveBeenCalledWith(123, {
85
90
  ...options,
86
91
  name: 'test-project',
@@ -91,11 +96,11 @@ describe('commands/project/migrate', () => {
91
96
  });
92
97
  it('should use unstable platform version when unstable flag is true', async () => {
93
98
  options.unstable = true;
94
- await migrateCommand.handler(options);
99
+ await migrate_1.default.handler(options);
95
100
  expect(migrateApp2025_2Mock).toHaveBeenCalledWith(123, {
96
101
  ...options,
97
102
  name: 'test-project',
98
- platformVersion: PLATFORM_VERSIONS.unstable,
103
+ platformVersion: projects_1.PLATFORM_VERSIONS.unstable,
99
104
  }, { projectConfig: { name: 'test-project' } });
100
105
  expect(mockExit).toHaveBeenCalledWith(0);
101
106
  expect(mockExit).toHaveBeenCalledTimes(1);
@@ -103,7 +108,7 @@ describe('commands/project/migrate', () => {
103
108
  it('should handle errors and exit with error code', async () => {
104
109
  const error = new Error('Test error');
105
110
  migrateApp2025_2Mock.mockRejectedValue(error);
106
- await migrateCommand.handler(options);
111
+ await migrate_1.default.handler(options);
107
112
  expect(mockExit).toHaveBeenCalledWith(1);
108
113
  expect(mockExit).toHaveBeenCalledTimes(1);
109
114
  });