@hubspot/cli 7.6.0-beta.4 → 7.6.0-beta.6

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 (587) hide show
  1. package/api/__tests__/migrate.test.js +27 -29
  2. package/api/migrate.d.ts +7 -0
  3. package/api/migrate.js +22 -22
  4. package/bin/cli.js +92 -97
  5. package/bin/hs +2 -2
  6. package/bin/hscms +2 -2
  7. package/bin/silenceErrors.js +1 -2
  8. package/commands/__tests__/account.test.js +29 -34
  9. package/commands/__tests__/auth.test.js +11 -16
  10. package/commands/__tests__/cms.test.js +15 -20
  11. package/commands/__tests__/config.test.js +14 -19
  12. package/commands/__tests__/create.test.js +10 -15
  13. package/commands/__tests__/customObject.test.js +14 -19
  14. package/commands/__tests__/doctor.test.js +43 -48
  15. package/commands/__tests__/feedback.test.js +7 -45
  16. package/commands/__tests__/fetch.test.js +29 -28
  17. package/commands/__tests__/filemanager.test.js +14 -19
  18. package/commands/__tests__/function.test.js +16 -21
  19. package/commands/__tests__/getStarted.test.js +45 -60
  20. package/commands/__tests__/hubdb.test.js +17 -22
  21. package/commands/__tests__/init.test.js +12 -17
  22. package/commands/__tests__/lint.test.js +13 -18
  23. package/commands/__tests__/list.test.js +18 -23
  24. package/commands/__tests__/logs.test.js +28 -27
  25. package/commands/__tests__/mcp.test.js +14 -19
  26. package/commands/__tests__/mv.test.js +14 -52
  27. package/commands/__tests__/open.test.js +13 -51
  28. package/commands/__tests__/project.test.js +44 -49
  29. package/commands/__tests__/remove.test.js +13 -51
  30. package/commands/__tests__/sandbox.test.js +14 -19
  31. package/commands/__tests__/secret.test.js +16 -21
  32. package/commands/__tests__/testAccount.test.js +16 -21
  33. package/commands/__tests__/theme.test.js +15 -20
  34. package/commands/account/__tests__/auth.test.js +11 -16
  35. package/commands/account/__tests__/clean.test.js +12 -17
  36. package/commands/account/__tests__/createOverride.test.js +10 -15
  37. package/commands/account/__tests__/info.test.js +11 -16
  38. package/commands/account/__tests__/list.test.js +11 -16
  39. package/commands/account/__tests__/remove.test.js +13 -18
  40. package/commands/account/__tests__/removeOverride.js +8 -13
  41. package/commands/account/__tests__/rename.test.js +15 -20
  42. package/commands/account/__tests__/use.test.js +10 -15
  43. package/commands/account/auth.d.ts +1 -1
  44. package/commands/account/auth.js +78 -69
  45. package/commands/account/clean.d.ts +1 -1
  46. package/commands/account/clean.js +55 -60
  47. package/commands/account/createOverride.d.ts +1 -1
  48. package/commands/account/createOverride.js +52 -57
  49. package/commands/account/info.d.ts +1 -1
  50. package/commands/account/info.js +33 -35
  51. package/commands/account/list.d.ts +1 -1
  52. package/commands/account/list.js +43 -45
  53. package/commands/account/remove.d.ts +1 -1
  54. package/commands/account/remove.js +37 -42
  55. package/commands/account/removeOverride.d.ts +1 -1
  56. package/commands/account/removeOverride.js +38 -43
  57. package/commands/account/rename.d.ts +1 -1
  58. package/commands/account/rename.js +18 -20
  59. package/commands/account/use.d.ts +1 -1
  60. package/commands/account/use.js +29 -31
  61. package/commands/account.d.ts +1 -1
  62. package/commands/account.js +23 -28
  63. package/commands/app/__tests__/migrate.test.js +29 -34
  64. package/commands/app/migrate.d.ts +2 -2
  65. package/commands/app/migrate.js +40 -43
  66. package/commands/app/secret/__tests__/add.test.js +6 -11
  67. package/commands/app/secret/__tests__/delete.test.js +6 -11
  68. package/commands/app/secret/__tests__/list.test.js +6 -11
  69. package/commands/app/secret/__tests__/update.test.js +6 -11
  70. package/commands/app/secret/add.d.ts +1 -1
  71. package/commands/app/secret/add.js +28 -30
  72. package/commands/app/secret/delete.d.ts +1 -1
  73. package/commands/app/secret/delete.js +34 -36
  74. package/commands/app/secret/list.d.ts +1 -1
  75. package/commands/app/secret/list.js +25 -27
  76. package/commands/app/secret/update.d.ts +1 -1
  77. package/commands/app/secret/update.js +32 -34
  78. package/commands/app/secret.d.ts +1 -1
  79. package/commands/app/secret.js +12 -17
  80. package/commands/app.d.ts +1 -1
  81. package/commands/app.js +6 -11
  82. package/commands/auth.d.ts +1 -1
  83. package/commands/auth.js +70 -72
  84. package/commands/cms/convertFields.d.ts +1 -1
  85. package/commands/cms/convertFields.js +34 -39
  86. package/commands/cms/getReactModule.d.ts +1 -1
  87. package/commands/cms/getReactModule.js +32 -37
  88. package/commands/cms/lighthouseScore.d.ts +1 -1
  89. package/commands/cms/lighthouseScore.js +67 -72
  90. package/commands/cms.d.ts +1 -1
  91. package/commands/cms.js +11 -16
  92. package/commands/completion.d.ts +1 -1
  93. package/commands/completion.js +10 -15
  94. package/commands/config/migrate.d.ts +1 -1
  95. package/commands/config/migrate.js +27 -32
  96. package/commands/config/set.d.ts +2 -1
  97. package/commands/config/set.js +40 -32
  98. package/commands/config.d.ts +1 -1
  99. package/commands/config.js +8 -13
  100. package/commands/create/api-sample.d.ts +1 -1
  101. package/commands/create/api-sample.js +28 -33
  102. package/commands/create/app.d.ts +1 -1
  103. package/commands/create/app.js +3 -5
  104. package/commands/create/function.d.ts +1 -1
  105. package/commands/create/function.js +9 -11
  106. package/commands/create/index.d.ts +1 -1
  107. package/commands/create/index.js +19 -24
  108. package/commands/create/module.d.ts +1 -1
  109. package/commands/create/module.js +12 -14
  110. package/commands/create/react-app.d.ts +1 -1
  111. package/commands/create/react-app.js +3 -5
  112. package/commands/create/template.d.ts +1 -1
  113. package/commands/create/template.js +12 -14
  114. package/commands/create/vue-app.d.ts +1 -1
  115. package/commands/create/vue-app.js +3 -5
  116. package/commands/create/webpack-serverless.d.ts +1 -1
  117. package/commands/create/webpack-serverless.js +3 -5
  118. package/commands/create/website-theme.d.ts +1 -1
  119. package/commands/create/website-theme.js +5 -7
  120. package/commands/create.d.ts +2 -2
  121. package/commands/create.js +30 -35
  122. package/commands/customObject/__tests__/create.test.js +13 -18
  123. package/commands/customObject/__tests__/schema.test.js +18 -23
  124. package/commands/customObject/create.d.ts +1 -1
  125. package/commands/customObject/create.js +28 -30
  126. package/commands/customObject/schema/__tests__/create.test.js +13 -18
  127. package/commands/customObject/schema/__tests__/delete.test.js +13 -18
  128. package/commands/customObject/schema/__tests__/fetch-all.test.js +13 -18
  129. package/commands/customObject/schema/__tests__/fetch.test.js +13 -18
  130. package/commands/customObject/schema/__tests__/list.test.js +13 -18
  131. package/commands/customObject/schema/__tests__/update.test.js +13 -18
  132. package/commands/customObject/schema/create.d.ts +1 -1
  133. package/commands/customObject/schema/create.js +28 -30
  134. package/commands/customObject/schema/delete.d.ts +1 -1
  135. package/commands/customObject/schema/delete.js +24 -26
  136. package/commands/customObject/schema/fetch-all.d.ts +1 -1
  137. package/commands/customObject/schema/fetch-all.js +22 -24
  138. package/commands/customObject/schema/fetch.d.ts +1 -1
  139. package/commands/customObject/schema/fetch.js +24 -26
  140. package/commands/customObject/schema/list.d.ts +1 -1
  141. package/commands/customObject/schema/list.js +13 -15
  142. package/commands/customObject/schema/update.d.ts +1 -1
  143. package/commands/customObject/schema/update.js +32 -34
  144. package/commands/customObject/schema.d.ts +1 -1
  145. package/commands/customObject/schema.js +17 -22
  146. package/commands/customObject.d.ts +1 -1
  147. package/commands/customObject.js +13 -18
  148. package/commands/doctor.d.ts +1 -1
  149. package/commands/doctor.js +28 -33
  150. package/commands/feedback.d.ts +1 -1
  151. package/commands/feedback.js +19 -24
  152. package/commands/fetch.d.ts +1 -1
  153. package/commands/fetch.js +28 -30
  154. package/commands/filemanager/__tests__/fetch.test.js +17 -22
  155. package/commands/filemanager/__tests__/upload.test.js +15 -20
  156. package/commands/filemanager/fetch.d.ts +1 -1
  157. package/commands/filemanager/fetch.js +23 -25
  158. package/commands/filemanager/upload.d.ts +1 -1
  159. package/commands/filemanager/upload.js +39 -44
  160. package/commands/filemanager.d.ts +1 -1
  161. package/commands/filemanager.js +8 -13
  162. package/commands/function/deploy.d.ts +1 -1
  163. package/commands/function/deploy.js +35 -40
  164. package/commands/function/list.d.ts +1 -1
  165. package/commands/function/list.js +24 -29
  166. package/commands/function/server.d.ts +1 -1
  167. package/commands/function/server.js +15 -17
  168. package/commands/function.d.ts +1 -1
  169. package/commands/function.js +12 -18
  170. package/commands/getStarted.d.ts +1 -1
  171. package/commands/getStarted.js +125 -146
  172. package/commands/hubdb/__tests__/clear.test.js +13 -18
  173. package/commands/hubdb/__tests__/create.test.js +13 -18
  174. package/commands/hubdb/__tests__/delete.test.js +13 -18
  175. package/commands/hubdb/__tests__/fetch.test.js +13 -18
  176. package/commands/hubdb/__tests__/list.test.js +23 -28
  177. package/commands/hubdb/clear.d.ts +1 -1
  178. package/commands/hubdb/clear.js +20 -22
  179. package/commands/hubdb/create.d.ts +1 -1
  180. package/commands/hubdb/create.js +30 -35
  181. package/commands/hubdb/delete.d.ts +1 -1
  182. package/commands/hubdb/delete.js +24 -26
  183. package/commands/hubdb/fetch.d.ts +1 -1
  184. package/commands/hubdb/fetch.js +17 -19
  185. package/commands/hubdb/list.d.ts +1 -1
  186. package/commands/hubdb/list.js +33 -35
  187. package/commands/hubdb.d.ts +1 -1
  188. package/commands/hubdb.js +18 -24
  189. package/commands/init.d.ts +1 -1
  190. package/commands/init.js +83 -88
  191. package/commands/lint.d.ts +1 -1
  192. package/commands/lint.js +24 -26
  193. package/commands/list.d.ts +1 -1
  194. package/commands/list.js +32 -37
  195. package/commands/logs.d.ts +1 -1
  196. package/commands/logs.js +35 -37
  197. package/commands/mcp/__tests__/setup.test.js +7 -12
  198. package/commands/mcp/__tests__/start.test.js +7 -12
  199. package/commands/mcp/setup.d.ts +1 -1
  200. package/commands/mcp/setup.js +17 -19
  201. package/commands/mcp/start.d.ts +1 -1
  202. package/commands/mcp/start.js +32 -34
  203. package/commands/mcp.d.ts +1 -1
  204. package/commands/mcp.js +7 -12
  205. package/commands/module/marketplace-validate.d.ts +1 -1
  206. package/commands/module/marketplace-validate.js +21 -26
  207. package/commands/module.d.ts +1 -1
  208. package/commands/module.js +7 -13
  209. package/commands/mv.d.ts +1 -1
  210. package/commands/mv.js +20 -22
  211. package/commands/open.d.ts +1 -1
  212. package/commands/open.js +19 -21
  213. package/commands/project/__tests__/add.test.js +10 -15
  214. package/commands/project/__tests__/create.test.js +14 -19
  215. package/commands/project/__tests__/deploy.test.js +99 -141
  216. package/commands/project/__tests__/devUnifiedFlow.test.js +151 -155
  217. package/commands/project/__tests__/download.test.js +14 -19
  218. package/commands/project/__tests__/installDeps.test.js +32 -70
  219. package/commands/project/__tests__/listBuilds.test.js +14 -19
  220. package/commands/project/__tests__/logs.test.js +56 -94
  221. package/commands/project/__tests__/migrate.test.js +25 -30
  222. package/commands/project/__tests__/migrateApp.test.js +17 -22
  223. package/commands/project/__tests__/open.test.js +16 -21
  224. package/commands/project/__tests__/profile.test.js +14 -19
  225. package/commands/project/__tests__/upload.test.js +18 -23
  226. package/commands/project/__tests__/watch.test.js +14 -19
  227. package/commands/project/add.d.ts +1 -1
  228. package/commands/project/add.js +34 -36
  229. package/commands/project/cloneApp.d.ts +1 -1
  230. package/commands/project/cloneApp.js +67 -72
  231. package/commands/project/create.d.ts +2 -2
  232. package/commands/project/create.js +63 -68
  233. package/commands/project/deploy.d.ts +2 -2
  234. package/commands/project/deploy.js +83 -90
  235. package/commands/project/dev/deprecatedFlow.d.ts +2 -2
  236. package/commands/project/dev/deprecatedFlow.js +52 -58
  237. package/commands/project/dev/index.d.ts +1 -1
  238. package/commands/project/dev/index.js +44 -47
  239. package/commands/project/dev/unifiedFlow.d.ts +3 -3
  240. package/commands/project/dev/unifiedFlow.js +69 -76
  241. package/commands/project/download.d.ts +1 -1
  242. package/commands/project/download.js +35 -40
  243. package/commands/project/installDeps.d.ts +1 -1
  244. package/commands/project/installDeps.js +29 -34
  245. package/commands/project/listBuilds.d.ts +1 -1
  246. package/commands/project/listBuilds.js +40 -45
  247. package/commands/project/logs.d.ts +1 -1
  248. package/commands/project/logs.js +52 -54
  249. package/commands/project/migrate.d.ts +1 -1
  250. package/commands/project/migrate.js +24 -26
  251. package/commands/project/migrateApp.d.ts +2 -2
  252. package/commands/project/migrateApp.js +18 -20
  253. package/commands/project/open.d.ts +1 -1
  254. package/commands/project/open.js +25 -30
  255. package/commands/project/profile/add.d.ts +1 -1
  256. package/commands/project/profile/add.js +68 -73
  257. package/commands/project/profile/delete.d.ts +1 -1
  258. package/commands/project/profile/delete.js +68 -61
  259. package/commands/project/profile.d.ts +1 -1
  260. package/commands/project/profile.js +9 -14
  261. package/commands/project/upload.d.ts +1 -1
  262. package/commands/project/upload.js +50 -55
  263. package/commands/project/validate.d.ts +1 -1
  264. package/commands/project/validate.js +36 -40
  265. package/commands/project/watch.d.ts +1 -1
  266. package/commands/project/watch.js +59 -61
  267. package/commands/project.d.ts +1 -1
  268. package/commands/project.js +38 -43
  269. package/commands/remove.d.ts +1 -1
  270. package/commands/remove.js +15 -17
  271. package/commands/sandbox/__tests__/create.test.js +222 -20
  272. package/commands/sandbox/__tests__/delete.test.js +15 -20
  273. package/commands/sandbox/create.d.ts +2 -2
  274. package/commands/sandbox/create.js +92 -79
  275. package/commands/sandbox/delete.d.ts +1 -1
  276. package/commands/sandbox/delete.js +94 -96
  277. package/commands/sandbox.d.ts +1 -1
  278. package/commands/sandbox.js +9 -14
  279. package/commands/secret/__tests__/addSecret.test.js +13 -18
  280. package/commands/secret/__tests__/deleteSecret.test.js +13 -18
  281. package/commands/secret/__tests__/listSecret.test.js +13 -18
  282. package/commands/secret/__tests__/updateSecret.test.js +13 -18
  283. package/commands/secret/addSecret.d.ts +1 -1
  284. package/commands/secret/addSecret.js +26 -28
  285. package/commands/secret/deleteSecret.d.ts +1 -1
  286. package/commands/secret/deleteSecret.js +27 -29
  287. package/commands/secret/listSecret.d.ts +1 -1
  288. package/commands/secret/listSecret.js +19 -21
  289. package/commands/secret/updateSecret.d.ts +1 -1
  290. package/commands/secret/updateSecret.js +25 -27
  291. package/commands/secret.d.ts +1 -1
  292. package/commands/secret.js +13 -18
  293. package/commands/testAccount/__tests__/create.test.js +17 -22
  294. package/commands/testAccount/__tests__/createConfig.test.js +6 -11
  295. package/commands/testAccount/__tests__/delete.test.js +15 -20
  296. package/commands/testAccount/create.d.ts +1 -1
  297. package/commands/testAccount/create.js +63 -84
  298. package/commands/testAccount/createConfig.d.ts +1 -1
  299. package/commands/testAccount/createConfig.js +36 -41
  300. package/commands/testAccount/delete.d.ts +1 -1
  301. package/commands/testAccount/delete.js +17 -19
  302. package/commands/testAccount.d.ts +1 -1
  303. package/commands/testAccount.js +10 -15
  304. package/commands/theme/__tests__/generate-selectors.test.js +7 -12
  305. package/commands/theme/__tests__/marketplace-validate.test.js +14 -19
  306. package/commands/theme/__tests__/preview.test.js +12 -17
  307. package/commands/theme/generate-selectors.d.ts +1 -1
  308. package/commands/theme/generate-selectors.js +23 -28
  309. package/commands/theme/marketplace-validate.d.ts +1 -1
  310. package/commands/theme/marketplace-validate.js +19 -24
  311. package/commands/theme/preview.d.ts +1 -1
  312. package/commands/theme/preview.js +60 -65
  313. package/commands/theme.d.ts +1 -1
  314. package/commands/theme.js +11 -16
  315. package/commands/upload.d.ts +1 -1
  316. package/commands/upload.js +77 -82
  317. package/commands/watch.d.ts +1 -1
  318. package/commands/watch.js +45 -51
  319. package/lang/en.d.ts +52 -25
  320. package/lang/en.js +421 -397
  321. package/lang/en.lyaml +4 -28
  322. package/lib/__tests__/accountTypes.test.js +20 -22
  323. package/lib/__tests__/buildAccount.test.js +115 -64
  324. package/lib/__tests__/commonOpts.test.js +20 -22
  325. package/lib/__tests__/dependencyManagement.test.js +46 -51
  326. package/lib/__tests__/developerTestAccounts.test.js +27 -62
  327. package/lib/__tests__/hasFeature.test.js +6 -8
  328. package/lib/__tests__/npm.test.js +15 -20
  329. package/lib/__tests__/oauth.test.js +23 -28
  330. package/lib/__tests__/parsing.test.js +18 -20
  331. package/lib/__tests__/polling.test.js +24 -26
  332. package/lib/__tests__/process.test.js +14 -19
  333. package/lib/__tests__/projectProfiles.test.js +34 -39
  334. package/lib/__tests__/sandboxSync.test.js +30 -35
  335. package/lib/__tests__/sandboxes.test.js +29 -31
  336. package/lib/__tests__/serverlessLogs.test.js +8 -13
  337. package/lib/__tests__/usageTracking.test.js +33 -34
  338. package/lib/__tests__/validation.test.js +18 -20
  339. package/lib/__tests__/yargsUtils.test.js +17 -41
  340. package/lib/accountTypes.js +24 -34
  341. package/lib/app/__tests__/migrate.test.js +117 -109
  342. package/lib/app/__tests__/migrate_legacy.test.js +29 -31
  343. package/lib/app/migrate.d.ts +18 -4
  344. package/lib/app/migrate.js +152 -148
  345. package/lib/app/migrate_legacy.d.ts +1 -1
  346. package/lib/app/migrate_legacy.js +72 -78
  347. package/lib/app/urls.js +5 -9
  348. package/lib/buildAccount.d.ts +12 -3
  349. package/lib/buildAccount.js +165 -69
  350. package/lib/commonOpts.d.ts +1 -1
  351. package/lib/commonOpts.js +67 -59
  352. package/lib/configMigrate.js +34 -38
  353. package/lib/configOptions.d.ts +5 -0
  354. package/lib/configOptions.js +44 -40
  355. package/lib/constants.d.ts +8 -0
  356. package/lib/constants.js +39 -34
  357. package/lib/customObject.js +2 -6
  358. package/lib/dependencyManagement.js +37 -45
  359. package/lib/developerTestAccounts.d.ts +1 -1
  360. package/lib/developerTestAccounts.js +34 -39
  361. package/lib/doctor/Diagnosis.d.ts +1 -1
  362. package/lib/doctor/Diagnosis.js +25 -29
  363. package/lib/doctor/DiagnosticInfoBuilder.d.ts +1 -1
  364. package/lib/doctor/DiagnosticInfoBuilder.js +30 -37
  365. package/lib/doctor/Doctor.d.ts +1 -1
  366. package/lib/doctor/Doctor.js +94 -101
  367. package/lib/doctor/__tests__/Diagnosis.test.js +9 -14
  368. package/lib/doctor/__tests__/DiagnosticInfoBuilder.test.js +29 -34
  369. package/lib/doctor/__tests__/Doctor.test.js +24 -26
  370. package/lib/enums/exitCodes.js +1 -4
  371. package/lib/errorHandlers/index.js +33 -52
  372. package/lib/errorHandlers/suppressError.d.ts +1 -1
  373. package/lib/errorHandlers/suppressError.js +28 -31
  374. package/lib/errors/ProjectValidationError.d.ts +4 -0
  375. package/lib/errors/ProjectValidationError.js +9 -0
  376. package/lib/filesystem.js +8 -15
  377. package/lib/generateSelectors.js +18 -29
  378. package/lib/hasFeature.d.ts +1 -1
  379. package/lib/hasFeature.js +3 -6
  380. package/lib/interpolation.js +11 -18
  381. package/lib/lang.d.ts +1 -1
  382. package/lib/lang.js +22 -27
  383. package/lib/links.js +16 -24
  384. package/lib/marketplaceValidate.js +29 -39
  385. package/lib/mcp/setup.d.ts +4 -0
  386. package/lib/mcp/setup.js +106 -82
  387. package/lib/middleware/__test__/configMiddleware.test.js +20 -55
  388. package/lib/middleware/__test__/gitMiddleware.test.js +7 -42
  389. package/lib/middleware/__test__/notificationsMiddleware.test.js +2 -4
  390. package/lib/middleware/__test__/requestMiddleware.test.js +6 -11
  391. package/lib/middleware/__test__/utils.test.js +9 -11
  392. package/lib/middleware/__test__/yargsChecksMiddleware.test.js +9 -44
  393. package/lib/middleware/autoUpdateMiddleware.js +33 -40
  394. package/lib/middleware/configMiddleware.js +36 -42
  395. package/lib/middleware/fireAlarmMiddleware.js +12 -18
  396. package/lib/middleware/gitMiddleware.js +5 -8
  397. package/lib/middleware/notificationsMiddleware.js +16 -23
  398. package/lib/middleware/requestMiddleware.js +4 -10
  399. package/lib/middleware/utils.js +1 -4
  400. package/lib/middleware/yargsChecksMiddleware.js +10 -13
  401. package/lib/npm.js +14 -23
  402. package/lib/oauth.js +29 -35
  403. package/lib/parsing.js +3 -6
  404. package/lib/polling.js +11 -15
  405. package/lib/process.js +11 -19
  406. package/lib/projectProfiles.d.ts +2 -2
  407. package/lib/projectProfiles.js +32 -42
  408. package/lib/projects/ProjectLogsManager.js +18 -21
  409. package/lib/projects/__tests__/AppDevModeInterface.test.js +140 -145
  410. package/lib/projects/__tests__/LocalDevProcess.test.js +100 -140
  411. package/lib/projects/__tests__/LocalDevWebsocketServer.test.js +201 -37
  412. package/lib/projects/__tests__/ProjectLogsManager.test.js +56 -58
  413. package/lib/projects/__tests__/buildAndDeploy.test.js +7 -9
  414. package/lib/projects/__tests__/components.test.js +9 -14
  415. package/lib/projects/__tests__/localDevHelpers.test.js +117 -0
  416. package/lib/projects/__tests__/projects.test.js +35 -40
  417. package/lib/projects/__tests__/structure.test.js +43 -81
  418. package/lib/projects/add/__tests__/legacyAddComponent.test.js +26 -28
  419. package/lib/projects/add/__tests__/v3AddComponent.test.js +25 -30
  420. package/lib/projects/add/legacyAddComponent.d.ts +1 -1
  421. package/lib/projects/add/legacyAddComponent.js +24 -30
  422. package/lib/projects/add/v3AddComponent.d.ts +1 -1
  423. package/lib/projects/add/v3AddComponent.js +37 -42
  424. package/lib/projects/buildAndDeploy.d.ts +1 -1
  425. package/lib/projects/buildAndDeploy.js +88 -97
  426. package/lib/projects/components.js +19 -25
  427. package/lib/projects/config.d.ts +1 -1
  428. package/lib/projects/config.js +32 -41
  429. package/lib/projects/create/__tests__/legacy.test.js +22 -57
  430. package/lib/projects/create/__tests__/v3.test.js +5 -7
  431. package/lib/projects/create/index.d.ts +3 -3
  432. package/lib/projects/create/index.js +19 -22
  433. package/lib/projects/create/legacy.d.ts +1 -1
  434. package/lib/projects/create/legacy.js +25 -31
  435. package/lib/projects/create/v3.d.ts +3 -5
  436. package/lib/projects/create/v3.js +47 -59
  437. package/lib/projects/ensureProjectExists.js +31 -37
  438. package/lib/projects/localDev/AppDevModeInterface.d.ts +3 -3
  439. package/lib/projects/localDev/AppDevModeInterface.js +58 -60
  440. package/lib/projects/localDev/DevServerManager.d.ts +1 -1
  441. package/lib/projects/localDev/DevServerManager.js +22 -26
  442. package/lib/projects/localDev/DevServerManagerV2.d.ts +2 -2
  443. package/lib/projects/localDev/DevServerManagerV2.js +15 -22
  444. package/lib/projects/localDev/LocalDevLogger.d.ts +1 -2
  445. package/lib/projects/localDev/LocalDevLogger.js +66 -66
  446. package/lib/projects/localDev/LocalDevManager.d.ts +1 -1
  447. package/lib/projects/localDev/LocalDevManager.js +106 -111
  448. package/lib/projects/localDev/LocalDevProcess.d.ts +6 -5
  449. package/lib/projects/localDev/LocalDevProcess.js +37 -50
  450. package/lib/projects/localDev/LocalDevState.d.ts +5 -7
  451. package/lib/projects/localDev/LocalDevState.js +9 -11
  452. package/lib/projects/localDev/LocalDevWatcher.d.ts +1 -1
  453. package/lib/projects/localDev/LocalDevWatcher.js +6 -11
  454. package/lib/projects/localDev/LocalDevWebsocketServer.d.ts +3 -3
  455. package/lib/projects/localDev/LocalDevWebsocketServer.js +63 -55
  456. package/lib/projects/localDev/helpers.d.ts +11 -4
  457. package/lib/projects/localDev/helpers.js +211 -174
  458. package/lib/projects/structure.d.ts +3 -3
  459. package/lib/projects/structure.js +32 -78
  460. package/lib/projects/ui.js +10 -13
  461. package/lib/projects/upload.d.ts +1 -1
  462. package/lib/projects/upload.js +57 -73
  463. package/lib/projects/urls.d.ts +1 -1
  464. package/lib/projects/urls.js +15 -25
  465. package/lib/projects/watch.d.ts +1 -1
  466. package/lib/projects/watch.js +48 -54
  467. package/lib/prompts/__tests__/downloadProjectPrompt.test.js +9 -11
  468. package/lib/prompts/__tests__/projectsLogsPrompt.test.js +11 -16
  469. package/lib/prompts/accountNamePrompt.d.ts +1 -1
  470. package/lib/prompts/accountNamePrompt.js +26 -31
  471. package/lib/prompts/accountsPrompt.js +12 -15
  472. package/lib/prompts/cmsFieldPrompt.js +13 -19
  473. package/lib/prompts/createApiSamplePrompt.d.ts +1 -1
  474. package/lib/prompts/createApiSamplePrompt.js +9 -12
  475. package/lib/prompts/createDeveloperTestAccountConfigPrompt.d.ts +2 -2
  476. package/lib/prompts/createDeveloperTestAccountConfigPrompt.js +27 -31
  477. package/lib/prompts/createFunctionPrompt.js +17 -20
  478. package/lib/prompts/createModulePrompt.js +12 -15
  479. package/lib/prompts/createTemplatePrompt.js +5 -8
  480. package/lib/prompts/downloadProjectPrompt.js +17 -20
  481. package/lib/prompts/installAppPrompt.js +19 -26
  482. package/lib/prompts/personalAccessKeyPrompt.d.ts +2 -2
  483. package/lib/prompts/personalAccessKeyPrompt.js +40 -47
  484. package/lib/prompts/previewPrompt.js +15 -22
  485. package/lib/prompts/projectAddPrompt.d.ts +1 -1
  486. package/lib/prompts/projectAddPrompt.js +14 -18
  487. package/lib/prompts/projectDevTargetAccountPrompt.d.ts +1 -1
  488. package/lib/prompts/projectDevTargetAccountPrompt.js +48 -54
  489. package/lib/prompts/projectNameAndDestPrompt.d.ts +1 -1
  490. package/lib/prompts/projectNameAndDestPrompt.js +22 -29
  491. package/lib/prompts/projectNamePrompt.js +11 -14
  492. package/lib/prompts/projectsLogsPrompt.js +5 -8
  493. package/lib/prompts/promptUtils.d.ts +1 -1
  494. package/lib/prompts/promptUtils.js +80 -77
  495. package/lib/prompts/sandboxesPrompt.d.ts +1 -1
  496. package/lib/prompts/sandboxesPrompt.js +26 -30
  497. package/lib/prompts/secretPrompt.js +10 -15
  498. package/lib/prompts/selectAppPrompt.js +11 -14
  499. package/lib/prompts/selectHubDBTablePrompt.js +24 -30
  500. package/lib/prompts/selectProjectTemplatePrompt.d.ts +1 -1
  501. package/lib/prompts/selectProjectTemplatePrompt.js +10 -13
  502. package/lib/prompts/selectPublicAppForMigrationPrompt.js +22 -25
  503. package/lib/prompts/setAsDefaultAccountPrompt.js +13 -16
  504. package/lib/prompts/uploadPrompt.js +11 -17
  505. package/lib/sandboxSync.d.ts +1 -1
  506. package/lib/sandboxSync.js +58 -65
  507. package/lib/sandboxes.d.ts +5 -1
  508. package/lib/sandboxes.js +72 -76
  509. package/lib/schema.js +13 -20
  510. package/lib/serverlessLogs.js +45 -52
  511. package/lib/testUtils.js +4 -8
  512. package/lib/ui/SpinniesManager.d.ts +1 -1
  513. package/lib/ui/SpinniesManager.js +29 -34
  514. package/lib/ui/boxen.js +11 -14
  515. package/lib/ui/git.js +14 -20
  516. package/lib/ui/index.d.ts +6 -0
  517. package/lib/ui/index.js +56 -76
  518. package/lib/ui/logger.js +10 -13
  519. package/lib/ui/serverlessFunctionLogs.js +14 -20
  520. package/lib/ui/spinniesUtils.js +24 -39
  521. package/lib/ui/supportHyperlinks.js +3 -6
  522. package/lib/ui/supportsColor.js +11 -17
  523. package/lib/ui/table.js +6 -13
  524. package/lib/upload.js +15 -21
  525. package/lib/usageTracking.js +35 -44
  526. package/lib/utils/__tests__/isDeepEqual.test.js +269 -0
  527. package/lib/utils/hasFlag.js +2 -8
  528. package/lib/utils/isDeepEqual.d.ts +1 -0
  529. package/lib/utils/isDeepEqual.js +31 -0
  530. package/lib/validation.js +48 -87
  531. package/lib/yargsUtils.d.ts +2 -1
  532. package/lib/yargsUtils.js +19 -16
  533. package/mcp-server/server.js +6 -8
  534. package/mcp-server/tools/index.js +15 -16
  535. package/mcp-server/tools/project/{AddFeatureToProject.d.ts → AddFeatureToProjectTool.d.ts} +5 -5
  536. package/mcp-server/tools/project/AddFeatureToProjectTool.js +76 -0
  537. package/mcp-server/tools/project/CreateProjectTool.d.ts +4 -4
  538. package/mcp-server/tools/project/CreateProjectTool.js +40 -54
  539. package/mcp-server/tools/project/{DeployProject.d.ts → DeployProjectTool.d.ts} +2 -2
  540. package/mcp-server/tools/project/DeployProjectTool.js +49 -0
  541. package/mcp-server/tools/project/GetConfigValuesTool.d.ts +20 -0
  542. package/mcp-server/tools/project/GetConfigValuesTool.js +51 -0
  543. package/mcp-server/tools/project/GuidedWalkthroughTool.d.ts +1 -1
  544. package/mcp-server/tools/project/GuidedWalkthroughTool.js +21 -25
  545. package/mcp-server/tools/project/UploadProjectTools.d.ts +1 -1
  546. package/mcp-server/tools/project/UploadProjectTools.js +12 -19
  547. package/mcp-server/tools/project/ValidateProjectTool.d.ts +1 -1
  548. package/mcp-server/tools/project/ValidateProjectTool.js +13 -17
  549. package/mcp-server/tools/project/__tests__/AddFeatureToProjectTool.test.d.ts +1 -0
  550. package/mcp-server/tools/project/__tests__/{AddFeatureToProject.test.js → AddFeatureToProjectTool.test.js} +15 -17
  551. package/mcp-server/tools/project/__tests__/CreateProjectTool.test.js +12 -15
  552. package/mcp-server/tools/project/__tests__/DeployProjectTool.test.d.ts +1 -0
  553. package/mcp-server/tools/project/__tests__/{DeployProject.test.js → DeployProjectTool.test.js} +6 -8
  554. package/mcp-server/tools/project/__tests__/GetConfigValuesTool.test.d.ts +1 -0
  555. package/mcp-server/tools/project/__tests__/GetConfigValuesTool.test.js +198 -0
  556. package/mcp-server/tools/project/__tests__/GuidedWalkthroughTool.test.js +4 -6
  557. package/mcp-server/tools/project/__tests__/UploadProjectTools.test.js +4 -6
  558. package/mcp-server/tools/project/__tests__/ValidateProjectTool.test.js +4 -6
  559. package/mcp-server/tools/project/constants.d.ts +1 -0
  560. package/mcp-server/tools/project/constants.js +14 -9
  561. package/mcp-server/types.js +1 -5
  562. package/mcp-server/utils/__tests__/command.test.js +9 -11
  563. package/mcp-server/utils/__tests__/project.test.js +12 -17
  564. package/mcp-server/utils/command.d.ts +1 -1
  565. package/mcp-server/utils/command.js +4 -11
  566. package/mcp-server/utils/content.d.ts +1 -1
  567. package/mcp-server/utils/content.js +2 -6
  568. package/mcp-server/utils/project.js +8 -14
  569. package/mcp-server/utils/toolUsageTracking.js +11 -14
  570. package/package.json +22 -15
  571. package/types/Cms.d.ts +1 -1
  572. package/types/Cms.js +1 -2
  573. package/types/LocalDev.d.ts +4 -6
  574. package/types/LocalDev.js +1 -2
  575. package/types/ProjectComponents.d.ts +2 -2
  576. package/types/ProjectComponents.js +1 -2
  577. package/types/Projects.d.ts +1 -1
  578. package/types/Projects.js +2 -5
  579. package/types/Prompts.js +1 -2
  580. package/types/Sandboxes.js +1 -2
  581. package/types/Yargs.js +1 -2
  582. package/ui/index.d.ts +1 -0
  583. package/ui/index.js +6 -0
  584. package/mcp-server/tools/project/AddFeatureToProject.js +0 -88
  585. package/mcp-server/tools/project/DeployProject.js +0 -53
  586. /package/{mcp-server/tools/project/__tests__/AddFeatureToProject.test.d.ts → lib/projects/__tests__/localDevHelpers.test.d.ts} +0 -0
  587. /package/{mcp-server/tools/project/__tests__/DeployProject.test.d.ts → lib/utils/__tests__/isDeepEqual.test.d.ts} +0 -0
