@hubspot/cli 7.7.20-experimental.0 → 7.7.21-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 (563) 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 +48 -53
  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 -11
  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 +124 -130
  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 +93 -131
  215. package/commands/project/__tests__/devUnifiedFlow.test.js +135 -140
  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 +62 -67
  232. package/commands/project/deploy.d.ts +1 -1
  233. package/commands/project/deploy.js +72 -77
  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 +50 -55
  297. package/commands/testAccount/createConfig.d.ts +2 -2
  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 -1
  319. package/lang/en.js +369 -376
  320. package/lib/__tests__/accountTypes.test.js +20 -22
  321. package/lib/__tests__/buildAccount.test.js +26 -61
  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 +59 -67
  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 +69 -97
  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 +23 -29
  414. package/lib/projects/add/v3AddComponent.d.ts +1 -1
  415. package/lib/projects/add/v3AddComponent.js +35 -41
  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 +24 -26
  434. package/lib/projects/localDev/DevServerManagerV2.d.ts +2 -2
  435. package/lib/projects/localDev/DevServerManagerV2.js +17 -22
  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 +3 -3
  451. package/lib/projects/structure.js +32 -78
  452. package/lib/projects/ui.js +10 -13
  453. package/lib/projects/upload.d.ts +1 -1
  454. package/lib/projects/upload.js +55 -64
  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 +16 -19
  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 +15 -22
  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 +12 -23
  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 +44 -50
  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 +33 -37
  524. package/mcp-server/tools/project/CreateProjectTool.d.ts +1 -1
  525. package/mcp-server/tools/project/CreateProjectTool.js +44 -48
  526. package/mcp-server/tools/project/DeployProject.d.ts +1 -1
  527. package/mcp-server/tools/project/DeployProject.js +16 -20
  528. package/mcp-server/tools/project/GuidedWalkthroughTool.d.ts +1 -1
  529. package/mcp-server/tools/project/GuidedWalkthroughTool.js +19 -23
  530. package/mcp-server/tools/project/UploadProjectTools.d.ts +1 -1
  531. package/mcp-server/tools/project/UploadProjectTools.js +10 -17
  532. package/mcp-server/tools/project/ValidateProjectTool.d.ts +1 -1
  533. package/mcp-server/tools/project/ValidateProjectTool.js +11 -15
  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/package.json +15 -11
  550. package/types/LocalDev.d.ts +4 -4
  551. package/types/LocalDev.js +1 -2
  552. package/types/ProjectComponents.d.ts +2 -2
  553. package/types/ProjectComponents.js +1 -2
  554. package/types/Projects.d.ts +1 -1
  555. package/types/Projects.js +2 -5
  556. package/types/Prompts.js +1 -2
  557. package/types/Yargs.js +1 -2
  558. package/types/{Cms.d.ts → cms.d.ts} +1 -1
  559. package/types/cms.js +1 -0
  560. package/types/sandboxes.js +1 -0
  561. package/types/Cms.js +0 -2
  562. package/types/Sandboxes.js +0 -2
  563. /package/types/{Sandboxes.d.ts → sandboxes.d.ts} +0 -0
