@hubspot/cli 7.7.21-experimental.1 → 7.7.22-experimental.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (565) hide show
  1. package/api/__tests__/migrate.test.js +27 -29
  2. package/api/migrate.js +14 -22
  3. package/bin/cli.js +92 -97
  4. package/bin/hs +2 -2
  5. package/bin/hscms +2 -2
  6. package/bin/silenceErrors.js +1 -2
  7. package/commands/__tests__/account.test.js +29 -34
  8. package/commands/__tests__/auth.test.js +11 -16
  9. package/commands/__tests__/cms.test.js +15 -20
  10. package/commands/__tests__/config.test.js +14 -19
  11. package/commands/__tests__/create.test.js +10 -15
  12. package/commands/__tests__/customObject.test.js +14 -19
  13. package/commands/__tests__/doctor.test.js +43 -48
  14. package/commands/__tests__/feedback.test.js +7 -45
  15. package/commands/__tests__/fetch.test.js +29 -28
  16. package/commands/__tests__/filemanager.test.js +14 -19
  17. package/commands/__tests__/function.test.js +16 -21
  18. package/commands/__tests__/getStarted.test.js +45 -50
  19. package/commands/__tests__/hubdb.test.js +17 -22
  20. package/commands/__tests__/init.test.js +12 -17
  21. package/commands/__tests__/lint.test.js +13 -18
  22. package/commands/__tests__/list.test.js +18 -23
  23. package/commands/__tests__/logs.test.js +28 -27
  24. package/commands/__tests__/mcp.test.js +14 -19
  25. package/commands/__tests__/mv.test.js +14 -52
  26. package/commands/__tests__/open.test.js +13 -51
  27. package/commands/__tests__/project.test.js +44 -49
  28. package/commands/__tests__/remove.test.js +13 -51
  29. package/commands/__tests__/sandbox.test.js +14 -19
  30. package/commands/__tests__/secret.test.js +16 -21
  31. package/commands/__tests__/testAccount.test.js +16 -21
  32. package/commands/__tests__/theme.test.js +15 -20
  33. package/commands/account/__tests__/auth.test.js +11 -16
  34. package/commands/account/__tests__/clean.test.js +12 -17
  35. package/commands/account/__tests__/createOverride.test.js +10 -15
  36. package/commands/account/__tests__/info.test.js +11 -16
  37. package/commands/account/__tests__/list.test.js +11 -16
  38. package/commands/account/__tests__/remove.test.js +13 -18
  39. package/commands/account/__tests__/removeOverride.js +8 -13
  40. package/commands/account/__tests__/rename.test.js +15 -20
  41. package/commands/account/__tests__/use.test.js +10 -15
  42. package/commands/account/auth.d.ts +1 -1
  43. package/commands/account/auth.js +65 -67
  44. package/commands/account/clean.d.ts +1 -1
  45. package/commands/account/clean.js +55 -60
  46. package/commands/account/createOverride.d.ts +1 -1
  47. package/commands/account/createOverride.js +52 -57
  48. package/commands/account/info.d.ts +1 -1
  49. package/commands/account/info.js +33 -35
  50. package/commands/account/list.d.ts +1 -1
  51. package/commands/account/list.js +43 -45
  52. package/commands/account/remove.d.ts +1 -1
  53. package/commands/account/remove.js +37 -42
  54. package/commands/account/removeOverride.d.ts +1 -1
  55. package/commands/account/removeOverride.js +38 -43
  56. package/commands/account/rename.d.ts +1 -1
  57. package/commands/account/rename.js +18 -20
  58. package/commands/account/use.d.ts +1 -1
  59. package/commands/account/use.js +29 -31
  60. package/commands/account.d.ts +1 -1
  61. package/commands/account.js +23 -28
  62. package/commands/app/__tests__/migrate.test.js +29 -34
  63. package/commands/app/migrate.d.ts +2 -2
  64. package/commands/app/migrate.js +40 -43
  65. package/commands/app/secret/__tests__/add.test.js +6 -11
  66. package/commands/app/secret/__tests__/delete.test.js +6 -11
  67. package/commands/app/secret/__tests__/list.test.js +6 -11
  68. package/commands/app/secret/__tests__/update.test.js +6 -11
  69. package/commands/app/secret/add.d.ts +1 -1
  70. package/commands/app/secret/add.js +28 -30
  71. package/commands/app/secret/delete.d.ts +1 -1
  72. package/commands/app/secret/delete.js +34 -36
  73. package/commands/app/secret/list.d.ts +1 -1
  74. package/commands/app/secret/list.js +25 -27
  75. package/commands/app/secret/update.d.ts +1 -1
  76. package/commands/app/secret/update.js +32 -34
  77. package/commands/app/secret.d.ts +1 -1
  78. package/commands/app/secret.js +12 -17
  79. package/commands/app.d.ts +1 -1
  80. package/commands/app.js +6 -16
  81. package/commands/auth.d.ts +1 -1
  82. package/commands/auth.js +70 -72
  83. package/commands/cms/convertFields.d.ts +1 -1
  84. package/commands/cms/convertFields.js +34 -39
  85. package/commands/cms/getReactModule.d.ts +1 -1
  86. package/commands/cms/getReactModule.js +32 -37
  87. package/commands/cms/lighthouseScore.d.ts +1 -1
  88. package/commands/cms/lighthouseScore.js +67 -72
  89. package/commands/cms.d.ts +1 -1
  90. package/commands/cms.js +11 -16
  91. package/commands/completion.d.ts +1 -1
  92. package/commands/completion.js +10 -15
  93. package/commands/config/migrate.d.ts +1 -1
  94. package/commands/config/migrate.js +27 -32
  95. package/commands/config/set.d.ts +1 -1
  96. package/commands/config/set.js +23 -25
  97. package/commands/config.d.ts +1 -1
  98. package/commands/config.js +8 -13
  99. package/commands/create/api-sample.d.ts +1 -1
  100. package/commands/create/api-sample.js +28 -33
  101. package/commands/create/app.d.ts +1 -1
  102. package/commands/create/app.js +3 -5
  103. package/commands/create/function.d.ts +1 -1
  104. package/commands/create/function.js +9 -11
  105. package/commands/create/index.d.ts +1 -1
  106. package/commands/create/index.js +19 -24
  107. package/commands/create/module.d.ts +1 -1
  108. package/commands/create/module.js +12 -14
  109. package/commands/create/react-app.d.ts +1 -1
  110. package/commands/create/react-app.js +3 -5
  111. package/commands/create/template.d.ts +1 -1
  112. package/commands/create/template.js +12 -14
  113. package/commands/create/vue-app.d.ts +1 -1
  114. package/commands/create/vue-app.js +3 -5
  115. package/commands/create/webpack-serverless.d.ts +1 -1
  116. package/commands/create/webpack-serverless.js +3 -5
  117. package/commands/create/website-theme.d.ts +1 -1
  118. package/commands/create/website-theme.js +5 -7
  119. package/commands/create.d.ts +2 -2
  120. package/commands/create.js +30 -35
  121. package/commands/customObject/__tests__/create.test.js +13 -18
  122. package/commands/customObject/__tests__/schema.test.js +18 -23
  123. package/commands/customObject/create.d.ts +1 -1
  124. package/commands/customObject/create.js +28 -30
  125. package/commands/customObject/schema/__tests__/create.test.js +13 -18
  126. package/commands/customObject/schema/__tests__/delete.test.js +13 -18
  127. package/commands/customObject/schema/__tests__/fetch-all.test.js +13 -18
  128. package/commands/customObject/schema/__tests__/fetch.test.js +13 -18
  129. package/commands/customObject/schema/__tests__/list.test.js +13 -18
  130. package/commands/customObject/schema/__tests__/update.test.js +13 -18
  131. package/commands/customObject/schema/create.d.ts +1 -1
  132. package/commands/customObject/schema/create.js +28 -30
  133. package/commands/customObject/schema/delete.d.ts +1 -1
  134. package/commands/customObject/schema/delete.js +24 -26
  135. package/commands/customObject/schema/fetch-all.d.ts +1 -1
  136. package/commands/customObject/schema/fetch-all.js +22 -24
  137. package/commands/customObject/schema/fetch.d.ts +1 -1
  138. package/commands/customObject/schema/fetch.js +24 -26
  139. package/commands/customObject/schema/list.d.ts +1 -1
  140. package/commands/customObject/schema/list.js +13 -15
  141. package/commands/customObject/schema/update.d.ts +1 -1
  142. package/commands/customObject/schema/update.js +32 -34
  143. package/commands/customObject/schema.d.ts +1 -1
  144. package/commands/customObject/schema.js +17 -22
  145. package/commands/customObject.d.ts +1 -1
  146. package/commands/customObject.js +13 -18
  147. package/commands/doctor.d.ts +1 -1
  148. package/commands/doctor.js +28 -33
  149. package/commands/feedback.d.ts +1 -1
  150. package/commands/feedback.js +19 -24
  151. package/commands/fetch.d.ts +1 -1
  152. package/commands/fetch.js +28 -30
  153. package/commands/filemanager/__tests__/fetch.test.js +17 -22
  154. package/commands/filemanager/__tests__/upload.test.js +15 -20
  155. package/commands/filemanager/fetch.d.ts +1 -1
  156. package/commands/filemanager/fetch.js +23 -25
  157. package/commands/filemanager/upload.d.ts +1 -1
  158. package/commands/filemanager/upload.js +39 -44
  159. package/commands/filemanager.d.ts +1 -1
  160. package/commands/filemanager.js +8 -13
  161. package/commands/function/deploy.d.ts +1 -1
  162. package/commands/function/deploy.js +35 -40
  163. package/commands/function/list.d.ts +1 -1
  164. package/commands/function/list.js +24 -29
  165. package/commands/function/server.d.ts +1 -1
  166. package/commands/function/server.js +15 -17
  167. package/commands/function.d.ts +1 -1
  168. package/commands/function.js +12 -18
  169. package/commands/getStarted.d.ts +1 -1
  170. package/commands/getStarted.js +119 -125
  171. package/commands/hubdb/__tests__/clear.test.js +13 -18
  172. package/commands/hubdb/__tests__/create.test.js +13 -18
  173. package/commands/hubdb/__tests__/delete.test.js +13 -18
  174. package/commands/hubdb/__tests__/fetch.test.js +13 -18
  175. package/commands/hubdb/__tests__/list.test.js +23 -28
  176. package/commands/hubdb/clear.d.ts +1 -1
  177. package/commands/hubdb/clear.js +20 -22
  178. package/commands/hubdb/create.d.ts +1 -1
  179. package/commands/hubdb/create.js +30 -35
  180. package/commands/hubdb/delete.d.ts +1 -1
  181. package/commands/hubdb/delete.js +24 -26
  182. package/commands/hubdb/fetch.d.ts +1 -1
  183. package/commands/hubdb/fetch.js +17 -19
  184. package/commands/hubdb/list.d.ts +1 -1
  185. package/commands/hubdb/list.js +33 -35
  186. package/commands/hubdb.d.ts +1 -1
  187. package/commands/hubdb.js +18 -24
  188. package/commands/init.d.ts +1 -1
  189. package/commands/init.js +83 -88
  190. package/commands/lint.d.ts +1 -1
  191. package/commands/lint.js +24 -26
  192. package/commands/list.d.ts +1 -1
  193. package/commands/list.js +32 -37
  194. package/commands/logs.d.ts +1 -1
  195. package/commands/logs.js +35 -37
  196. package/commands/mcp/__tests__/setup.test.js +7 -12
  197. package/commands/mcp/__tests__/start.test.js +7 -12
  198. package/commands/mcp/setup.d.ts +1 -1
  199. package/commands/mcp/setup.js +17 -19
  200. package/commands/mcp/start.d.ts +1 -1
  201. package/commands/mcp/start.js +29 -34
  202. package/commands/mcp.d.ts +1 -1
  203. package/commands/mcp.js +7 -12
  204. package/commands/module/marketplace-validate.d.ts +1 -1
  205. package/commands/module/marketplace-validate.js +21 -26
  206. package/commands/module.d.ts +1 -1
  207. package/commands/module.js +7 -13
  208. package/commands/mv.d.ts +1 -1
  209. package/commands/mv.js +20 -22
  210. package/commands/open.d.ts +1 -1
  211. package/commands/open.js +19 -21
  212. package/commands/project/__tests__/add.test.js +10 -15
  213. package/commands/project/__tests__/create.test.js +14 -19
  214. package/commands/project/__tests__/deploy.test.js +96 -134
  215. package/commands/project/__tests__/devUnifiedFlow.test.js +133 -139
  216. package/commands/project/__tests__/download.test.js +14 -19
  217. package/commands/project/__tests__/installDeps.test.js +32 -70
  218. package/commands/project/__tests__/listBuilds.test.js +14 -19
  219. package/commands/project/__tests__/logs.test.js +56 -94
  220. package/commands/project/__tests__/migrate.test.js +25 -30
  221. package/commands/project/__tests__/migrateApp.test.js +17 -22
  222. package/commands/project/__tests__/open.test.js +16 -21
  223. package/commands/project/__tests__/profile.test.js +14 -19
  224. package/commands/project/__tests__/upload.test.js +18 -23
  225. package/commands/project/__tests__/watch.test.js +14 -19
  226. package/commands/project/add.d.ts +1 -1
  227. package/commands/project/add.js +34 -36
  228. package/commands/project/cloneApp.d.ts +1 -1
  229. package/commands/project/cloneApp.js +67 -72
  230. package/commands/project/create.d.ts +2 -2
  231. package/commands/project/create.js +63 -68
  232. package/commands/project/deploy.d.ts +1 -1
  233. package/commands/project/deploy.js +67 -69
  234. package/commands/project/dev/deprecatedFlow.d.ts +2 -2
  235. package/commands/project/dev/deprecatedFlow.js +52 -58
  236. package/commands/project/dev/index.d.ts +1 -1
  237. package/commands/project/dev/index.js +44 -47
  238. package/commands/project/dev/unifiedFlow.d.ts +3 -3
  239. package/commands/project/dev/unifiedFlow.js +62 -68
  240. package/commands/project/download.d.ts +1 -1
  241. package/commands/project/download.js +35 -40
  242. package/commands/project/installDeps.d.ts +1 -1
  243. package/commands/project/installDeps.js +29 -34
  244. package/commands/project/listBuilds.d.ts +1 -1
  245. package/commands/project/listBuilds.js +40 -45
  246. package/commands/project/logs.d.ts +1 -1
  247. package/commands/project/logs.js +52 -54
  248. package/commands/project/migrate.d.ts +1 -1
  249. package/commands/project/migrate.js +24 -26
  250. package/commands/project/migrateApp.d.ts +2 -2
  251. package/commands/project/migrateApp.js +18 -20
  252. package/commands/project/open.d.ts +1 -1
  253. package/commands/project/open.js +25 -30
  254. package/commands/project/profile/add.d.ts +1 -1
  255. package/commands/project/profile/add.js +68 -73
  256. package/commands/project/profile/delete.d.ts +1 -1
  257. package/commands/project/profile/delete.js +51 -56
  258. package/commands/project/profile.d.ts +1 -1
  259. package/commands/project/profile.js +9 -14
  260. package/commands/project/upload.d.ts +1 -1
  261. package/commands/project/upload.js +50 -55
  262. package/commands/project/validate.d.ts +1 -1
  263. package/commands/project/validate.js +35 -40
  264. package/commands/project/watch.d.ts +1 -1
  265. package/commands/project/watch.js +59 -61
  266. package/commands/project.d.ts +1 -1
  267. package/commands/project.js +38 -43
  268. package/commands/remove.d.ts +1 -1
  269. package/commands/remove.js +15 -17
  270. package/commands/sandbox/__tests__/create.test.js +15 -20
  271. package/commands/sandbox/__tests__/delete.test.js +15 -20
  272. package/commands/sandbox/create.d.ts +1 -1
  273. package/commands/sandbox/create.js +67 -69
  274. package/commands/sandbox/delete.d.ts +1 -1
  275. package/commands/sandbox/delete.js +94 -96
  276. package/commands/sandbox.d.ts +1 -1
  277. package/commands/sandbox.js +9 -14
  278. package/commands/secret/__tests__/addSecret.test.js +13 -18
  279. package/commands/secret/__tests__/deleteSecret.test.js +13 -18
  280. package/commands/secret/__tests__/listSecret.test.js +13 -18
  281. package/commands/secret/__tests__/updateSecret.test.js +13 -18
  282. package/commands/secret/addSecret.d.ts +1 -1
  283. package/commands/secret/addSecret.js +26 -28
  284. package/commands/secret/deleteSecret.d.ts +1 -1
  285. package/commands/secret/deleteSecret.js +27 -29
  286. package/commands/secret/listSecret.d.ts +1 -1
  287. package/commands/secret/listSecret.js +19 -21
  288. package/commands/secret/updateSecret.d.ts +1 -1
  289. package/commands/secret/updateSecret.js +25 -27
  290. package/commands/secret.d.ts +1 -1
  291. package/commands/secret.js +13 -18
  292. package/commands/testAccount/__tests__/create.test.js +17 -22
  293. package/commands/testAccount/__tests__/createConfig.test.js +6 -11
  294. package/commands/testAccount/__tests__/delete.test.js +15 -20
  295. package/commands/testAccount/create.d.ts +1 -1
  296. package/commands/testAccount/create.js +45 -53
  297. package/commands/testAccount/createConfig.d.ts +1 -1
  298. package/commands/testAccount/createConfig.js +36 -41
  299. package/commands/testAccount/delete.d.ts +1 -1
  300. package/commands/testAccount/delete.js +17 -19
  301. package/commands/testAccount.d.ts +1 -1
  302. package/commands/testAccount.js +10 -15
  303. package/commands/theme/__tests__/generate-selectors.test.js +7 -12
  304. package/commands/theme/__tests__/marketplace-validate.test.js +14 -19
  305. package/commands/theme/__tests__/preview.test.js +12 -17
  306. package/commands/theme/generate-selectors.d.ts +1 -1
  307. package/commands/theme/generate-selectors.js +23 -28
  308. package/commands/theme/marketplace-validate.d.ts +1 -1
  309. package/commands/theme/marketplace-validate.js +19 -24
  310. package/commands/theme/preview.d.ts +1 -1
  311. package/commands/theme/preview.js +60 -65
  312. package/commands/theme.d.ts +1 -1
  313. package/commands/theme.js +11 -16
  314. package/commands/upload.d.ts +1 -1
  315. package/commands/upload.js +77 -82
  316. package/commands/watch.d.ts +1 -1
  317. package/commands/watch.js +45 -51
  318. package/lang/en.d.ts +0 -22
  319. package/lang/en.js +371 -399
  320. package/lib/__tests__/accountTypes.test.js +20 -22
  321. package/lib/__tests__/buildAccount.test.js +28 -63
  322. package/lib/__tests__/commonOpts.test.js +20 -22
  323. package/lib/__tests__/dependencyManagement.test.js +46 -51
  324. package/lib/__tests__/developerTestAccounts.test.js +27 -62
  325. package/lib/__tests__/hasFeature.test.js +6 -8
  326. package/lib/__tests__/npm.test.js +15 -20
  327. package/lib/__tests__/oauth.test.js +23 -28
  328. package/lib/__tests__/parsing.test.js +18 -20
  329. package/lib/__tests__/polling.test.js +24 -26
  330. package/lib/__tests__/process.test.js +14 -19
  331. package/lib/__tests__/projectProfiles.test.js +34 -39
  332. package/lib/__tests__/sandboxSync.test.js +30 -35
  333. package/lib/__tests__/sandboxes.test.js +29 -31
  334. package/lib/__tests__/serverlessLogs.test.js +8 -13
  335. package/lib/__tests__/usageTracking.test.js +33 -34
  336. package/lib/__tests__/validation.test.js +18 -20
  337. package/lib/__tests__/yargsUtils.test.js +6 -41
  338. package/lib/accountTypes.js +24 -34
  339. package/lib/app/__tests__/migrate.test.js +94 -99
  340. package/lib/app/__tests__/migrate_legacy.test.js +29 -31
  341. package/lib/app/migrate.d.ts +3 -3
  342. package/lib/app/migrate.js +127 -145
  343. package/lib/app/migrate_legacy.d.ts +1 -1
  344. package/lib/app/migrate_legacy.js +72 -78
  345. package/lib/app/urls.js +5 -9
  346. package/lib/buildAccount.d.ts +1 -1
  347. package/lib/buildAccount.js +71 -80
  348. package/lib/commonOpts.d.ts +1 -1
  349. package/lib/commonOpts.js +42 -59
  350. package/lib/configMigrate.js +34 -38
  351. package/lib/configOptions.js +34 -40
  352. package/lib/constants.js +31 -34
  353. package/lib/customObject.js +2 -6
  354. package/lib/dependencyManagement.js +37 -45
  355. package/lib/developerTestAccounts.d.ts +1 -1
  356. package/lib/developerTestAccounts.js +34 -39
  357. package/lib/doctor/Diagnosis.d.ts +1 -1
  358. package/lib/doctor/Diagnosis.js +25 -29
  359. package/lib/doctor/DiagnosticInfoBuilder.d.ts +1 -1
  360. package/lib/doctor/DiagnosticInfoBuilder.js +30 -37
  361. package/lib/doctor/Doctor.d.ts +1 -1
  362. package/lib/doctor/Doctor.js +94 -101
  363. package/lib/doctor/__tests__/Diagnosis.test.js +9 -14
  364. package/lib/doctor/__tests__/DiagnosticInfoBuilder.test.js +29 -34
  365. package/lib/doctor/__tests__/Doctor.test.js +24 -26
  366. package/lib/enums/exitCodes.js +1 -4
  367. package/lib/errorHandlers/index.js +32 -41
  368. package/lib/errorHandlers/suppressError.d.ts +1 -1
  369. package/lib/errorHandlers/suppressError.js +28 -31
  370. package/lib/filesystem.js +8 -15
  371. package/lib/generateSelectors.js +18 -29
  372. package/lib/hasFeature.d.ts +1 -1
  373. package/lib/hasFeature.js +3 -6
  374. package/lib/interpolation.js +11 -18
  375. package/lib/lang.d.ts +1 -1
  376. package/lib/lang.js +22 -27
  377. package/lib/links.js +16 -24
  378. package/lib/marketplaceValidate.js +29 -39
  379. package/lib/mcp/setup.js +70 -82
  380. package/lib/middleware/__test__/configMiddleware.test.js +20 -55
  381. package/lib/middleware/__test__/gitMiddleware.test.js +7 -42
  382. package/lib/middleware/__test__/notificationsMiddleware.test.js +2 -4
  383. package/lib/middleware/__test__/requestMiddleware.test.js +6 -11
  384. package/lib/middleware/__test__/utils.test.js +9 -11
  385. package/lib/middleware/__test__/yargsChecksMiddleware.test.js +9 -44
  386. package/lib/middleware/autoUpdateMiddleware.js +33 -40
  387. package/lib/middleware/configMiddleware.js +36 -42
  388. package/lib/middleware/fireAlarmMiddleware.js +12 -18
  389. package/lib/middleware/gitMiddleware.js +5 -8
  390. package/lib/middleware/notificationsMiddleware.js +16 -23
  391. package/lib/middleware/requestMiddleware.js +4 -10
  392. package/lib/middleware/utils.js +1 -4
  393. package/lib/middleware/yargsChecksMiddleware.js +10 -13
  394. package/lib/npm.js +14 -23
  395. package/lib/oauth.js +29 -35
  396. package/lib/parsing.js +3 -6
  397. package/lib/polling.js +11 -15
  398. package/lib/process.js +11 -19
  399. package/lib/projectProfiles.d.ts +2 -2
  400. package/lib/projectProfiles.js +32 -42
  401. package/lib/projects/ProjectLogsManager.js +18 -21
  402. package/lib/projects/__tests__/AppDevModeInterface.test.js +140 -145
  403. package/lib/projects/__tests__/LocalDevProcess.test.js +68 -73
  404. package/lib/projects/__tests__/LocalDevWebsocketServer.test.js +32 -37
  405. package/lib/projects/__tests__/ProjectLogsManager.test.js +56 -58
  406. package/lib/projects/__tests__/buildAndDeploy.test.js +7 -9
  407. package/lib/projects/__tests__/components.test.js +9 -14
  408. package/lib/projects/__tests__/projects.test.js +35 -40
  409. package/lib/projects/__tests__/structure.test.js +43 -81
  410. package/lib/projects/add/__tests__/legacyAddComponent.test.js +26 -28
  411. package/lib/projects/add/__tests__/v3AddComponent.test.js +25 -30
  412. package/lib/projects/add/legacyAddComponent.d.ts +1 -1
  413. package/lib/projects/add/legacyAddComponent.js +24 -30
  414. package/lib/projects/add/v3AddComponent.d.ts +1 -1
  415. package/lib/projects/add/v3AddComponent.js +36 -42
  416. package/lib/projects/buildAndDeploy.d.ts +1 -1
  417. package/lib/projects/buildAndDeploy.js +88 -97
  418. package/lib/projects/components.js +19 -25
  419. package/lib/projects/config.d.ts +1 -1
  420. package/lib/projects/config.js +32 -41
  421. package/lib/projects/create/__tests__/legacy.test.js +22 -57
  422. package/lib/projects/create/__tests__/v3.test.js +5 -7
  423. package/lib/projects/create/index.d.ts +3 -3
  424. package/lib/projects/create/index.js +19 -22
  425. package/lib/projects/create/legacy.d.ts +1 -1
  426. package/lib/projects/create/legacy.js +25 -31
  427. package/lib/projects/create/v3.d.ts +3 -3
  428. package/lib/projects/create/v3.js +49 -59
  429. package/lib/projects/ensureProjectExists.js +31 -37
  430. package/lib/projects/localDev/AppDevModeInterface.d.ts +3 -3
  431. package/lib/projects/localDev/AppDevModeInterface.js +58 -60
  432. package/lib/projects/localDev/DevServerManager.d.ts +1 -1
  433. package/lib/projects/localDev/DevServerManager.js +22 -24
  434. package/lib/projects/localDev/DevServerManagerV2.d.ts +2 -2
  435. package/lib/projects/localDev/DevServerManagerV2.js +15 -20
  436. package/lib/projects/localDev/LocalDevLogger.d.ts +1 -1
  437. package/lib/projects/localDev/LocalDevLogger.js +59 -64
  438. package/lib/projects/localDev/LocalDevManager.d.ts +1 -1
  439. package/lib/projects/localDev/LocalDevManager.js +106 -111
  440. package/lib/projects/localDev/LocalDevProcess.d.ts +4 -4
  441. package/lib/projects/localDev/LocalDevProcess.js +25 -30
  442. package/lib/projects/localDev/LocalDevState.d.ts +3 -3
  443. package/lib/projects/localDev/LocalDevState.js +3 -5
  444. package/lib/projects/localDev/LocalDevWatcher.d.ts +1 -1
  445. package/lib/projects/localDev/LocalDevWatcher.js +6 -11
  446. package/lib/projects/localDev/LocalDevWebsocketServer.d.ts +1 -1
  447. package/lib/projects/localDev/LocalDevWebsocketServer.js +25 -27
  448. package/lib/projects/localDev/helpers.d.ts +3 -3
  449. package/lib/projects/localDev/helpers.js +156 -174
  450. package/lib/projects/structure.d.ts +4 -4
  451. package/lib/projects/structure.js +32 -78
  452. package/lib/projects/ui.js +10 -13
  453. package/lib/projects/upload.d.ts +2 -3
  454. package/lib/projects/upload.js +55 -65
  455. package/lib/projects/urls.js +14 -24
  456. package/lib/projects/watch.d.ts +1 -1
  457. package/lib/projects/watch.js +48 -54
  458. package/lib/prompts/__tests__/downloadProjectPrompt.test.js +9 -11
  459. package/lib/prompts/__tests__/projectsLogsPrompt.test.js +11 -16
  460. package/lib/prompts/accountNamePrompt.d.ts +1 -1
  461. package/lib/prompts/accountNamePrompt.js +26 -31
  462. package/lib/prompts/accountsPrompt.js +12 -15
  463. package/lib/prompts/cmsFieldPrompt.js +13 -19
  464. package/lib/prompts/createApiSamplePrompt.d.ts +1 -1
  465. package/lib/prompts/createApiSamplePrompt.js +9 -12
  466. package/lib/prompts/createDeveloperTestAccountConfigPrompt.d.ts +1 -1
  467. package/lib/prompts/createDeveloperTestAccountConfigPrompt.js +23 -26
  468. package/lib/prompts/createFunctionPrompt.js +17 -20
  469. package/lib/prompts/createModulePrompt.js +12 -15
  470. package/lib/prompts/createTemplatePrompt.js +5 -8
  471. package/lib/prompts/downloadProjectPrompt.js +17 -20
  472. package/lib/prompts/installAppPrompt.js +19 -26
  473. package/lib/prompts/personalAccessKeyPrompt.d.ts +2 -2
  474. package/lib/prompts/personalAccessKeyPrompt.js +40 -47
  475. package/lib/prompts/previewPrompt.js +15 -22
  476. package/lib/prompts/projectAddPrompt.d.ts +1 -1
  477. package/lib/prompts/projectAddPrompt.js +14 -18
  478. package/lib/prompts/projectDevTargetAccountPrompt.d.ts +1 -1
  479. package/lib/prompts/projectDevTargetAccountPrompt.js +48 -54
  480. package/lib/prompts/projectNameAndDestPrompt.d.ts +1 -1
  481. package/lib/prompts/projectNameAndDestPrompt.js +22 -29
  482. package/lib/prompts/projectNamePrompt.js +11 -14
  483. package/lib/prompts/projectsLogsPrompt.js +5 -8
  484. package/lib/prompts/promptUtils.d.ts +1 -1
  485. package/lib/prompts/promptUtils.js +17 -24
  486. package/lib/prompts/sandboxesPrompt.d.ts +1 -1
  487. package/lib/prompts/sandboxesPrompt.js +26 -30
  488. package/lib/prompts/secretPrompt.js +10 -15
  489. package/lib/prompts/selectAppPrompt.js +11 -14
  490. package/lib/prompts/selectHubDBTablePrompt.js +24 -30
  491. package/lib/prompts/selectProjectTemplatePrompt.d.ts +1 -1
  492. package/lib/prompts/selectProjectTemplatePrompt.js +10 -13
  493. package/lib/prompts/selectPublicAppForMigrationPrompt.js +22 -25
  494. package/lib/prompts/setAsDefaultAccountPrompt.js +13 -16
  495. package/lib/prompts/uploadPrompt.js +11 -17
  496. package/lib/sandboxSync.d.ts +1 -1
  497. package/lib/sandboxSync.js +58 -65
  498. package/lib/sandboxes.d.ts +1 -1
  499. package/lib/sandboxes.js +68 -76
  500. package/lib/schema.js +13 -20
  501. package/lib/serverlessLogs.js +45 -52
  502. package/lib/testUtils.js +4 -8
  503. package/lib/ui/SpinniesManager.d.ts +1 -1
  504. package/lib/ui/SpinniesManager.js +29 -34
  505. package/lib/ui/boxen.js +11 -14
  506. package/lib/ui/git.js +14 -20
  507. package/lib/ui/index.js +55 -73
  508. package/lib/ui/logger.js +10 -13
  509. package/lib/ui/serverlessFunctionLogs.js +14 -20
  510. package/lib/ui/spinniesUtils.js +24 -39
  511. package/lib/ui/supportHyperlinks.js +3 -6
  512. package/lib/ui/supportsColor.js +11 -17
  513. package/lib/ui/table.js +6 -13
  514. package/lib/upload.js +15 -21
  515. package/lib/usageTracking.js +35 -44
  516. package/lib/utils/hasFlag.js +2 -8
  517. package/lib/validation.js +48 -87
  518. package/lib/yargsUtils.d.ts +1 -1
  519. package/lib/yargsUtils.js +13 -16
  520. package/mcp-server/server.js +6 -8
  521. package/mcp-server/tools/index.js +13 -16
  522. package/mcp-server/tools/project/AddFeatureToProject.d.ts +1 -1
  523. package/mcp-server/tools/project/AddFeatureToProject.js +35 -39
  524. package/mcp-server/tools/project/CreateProjectTool.d.ts +1 -1
  525. package/mcp-server/tools/project/CreateProjectTool.js +46 -50
  526. package/mcp-server/tools/project/DeployProject.d.ts +1 -1
  527. package/mcp-server/tools/project/DeployProject.js +18 -22
  528. package/mcp-server/tools/project/GuidedWalkthroughTool.d.ts +1 -1
  529. package/mcp-server/tools/project/GuidedWalkthroughTool.js +21 -25
  530. package/mcp-server/tools/project/UploadProjectTools.d.ts +1 -1
  531. package/mcp-server/tools/project/UploadProjectTools.js +12 -19
  532. package/mcp-server/tools/project/ValidateProjectTool.d.ts +1 -1
  533. package/mcp-server/tools/project/ValidateProjectTool.js +13 -17
  534. package/mcp-server/tools/project/__tests__/AddFeatureToProject.test.js +12 -14
  535. package/mcp-server/tools/project/__tests__/CreateProjectTool.test.js +13 -15
  536. package/mcp-server/tools/project/__tests__/DeployProject.test.js +6 -8
  537. package/mcp-server/tools/project/__tests__/GuidedWalkthroughTool.test.js +4 -6
  538. package/mcp-server/tools/project/__tests__/UploadProjectTools.test.js +4 -6
  539. package/mcp-server/tools/project/__tests__/ValidateProjectTool.test.js +4 -6
  540. package/mcp-server/tools/project/constants.js +3 -9
  541. package/mcp-server/types.js +1 -5
  542. package/mcp-server/utils/__tests__/command.test.js +9 -11
  543. package/mcp-server/utils/__tests__/project.test.js +12 -17
  544. package/mcp-server/utils/command.d.ts +1 -1
  545. package/mcp-server/utils/command.js +4 -11
  546. package/mcp-server/utils/content.d.ts +1 -1
  547. package/mcp-server/utils/content.js +2 -6
  548. package/mcp-server/utils/project.js +8 -14
  549. package/mcp-server/utils/toolUsageTracking.js +11 -14
  550. package/package.json +15 -11
  551. package/types/Cms.d.ts +1 -1
  552. package/types/Cms.js +1 -2
  553. package/types/LocalDev.d.ts +4 -4
  554. package/types/LocalDev.js +1 -2
  555. package/types/ProjectComponents.d.ts +2 -2
  556. package/types/ProjectComponents.js +1 -2
  557. package/types/Projects.d.ts +1 -1
  558. package/types/Projects.js +2 -5
  559. package/types/Prompts.js +1 -2
  560. package/types/Sandboxes.js +1 -2
  561. package/types/Yargs.js +1 -2
  562. package/commands/app/__tests__/install.test.d.ts +0 -1
  563. package/commands/app/__tests__/install.test.js +0 -52
  564. package/commands/app/install.d.ts +0 -8
  565. package/commands/app/install.js +0 -127