package/lang/en.lyaml CHANGED
@@ -681,32 +681,6 @@ en:
681
681
  examples:
682
682
  default: "Create a component within your project"
683
683
  withFlags: "Use --name and --type flags to bypass the prompt."
684
- deploy:
685
- describe: "Deploy a project build."
686
- deployBuildIdPrompt: "[--build] Deploy which build?"
687
- debug:
688
- deploying: "Deploying project at path: {{ path }}"
689
- errors:
690
- deploy: "Deploy error: an unknown error occurred."
691
- noBuilds: "Deploy error: no builds for this project were found."
692
- noBuildId: "You must specify a build to deploy"
693
- projectNotFound: "The project {{ projectName }} does not exist in account {{ accountIdentifier }}. Run {{ command }} to upload your project files to HubSpot."
694
- buildIdDoesNotExist: "Build {{ buildId }} does not exist for project {{ projectName }}. {{ linkToProject }}"
695
- buildAlreadyDeployed: "Build {{ buildId }} is already deployed. {{ linkToProject}}"
696
- viewProjectsBuilds: 'View project builds in HubSpot'
697
- deployContainsRemovals: "- This deploy would remove the {{#bold}}{{ componentName }}{{/bold}} component. To proceed, run the deploy command with the {{ forceFlag }} flag"
698
- examples:
699
- default: "Deploy the latest build of the current project"
700
- withOptions: "Deploy build 5 of the project my-project"
701
- options:
702
- build:
703
- describe: "Project build ID to be deployed"
704
- project:
705
- describe: "Project name"
706
- profile:
707
- describe: "The profile to target with this deploy"
708
- force:
709
- describe: "Skip warnings and force deploy. Use this carefully as it will bypass warnings for destructive actions."
710
684
  listBuilds:
711
685
  describe: "List the project's builds."
712
686
  continueOrExitPrompt: "Press <enter> to load more, or ctrl+c to exit"
@@ -1064,12 +1038,14 @@ en:
1064
1038
  compressing: "Compressing build files to \"{{ path }}\""
1065
1039
  fileFiltered: "Ignore rule triggered for \"{{ filename }}\""
1066
1040
  ui:
1067
- betaTag: "{{#bold}}[BETA]{{/bold}}"
1041
+ betaTag: "[BETA]"
1042
+ betaTagWithStyle: "{{#bold}}[BETA]{{/bold}}"
1068
1043
  betaWarning:
1069
1044
  header: "{{#yellow}}***************************** WARNING ****************************{{/yellow}}"
1070
1045
  footer: "{{#yellow}}******************************************************************{{/yellow}}"
1071
1046
  infoTag: "{{#bold}}[INFO]{{/bold}}"
1072
- deprecatedTag: "{{#bold}}[DEPRECATED]{{/bold}}"
1047
+ deprecatedTag: "[DEPRECATED]"
1048
+ deprecatedTagWithStyle: "{{#bold}}[DEPRECATED]{{/bold}}"
1073
1049
  errorTag: "{{#bold}}[ERROR]{{/bold}}"
1074
1050
  deprecatedMessage: "The {{ command }} command is deprecated and will be disabled soon. {{ url }}"