package/lib/validation.js CHANGED
@@ -1,152 +1,113 @@
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
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.validateAccount = validateAccount;
37
- exports.validateCmsPublishMode = validateCmsPublishMode;
38
- exports.fileExists = fileExists;
39
- exports.checkAndConvertToJson = checkAndConvertToJson;
40
- const fs = __importStar(require("fs"));
41
- const path = __importStar(require("path"));
42
- const logger_1 = require("@hubspot/local-dev-lib/logger");
43
- const files_1 = require("@hubspot/local-dev-lib/constants/files");
44
- const auth_1 = require("@hubspot/local-dev-lib/constants/auth");
45
- const text_1 = require("@hubspot/local-dev-lib/text");
46
- const config_1 = require("@hubspot/local-dev-lib/config");
47
- const oauth_1 = require("@hubspot/local-dev-lib/oauth");
48
- const personalAccessKey_1 = require("@hubspot/local-dev-lib/personalAccessKey");
49
- const path_1 = require("@hubspot/local-dev-lib/path");
50
- const commonOpts_1 = require("./commonOpts");
51
- const index_1 = require("./errorHandlers/index");
52
- async function validateAccount(options) {
1
+ import * as fs from 'fs';
2
+ import * as path from 'path';
3
+ import { logger } from '@hubspot/local-dev-lib/logger';
4
+ import { CMS_PUBLISH_MODE } from '@hubspot/local-dev-lib/constants/files';
5
+ import { API_KEY_AUTH_METHOD, OAUTH_AUTH_METHOD, PERSONAL_ACCESS_KEY_AUTH_METHOD, } from '@hubspot/local-dev-lib/constants/auth';
6
+ import { commaSeparatedValues } from '@hubspot/local-dev-lib/text';
7
+ import { getConfigPath, getAccountConfig, getAccountId, loadConfigFromEnvironment, } from '@hubspot/local-dev-lib/config';
8
+ import { getOauthManager } from '@hubspot/local-dev-lib/oauth';
9
+ import { accessTokenForPersonalAccessKey } from '@hubspot/local-dev-lib/personalAccessKey';
10
+ import { getAbsoluteFilePath, getCwd, getExt, } from '@hubspot/local-dev-lib/path';
11
+ import { getCmsPublishMode } from './commonOpts.js';
12
+ import { logError } from './errorHandlers/index.js';
13
+ export async function validateAccount(options) {
53
14
  const { derivedAccountId, userProvidedAccount } = options;
54
- const accountId = (0, config_1.getAccountId)(derivedAccountId);
15
+ const accountId = getAccountId(derivedAccountId);
55
16
  if (!accountId) {
56
17
  if (userProvidedAccount) {
57
- logger_1.logger.error(`The account "${userProvidedAccount}" could not be found in the config`);
18
+ logger.error(`The account "${userProvidedAccount}" could not be found in the config`);
58
19
  }
59
20
  else {
60
- logger_1.logger.error('An account needs to be supplied either via "--account" or through setting a "defaultPortal"');
21
+ logger.error('An account needs to be supplied either via "--account" or through setting a "defaultPortal"');
61
22
  }
62
23
  return false;
63
24
  }
64
- if (userProvidedAccount && (0, config_1.loadConfigFromEnvironment)()) {
25
+ if (userProvidedAccount && loadConfigFromEnvironment()) {
65
26
  throw new Error('Cannot specify an account when environment variables are supplied. Please unset the environment variables or do not use the "--account" flag.');
66
27
  }
67
- const accountConfig = (0, config_1.getAccountConfig)(accountId);
28
+ const accountConfig = getAccountConfig(accountId);
68
29
  if (!accountConfig) {
69
- logger_1.logger.error(`The account ${accountId} has not been configured`);
30
+ logger.error(`The account ${accountId} has not been configured`);
70
31
  return false;
71
32
  }
72
33
  const { authType, auth, apiKey, personalAccessKey } = accountConfig;
73
34
  if (typeof authType === 'string' && authType !== authType.toLowerCase()) {
74
- logger_1.logger.error(`Invalid "authType" value "${authType}" for account "${accountId}" in config file: ${(0, config_1.getConfigPath)()}. Valid values are ${(0, text_1.commaSeparatedValues)([
75
- auth_1.PERSONAL_ACCESS_KEY_AUTH_METHOD,
76
- auth_1.OAUTH_AUTH_METHOD,
77
- auth_1.API_KEY_AUTH_METHOD,
35
+ logger.error(`Invalid "authType" value "${authType}" for account "${accountId}" in config file: ${getConfigPath()}. Valid values are ${commaSeparatedValues([
36
+ PERSONAL_ACCESS_KEY_AUTH_METHOD,
37
+ OAUTH_AUTH_METHOD,
38
+ API_KEY_AUTH_METHOD,
78
39
  ].map(method => method.value))}.`);
79
40
  }
80
41
  if (authType === 'oauth2') {
81
42
  if (typeof auth !== 'object') {
82
- logger_1.logger.error(`The OAuth2 auth configuration for account ${accountId} is missing`);
43
+ logger.error(`The OAuth2 auth configuration for account ${accountId} is missing`);
83
44
  return false;
84
45
  }
85
46
  const { clientId, clientSecret, tokenInfo } = auth;
86
47
  if (!clientId || !clientSecret || !tokenInfo || !tokenInfo.refreshToken) {
87
- logger_1.logger.error(`The OAuth2 configuration for account ${accountId} is incorrect`);
88
- logger_1.logger.error('Run "hs auth --type=oauth2" to reauthenticate');
48
+ logger.error(`The OAuth2 configuration for account ${accountId} is incorrect`);
49
+ logger.error('Run "hs auth --type=oauth2" to reauthenticate');
89
50
  return false;
90
51
  }
91
- const oauth = (0, oauth_1.getOauthManager)(accountId, accountConfig);
52
+ const oauth = getOauthManager(accountId, accountConfig);
92
53
  try {
93
54
  let accessToken;
94
55
  if (oauth) {
95
56
  accessToken = await oauth.accessToken();
96
57
  }
97
58
  if (!accessToken) {
98
- logger_1.logger.error(`The OAuth2 access token could not be found for accountId ${accountId}`);
59
+ logger.error(`The OAuth2 access token could not be found for accountId ${accountId}`);
99
60
  return false;
100
61
  }
101
62
  }
102
63
  catch (e) {
103
- (0, index_1.logError)(e);
64
+ logError(e);
104
65
  return false;
105
66
  }
106
67
  }
107
68
  else if (authType === 'personalaccesskey') {
108
69
  if (!personalAccessKey) {
109
- logger_1.logger.error(`The account "${accountId}" is configured to use a access key for authentication and is missing a "personalAccessKey" in the configuration file`);
70
+ logger.error(`The account "${accountId}" is configured to use a access key for authentication and is missing a "personalAccessKey" in the configuration file`);
110
71
  return false;
111
72
  }
112
73
  try {
113
- const accessToken = await (0, personalAccessKey_1.accessTokenForPersonalAccessKey)(accountId);
74
+ const accessToken = await accessTokenForPersonalAccessKey(accountId);
114
75
  if (!accessToken) {
115
- logger_1.logger.error(`An OAuth2 access token for account "${accountId} could not be retrieved using the "personalAccessKey" provided`);
76
+ logger.error(`An OAuth2 access token for account "${accountId} could not be retrieved using the "personalAccessKey" provided`);
116
77
  return false;
117
78
  }
118
79
  }
119
80
  catch (e) {
120
- (0, index_1.logError)(e);
81
+ logError(e);
121
82
  return false;
122
83
  }
123
84
  }
124
85
  else if (!apiKey) {
125
- logger_1.logger.error(`The accountId ${accountId} is missing authentication configuration`);
86
+ logger.error(`The accountId ${accountId} is missing authentication configuration`);
126
87
  return false;
127
88
  }
128
89
  return true;
129
90
  }
130
- function validateCmsPublishMode(options) {
131
- const cmsPublishMode = (0, commonOpts_1.getCmsPublishMode)(options);
132
- if (files_1.CMS_PUBLISH_MODE[cmsPublishMode]) {
91
+ export function validateCmsPublishMode(options) {
92
+ const cmsPublishMode = getCmsPublishMode(options);
93
+ if (CMS_PUBLISH_MODE[cmsPublishMode]) {
133
94
  return true;
134
95
  }
135
- const modesMessage = `Available CMS publish modes are: ${Object.values(files_1.CMS_PUBLISH_MODE).join(', ')}.`;
96
+ const modesMessage = `Available CMS publish modes are: ${Object.values(CMS_PUBLISH_MODE).join(', ')}.`;
136
97
  if (cmsPublishMode != null) {
137
- logger_1.logger.error([
98
+ logger.error([
138
99
  `The CMS publish mode "${cmsPublishMode}" is invalid.`,
139
100
  modesMessage,
140
101
  ].join(' '));
141
102
  }
142
103
  else {
143
- logger_1.logger.error(['The CMS publish mode option is missing.', modesMessage].join(' '));
104
+ logger.error(['The CMS publish mode option is missing.', modesMessage].join(' '));
144
105
  }
145
106
  return false;
146
107
  }
147
- function fileExists(_path) {
108
+ export function fileExists(_path) {
148
109
  try {
149
- const absoluteSrcPath = path.resolve((0, path_1.getCwd)(), _path);
110
+ const absoluteSrcPath = path.resolve(getCwd(), _path);
150
111
  if (!absoluteSrcPath)
151
112
  return false;
152
113
  const stats = fs.statSync(absoluteSrcPath);
@@ -160,14 +121,14 @@ function fileExists(_path) {
160
121
  }
161
122
  return true;
162
123
  }
163
- function checkAndConvertToJson(_path) {
164
- const filePath = (0, path_1.getAbsoluteFilePath)(_path);
124
+ export function checkAndConvertToJson(_path) {
125
+ const filePath = getAbsoluteFilePath(_path);
165
126
  if (!fileExists(filePath)) {
166
- logger_1.logger.error(`The path "${_path}" is not a path to a file`);
127
+ logger.error(`The path "${_path}" is not a path to a file`);
167
128
  return null;
168
129
  }
169
- if ((0, path_1.getExt)(_path) !== 'json') {
170
- logger_1.logger.error(`The file "${_path}" must be a valid JSON file`);
130
+ if (getExt(_path) !== 'json') {
131
+ logger.error(`The file "${_path}" must be a valid JSON file`);
171
132
  return null;
172
133
  }
173
134
  let result;
@@ -175,7 +136,7 @@ function checkAndConvertToJson(_path) {
175
136
  result = JSON.parse(fs.readFileSync(filePath, 'utf-8'));
176
137
  }
177
138
  catch (e) {
178
- logger_1.logger.error(`The file "${_path}" contains invalid JSON`);
139
+ logger.error(`The file "${_path}" contains invalid JSON`);
179
140
  result = null;
180
141
  }
181
142
  return result;
@@ -1,5 +1,5 @@
1
1
  import { Argv } from 'yargs';
2
- import { hasFlag } from './utils/hasFlag';
2
+ import { hasFlag } from './utils/hasFlag.js';
3
3
  export { hasFlag };
4
4
  export declare function makeYargsBuilder<T>(callback: (yargs: Argv) => Argv<T>, command: string | string[], describe?: string, options?: {
5
5
  useGlobalOptions?: boolean;
package/lib/yargsUtils.js CHANGED
@@ -1,39 +1,36 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.hasFlag = void 0;
4
- exports.makeYargsBuilder = makeYargsBuilder;
5
- const commonOpts_1 = require("./commonOpts");
6
- const hasFlag_1 = require("./utils/hasFlag");
7
- Object.defineProperty(exports, "hasFlag", { enumerable: true, get: function () { return hasFlag_1.hasFlag; } });
8
- function makeYargsBuilder(callback, command, describe, options = {}) {
1
+ import { addCustomHelpOutput, addTestingOptions, addAccountOptions, addConfigOptions, addGlobalOptions, addUseEnvironmentOptions, addCmsPublishModeOptions, addJSONOutputOptions, } from './commonOpts.js';
2
+ import { hasFlag } from './utils/hasFlag.js';
3
+ // Re-export for backwards compatibility
4
+ export { hasFlag };
5
+ export function makeYargsBuilder(callback, command, describe, options = {}) {
9
6
  return async function (yargs) {
10
7
  if (options.useGlobalOptions) {
11
- (0, commonOpts_1.addGlobalOptions)(yargs);
8
+ addGlobalOptions(yargs);
12
9
  }
13
10
  if (options.useAccountOptions) {
14
- (0, commonOpts_1.addAccountOptions)(yargs);
11
+ addAccountOptions(yargs);
15
12
  }
16
13
  if (options.useConfigOptions) {
17
- (0, commonOpts_1.addConfigOptions)(yargs);
14
+ addConfigOptions(yargs);
18
15
  }
19
16
  if (options.useEnvironmentOptions) {
20
- (0, commonOpts_1.addUseEnvironmentOptions)(yargs);
17
+ addUseEnvironmentOptions(yargs);
21
18
  }
22
19
  if (options.useTestingOptions) {
23
- (0, commonOpts_1.addTestingOptions)(yargs);
20
+ addTestingOptions(yargs);
24
21
  }
25
22
  if (options.useJSONOutputOptions) {
26
- (0, commonOpts_1.addJSONOutputOptions)(yargs);
23
+ addJSONOutputOptions(yargs);
27
24
  }
28
25
  if (options.useCmsPublishModeOptions) {
29
26
  const opts = typeof options.useCmsPublishModeOptions === 'object'
30
27
  ? options.useCmsPublishModeOptions
31
28
  : { write: true };
32
- (0, commonOpts_1.addCmsPublishModeOptions)(yargs, opts);
29
+ addCmsPublishModeOptions(yargs, opts);
33
30
  }
34
31
  const result = callback(yargs);
35
32
  // Must go last to pick up available options
36
- await (0, commonOpts_1.addCustomHelpOutput)(result, command, describe);
33
+ await addCustomHelpOutput(result, command, describe);
37
34
  return result;
38
35
  };
39
36
  }
@@ -1,9 +1,7 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const mcp_js_1 = require("@modelcontextprotocol/sdk/server/mcp.js");
4
- const stdio_js_1 = require("@modelcontextprotocol/sdk/server/stdio.js");
5
- const tools_1 = require("./tools");
6
- const server = new mcp_js_1.McpServer({
1
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
3
+ import { registerProjectTools } from './tools/index.js';
4
+ const server = new McpServer({
7
5
  name: 'HubSpot CLI MCP Server',
8
6
  version: '0.0.1',
9
7
  description: 'Helps perform tasks for local development of HubSpot projects.',
@@ -12,7 +10,7 @@ const server = new mcp_js_1.McpServer({
12
10
  prompts: {},
13
11
  },
14
12
  });
15
- (0, tools_1.registerProjectTools)(server);
13
+ registerProjectTools(server);
16
14
  // Start receiving messages on stdin and sending messages on stdout
17
- const transport = new stdio_js_1.StdioServerTransport();
15
+ const transport = new StdioServerTransport();
18
16
  server.connect(transport);
@@ -1,19 +1,16 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.registerProjectTools = registerProjectTools;
4
- const UploadProjectTools_1 = require("./project/UploadProjectTools");
5
- const CreateProjectTool_1 = require("./project/CreateProjectTool");
6
- const GuidedWalkthroughTool_1 = require("./project/GuidedWalkthroughTool");
7
- const DeployProject_1 = require("./project/DeployProject");
8
- const AddFeatureToProject_1 = require("./project/AddFeatureToProject");
9
- const ValidateProjectTool_1 = require("./project/ValidateProjectTool");
10
- function registerProjectTools(mcpServer) {
1
+ import { UploadProjectTools } from './project/UploadProjectTools.js';
2
+ import { CreateProjectTool } from './project/CreateProjectTool.js';
3
+ import { GuidedWalkthroughTool } from './project/GuidedWalkthroughTool.js';
4
+ import { DeployProject } from './project/DeployProject.js';
5
+ import { AddFeatureToProject } from './project/AddFeatureToProject.js';
6
+ import { ValidateProjectTool } from './project/ValidateProjectTool.js';
7
+ export function registerProjectTools(mcpServer) {
11
8
  return [
12
- new UploadProjectTools_1.UploadProjectTools(mcpServer).register(),
13
- new CreateProjectTool_1.CreateProjectTool(mcpServer).register(),
14
- new GuidedWalkthroughTool_1.GuidedWalkthroughTool(mcpServer).register(),
15
- new DeployProject_1.DeployProject(mcpServer).register(),
16
- new AddFeatureToProject_1.AddFeatureToProject(mcpServer).register(),
17
- new ValidateProjectTool_1.ValidateProjectTool(mcpServer).register(),
9
+ new UploadProjectTools(mcpServer).register(),
10
+ new CreateProjectTool(mcpServer).register(),
11
+ new GuidedWalkthroughTool(mcpServer).register(),
12
+ new DeployProject(mcpServer).register(),
13
+ new AddFeatureToProject(mcpServer).register(),
14
+ new ValidateProjectTool(mcpServer).register(),
18
15
  ];
19
16
  }
@@ -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.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");
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';
11
8
  const inputSchema = {
12
- absoluteProjectPath: constants_2.absoluteProjectPath,
13
- addApp: zod_1.z
9
+ absoluteProjectPath,
10
+ addApp: z
14
11
  .boolean()
15
12
  .describe('Should an app be added? If there is no app in the project, an app must be added to add a feature'),
16
- distribution: zod_1.z
17
- .optional(zod_1.z.union([
18
- zod_1.z.literal(constants_1.APP_DISTRIBUTION_TYPES.MARKETPLACE),
19
- zod_1.z.literal(constants_1.APP_DISTRIBUTION_TYPES.PRIVATE),
13
+ distribution: z
14
+ .optional(z.union([
15
+ z.literal(APP_DISTRIBUTION_TYPES.MARKETPLACE),
16
+ z.literal(APP_DISTRIBUTION_TYPES.PRIVATE),
20
17
  ]))
21
18
  .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.'),
22
- auth: zod_1.z
23
- .optional(zod_1.z.union([
24
- zod_1.z.literal(constants_1.APP_AUTH_TYPES.STATIC),
25
- zod_1.z.literal(constants_1.APP_AUTH_TYPES.OAUTH),
19
+ auth: z
20
+ .optional(z.union([
21
+ z.literal(APP_AUTH_TYPES.STATIC),
22
+ z.literal(APP_AUTH_TYPES.OAUTH),
26
23
  ]))
27
24
  .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.'),
28
- features: zod_1.z
29
- .array(zod_1.z
25
+ features: z
26
+ .array(z
30
27
  .union([
31
- zod_1.z.literal('card'),
32
- zod_1.z.literal('settings'),
33
- zod_1.z.literal('app-function'),
34
- zod_1.z.literal('webhooks'),
28
+ z.literal('card'),
29
+ z.literal('settings'),
30
+ z.literal('app-function'),
31
+ z.literal('webhooks'),
35
32
  ])
36
33
  .describe('The features to include in the project, multiple options can be selected'))
37
34
  .optional(),
38
35
  };
39
36
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
40
- const inputSchemaZodObject = zod_1.z.object({
37
+ const inputSchemaZodObject = z.object({
41
38
  ...inputSchema,
42
39
  });
43
- class AddFeatureToProject extends types_1.Tool {
40
+ export class AddFeatureToProject extends Tool {
44
41
  constructor(mcpServer) {
45
42
  super(mcpServer);
46
43
  }
@@ -49,16 +46,16 @@ class AddFeatureToProject extends types_1.Tool {
49
46
  let command = `hs project add`;
50
47
  const content = [];
51
48
  if (distribution) {
52
- command = (0, command_1.addFlag)(command, 'distribution', distribution);
49
+ command = addFlag(command, 'distribution', distribution);
53
50
  }
54
51
  else if (addApp) {
55
- 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}`));
52
+ 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}`));
56
53
  }
57
54
  if (auth) {
58
- command = (0, command_1.addFlag)(command, 'auth', auth);
55
+ command = addFlag(command, 'auth', auth);
59
56
  }
60
57
  else if (addApp) {
61
- 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}`));
58
+ 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}`));
62
59
  }
63
60
  if (content.length > 0) {
64
61
  return {
@@ -66,12 +63,12 @@ class AddFeatureToProject extends types_1.Tool {
66
63
  };
67
64
  }
68
65
  // If features isn't provided, pass an empty array to bypass the prompt
69
- command = (0, command_1.addFlag)(command, 'features', features || []);
70
- const { stdout, stderr } = await (0, project_1.runCommandInDir)(absoluteProjectPath, command);
71
- return (0, content_1.formatTextContents)(stdout, stderr);
66
+ command = addFlag(command, 'features', features || []);
67
+ const { stdout, stderr } = await runCommandInDir(absoluteProjectPath, command);
68
+ return formatTextContents(stdout, stderr);
72
69
  }
73
70
  catch (error) {
74
- return (0, content_1.formatTextContents)(error instanceof Error ? error.message : `${error}`);
71
+ return formatTextContents(error instanceof Error ? error.message : `${error}`);
75
72
  }
76
73
  }
77
74
  register() {
@@ -82,4 +79,3 @@ class AddFeatureToProject extends types_1.Tool {
82
79
  }, this.handler);
83
80
  }
84
81
  }
85
- 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,82 +1,79 @@
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");
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';
12
9
  const inputSchema = {
13
- absoluteCurrentWorkingDirectory: constants_2.absoluteCurrentWorkingDirectory,
14
- name: zod_1.z
10
+ absoluteCurrentWorkingDirectory,
11
+ name: z
15
12
  .string()
16
13
  .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.')
17
14
  .optional(),
18
- destination: zod_1.z
15
+ destination: z
19
16
  .string()
20
17
  .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.'),
21
- projectBase: zod_1.z
22
- .union([zod_1.z.literal(v3_1.EMPTY_PROJECT), zod_1.z.literal(v3_1.PROJECT_WITH_APP)])
18
+ projectBase: z
19
+ .union([z.literal(EMPTY_PROJECT), z.literal(PROJECT_WITH_APP)])
23
20
  .describe('Empty will create an empty project, and app will create a project with an app inside of it.'),
24
- distribution: zod_1.z
25
- .optional(zod_1.z.union([
26
- zod_1.z.literal(constants_1.APP_DISTRIBUTION_TYPES.MARKETPLACE),
27
- zod_1.z.literal(constants_1.APP_DISTRIBUTION_TYPES.PRIVATE),
21
+ distribution: z
22
+ .optional(z.union([
23
+ z.literal(APP_DISTRIBUTION_TYPES.MARKETPLACE),
24
+ z.literal(APP_DISTRIBUTION_TYPES.PRIVATE),
28
25
  ]))
29
26
  .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.'),
30
- auth: zod_1.z
31
- .optional(zod_1.z.union([
32
- zod_1.z.literal(constants_1.APP_AUTH_TYPES.STATIC),
33
- zod_1.z.literal(constants_1.APP_AUTH_TYPES.OAUTH),
27
+ auth: z
28
+ .optional(z.union([
29
+ z.literal(APP_AUTH_TYPES.STATIC),
30
+ z.literal(APP_AUTH_TYPES.OAUTH),
34
31
  ]))
35
32
  .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.')
36
33
  .optional(),
37
- features: zod_1.z
38
- .array(zod_1.z
34
+ features: z
35
+ .array(z
39
36
  .union([
40
- zod_1.z.literal('card'),
41
- zod_1.z.literal('settings'),
42
- zod_1.z.literal('app-function'),
43
- zod_1.z.literal('webhooks'),
37
+ z.literal('card'),
38
+ z.literal('settings'),
39
+ z.literal('app-function'),
40
+ z.literal('webhooks'),
44
41
  ])
45
42
  .describe('The features to include in the project, multiple options can be selected'))
46
43
  .optional(),
47
44
  };
48
45
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
49
- const inputSchemaZodObject = zod_1.z.object({ ...inputSchema });
50
- class CreateProjectTool extends types_1.Tool {
46
+ const inputSchemaZodObject = z.object({ ...inputSchema });
47
+ export class CreateProjectTool extends Tool {
51
48
  constructor(mcpServer) {
52
49
  super(mcpServer);
53
50
  }
54
51
  async handler({ name, destination, projectBase, distribution, auth, features, absoluteCurrentWorkingDirectory, }) {
55
- let command = (0, command_1.addFlag)('hs project create', 'platform-version', '2025.2');
52
+ let command = addFlag('hs project create', 'platform-version', '2025.2');
56
53
  const content = [];
57
54
  if (name) {
58
- command = (0, command_1.addFlag)(command, 'name', name);
55
+ command = addFlag(command, 'name', name);
59
56
  }
60
57
  else {
61
- content.push((0, content_1.formatTextContent)(`Ask the user what they would like to name the project.`));
58
+ content.push(formatTextContent(`Ask the user what they would like to name the project.`));
62
59
  }
63
60
  if (destination) {
64
- command = (0, command_1.addFlag)(command, 'dest', destination);
61
+ command = addFlag(command, 'dest', destination);
65
62
  }
66
63
  if (projectBase) {
67
- command = (0, command_1.addFlag)(command, 'project-base', projectBase);
64
+ command = addFlag(command, 'project-base', projectBase);
68
65
  }
69
66
  if (distribution) {
70
- command = (0, command_1.addFlag)(command, 'distribution', distribution);
67
+ command = addFlag(command, 'distribution', distribution);
71
68
  }
72
- else if (projectBase === v3_1.PROJECT_WITH_APP) {
73
- 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}`));
69
+ else if (projectBase === PROJECT_WITH_APP) {
70
+ 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}`));
74
71
  }
75
72
  if (auth) {
76
- command = (0, command_1.addFlag)(command, 'auth', auth);
73
+ command = addFlag(command, 'auth', auth);
77
74
  }
78
- else if (projectBase === v3_1.PROJECT_WITH_APP) {
79
- 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}`));
75
+ else if (projectBase === PROJECT_WITH_APP) {
76
+ 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}`));
80
77
  }
81
78
  if (content.length > 0) {
82
79
  return {
@@ -84,13 +81,13 @@ class CreateProjectTool extends types_1.Tool {
84
81
  };
85
82
  }
86
83
  // Always pass features, even if it is an empty array to bypass the prompts
87
- command = (0, command_1.addFlag)(command, 'features', features || []);
84
+ command = addFlag(command, 'features', features || []);
88
85
  try {
89
- const { stdout, stderr } = await (0, project_1.runCommandInDir)(absoluteCurrentWorkingDirectory, command);
90
- return (0, content_1.formatTextContents)(stdout, stderr);
86
+ const { stdout, stderr } = await runCommandInDir(absoluteCurrentWorkingDirectory, command);
87
+ return formatTextContents(stdout, stderr);
91
88
  }
92
89
  catch (error) {
93
- return (0, content_1.formatTextContents)(error instanceof Error ? error.message : `${error}`);
90
+ return formatTextContents(error instanceof Error ? error.message : `${error}`);
94
91
  }
95
92
  }
96
93
  register() {
@@ -101,4 +98,3 @@ class CreateProjectTool extends types_1.Tool {
101
98
  }, this.handler);
102
99
  }
103
100
  }
104
- 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<{