@@ -1,67 +1,64 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AddFeatureToProject = void 0;
4
- const types_1 = require("../../types");
5
- const zod_1 = require("zod");
6
- const constants_1 = require("../../../lib/constants");
7
- const command_1 = require("../../utils/command");
8
- const constants_2 = require("./constants");
9
- const project_1 = require("../../utils/project");
10
- const content_1 = require("../../utils/content");
11
- const toolUsageTracking_1 = require("../../utils/toolUsageTracking");
1
+ import { Tool } from '../../types.js';
2
+ import { z } from 'zod';
3
+ import { APP_AUTH_TYPES, APP_DISTRIBUTION_TYPES, } from '../../../lib/constants.js';
4
+ import { addFlag } from '../../utils/command.js';
5
+ import { absoluteProjectPath } from './constants.js';
6
+ import { runCommandInDir } from '../../utils/project.js';
7
+ import { formatTextContents, formatTextContent } from '../../utils/content.js';
8
+ import { trackToolUsage } from '../../utils/toolUsageTracking.js';
12
9
  const inputSchema = {
13
- absoluteProjectPath: constants_2.absoluteProjectPath,
14
- addApp: zod_1.z
10
+ absoluteProjectPath,
11
+ addApp: z
15
12
  .boolean()
16
13
  .describe('Should an app be added? If there is no app in the project, an app must be added to add a feature'),
17
- distribution: zod_1.z
18
- .optional(zod_1.z.union([
19
- zod_1.z.literal(constants_1.APP_DISTRIBUTION_TYPES.MARKETPLACE),
20
- zod_1.z.literal(constants_1.APP_DISTRIBUTION_TYPES.PRIVATE),
14
+ distribution: z
15
+ .optional(z.union([
16
+ z.literal(APP_DISTRIBUTION_TYPES.MARKETPLACE),
17
+ z.literal(APP_DISTRIBUTION_TYPES.PRIVATE),
21
18
  ]))
22
19
  .describe('Private is used if you do not wish to distribute your application on the HubSpot marketplace. If not specified by the user, do not choose for them. This cannot be changed after a project is uploaded.'),
23
- auth: zod_1.z
24
- .optional(zod_1.z.union([
25
- zod_1.z.literal(constants_1.APP_AUTH_TYPES.STATIC),
26
- zod_1.z.literal(constants_1.APP_AUTH_TYPES.OAUTH),
20
+ auth: z
21
+ .optional(z.union([
22
+ z.literal(APP_AUTH_TYPES.STATIC),
23
+ z.literal(APP_AUTH_TYPES.OAUTH),
27
24
  ]))
28
25
  .describe('Static uses a static non changing authentication token, and is only available for private distribution. If not specified by the user, do not choose for them. This cannot be changed after a project is uploaded.'),
29
- features: zod_1.z
30
- .array(zod_1.z
26
+ features: z
27
+ .array(z
31
28
  .union([
32
- zod_1.z.literal('card'),
33
- zod_1.z.literal('settings'),
34
- zod_1.z.literal('app-function'),
35
- zod_1.z.literal('webhooks'),
29
+ z.literal('card'),
30
+ z.literal('settings'),
31
+ z.literal('app-function'),
32
+ z.literal('webhooks'),
36
33
  ])
37
34
  .describe('The features to include in the project, multiple options can be selected'))
38
35
  .optional(),
39
36
  };
40
37
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
41
- const inputSchemaZodObject = zod_1.z.object({
38
+ const inputSchemaZodObject = z.object({
42
39
  ...inputSchema,
43
40
  });
44
41
  const toolName = 'add-feature-to-hubspot-project';
45
- class AddFeatureToProject extends types_1.Tool {
42
+ export class AddFeatureToProject extends Tool {
46
43
  constructor(mcpServer) {
47
44
  super(mcpServer);
48
45
  }
49
46
  async handler({ absoluteProjectPath, distribution, auth, features, addApp, }) {
50
47
  try {
51
- await (0, toolUsageTracking_1.trackToolUsage)(toolName);
48
+ await trackToolUsage(toolName);
52
49
  let command = `hs project add`;
53
50
  const content = [];
54
51
  if (distribution) {
55
- command = (0, command_1.addFlag)(command, 'distribution', distribution);
52
+ command = addFlag(command, 'distribution', distribution);
56
53
  }
57
54
  else if (addApp) {
58
- content.push((0, content_1.formatTextContent)(`Ask the user how they would you like to distribute the application. Options are ${constants_1.APP_DISTRIBUTION_TYPES.MARKETPLACE} and ${constants_1.APP_DISTRIBUTION_TYPES.PRIVATE}`));
55
+ content.push(formatTextContent(`Ask the user how they would you like to distribute the application. Options are ${APP_DISTRIBUTION_TYPES.MARKETPLACE} and ${APP_DISTRIBUTION_TYPES.PRIVATE}`));
59
56
  }
60
57
  if (auth) {
61
- command = (0, command_1.addFlag)(command, 'auth', auth);
58
+ command = addFlag(command, 'auth', auth);
62
59
  }
63
60
  else if (addApp) {
64
- content.push((0, content_1.formatTextContent)(`Ask the user which auth type they would like to use. Options are ${constants_1.APP_AUTH_TYPES.STATIC} and ${constants_1.APP_AUTH_TYPES.OAUTH}`));
61
+ content.push(formatTextContent(`Ask the user which auth type they would like to use. Options are ${APP_AUTH_TYPES.STATIC} and ${APP_AUTH_TYPES.OAUTH}`));
65
62
  }
66
63
  if (content.length > 0) {
67
64
  return {
@@ -69,12 +66,12 @@ class AddFeatureToProject extends types_1.Tool {
69
66
  };
70
67
  }
71
68
  // If features isn't provided, pass an empty array to bypass the prompt
72
- command = (0, command_1.addFlag)(command, 'features', features || []);
73
- const { stdout, stderr } = await (0, project_1.runCommandInDir)(absoluteProjectPath, command);
74
- return (0, content_1.formatTextContents)(stdout, stderr);
69
+ command = addFlag(command, 'features', features || []);
70
+ const { stdout, stderr } = await runCommandInDir(absoluteProjectPath, command);
71
+ return formatTextContents(stdout, stderr);
75
72
  }
76
73
  catch (error) {
77
- return (0, content_1.formatTextContents)(error instanceof Error ? error.message : `${error}`);
74
+ return formatTextContents(error instanceof Error ? error.message : `${error}`);
78
75
  }
79
76
  }
80
77
  register() {
@@ -85,4 +82,3 @@ class AddFeatureToProject extends types_1.Tool {
85
82
  }, this.handler);
86
83
  }
87
84
  }
88
- exports.AddFeatureToProject = AddFeatureToProject;
@@ -1,4 +1,4 @@
1
- import { TextContentResponse, Tool } from '../../types';
1
+ import { TextContentResponse, Tool } from '../../types.js';
2
2
  import { McpServer, RegisteredTool } from '@modelcontextprotocol/sdk/server/mcp.js';
3
3
  import { z } from 'zod';
4
4
  declare const inputSchemaZodObject: z.ZodObject<{
@@ -1,85 +1,82 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CreateProjectTool = void 0;
4
- const types_1 = require("../../types");
5
- const zod_1 = require("zod");
6
- const constants_1 = require("../../../lib/constants");
7
- const command_1 = require("../../utils/command");
8
- const v3_1 = require("../../../lib/projects/create/v3");
9
- const constants_2 = require("./constants");
10
- const project_1 = require("../../utils/project");
11
- const content_1 = require("../../utils/content");
12
- const toolUsageTracking_1 = require("../../utils/toolUsageTracking");
1
+ import { Tool } from '../../types.js';
2
+ import { z } from 'zod';
3
+ import { APP_AUTH_TYPES, APP_DISTRIBUTION_TYPES, } from '../../../lib/constants.js';
4
+ import { addFlag } from '../../utils/command.js';
5
+ import { EMPTY_PROJECT, PROJECT_WITH_APP, } from '../../../lib/projects/create/v3.js';
6
+ import { absoluteCurrentWorkingDirectory } from './constants.js';
7
+ import { runCommandInDir } from '../../utils/project.js';
8
+ import { formatTextContents, formatTextContent } from '../../utils/content.js';
9
+ import { trackToolUsage } from '../../utils/toolUsageTracking.js';
13
10
  const inputSchema = {
14
- absoluteCurrentWorkingDirectory: constants_2.absoluteCurrentWorkingDirectory,
15
- name: zod_1.z
11
+ absoluteCurrentWorkingDirectory,
12
+ name: z
16
13
  .string()
17
14
  .describe('The name of the project to be created. This name is how your project will appear in HubSpot. If not specified by the user, do not choose for them. Changing this is potentially destructive.')
18
15
  .optional(),
19
- destination: zod_1.z
16
+ destination: z
20
17
  .string()
21
18
  .describe('Relative path to the directory the project will be created in. DO NOT use the current directory unless the user has explicitly stated to do so.'),
22
- projectBase: zod_1.z
23
- .union([zod_1.z.literal(v3_1.EMPTY_PROJECT), zod_1.z.literal(v3_1.PROJECT_WITH_APP)])
19
+ projectBase: z
20
+ .union([z.literal(EMPTY_PROJECT), z.literal(PROJECT_WITH_APP)])
24
21
  .describe('Empty will create an empty project, and app will create a project with an app inside of it.'),
25
- distribution: zod_1.z
26
- .optional(zod_1.z.union([
27
- zod_1.z.literal(constants_1.APP_DISTRIBUTION_TYPES.MARKETPLACE),
28
- zod_1.z.literal(constants_1.APP_DISTRIBUTION_TYPES.PRIVATE),
22
+ distribution: z
23
+ .optional(z.union([
24
+ z.literal(APP_DISTRIBUTION_TYPES.MARKETPLACE),
25
+ z.literal(APP_DISTRIBUTION_TYPES.PRIVATE),
29
26
  ]))
30
27
  .describe('Private is used if you do not wish to distribute your application on the HubSpot marketplace. If not specified by the user, do not choose for them. This cannot be changed after a project is uploaded.'),
31
- auth: zod_1.z
32
- .optional(zod_1.z.union([
33
- zod_1.z.literal(constants_1.APP_AUTH_TYPES.STATIC),
34
- zod_1.z.literal(constants_1.APP_AUTH_TYPES.OAUTH),
28
+ auth: z
29
+ .optional(z.union([
30
+ z.literal(APP_AUTH_TYPES.STATIC),
31
+ z.literal(APP_AUTH_TYPES.OAUTH),
35
32
  ]))
36
33
  .describe('Static uses a static non changing authentication token, and is only available for private distribution. If not specified by the user, do not choose for them. This cannot be changed after a project is uploaded.')
37
34
  .optional(),
38
- features: zod_1.z
39
- .array(zod_1.z
35
+ features: z
36
+ .array(z
40
37
  .union([
41
- zod_1.z.literal('card'),
42
- zod_1.z.literal('settings'),
43
- zod_1.z.literal('app-function'),
44
- zod_1.z.literal('webhooks'),
38
+ z.literal('card'),
39
+ z.literal('settings'),
40
+ z.literal('app-function'),
41
+ z.literal('webhooks'),
45
42
  ])
46
43
  .describe('The features to include in the project, multiple options can be selected'))
47
44
  .optional(),
48
45
  };
49
46
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
50
- const inputSchemaZodObject = zod_1.z.object({ ...inputSchema });
47
+ const inputSchemaZodObject = z.object({ ...inputSchema });
51
48
  const toolName = 'create-hubspot-project';
52
- class CreateProjectTool extends types_1.Tool {
49
+ export class CreateProjectTool extends Tool {
53
50
  constructor(mcpServer) {
54
51
  super(mcpServer);
55
52
  }
56
53
  async handler({ name, destination, projectBase, distribution, auth, features, absoluteCurrentWorkingDirectory, }) {
57
- await (0, toolUsageTracking_1.trackToolUsage)(toolName);
58
- let command = (0, command_1.addFlag)('hs project create', 'platform-version', '2025.2');
54
+ await trackToolUsage(toolName);
55
+ let command = addFlag('hs project create', 'platform-version', '2025.2');
59
56
  const content = [];
60
57
  if (name) {
61
- command = (0, command_1.addFlag)(command, 'name', name);
58
+ command = addFlag(command, 'name', name);
62
59
  }
63
60
  else {
64
- content.push((0, content_1.formatTextContent)(`Ask the user what they would like to name the project.`));
61
+ content.push(formatTextContent(`Ask the user what they would like to name the project.`));
65
62
  }
66
63
  if (destination) {
67
- command = (0, command_1.addFlag)(command, 'dest', destination);
64
+ command = addFlag(command, 'dest', destination);
68
65
  }
69
66
  if (projectBase) {
70
- command = (0, command_1.addFlag)(command, 'project-base', projectBase);
67
+ command = addFlag(command, 'project-base', projectBase);
71
68
  }
72
69
  if (distribution) {
73
- command = (0, command_1.addFlag)(command, 'distribution', distribution);
70
+ command = addFlag(command, 'distribution', distribution);
74
71
  }
75
- else if (projectBase === v3_1.PROJECT_WITH_APP) {
76
- content.push((0, content_1.formatTextContent)(`Ask the user how they would you like to distribute the application? Options are ${constants_1.APP_DISTRIBUTION_TYPES.MARKETPLACE} and ${constants_1.APP_DISTRIBUTION_TYPES.PRIVATE}`));
72
+ else if (projectBase === PROJECT_WITH_APP) {
73
+ content.push(formatTextContent(`Ask the user how they would you like to distribute the application? Options are ${APP_DISTRIBUTION_TYPES.MARKETPLACE} and ${APP_DISTRIBUTION_TYPES.PRIVATE}`));
77
74
  }
78
75
  if (auth) {
79
- command = (0, command_1.addFlag)(command, 'auth', auth);
76
+ command = addFlag(command, 'auth', auth);
80
77
  }
81
- else if (projectBase === v3_1.PROJECT_WITH_APP) {
82
- content.push((0, content_1.formatTextContent)(`Ask the user which auth type they would like to use? Options are ${constants_1.APP_AUTH_TYPES.STATIC} and ${constants_1.APP_AUTH_TYPES.OAUTH}`));
78
+ else if (projectBase === PROJECT_WITH_APP) {
79
+ content.push(formatTextContent(`Ask the user which auth type they would like to use? Options are ${APP_AUTH_TYPES.STATIC} and ${APP_AUTH_TYPES.OAUTH}`));
83
80
  }
84
81
  if (content.length > 0) {
85
82
  return {
@@ -87,13 +84,13 @@ class CreateProjectTool extends types_1.Tool {
87
84
  };
88
85
  }
89
86
  // Always pass features, even if it is an empty array to bypass the prompts
90
- command = (0, command_1.addFlag)(command, 'features', features || []);
87
+ command = addFlag(command, 'features', features || []);
91
88
  try {
92
- const { stdout, stderr } = await (0, project_1.runCommandInDir)(absoluteCurrentWorkingDirectory, command);
93
- return (0, content_1.formatTextContents)(stdout, stderr);
89
+ const { stdout, stderr } = await runCommandInDir(absoluteCurrentWorkingDirectory, command);
90
+ return formatTextContents(stdout, stderr);
94
91
  }
95
92
  catch (error) {
96
- return (0, content_1.formatTextContents)(error instanceof Error ? error.message : `${error}`);
93
+ return formatTextContents(error instanceof Error ? error.message : `${error}`);
97
94
  }
98
95
  }
99
96
  register() {
@@ -104,4 +101,3 @@ class CreateProjectTool extends types_1.Tool {
104
101
  }, this.handler);
105
102
  }
106
103
  }
107
- exports.CreateProjectTool = CreateProjectTool;
@@ -1,4 +1,4 @@
1
- import { TextContentResponse, Tool } from '../../types';
1
+ import { TextContentResponse, Tool } from '../../types.js';
2
2
  import { McpServer, RegisteredTool } from '@modelcontextprotocol/sdk/server/mcp.js';
3
3
  import { z } from 'zod';
4
4
  declare const inputSchemaZodObject: z.ZodObject<{
@@ -1,46 +1,43 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DeployProject = void 0;
4
- const types_1 = require("../../types");
5
- const zod_1 = require("zod");
6
- const command_1 = require("../../utils/command");
7
- const constants_1 = require("./constants");
8
- const project_1 = require("../../utils/project");
9
- const content_1 = require("../../utils/content");
10
- const toolUsageTracking_1 = require("../../utils/toolUsageTracking");
1
+ import { Tool } from '../../types.js';
2
+ import { z } from 'zod';
3
+ import { addFlag } from '../../utils/command.js';
4
+ import { absoluteProjectPath } from './constants.js';
5
+ import { runCommandInDir } from '../../utils/project.js';
6
+ import { formatTextContents, formatTextContent } from '../../utils/content.js';
7
+ import { trackToolUsage } from '../../utils/toolUsageTracking.js';
11
8
  const inputSchema = {
12
- absoluteProjectPath: constants_1.absoluteProjectPath,
13
- buildNumber: zod_1.z
14
- .optional(zod_1.z.number())
9
+ absoluteProjectPath,
10
+ buildNumber: z
11
+ .optional(z.number())
15
12
  .describe('The build number to be deployed. This can be found in the project details page using `hs project open`. If no build number is specified, the most recent build is deployed'),
16
13
  };
17
14
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
18
- const inputSchemaZodObject = zod_1.z.object({
15
+ const inputSchemaZodObject = z.object({
19
16
  ...inputSchema,
20
17
  });
21
18
  const toolName = 'deploy-hubspot-project';
22
- class DeployProject extends types_1.Tool {
19
+ export class DeployProject extends Tool {
23
20
  constructor(mcpServer) {
24
21
  super(mcpServer);
25
22
  }
26
23
  async handler({ absoluteProjectPath, buildNumber, }) {
27
- await (0, toolUsageTracking_1.trackToolUsage)(toolName);
24
+ await trackToolUsage(toolName);
28
25
  let command = `hs project deploy`;
29
26
  const content = [];
30
27
  if (!buildNumber) {
31
- const { stdout } = await (0, project_1.runCommandInDir)(absoluteProjectPath, `hs project list-builds --limit 100`);
32
- content.push((0, content_1.formatTextContent)(`Ask the user which build number they would like to deploy? Build information: ${stdout}`));
28
+ const { stdout } = await runCommandInDir(absoluteProjectPath, `hs project list-builds --limit 100`);
29
+ content.push(formatTextContent(`Ask the user which build number they would like to deploy? Build information: ${stdout}`));
33
30
  }
34
31
  else {
35
- command = (0, command_1.addFlag)(command, 'build', buildNumber);
32
+ command = addFlag(command, 'build', buildNumber);
36
33
  }
37
34
  if (content.length) {
38
35
  return {
39
36
  content,
40
37
  };
41
38
  }
42
- const { stdout, stderr } = await (0, project_1.runCommandInDir)(absoluteProjectPath, command);
43
- return (0, content_1.formatTextContents)(stdout, stderr);
39
+ const { stdout, stderr } = await runCommandInDir(absoluteProjectPath, command);
40
+ return formatTextContents(stdout, stderr);
44
41
  }
45
42
  register() {
46
43
  return this.mcpServer.registerTool(toolName, {
@@ -50,4 +47,3 @@ class DeployProject extends types_1.Tool {
50
47
  }, this.handler);
51
48
  }
52
49
  }
53
- exports.DeployProject = DeployProject;
@@ -1,4 +1,4 @@
1
- import { TextContentResponse, Tool } from '../../types';
1
+ import { TextContentResponse, Tool } from '../../types.js';
2
2
  import { McpServer, RegisteredTool } from '@modelcontextprotocol/sdk/server/mcp.js';
3
3
  import { z } from 'zod';
4
4
  declare const inputSchemaZodObject: z.ZodObject<{
@@ -1,11 +1,8 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.GuidedWalkthroughTool = void 0;
4
- const types_1 = require("../../types");
5
- const zod_1 = require("zod");
6
- const command_1 = require("../../utils/command");
7
- const content_1 = require("../../utils/content");
8
- const toolUsageTracking_1 = require("../../utils/toolUsageTracking");
1
+ import { Tool } from '../../types.js';
2
+ import { z } from 'zod';
3
+ import { execAsync } from '../../utils/command.js';
4
+ import { formatTextContents } from '../../utils/content.js';
5
+ import { trackToolUsage } from '../../utils/toolUsageTracking.js';
9
6
  const nextCommands = {
10
7
  'hs init': 'hs auth',
11
8
  'hs auth': 'hs project create',
@@ -13,44 +10,44 @@ const nextCommands = {
13
10
  'hs project upload': 'hs project dev',
14
11
  };
15
12
  const inputSchema = {
16
- command: zod_1.z
13
+ command: z
17
14
  .union([
18
- zod_1.z.literal('hs init'),
19
- zod_1.z.literal('hs auth'),
20
- zod_1.z.literal('hs project create'),
21
- zod_1.z.literal('hs project upload'),
15
+ z.literal('hs init'),
16
+ z.literal('hs auth'),
17
+ z.literal('hs project create'),
18
+ z.literal('hs project upload'),
22
19
  ])
23
20
  .describe('The command to learn more about. Start with `hs init`')
24
21
  .optional(),
25
22
  };
26
23
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
27
- const inputSchemaZodObject = zod_1.z.object({
24
+ const inputSchemaZodObject = z.object({
28
25
  ...inputSchema,
29
26
  });
30
27
  const toolName = 'guided-walkthrough-hubspot-cli';
31
- class GuidedWalkthroughTool extends types_1.Tool {
28
+ export class GuidedWalkthroughTool extends Tool {
32
29
  constructor(mcpServer) {
33
30
  super(mcpServer);
34
31
  }
35
32
  async handler({ command }) {
36
- await (0, toolUsageTracking_1.trackToolUsage)(toolName);
33
+ await trackToolUsage(toolName);
37
34
  if (command) {
38
- const { stdout } = await (0, command_1.execAsync)(`${command} --help`);
39
- return (0, content_1.formatTextContents)(`Display this help output for the user amd wait for them to acknowledge: ${stdout}. ${nextCommands[command] ? `Once they are ready, A good command to look at next is ${nextCommands[command]}` : ''}`);
35
+ const { stdout } = await execAsync(`${command} --help`);
36
+ return formatTextContents(`Display this help output for the user amd wait for them to acknowledge: ${stdout}. ${nextCommands[command] ? `Once they are ready, A good command to look at next is ${nextCommands[command]}` : ''}`);
40
37
  }
41
- return (0, content_1.formatTextContents)('Is there another command you would like to learn more about?');
38
+ return formatTextContents('Is there another command you would like to learn more about?');
42
39
  }
43
40
  register() {
44
41
  return this.mcpServer.registerTool(toolName, {
45
42
  title: 'Guided walkthrough of the CLI',
46
43
  description: 'Give the user a guided walkthrough of the HubSpot CLI.',
47
44
  inputSchema: {
48
- command: zod_1.z
45
+ command: z
49
46
  .union([
50
- zod_1.z.literal('hs init'),
51
- zod_1.z.literal('hs auth'),
52
- zod_1.z.literal('hs project create'),
53
- zod_1.z.literal('hs project upload'),
47
+ z.literal('hs init'),
48
+ z.literal('hs auth'),
49
+ z.literal('hs project create'),
50
+ z.literal('hs project upload'),
54
51
  ])
55
52
  .describe('The command to learn more about. Start with `hs init`')
56
53
  .optional(),
@@ -58,4 +55,3 @@ class GuidedWalkthroughTool extends types_1.Tool {
58
55
  }, this.handler);
59
56
  }
60
57
  }
61
- exports.GuidedWalkthroughTool = GuidedWalkthroughTool;
@@ -1,4 +1,4 @@
1
- import { TextContentResponse, Tool } from '../../types';
1
+ import { TextContentResponse, Tool } from '../../types.js';
2
2
  import { McpServer, RegisteredTool } from '@modelcontextprotocol/sdk/server/mcp.js';
3
3
  import z from 'zod';
4
4
  declare const inputSchemaZodObject: z.ZodObject<{
@@ -1,31 +1,25 @@
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
- exports.UploadProjectTools = void 0;
7
- const types_1 = require("../../types");
8
- const project_1 = require("../../utils/project");
9
- const constants_1 = require("./constants");
10
- const zod_1 = __importDefault(require("zod"));
11
- const content_1 = require("../../utils/content");
12
- const toolUsageTracking_1 = require("../../utils/toolUsageTracking");
1
+ import { Tool } from '../../types.js';
2
+ import { runCommandInDir } from '../../utils/project.js';
3
+ import { absoluteProjectPath } from './constants.js';
4
+ import z from 'zod';
5
+ import { formatTextContents } from '../../utils/content.js';
6
+ import { trackToolUsage } from '../../utils/toolUsageTracking.js';
13
7
  const inputSchema = {
14
- absoluteProjectPath: constants_1.absoluteProjectPath,
8
+ absoluteProjectPath,
15
9
  };
16
10
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
17
- const inputSchemaZodObject = zod_1.default.object({
11
+ const inputSchemaZodObject = z.object({
18
12
  ...inputSchema,
19
13
  });
20
14
  const toolName = 'upload-hubspot-project';
21
- class UploadProjectTools extends types_1.Tool {
15
+ export class UploadProjectTools extends Tool {
22
16
  constructor(mcpServer) {
23
17
  super(mcpServer);
24
18
  }
25
19
  async handler({ absoluteProjectPath, }) {
26
- await (0, toolUsageTracking_1.trackToolUsage)(toolName);
27
- const { stdout, stderr } = await (0, project_1.runCommandInDir)(absoluteProjectPath, `hs project upload --force-create`);
28
- return (0, content_1.formatTextContents)(stdout, stderr);
20
+ await trackToolUsage(toolName);
21
+ const { stdout, stderr } = await runCommandInDir(absoluteProjectPath, `hs project upload --force-create`);
22
+ return formatTextContents(stdout, stderr);
29
23
  }
30
24
  register() {
31
25
  return this.mcpServer.registerTool(toolName, {
@@ -35,4 +29,3 @@ class UploadProjectTools extends types_1.Tool {
35
29
  }, this.handler);
36
30
  }
37
31
  }
38
- exports.UploadProjectTools = UploadProjectTools;
@@ -1,4 +1,4 @@
1
- import { TextContentResponse, Tool } from '../../types';
1
+ import { TextContentResponse, Tool } from '../../types.js';
2
2
  import { McpServer, RegisteredTool } from '@modelcontextprotocol/sdk/server/mcp.js';
3
3
  import { z } from 'zod';
4
4
  declare const inputSchemaZodObject: z.ZodObject<{
@@ -1,30 +1,27 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ValidateProjectTool = void 0;
4
- const types_1 = require("../../types");
5
- const zod_1 = require("zod");
6
- const constants_1 = require("./constants");
7
- const project_1 = require("../../utils/project");
8
- const content_1 = require("../../utils/content");
9
- const toolUsageTracking_1 = require("../../utils/toolUsageTracking");
1
+ import { Tool } from '../../types.js';
2
+ import { z } from 'zod';
3
+ import { absoluteProjectPath } from './constants.js';
4
+ import { runCommandInDir } from '../../utils/project.js';
5
+ import { formatTextContents } from '../../utils/content.js';
6
+ import { trackToolUsage } from '../../utils/toolUsageTracking.js';
10
7
  const inputSchema = {
11
- absoluteProjectPath: constants_1.absoluteProjectPath,
8
+ absoluteProjectPath,
12
9
  };
13
10
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
14
- const inputSchemaZodObject = zod_1.z.object({ ...inputSchema });
11
+ const inputSchemaZodObject = z.object({ ...inputSchema });
15
12
  const toolName = 'validate-hubspot-project';
16
- class ValidateProjectTool extends types_1.Tool {
13
+ export class ValidateProjectTool extends Tool {
17
14
  constructor(mcpServer) {
18
15
  super(mcpServer);
19
16
  }
20
17
  async handler({ absoluteProjectPath, }) {
21
- await (0, toolUsageTracking_1.trackToolUsage)(toolName);
18
+ await trackToolUsage(toolName);
22
19
  try {
23
- const { stdout, stderr } = await (0, project_1.runCommandInDir)(absoluteProjectPath, 'hs project validate');
24
- return (0, content_1.formatTextContents)(stdout, stderr);
20
+ const { stdout, stderr } = await runCommandInDir(absoluteProjectPath, 'hs project validate');
21
+ return formatTextContents(stdout, stderr);
25
22
  }
26
23
  catch (error) {
27
- return (0, content_1.formatTextContents)(error instanceof Error ? error.message : `${error}`);
24
+ return formatTextContents(error instanceof Error ? error.message : `${error}`);
28
25
  }
29
26
  }
30
27
  register() {
@@ -35,4 +32,3 @@ class ValidateProjectTool extends types_1.Tool {
35
32
  }, this.handler);
36
33
  }
37
34
  }
38
- exports.ValidateProjectTool = ValidateProjectTool;
@@ -1,16 +1,14 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const AddFeatureToProject_1 = require("../AddFeatureToProject");
4
- const project_1 = require("../../../utils/project");
5
- const command_1 = require("../../../utils/command");
6
- const constants_1 = require("../../../../lib/constants");
1
+ import { AddFeatureToProject, } from '../AddFeatureToProject.js';
2
+ import { runCommandInDir } from '../../../utils/project.js';
3
+ import { addFlag } from '../../../utils/command.js';
4
+ import { APP_AUTH_TYPES, APP_DISTRIBUTION_TYPES, } from '../../../../lib/constants.js';
7
5
  vi.mock('@modelcontextprotocol/sdk/server/mcp.js');
8
6
  vi.mock('../../../utils/project');
9
7
  vi.mock('../../../utils/command');
10
8
  vi.mock('../../../../lib/constants');
11
9
  vi.mock('../../../utils/toolUsageTracking');
12
- const mockRunCommandInDir = project_1.runCommandInDir;
13
- const mockAddFlag = command_1.addFlag;
10
+ const mockRunCommandInDir = runCommandInDir;
11
+ const mockAddFlag = addFlag;
14
12
  describe('mcp-server/tools/project/AddFeatureToProject', () => {
15
13
  let mockMcpServer;
16
14
  let tool;
@@ -23,7 +21,7 @@ describe('mcp-server/tools/project/AddFeatureToProject', () => {
23
21
  };
24
22
  mockRegisteredTool = {};
25
23
  mockMcpServer.registerTool.mockReturnValue(mockRegisteredTool);
26
- tool = new AddFeatureToProject_1.AddFeatureToProject(mockMcpServer);
24
+ tool = new AddFeatureToProject(mockMcpServer);
27
25
  // Mock addFlag to simulate command building
28
26
  mockAddFlag.mockImplementation((command, flag, value) => `${command} --${flag} "${value}"`);
29
27
  });
@@ -94,7 +92,7 @@ describe('mcp-server/tools/project/AddFeatureToProject', () => {
94
92
  const input = {
95
93
  ...baseInput,
96
94
  addApp: true,
97
- distribution: constants_1.APP_DISTRIBUTION_TYPES.PRIVATE,
95
+ distribution: APP_DISTRIBUTION_TYPES.PRIVATE,
98
96
  };
99
97
  const result = await tool.handler(input);
100
98
  expect(result.content).toEqual([
@@ -112,13 +110,13 @@ describe('mcp-server/tools/project/AddFeatureToProject', () => {
112
110
  const input = {
113
111
  ...baseInput,
114
112
  addApp: true,
115
- distribution: constants_1.APP_DISTRIBUTION_TYPES.MARKETPLACE,
116
- auth: constants_1.APP_AUTH_TYPES.OAUTH,
113
+ distribution: APP_DISTRIBUTION_TYPES.MARKETPLACE,
114
+ auth: APP_AUTH_TYPES.OAUTH,
117
115
  features: ['webhooks'],
118
116
  };
119
117
  await tool.handler(input);
120
- expect(mockAddFlag).toHaveBeenCalledWith('hs project add', 'distribution', constants_1.APP_DISTRIBUTION_TYPES.MARKETPLACE);
121
- expect(mockAddFlag).toHaveBeenCalledWith(expect.any(String), 'auth', constants_1.APP_AUTH_TYPES.OAUTH);
118
+ expect(mockAddFlag).toHaveBeenCalledWith('hs project add', 'distribution', APP_DISTRIBUTION_TYPES.MARKETPLACE);
119
+ expect(mockAddFlag).toHaveBeenCalledWith(expect.any(String), 'auth', APP_AUTH_TYPES.OAUTH);
122
120
  expect(mockAddFlag).toHaveBeenCalledWith(expect.any(String), 'features', [
123
121
  'webhooks',
124
122
  ]);