1075
1051
  deprecatedDescription: "{{ message }}. The {{ command }} command is deprecated and will be disabled soon. {{ url }}"
@@ -1,99 +1,97 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const config_1 = require("@hubspot/local-dev-lib/constants/config");
4
- const accountTypes_1 = require("../accountTypes");
1
+ import { HUBSPOT_ACCOUNT_TYPES } from '@hubspot/local-dev-lib/constants/config';
2
+ import { isStandardAccount, isSandbox, isStandardSandbox, isDevelopmentSandbox, isDeveloperTestAccount, isAppDeveloperAccount, } from '../accountTypes.js';
5
3
  const STANDARD_ACCOUNT = {
6
4
  name: 'standard-account',
7
5
  accountId: 123,
8
- accountType: config_1.HUBSPOT_ACCOUNT_TYPES.STANDARD,
6
+ accountType: HUBSPOT_ACCOUNT_TYPES.STANDARD,
9
7
  env: 'prod',
10
8
  };
11
9
  const DEVELOPMENT_SANDBOX_ACCOUNT = {
12
10
  name: 'development-sandbox-account',
13
11
  accountId: 456,
14
- accountType: config_1.HUBSPOT_ACCOUNT_TYPES.DEVELOPMENT_SANDBOX,
12
+ accountType: HUBSPOT_ACCOUNT_TYPES.DEVELOPMENT_SANDBOX,
15
13
  env: 'prod',
16
14
  };
17
15
  const STANDARD_SANDBOX_ACCOUNT = {
18
16
  name: 'sandbox-account',
19
17
  accountId: 456,
20
- accountType: config_1.HUBSPOT_ACCOUNT_TYPES.STANDARD_SANDBOX,
18
+ accountType: HUBSPOT_ACCOUNT_TYPES.STANDARD_SANDBOX,
21
19
  env: 'prod',
22
20
  };
23
21
  const DEVELOPER_TEST_ACCOUNT = {
24
22
  name: 'developer-test-account',
25
23
  accountId: 789,
26
- accountType: config_1.HUBSPOT_ACCOUNT_TYPES.DEVELOPER_TEST,
24
+ accountType: HUBSPOT_ACCOUNT_TYPES.DEVELOPER_TEST,
27
25
  env: 'prod',
28
26
  };
29
27
  const APP_DEVELOPER_ACCOUNT = {
30
28
  name: 'app-developer-account',
31
29
  accountId: 1011,
32
- accountType: config_1.HUBSPOT_ACCOUNT_TYPES.APP_DEVELOPER,
30
+ accountType: HUBSPOT_ACCOUNT_TYPES.APP_DEVELOPER,
33
31
  env: 'prod',
34
32
  };
35
33
  describe('lib/accountTypes', () => {
36
34
  describe('isStandardAccount()', () => {
37
35
  it('should return true if the account is a standard account', () => {
38
- const result = (0, accountTypes_1.isStandardAccount)(STANDARD_ACCOUNT);
36
+ const result = isStandardAccount(STANDARD_ACCOUNT);
39
37
  expect(result).toBe(true);
40
38
  });
41
39
  it('should return false if the account is not a standard account', () => {
42
- const result = (0, accountTypes_1.isStandardAccount)(DEVELOPER_TEST_ACCOUNT);
40
+ const result = isStandardAccount(DEVELOPER_TEST_ACCOUNT);
43
41
  expect(result).toBe(false);
44
42
  });
45
43
  });
46
44
  describe('isSandbox()', () => {
47
45
  it('should return true if the account is a standard sandbox account', () => {
48
- const result = (0, accountTypes_1.isSandbox)(STANDARD_SANDBOX_ACCOUNT);
46
+ const result = isSandbox(STANDARD_SANDBOX_ACCOUNT);
49
47
  expect(result).toBe(true);
50
48
  });
51
49
  it('should return true if the account is a development sandbox account', () => {
52
- const result = (0, accountTypes_1.isSandbox)(DEVELOPMENT_SANDBOX_ACCOUNT);
50
+ const result = isSandbox(DEVELOPMENT_SANDBOX_ACCOUNT);
53
51
  expect(result).toBe(true);
54
52
  });
55
53
  it('should return false if the account is not a sandbox account', () => {
56
- const result = (0, accountTypes_1.isSandbox)(STANDARD_ACCOUNT);
54
+ const result = isSandbox(STANDARD_ACCOUNT);
57
55
  expect(result).toBe(false);
58
56
  });
59
57
  });
60
58
  describe('isStandardSandbox()', () => {
61
59
  it('should return true if the account is a standard sandbox account', () => {
62
- const result = (0, accountTypes_1.isStandardSandbox)(STANDARD_SANDBOX_ACCOUNT);
60
+ const result = isStandardSandbox(STANDARD_SANDBOX_ACCOUNT);
63
61
  expect(result).toBe(true);
64
62
  });
65
63
  it('should return false if the account is not a standard sandbox account', () => {
66
- const result = (0, accountTypes_1.isStandardSandbox)(DEVELOPMENT_SANDBOX_ACCOUNT);
64
+ const result = isStandardSandbox(DEVELOPMENT_SANDBOX_ACCOUNT);
67
65
  expect(result).toBe(false);
68
66
  });
69
67
  });
70
68
  describe('isDevelopmentSandbox()', () => {
71
69
  it('should return true if the account is a development sandbox account', () => {
72
- const result = (0, accountTypes_1.isDevelopmentSandbox)(DEVELOPMENT_SANDBOX_ACCOUNT);
70
+ const result = isDevelopmentSandbox(DEVELOPMENT_SANDBOX_ACCOUNT);
73
71
  expect(result).toBe(true);
74
72
  });
75
73
  it('should return false if the account is not a development sandbox account', () => {
76
- const result = (0, accountTypes_1.isDevelopmentSandbox)(STANDARD_ACCOUNT);
74
+ const result = isDevelopmentSandbox(STANDARD_ACCOUNT);
77
75
  expect(result).toBe(false);
78
76
  });
79
77
  });
80
78
  describe('isDeveloperTestAccount()', () => {
81
79
  it('should return true if the account is a developer test account', () => {
82
- const result = (0, accountTypes_1.isDeveloperTestAccount)(DEVELOPER_TEST_ACCOUNT);
80
+ const result = isDeveloperTestAccount(DEVELOPER_TEST_ACCOUNT);
83
81
  expect(result).toBe(true);
84
82
  });
85
83
  it('should return false if the account is not a developer test account', () => {
86
- const result = (0, accountTypes_1.isDeveloperTestAccount)(STANDARD_ACCOUNT);
84
+ const result = isDeveloperTestAccount(STANDARD_ACCOUNT);
87
85
  expect(result).toBe(false);
88
86
  });
89
87
  });
90
88
  describe('isAppDeveloperAccount()', () => {
91
89
  it('should return true if the account is an app developer account', () => {
92
- const result = (0, accountTypes_1.isAppDeveloperAccount)(APP_DEVELOPER_ACCOUNT);
90
+ const result = isAppDeveloperAccount(APP_DEVELOPER_ACCOUNT);
93
91
  expect(result).toBe(true);
94
92
  });
95
93
  it('should return false if the account is not an app developer account', () => {
96
- const result = (0, accountTypes_1.isAppDeveloperAccount)(STANDARD_ACCOUNT);
94
+ const result = isAppDeveloperAccount(STANDARD_ACCOUNT);
97
95
  expect(result).toBe(false);
98
96
  });
99
97
  });
@@ -1,46 +1,11 @@
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
- const personalAccessKey_1 = require("@hubspot/local-dev-lib/personalAccessKey");
37
- const config_1 = require("@hubspot/local-dev-lib/config");
38
- const developerTestAccounts_1 = require("@hubspot/local-dev-lib/api/developerTestAccounts");
39
- const sandboxHubs_1 = require("@hubspot/local-dev-lib/api/sandboxHubs");
40
- const config_2 = require("@hubspot/local-dev-lib/constants/config");
41
- const personalAccessKeyPrompt_1 = require("../prompts/personalAccessKeyPrompt");
42
- const accountNamePrompt_1 = require("../prompts/accountNamePrompt");
43
- const buildAccount = __importStar(require("../buildAccount"));
1
+ import { getAccessToken, updateConfigWithAccessToken, } from '@hubspot/local-dev-lib/personalAccessKey';
2
+ import { accountNameExistsInConfig, updateAccountConfig, writeConfig, getAccountId, } from '@hubspot/local-dev-lib/config';
3
+ import { createDeveloperTestAccount, fetchDeveloperTestAccountGateSyncStatus, generateDeveloperTestAccountPersonalAccessKey, } from '@hubspot/local-dev-lib/api/developerTestAccounts';
4
+ import { createSandbox, createV2Sandbox, getSandboxPersonalAccessKey, } from '@hubspot/local-dev-lib/api/sandboxHubs';
5
+ import { HUBSPOT_ACCOUNT_TYPES } from '@hubspot/local-dev-lib/constants/config';
6
+ import { personalAccessKeyPrompt } from '../prompts/personalAccessKeyPrompt.js';
7
+ import { cliAccountNamePrompt } from '../prompts/accountNamePrompt.js';
8
+ import * as buildAccount from '../buildAccount.js';
44
9
  vi.mock('@hubspot/local-dev-lib/personalAccessKey');
45
10
  vi.mock('@hubspot/local-dev-lib/config');
46
11
  vi.mock('@hubspot/local-dev-lib/api/developerTestAccounts');
@@ -56,22 +21,26 @@ vi.mock('../ui/SpinniesManager', () => ({
56
21
  fail: vi.fn(),
57
22
  },
58
23
  }));
59
- const mockedPersonalAccessKeyPrompt = personalAccessKeyPrompt_1.personalAccessKeyPrompt;
60
- const mockedGetAccessToken = personalAccessKey_1.getAccessToken;
61
- const mockedUpdateConfigWithAccessToken = personalAccessKey_1.updateConfigWithAccessToken;
62
- const mockedAccountNameExistsInConfig = config_1.accountNameExistsInConfig;
63
- const mockedUpdateAccountConfig = config_1.updateAccountConfig;
64
- const mockedWriteConfig = config_1.writeConfig;
65
- const mockedCliAccountNamePrompt = accountNamePrompt_1.cliAccountNamePrompt;
66
- const mockedGetAccountId = config_1.getAccountId;
67
- const mockedCreateDeveloperTestAccount = developerTestAccounts_1.createDeveloperTestAccount;
68
- const mockedCreateSandbox = sandboxHubs_1.createSandbox;
24
+ const mockedPersonalAccessKeyPrompt = personalAccessKeyPrompt;
25
+ const mockedGetAccessToken = getAccessToken;
26
+ const mockedUpdateConfigWithAccessToken = updateConfigWithAccessToken;
27
+ const mockedAccountNameExistsInConfig = accountNameExistsInConfig;
28
+ const mockedUpdateAccountConfig = updateAccountConfig;
29
+ const mockedWriteConfig = writeConfig;
30
+ const mockedCliAccountNamePrompt = cliAccountNamePrompt;
31
+ const mockedGetAccountId = getAccountId;
32
+ const mockedCreateDeveloperTestAccount = createDeveloperTestAccount;
33
+ const mockedFetchDeveloperTestAccountGateSyncStatus = fetchDeveloperTestAccountGateSyncStatus;
34
+ const mockedGenerateDeveloperTestAccountPersonalAccessKey = generateDeveloperTestAccountPersonalAccessKey;
35
+ const mockedCreateSandbox = createSandbox;
36
+ const mockedCreateV2Sandbox = createV2Sandbox;
37
+ const mockedGetPersonalAccessKey = getSandboxPersonalAccessKey;
69
38
  describe('lib/buildAccount', () => {
70
39
  describe('saveAccountToConfig()', () => {
71
40
  const mockAccountConfig = {
72
41
  name: 'Test Account',
73
42
  accountId: 123456,
74
- accountType: config_2.HUBSPOT_ACCOUNT_TYPES.APP_DEVELOPER,
43
+ accountType: HUBSPOT_ACCOUNT_TYPES.APP_DEVELOPER,
75
44
  env: 'prod',
76
45
  };
77
46
  const accessToken = {
@@ -82,7 +51,7 @@ describe('lib/buildAccount', () => {
82
51
  enabledFeatures: { 'test-feature': 1 },
83
52
  encodedOAuthRefreshToken: 'test-refresh-token',
84
53
  hubName: 'test-hub',
85
- accountType: config_2.HUBSPOT_ACCOUNT_TYPES.STANDARD,
54
+ accountType: HUBSPOT_ACCOUNT_TYPES.STANDARD,
86
55
  };
87
56
  beforeEach(() => {
88
57
  mockedPersonalAccessKeyPrompt.mockResolvedValue({
@@ -132,11 +101,37 @@ describe('lib/buildAccount', () => {
132
101
  expect(result).toBe('test-account-with-new-name');
133
102
  });
134
103
  });
104
+ describe('createDeveloperTestAccountV3()', () => {
105
+ const parentAccountId = 123456;
106
+ const mockDeveoperTestAccountConfig = {
107
+ accountName: 'Developer Test Account',
108
+ description: 'Test Account created by the HubSpot CLI',
109
+ };
110
+ beforeEach(() => {
111
+ mockedCreateDeveloperTestAccount.mockResolvedValue({
112
+ data: { id: 123456 },
113
+ });
114
+ mockedFetchDeveloperTestAccountGateSyncStatus.mockResolvedValue({
115
+ data: { status: 'SUCCESS' },
116
+ });
117
+ mockedGenerateDeveloperTestAccountPersonalAccessKey.mockResolvedValue({
118
+ data: { personalAccessKey: 'test-key' },
119
+ });
120
+ });
121
+ it('should create a developer test account successfully', async () => {
122
+ const result = await buildAccount.createDeveloperTestAccountV3(parentAccountId, mockDeveoperTestAccountConfig);
123
+ expect(result).toEqual({
124
+ accountName: mockDeveoperTestAccountConfig.accountName,
125
+ accountId: 123456,
126
+ personalAccessKey: 'test-key',
127
+ });
128
+ }, 10000);
129
+ });
135
130
  describe('buildDeveloperTestAccount()', () => {
136
131
  const mockParentAccountConfig = {
137
- name: 'Developer Test Account',
132
+ name: 'Developer Account',
138
133
  accountId: 123456,
139
- accountType: config_2.HUBSPOT_ACCOUNT_TYPES.DEVELOPER_TEST,
134
+ accountType: HUBSPOT_ACCOUNT_TYPES.APP_DEVELOPER,
140
135
  env: 'prod',
141
136
  };
142
137
  const mockDeveloperTestAccount = {
@@ -173,16 +168,17 @@ describe('lib/buildAccount', () => {
173
168
  });
174
169
  describe('buildSandbox()', () => {
175
170
  const mockParentAccountConfig = {
176
- name: 'Developer Test Account',
171
+ name: 'Prod account',
177
172
  accountId: 123456,
178
- accountType: config_2.HUBSPOT_ACCOUNT_TYPES.DEVELOPER_TEST,
173
+ accountType: HUBSPOT_ACCOUNT_TYPES.STANDARD,
179
174
  env: 'prod',
180
175
  };
181
176
  const mockSandbox = {
182
177
  sandboxHubId: 56789,
183
178
  parentHubId: 123456,
184
179
  createdAt: '2025-01-01',
185
- type: 'sandbox',
180
+ type: 'STANDARD',
181
+ version: 'V1',
186
182
  archived: false,
187
183
  name: 'Test Sandbox',
188
184
  domain: 'test-sandbox.hubspot.com',
@@ -204,7 +200,7 @@ describe('lib/buildAccount', () => {
204
200
  vi.clearAllMocks();
205
201
  });
206
202
  it('should create a standard sandbox successfully', async () => {
207
- const result = await buildAccount.buildSandbox(mockSandbox.name, mockParentAccountConfig, config_2.HUBSPOT_ACCOUNT_TYPES.STANDARD_SANDBOX, mockParentAccountConfig.env, false);
203
+ const result = await buildAccount.buildSandbox(mockSandbox.name, mockParentAccountConfig, HUBSPOT_ACCOUNT_TYPES.STANDARD_SANDBOX, mockParentAccountConfig.env, false);
208
204
  expect(result).toEqual({
209
205
  name: mockSandbox.name,
210
206
  personalAccessKey: 'test-key',
@@ -212,7 +208,7 @@ describe('lib/buildAccount', () => {
212
208
  });
213
209
  });
214
210
  it('should create a development sandbox successfully', async () => {
215
- const result = await buildAccount.buildSandbox(mockSandbox.name, mockParentAccountConfig, config_2.HUBSPOT_ACCOUNT_TYPES.DEVELOPMENT_SANDBOX, mockParentAccountConfig.env);
211
+ const result = await buildAccount.buildSandbox(mockSandbox.name, mockParentAccountConfig, HUBSPOT_ACCOUNT_TYPES.DEVELOPMENT_SANDBOX, mockParentAccountConfig.env);
216
212
  expect(result).toEqual({
217
213
  name: mockSandbox.name,
218
214
  personalAccessKey: 'test-key',
@@ -221,11 +217,66 @@ describe('lib/buildAccount', () => {
221
217
  });
222
218
  it('should throw error if account ID is not found', async () => {
223
219
  mockedGetAccountId.mockReturnValue(null);
224
- await expect(buildAccount.buildSandbox(mockSandbox.name, mockParentAccountConfig, config_2.HUBSPOT_ACCOUNT_TYPES.STANDARD_SANDBOX, mockParentAccountConfig.env)).rejects.toThrow();
220
+ await expect(buildAccount.buildSandbox(mockSandbox.name, mockParentAccountConfig, HUBSPOT_ACCOUNT_TYPES.STANDARD_SANDBOX, mockParentAccountConfig.env)).rejects.toThrow();
225
221
  });
226
222
  it('should handle API errors when creating sandbox', async () => {
227
223
  mockedCreateSandbox.mockRejectedValue(new Error('test-error'));
228
- await expect(buildAccount.buildSandbox(mockSandbox.name, mockParentAccountConfig, config_2.HUBSPOT_ACCOUNT_TYPES.STANDARD_SANDBOX, mockParentAccountConfig.env, false)).rejects.toThrow();
224
+ await expect(buildAccount.buildSandbox(mockSandbox.name, mockParentAccountConfig, HUBSPOT_ACCOUNT_TYPES.STANDARD_SANDBOX, mockParentAccountConfig.env, false)).rejects.toThrow();
225
+ });
226
+ });
227
+ describe('buildV2Sandbox()', () => {
228
+ const mockParentAccountConfig = {
229
+ name: 'Prod account',
230
+ accountId: 123456,
231
+ accountType: HUBSPOT_ACCOUNT_TYPES.STANDARD,
232
+ env: 'prod',
233
+ };
234
+ const mockSandbox = {
235
+ sandboxHubId: 56789,
236
+ parentHubId: 123456,
237
+ createdAt: '2025-01-01',
238
+ type: 'STANDARD',
239
+ archived: false,
240
+ version: 'V2',
241
+ name: 'Test v2 Sandbox',
242
+ domain: 'test-v2-sandbox.hubspot.com',
243
+ createdByUser: {
244
+ id: 123456,
245
+ email: 'test@test.com',
246
+ firstName: 'Test',
247
+ lastName: 'User',
248
+ },
249
+ };
250
+ beforeEach(() => {
251
+ vi.spyOn(buildAccount, 'saveAccountToConfig').mockResolvedValue(mockParentAccountConfig.name);
252
+ mockedGetAccountId.mockReturnValue(mockParentAccountConfig.accountId);
253
+ mockedCreateV2Sandbox.mockResolvedValue({
254
+ data: mockSandbox,
255
+ });
256
+ mockedGetPersonalAccessKey.mockResolvedValue({
257
+ data: { personalAccessKey: { encodedOAuthRefreshToken: 'test-key' } },
258
+ });
259
+ });
260
+ afterEach(() => {
261
+ vi.clearAllMocks();
262
+ });
263
+ it('should create a v2 standard sandbox successfully and fetch a personal access key', async () => {
264
+ const result = await buildAccount.buildV2Sandbox(mockSandbox.name, mockParentAccountConfig, HUBSPOT_ACCOUNT_TYPES.STANDARD_SANDBOX, false, mockParentAccountConfig.env, false);
265
+ expect(result).toEqual({ sandbox: mockSandbox });
266
+ expect(mockedGetPersonalAccessKey).toHaveBeenCalledWith(mockParentAccountConfig.accountId, mockSandbox.sandboxHubId);
267
+ });
268
+ it('should create a development sandbox successfully and fetch a personal access key', async () => {
269
+ const result = await buildAccount.buildV2Sandbox(mockSandbox.name, mockParentAccountConfig, HUBSPOT_ACCOUNT_TYPES.DEVELOPMENT_SANDBOX, false, mockParentAccountConfig.env, false);
270
+ expect(result).toEqual({ sandbox: mockSandbox });
271
+ expect(mockedGetPersonalAccessKey).toHaveBeenCalledWith(mockParentAccountConfig.accountId, mockSandbox.sandboxHubId);
272
+ });
273
+ it('should throw error if account ID is not found', async () => {
274
+ mockedGetAccountId.mockReturnValue(null);
275
+ await expect(buildAccount.buildV2Sandbox(mockSandbox.name, mockParentAccountConfig, HUBSPOT_ACCOUNT_TYPES.STANDARD_SANDBOX, false, mockParentAccountConfig.env, false)).rejects.toThrow();
276
+ });
277
+ it('should handle API errors when creating sandbox', async () => {
278
+ mockedCreateV2Sandbox.mockRejectedValue(new Error('test-error'));
279
+ await expect(buildAccount.buildV2Sandbox(mockSandbox.name, mockParentAccountConfig, HUBSPOT_ACCOUNT_TYPES.STANDARD_SANDBOX, false, mockParentAccountConfig.env, false)).rejects.toThrow();
229
280
  });
230
281
  });
231
282
  });
@@ -1,11 +1,9 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const files_1 = require("@hubspot/local-dev-lib/constants/files");
4
- const config_1 = require("@hubspot/local-dev-lib/config");
5
- const commonOpts_1 = require("../commonOpts");
6
- const mockedGetAccountConfig = config_1.getAccountConfig;
7
- const mockedGetAndLoadConfigIfNeeded = config_1.getAndLoadConfigIfNeeded;
8
- const mockedLoadConfigFromEnvironment = config_1.loadConfigFromEnvironment;
1
+ import { CMS_PUBLISH_MODE, DEFAULT_CMS_PUBLISH_MODE, } from '@hubspot/local-dev-lib/constants/files';
2
+ import { getAndLoadConfigIfNeeded, getAccountConfig, loadConfigFromEnvironment, } from '@hubspot/local-dev-lib/config';
3
+ import { getCmsPublishMode } from '../commonOpts.js';
4
+ const mockedGetAccountConfig = getAccountConfig;
5
+ const mockedGetAndLoadConfigIfNeeded = getAndLoadConfigIfNeeded;
6
+ const mockedLoadConfigFromEnvironment = loadConfigFromEnvironment;
9
7
  function buildArguments(args) {
10
8
  return {
11
9
  _: [],
@@ -24,7 +22,7 @@ describe('lib/commonOpts', () => {
24
22
  const devAccountConfig = {
25
23
  accountId: accounts.DEV,
26
24
  name: 'DEV',
27
- defaultCmsPublishMode: files_1.CMS_PUBLISH_MODE.draft,
25
+ defaultCmsPublishMode: CMS_PUBLISH_MODE.draft,
28
26
  };
29
27
  const prodAccountConfig = {
30
28
  accountId: accounts.PROD,
@@ -36,7 +34,7 @@ describe('lib/commonOpts', () => {
36
34
  };
37
35
  const configWithDefaultCmsPublishMode = {
38
36
  ...config,
39
- defaultCmsPublishMode: files_1.CMS_PUBLISH_MODE.draft,
37
+ defaultCmsPublishMode: CMS_PUBLISH_MODE.draft,
40
38
  };
41
39
  afterEach(() => {
42
40
  vi.resetAllMocks();
@@ -46,12 +44,12 @@ describe('lib/commonOpts', () => {
46
44
  it('should return the cms publish mode specified by the command option if present.', () => {
47
45
  mockedGetAndLoadConfigIfNeeded.mockReturnValue(configWithDefaultCmsPublishMode);
48
46
  mockedGetAccountConfig.mockReturnValue(devAccountConfig);
49
- expect((0, commonOpts_1.getCmsPublishMode)(buildArguments({
50
- cmsPublishMode: files_1.CMS_PUBLISH_MODE.draft,
51
- }))).toBe(files_1.CMS_PUBLISH_MODE.draft);
52
- expect((0, commonOpts_1.getCmsPublishMode)(buildArguments({
53
- cmsPublishMode: files_1.CMS_PUBLISH_MODE.publish,
54
- }))).toBe(files_1.CMS_PUBLISH_MODE.publish);
47
+ expect(getCmsPublishMode(buildArguments({
48
+ cmsPublishMode: CMS_PUBLISH_MODE.draft,
49
+ }))).toBe(CMS_PUBLISH_MODE.draft);
50
+ expect(getCmsPublishMode(buildArguments({
51
+ cmsPublishMode: CMS_PUBLISH_MODE.publish,
52
+ }))).toBe(CMS_PUBLISH_MODE.publish);
55
53
  });
56
54
  });
57
55
  describe('2. hubspot.config.yml -> config.accounts[x].defaultCmsPublishMode', () => {
@@ -59,9 +57,9 @@ describe('lib/commonOpts', () => {
59
57
  mockedGetAndLoadConfigIfNeeded.mockReturnValue(configWithDefaultCmsPublishMode);
60
58
  mockedGetAccountConfig.mockReturnValue(devAccountConfig);
61
59
  mockedLoadConfigFromEnvironment.mockReturnValue(undefined);
62
- expect((0, commonOpts_1.getCmsPublishMode)(buildArguments({
60
+ expect(getCmsPublishMode(buildArguments({
63
61
  account: accounts.DEV,
64
- }))).toBe(files_1.CMS_PUBLISH_MODE.draft);
62
+ }))).toBe(CMS_PUBLISH_MODE.draft);
65
63
  });
66
64
  });
67
65
  describe('3. hubspot.config.yml -> config.defaultCmsPublishMode', () => {
@@ -69,17 +67,17 @@ describe('lib/commonOpts', () => {
69
67
  mockedGetAndLoadConfigIfNeeded.mockReturnValue(configWithDefaultCmsPublishMode);
70
68
  mockedGetAccountConfig.mockReturnValue(prodAccountConfig);
71
69
  mockedLoadConfigFromEnvironment.mockReturnValue(undefined);
72
- expect((0, commonOpts_1.getCmsPublishMode)(buildArguments({
70
+ expect(getCmsPublishMode(buildArguments({
73
71
  account: accounts.PROD,
74
- }))).toBe(files_1.CMS_PUBLISH_MODE.draft);
72
+ }))).toBe(CMS_PUBLISH_MODE.draft);
75
73
  });
76
74
  });
77
75
  describe('4. DEFAULT_CMS_PUBLISH_MODE', () => {
78
76
  it('should return the defaultCmsPubishMode specified by the config if present.', () => {
79
77
  mockedLoadConfigFromEnvironment.mockReturnValue(undefined);
80
- expect((0, commonOpts_1.getCmsPublishMode)(buildArguments({
78
+ expect(getCmsPublishMode(buildArguments({
81
79
  account: 'xxxxx',
82
- }))).toBe(files_1.DEFAULT_CMS_PUBLISH_MODE);
80
+ }))).toBe(DEFAULT_CMS_PUBLISH_MODE);
83
81
  });
84
82
  });
85
83
  });