@hubspot/cli 7.7.21-experimental.1 → 7.7.23-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 (568) hide show
  1. package/api/__tests__/migrate.test.js +27 -29
  2. package/api/migrate.js +14 -22
  3. package/bin/cli.js +92 -97
  4. package/bin/hs +2 -2
  5. package/bin/hscms +2 -2
  6. package/bin/silenceErrors.js +1 -2
  7. package/commands/__tests__/account.test.js +29 -34
  8. package/commands/__tests__/auth.test.js +11 -16
  9. package/commands/__tests__/cms.test.js +15 -20
  10. package/commands/__tests__/config.test.js +14 -19
  11. package/commands/__tests__/create.test.js +10 -15
  12. package/commands/__tests__/customObject.test.js +14 -19
  13. package/commands/__tests__/doctor.test.js +43 -48
  14. package/commands/__tests__/feedback.test.js +7 -45
  15. package/commands/__tests__/fetch.test.js +29 -28
  16. package/commands/__tests__/filemanager.test.js +14 -19
  17. package/commands/__tests__/function.test.js +16 -21
  18. package/commands/__tests__/getStarted.test.js +45 -50
  19. package/commands/__tests__/hubdb.test.js +17 -22
  20. package/commands/__tests__/init.test.js +12 -17
  21. package/commands/__tests__/lint.test.js +13 -18
  22. package/commands/__tests__/list.test.js +18 -23
  23. package/commands/__tests__/logs.test.js +28 -27
  24. package/commands/__tests__/mcp.test.js +14 -19
  25. package/commands/__tests__/mv.test.js +14 -52
  26. package/commands/__tests__/open.test.js +13 -51
  27. package/commands/__tests__/project.test.js +44 -49
  28. package/commands/__tests__/remove.test.js +13 -51
  29. package/commands/__tests__/sandbox.test.js +14 -19
  30. package/commands/__tests__/secret.test.js +16 -21
  31. package/commands/__tests__/testAccount.test.js +16 -21
  32. package/commands/__tests__/theme.test.js +15 -20
  33. package/commands/account/__tests__/auth.test.js +11 -16
  34. package/commands/account/__tests__/clean.test.js +12 -17
  35. package/commands/account/__tests__/createOverride.test.js +10 -15
  36. package/commands/account/__tests__/info.test.js +11 -16
  37. package/commands/account/__tests__/list.test.js +11 -16
  38. package/commands/account/__tests__/remove.test.js +13 -18
  39. package/commands/account/__tests__/removeOverride.js +8 -13
  40. package/commands/account/__tests__/rename.test.js +15 -20
  41. package/commands/account/__tests__/use.test.js +10 -15
  42. package/commands/account/auth.d.ts +1 -1
  43. package/commands/account/auth.js +65 -67
  44. package/commands/account/clean.d.ts +1 -1
  45. package/commands/account/clean.js +55 -60
  46. package/commands/account/createOverride.d.ts +1 -1
  47. package/commands/account/createOverride.js +52 -57
  48. package/commands/account/info.d.ts +1 -1
  49. package/commands/account/info.js +33 -35
  50. package/commands/account/list.d.ts +1 -1
  51. package/commands/account/list.js +43 -45
  52. package/commands/account/remove.d.ts +1 -1
  53. package/commands/account/remove.js +37 -42
  54. package/commands/account/removeOverride.d.ts +1 -1
  55. package/commands/account/removeOverride.js +38 -43
  56. package/commands/account/rename.d.ts +1 -1
  57. package/commands/account/rename.js +18 -20
  58. package/commands/account/use.d.ts +1 -1
  59. package/commands/account/use.js +29 -31
  60. package/commands/account.d.ts +1 -1
  61. package/commands/account.js +23 -28
  62. package/commands/app/__tests__/migrate.test.js +29 -34
  63. package/commands/app/migrate.d.ts +2 -2
  64. package/commands/app/migrate.js +40 -43
  65. package/commands/app/secret/__tests__/add.test.js +6 -11
  66. package/commands/app/secret/__tests__/delete.test.js +6 -11
  67. package/commands/app/secret/__tests__/list.test.js +6 -11
  68. package/commands/app/secret/__tests__/update.test.js +6 -11
  69. package/commands/app/secret/add.d.ts +1 -1
  70. package/commands/app/secret/add.js +28 -30
  71. package/commands/app/secret/delete.d.ts +1 -1
  72. package/commands/app/secret/delete.js +34 -36
  73. package/commands/app/secret/list.d.ts +1 -1
  74. package/commands/app/secret/list.js +25 -27
  75. package/commands/app/secret/update.d.ts +1 -1
  76. package/commands/app/secret/update.js +32 -34
  77. package/commands/app/secret.d.ts +1 -1
  78. package/commands/app/secret.js +12 -17
  79. package/commands/app.d.ts +1 -1
  80. package/commands/app.js +6 -16
  81. package/commands/auth.d.ts +1 -1
  82. package/commands/auth.js +70 -72
  83. package/commands/cms/convertFields.d.ts +1 -1
  84. package/commands/cms/convertFields.js +34 -39
  85. package/commands/cms/getReactModule.d.ts +1 -1
  86. package/commands/cms/getReactModule.js +32 -37
  87. package/commands/cms/lighthouseScore.d.ts +1 -1
  88. package/commands/cms/lighthouseScore.js +67 -72
  89. package/commands/cms.d.ts +1 -1
  90. package/commands/cms.js +11 -16
  91. package/commands/completion.d.ts +1 -1
  92. package/commands/completion.js +10 -15
  93. package/commands/config/migrate.d.ts +1 -1
  94. package/commands/config/migrate.js +27 -32
  95. package/commands/config/set.d.ts +2 -1
  96. package/commands/config/set.js +40 -32
  97. package/commands/config.d.ts +1 -1
  98. package/commands/config.js +8 -13
  99. package/commands/create/api-sample.d.ts +1 -1
  100. package/commands/create/api-sample.js +28 -33
  101. package/commands/create/app.d.ts +1 -1
  102. package/commands/create/app.js +3 -5
  103. package/commands/create/function.d.ts +1 -1
  104. package/commands/create/function.js +9 -11
  105. package/commands/create/index.d.ts +1 -1
  106. package/commands/create/index.js +19 -24
  107. package/commands/create/module.d.ts +1 -1
  108. package/commands/create/module.js +12 -14
  109. package/commands/create/react-app.d.ts +1 -1
  110. package/commands/create/react-app.js +3 -5
  111. package/commands/create/template.d.ts +1 -1
  112. package/commands/create/template.js +12 -14
  113. package/commands/create/vue-app.d.ts +1 -1
  114. package/commands/create/vue-app.js +3 -5
  115. package/commands/create/webpack-serverless.d.ts +1 -1
  116. package/commands/create/webpack-serverless.js +3 -5
  117. package/commands/create/website-theme.d.ts +1 -1
  118. package/commands/create/website-theme.js +5 -7
  119. package/commands/create.d.ts +2 -2
  120. package/commands/create.js +30 -35
  121. package/commands/customObject/__tests__/create.test.js +13 -18
  122. package/commands/customObject/__tests__/schema.test.js +18 -23
  123. package/commands/customObject/create.d.ts +1 -1
  124. package/commands/customObject/create.js +28 -30
  125. package/commands/customObject/schema/__tests__/create.test.js +13 -18
  126. package/commands/customObject/schema/__tests__/delete.test.js +13 -18
  127. package/commands/customObject/schema/__tests__/fetch-all.test.js +13 -18
  128. package/commands/customObject/schema/__tests__/fetch.test.js +13 -18
  129. package/commands/customObject/schema/__tests__/list.test.js +13 -18
  130. package/commands/customObject/schema/__tests__/update.test.js +13 -18
  131. package/commands/customObject/schema/create.d.ts +1 -1
  132. package/commands/customObject/schema/create.js +28 -30
  133. package/commands/customObject/schema/delete.d.ts +1 -1
  134. package/commands/customObject/schema/delete.js +24 -26
  135. package/commands/customObject/schema/fetch-all.d.ts +1 -1
  136. package/commands/customObject/schema/fetch-all.js +22 -24
  137. package/commands/customObject/schema/fetch.d.ts +1 -1
  138. package/commands/customObject/schema/fetch.js +24 -26
  139. package/commands/customObject/schema/list.d.ts +1 -1
  140. package/commands/customObject/schema/list.js +13 -15
  141. package/commands/customObject/schema/update.d.ts +1 -1
  142. package/commands/customObject/schema/update.js +32 -34
  143. package/commands/customObject/schema.d.ts +1 -1
  144. package/commands/customObject/schema.js +17 -22
  145. package/commands/customObject.d.ts +1 -1
  146. package/commands/customObject.js +13 -18
  147. package/commands/doctor.d.ts +1 -1
  148. package/commands/doctor.js +28 -33
  149. package/commands/feedback.d.ts +1 -1
  150. package/commands/feedback.js +19 -24
  151. package/commands/fetch.d.ts +1 -1
  152. package/commands/fetch.js +28 -30
  153. package/commands/filemanager/__tests__/fetch.test.js +17 -22
  154. package/commands/filemanager/__tests__/upload.test.js +15 -20
  155. package/commands/filemanager/fetch.d.ts +1 -1
  156. package/commands/filemanager/fetch.js +23 -25
  157. package/commands/filemanager/upload.d.ts +1 -1
  158. package/commands/filemanager/upload.js +39 -44
  159. package/commands/filemanager.d.ts +1 -1
  160. package/commands/filemanager.js +8 -13
  161. package/commands/function/deploy.d.ts +1 -1
  162. package/commands/function/deploy.js +35 -40
  163. package/commands/function/list.d.ts +1 -1
  164. package/commands/function/list.js +24 -29
  165. package/commands/function/server.d.ts +1 -1
  166. package/commands/function/server.js +15 -17
  167. package/commands/function.d.ts +1 -1
  168. package/commands/function.js +12 -18
  169. package/commands/getStarted.d.ts +1 -1
  170. package/commands/getStarted.js +119 -125
  171. package/commands/hubdb/__tests__/clear.test.js +13 -18
  172. package/commands/hubdb/__tests__/create.test.js +13 -18
  173. package/commands/hubdb/__tests__/delete.test.js +13 -18
  174. package/commands/hubdb/__tests__/fetch.test.js +13 -18
  175. package/commands/hubdb/__tests__/list.test.js +23 -28
  176. package/commands/hubdb/clear.d.ts +1 -1
  177. package/commands/hubdb/clear.js +20 -22
  178. package/commands/hubdb/create.d.ts +1 -1
  179. package/commands/hubdb/create.js +30 -35
  180. package/commands/hubdb/delete.d.ts +1 -1
  181. package/commands/hubdb/delete.js +24 -26
  182. package/commands/hubdb/fetch.d.ts +1 -1
  183. package/commands/hubdb/fetch.js +17 -19
  184. package/commands/hubdb/list.d.ts +1 -1
  185. package/commands/hubdb/list.js +33 -35
  186. package/commands/hubdb.d.ts +1 -1
  187. package/commands/hubdb.js +18 -24
  188. package/commands/init.d.ts +1 -1
  189. package/commands/init.js +83 -88
  190. package/commands/lint.d.ts +1 -1
  191. package/commands/lint.js +24 -26
  192. package/commands/list.d.ts +1 -1
  193. package/commands/list.js +32 -37
  194. package/commands/logs.d.ts +1 -1
  195. package/commands/logs.js +35 -37
  196. package/commands/mcp/__tests__/setup.test.js +7 -12
  197. package/commands/mcp/__tests__/start.test.js +7 -12
  198. package/commands/mcp/setup.d.ts +1 -1
  199. package/commands/mcp/setup.js +17 -19
  200. package/commands/mcp/start.d.ts +1 -1
  201. package/commands/mcp/start.js +29 -34
  202. package/commands/mcp.d.ts +1 -1
  203. package/commands/mcp.js +7 -12
  204. package/commands/module/marketplace-validate.d.ts +1 -1
  205. package/commands/module/marketplace-validate.js +21 -26
  206. package/commands/module.d.ts +1 -1
  207. package/commands/module.js +7 -13
  208. package/commands/mv.d.ts +1 -1
  209. package/commands/mv.js +20 -22
  210. package/commands/open.d.ts +1 -1
  211. package/commands/open.js +19 -21
  212. package/commands/project/__tests__/add.test.js +10 -15
  213. package/commands/project/__tests__/create.test.js +14 -19
  214. package/commands/project/__tests__/deploy.test.js +96 -134
  215. package/commands/project/__tests__/devUnifiedFlow.test.js +133 -139
  216. package/commands/project/__tests__/download.test.js +14 -19
  217. package/commands/project/__tests__/installDeps.test.js +32 -70
  218. package/commands/project/__tests__/listBuilds.test.js +14 -19
  219. package/commands/project/__tests__/logs.test.js +56 -94
  220. package/commands/project/__tests__/migrate.test.js +25 -30
  221. package/commands/project/__tests__/migrateApp.test.js +17 -22
  222. package/commands/project/__tests__/open.test.js +16 -21
  223. package/commands/project/__tests__/profile.test.js +14 -19
  224. package/commands/project/__tests__/upload.test.js +18 -23
  225. package/commands/project/__tests__/watch.test.js +14 -19
  226. package/commands/project/add.d.ts +1 -1
  227. package/commands/project/add.js +34 -36
  228. package/commands/project/cloneApp.d.ts +1 -1
  229. package/commands/project/cloneApp.js +67 -72
  230. package/commands/project/create.d.ts +2 -2
  231. package/commands/project/create.js +63 -68
  232. package/commands/project/deploy.d.ts +1 -1
  233. package/commands/project/deploy.js +67 -69
  234. package/commands/project/dev/deprecatedFlow.d.ts +2 -2
  235. package/commands/project/dev/deprecatedFlow.js +52 -58
  236. package/commands/project/dev/index.d.ts +1 -1
  237. package/commands/project/dev/index.js +44 -47
  238. package/commands/project/dev/unifiedFlow.d.ts +3 -3
  239. package/commands/project/dev/unifiedFlow.js +62 -68
  240. package/commands/project/download.d.ts +1 -1
  241. package/commands/project/download.js +35 -40
  242. package/commands/project/installDeps.d.ts +1 -1
  243. package/commands/project/installDeps.js +29 -34
  244. package/commands/project/listBuilds.d.ts +1 -1
  245. package/commands/project/listBuilds.js +40 -45
  246. package/commands/project/logs.d.ts +1 -1
  247. package/commands/project/logs.js +52 -54
  248. package/commands/project/migrate.d.ts +1 -1
  249. package/commands/project/migrate.js +24 -26
  250. package/commands/project/migrateApp.d.ts +2 -2
  251. package/commands/project/migrateApp.js +18 -20
  252. package/commands/project/open.d.ts +1 -1
  253. package/commands/project/open.js +25 -30
  254. package/commands/project/profile/add.d.ts +1 -1
  255. package/commands/project/profile/add.js +68 -73
  256. package/commands/project/profile/delete.d.ts +1 -1
  257. package/commands/project/profile/delete.js +51 -56
  258. package/commands/project/profile.d.ts +1 -1
  259. package/commands/project/profile.js +9 -14
  260. package/commands/project/upload.d.ts +1 -1
  261. package/commands/project/upload.js +50 -55
  262. package/commands/project/validate.d.ts +1 -1
  263. package/commands/project/validate.js +35 -40
  264. package/commands/project/watch.d.ts +1 -1
  265. package/commands/project/watch.js +59 -61
  266. package/commands/project.d.ts +1 -1
  267. package/commands/project.js +38 -43
  268. package/commands/remove.d.ts +1 -1
  269. package/commands/remove.js +15 -17
  270. package/commands/sandbox/__tests__/create.test.js +15 -20
  271. package/commands/sandbox/__tests__/delete.test.js +15 -20
  272. package/commands/sandbox/create.d.ts +1 -1
  273. package/commands/sandbox/create.js +67 -69
  274. package/commands/sandbox/delete.d.ts +1 -1
  275. package/commands/sandbox/delete.js +94 -96
  276. package/commands/sandbox.d.ts +1 -1
  277. package/commands/sandbox.js +9 -14
  278. package/commands/secret/__tests__/addSecret.test.js +13 -18
  279. package/commands/secret/__tests__/deleteSecret.test.js +13 -18
  280. package/commands/secret/__tests__/listSecret.test.js +13 -18
  281. package/commands/secret/__tests__/updateSecret.test.js +13 -18
  282. package/commands/secret/addSecret.d.ts +1 -1
  283. package/commands/secret/addSecret.js +26 -28
  284. package/commands/secret/deleteSecret.d.ts +1 -1
  285. package/commands/secret/deleteSecret.js +27 -29
  286. package/commands/secret/listSecret.d.ts +1 -1
  287. package/commands/secret/listSecret.js +19 -21
  288. package/commands/secret/updateSecret.d.ts +1 -1
  289. package/commands/secret/updateSecret.js +25 -27
  290. package/commands/secret.d.ts +1 -1
  291. package/commands/secret.js +13 -18
  292. package/commands/testAccount/__tests__/create.test.js +17 -22
  293. package/commands/testAccount/__tests__/createConfig.test.js +6 -11
  294. package/commands/testAccount/__tests__/delete.test.js +15 -20
  295. package/commands/testAccount/create.d.ts +1 -1
  296. package/commands/testAccount/create.js +45 -53
  297. package/commands/testAccount/createConfig.d.ts +1 -1
  298. package/commands/testAccount/createConfig.js +36 -41
  299. package/commands/testAccount/delete.d.ts +1 -1
  300. package/commands/testAccount/delete.js +17 -19
  301. package/commands/testAccount.d.ts +1 -1
  302. package/commands/testAccount.js +10 -15
  303. package/commands/theme/__tests__/generate-selectors.test.js +7 -12
  304. package/commands/theme/__tests__/marketplace-validate.test.js +14 -19
  305. package/commands/theme/__tests__/preview.test.js +12 -17
  306. package/commands/theme/generate-selectors.d.ts +1 -1
  307. package/commands/theme/generate-selectors.js +23 -28
  308. package/commands/theme/marketplace-validate.d.ts +1 -1
  309. package/commands/theme/marketplace-validate.js +19 -24
  310. package/commands/theme/preview.d.ts +1 -1
  311. package/commands/theme/preview.js +60 -65
  312. package/commands/theme.d.ts +1 -1
  313. package/commands/theme.js +11 -16
  314. package/commands/upload.d.ts +1 -1
  315. package/commands/upload.js +77 -82
  316. package/commands/watch.d.ts +1 -1
  317. package/commands/watch.js +45 -51
  318. package/lang/en.d.ts +10 -23
  319. package/lang/en.js +380 -399
  320. package/lib/__tests__/accountTypes.test.js +20 -22
  321. package/lib/__tests__/buildAccount.test.js +28 -63
  322. package/lib/__tests__/commonOpts.test.js +20 -22
  323. package/lib/__tests__/dependencyManagement.test.js +46 -51
  324. package/lib/__tests__/developerTestAccounts.test.js +27 -62
  325. package/lib/__tests__/hasFeature.test.js +6 -8
  326. package/lib/__tests__/npm.test.js +15 -20
  327. package/lib/__tests__/oauth.test.js +23 -28
  328. package/lib/__tests__/parsing.test.js +18 -20
  329. package/lib/__tests__/polling.test.js +24 -26
  330. package/lib/__tests__/process.test.js +14 -19
  331. package/lib/__tests__/projectProfiles.test.js +34 -39
  332. package/lib/__tests__/sandboxSync.test.js +30 -35
  333. package/lib/__tests__/sandboxes.test.js +29 -31
  334. package/lib/__tests__/serverlessLogs.test.js +8 -13
  335. package/lib/__tests__/usageTracking.test.js +33 -34
  336. package/lib/__tests__/validation.test.js +18 -20
  337. package/lib/__tests__/yargsUtils.test.js +17 -41
  338. package/lib/accountTypes.js +24 -34
  339. package/lib/app/__tests__/migrate.test.js +94 -99
  340. package/lib/app/__tests__/migrate_legacy.test.js +29 -31
  341. package/lib/app/migrate.d.ts +3 -3
  342. package/lib/app/migrate.js +127 -145
  343. package/lib/app/migrate_legacy.d.ts +1 -1
  344. package/lib/app/migrate_legacy.js +72 -78
  345. package/lib/app/urls.js +5 -9
  346. package/lib/buildAccount.d.ts +1 -1
  347. package/lib/buildAccount.js +71 -80
  348. package/lib/commonOpts.d.ts +1 -1
  349. package/lib/commonOpts.js +42 -59
  350. package/lib/configMigrate.js +34 -38
  351. package/lib/configOptions.d.ts +5 -0
  352. package/lib/configOptions.js +44 -40
  353. package/lib/constants.d.ts +4 -0
  354. package/lib/constants.js +35 -34
  355. package/lib/customObject.js +2 -6
  356. package/lib/dependencyManagement.js +37 -45
  357. package/lib/developerTestAccounts.d.ts +1 -1
  358. package/lib/developerTestAccounts.js +34 -39
  359. package/lib/doctor/Diagnosis.d.ts +1 -1
  360. package/lib/doctor/Diagnosis.js +25 -29
  361. package/lib/doctor/DiagnosticInfoBuilder.d.ts +1 -1
  362. package/lib/doctor/DiagnosticInfoBuilder.js +30 -37
  363. package/lib/doctor/Doctor.d.ts +1 -1
  364. package/lib/doctor/Doctor.js +94 -101
  365. package/lib/doctor/__tests__/Diagnosis.test.js +9 -14
  366. package/lib/doctor/__tests__/DiagnosticInfoBuilder.test.js +29 -34
  367. package/lib/doctor/__tests__/Doctor.test.js +24 -26
  368. package/lib/enums/exitCodes.js +1 -4
  369. package/lib/errorHandlers/index.js +32 -41
  370. package/lib/errorHandlers/suppressError.d.ts +1 -1
  371. package/lib/errorHandlers/suppressError.js +28 -31
  372. package/lib/filesystem.js +8 -15
  373. package/lib/generateSelectors.js +18 -29
  374. package/lib/hasFeature.d.ts +1 -1
  375. package/lib/hasFeature.js +3 -6
  376. package/lib/interpolation.js +11 -18
  377. package/lib/lang.d.ts +1 -1
  378. package/lib/lang.js +22 -27
  379. package/lib/links.js +16 -24
  380. package/lib/marketplaceValidate.js +29 -39
  381. package/lib/mcp/setup.js +70 -82
  382. package/lib/middleware/__test__/configMiddleware.test.js +20 -55
  383. package/lib/middleware/__test__/gitMiddleware.test.js +7 -42
  384. package/lib/middleware/__test__/notificationsMiddleware.test.js +2 -4
  385. package/lib/middleware/__test__/requestMiddleware.test.js +6 -11
  386. package/lib/middleware/__test__/utils.test.js +9 -11
  387. package/lib/middleware/__test__/yargsChecksMiddleware.test.js +9 -44
  388. package/lib/middleware/autoUpdateMiddleware.js +33 -40
  389. package/lib/middleware/configMiddleware.js +36 -42
  390. package/lib/middleware/fireAlarmMiddleware.js +12 -18
  391. package/lib/middleware/gitMiddleware.js +5 -8
  392. package/lib/middleware/notificationsMiddleware.js +16 -23
  393. package/lib/middleware/requestMiddleware.js +4 -10
  394. package/lib/middleware/utils.js +1 -4
  395. package/lib/middleware/yargsChecksMiddleware.js +10 -13
  396. package/lib/npm.js +14 -23
  397. package/lib/oauth.js +29 -35
  398. package/lib/parsing.js +3 -6
  399. package/lib/polling.js +11 -15
  400. package/lib/process.js +11 -19
  401. package/lib/projectProfiles.d.ts +2 -2
  402. package/lib/projectProfiles.js +32 -42
  403. package/lib/projects/ProjectLogsManager.js +18 -21
  404. package/lib/projects/__tests__/AppDevModeInterface.test.js +140 -145
  405. package/lib/projects/__tests__/LocalDevProcess.test.js +68 -73
  406. package/lib/projects/__tests__/LocalDevWebsocketServer.test.js +32 -37
  407. package/lib/projects/__tests__/ProjectLogsManager.test.js +56 -58
  408. package/lib/projects/__tests__/buildAndDeploy.test.js +7 -9
  409. package/lib/projects/__tests__/components.test.js +9 -14
  410. package/lib/projects/__tests__/projects.test.js +35 -40
  411. package/lib/projects/__tests__/structure.test.js +43 -81
  412. package/lib/projects/add/__tests__/legacyAddComponent.test.js +26 -28
  413. package/lib/projects/add/__tests__/v3AddComponent.test.js +25 -30
  414. package/lib/projects/add/legacyAddComponent.d.ts +1 -1
  415. package/lib/projects/add/legacyAddComponent.js +24 -30
  416. package/lib/projects/add/v3AddComponent.d.ts +1 -1
  417. package/lib/projects/add/v3AddComponent.js +36 -42
  418. package/lib/projects/buildAndDeploy.d.ts +1 -1
  419. package/lib/projects/buildAndDeploy.js +88 -97
  420. package/lib/projects/components.js +19 -25
  421. package/lib/projects/config.d.ts +1 -1
  422. package/lib/projects/config.js +32 -41
  423. package/lib/projects/create/__tests__/legacy.test.js +22 -57
  424. package/lib/projects/create/__tests__/v3.test.js +5 -7
  425. package/lib/projects/create/index.d.ts +3 -3
  426. package/lib/projects/create/index.js +19 -22
  427. package/lib/projects/create/legacy.d.ts +1 -1
  428. package/lib/projects/create/legacy.js +25 -31
  429. package/lib/projects/create/v3.d.ts +3 -3
  430. package/lib/projects/create/v3.js +49 -59
  431. package/lib/projects/ensureProjectExists.js +31 -37
  432. package/lib/projects/localDev/AppDevModeInterface.d.ts +3 -3
  433. package/lib/projects/localDev/AppDevModeInterface.js +58 -60
  434. package/lib/projects/localDev/DevServerManager.d.ts +1 -1
  435. package/lib/projects/localDev/DevServerManager.js +22 -24
  436. package/lib/projects/localDev/DevServerManagerV2.d.ts +2 -2
  437. package/lib/projects/localDev/DevServerManagerV2.js +15 -20
  438. package/lib/projects/localDev/LocalDevLogger.d.ts +1 -1
  439. package/lib/projects/localDev/LocalDevLogger.js +68 -64
  440. package/lib/projects/localDev/LocalDevManager.d.ts +1 -1
  441. package/lib/projects/localDev/LocalDevManager.js +106 -111
  442. package/lib/projects/localDev/LocalDevProcess.d.ts +5 -4
  443. package/lib/projects/localDev/LocalDevProcess.js +37 -30
  444. package/lib/projects/localDev/LocalDevState.d.ts +3 -3
  445. package/lib/projects/localDev/LocalDevState.js +3 -5
  446. package/lib/projects/localDev/LocalDevWatcher.d.ts +1 -1
  447. package/lib/projects/localDev/LocalDevWatcher.js +6 -11
  448. package/lib/projects/localDev/LocalDevWebsocketServer.d.ts +1 -1
  449. package/lib/projects/localDev/LocalDevWebsocketServer.js +29 -27
  450. package/lib/projects/localDev/helpers.d.ts +3 -3
  451. package/lib/projects/localDev/helpers.js +156 -174
  452. package/lib/projects/structure.d.ts +4 -4
  453. package/lib/projects/structure.js +32 -78
  454. package/lib/projects/ui.js +10 -13
  455. package/lib/projects/upload.d.ts +2 -3
  456. package/lib/projects/upload.js +55 -65
  457. package/lib/projects/urls.d.ts +1 -1
  458. package/lib/projects/urls.js +15 -25
  459. package/lib/projects/watch.d.ts +1 -1
  460. package/lib/projects/watch.js +48 -54
  461. package/lib/prompts/__tests__/downloadProjectPrompt.test.js +9 -11
  462. package/lib/prompts/__tests__/projectsLogsPrompt.test.js +11 -16
  463. package/lib/prompts/accountNamePrompt.d.ts +1 -1
  464. package/lib/prompts/accountNamePrompt.js +26 -31
  465. package/lib/prompts/accountsPrompt.js +12 -15
  466. package/lib/prompts/cmsFieldPrompt.js +13 -19
  467. package/lib/prompts/createApiSamplePrompt.d.ts +1 -1
  468. package/lib/prompts/createApiSamplePrompt.js +9 -12
  469. package/lib/prompts/createDeveloperTestAccountConfigPrompt.d.ts +1 -1
  470. package/lib/prompts/createDeveloperTestAccountConfigPrompt.js +23 -26
  471. package/lib/prompts/createFunctionPrompt.js +17 -20
  472. package/lib/prompts/createModulePrompt.js +12 -15
  473. package/lib/prompts/createTemplatePrompt.js +5 -8
  474. package/lib/prompts/downloadProjectPrompt.js +17 -20
  475. package/lib/prompts/installAppPrompt.js +19 -26
  476. package/lib/prompts/personalAccessKeyPrompt.d.ts +2 -2
  477. package/lib/prompts/personalAccessKeyPrompt.js +40 -47
  478. package/lib/prompts/previewPrompt.js +15 -22
  479. package/lib/prompts/projectAddPrompt.d.ts +1 -1
  480. package/lib/prompts/projectAddPrompt.js +14 -18
  481. package/lib/prompts/projectDevTargetAccountPrompt.d.ts +1 -1
  482. package/lib/prompts/projectDevTargetAccountPrompt.js +48 -54
  483. package/lib/prompts/projectNameAndDestPrompt.d.ts +1 -1
  484. package/lib/prompts/projectNameAndDestPrompt.js +22 -29
  485. package/lib/prompts/projectNamePrompt.js +11 -14
  486. package/lib/prompts/projectsLogsPrompt.js +5 -8
  487. package/lib/prompts/promptUtils.d.ts +1 -1
  488. package/lib/prompts/promptUtils.js +17 -24
  489. package/lib/prompts/sandboxesPrompt.d.ts +1 -1
  490. package/lib/prompts/sandboxesPrompt.js +26 -30
  491. package/lib/prompts/secretPrompt.js +10 -15
  492. package/lib/prompts/selectAppPrompt.js +11 -14
  493. package/lib/prompts/selectHubDBTablePrompt.js +24 -30
  494. package/lib/prompts/selectProjectTemplatePrompt.d.ts +1 -1
  495. package/lib/prompts/selectProjectTemplatePrompt.js +10 -13
  496. package/lib/prompts/selectPublicAppForMigrationPrompt.js +22 -25
  497. package/lib/prompts/setAsDefaultAccountPrompt.js +13 -16
  498. package/lib/prompts/uploadPrompt.js +11 -17
  499. package/lib/sandboxSync.d.ts +1 -1
  500. package/lib/sandboxSync.js +58 -65
  501. package/lib/sandboxes.d.ts +1 -1
  502. package/lib/sandboxes.js +68 -76
  503. package/lib/schema.js +13 -20
  504. package/lib/serverlessLogs.js +45 -52
  505. package/lib/testUtils.js +4 -8
  506. package/lib/ui/SpinniesManager.d.ts +1 -1
  507. package/lib/ui/SpinniesManager.js +29 -34
  508. package/lib/ui/boxen.js +11 -14
  509. package/lib/ui/git.js +14 -20
  510. package/lib/ui/index.js +55 -73
  511. package/lib/ui/logger.js +10 -13
  512. package/lib/ui/serverlessFunctionLogs.js +14 -20
  513. package/lib/ui/spinniesUtils.js +24 -39
  514. package/lib/ui/supportHyperlinks.js +3 -6
  515. package/lib/ui/supportsColor.js +11 -17
  516. package/lib/ui/table.js +6 -13
  517. package/lib/upload.js +15 -21
  518. package/lib/usageTracking.js +35 -44
  519. package/lib/utils/hasFlag.js +2 -8
  520. package/lib/validation.js +48 -87
  521. package/lib/yargsUtils.d.ts +2 -1
  522. package/lib/yargsUtils.js +19 -16
  523. package/mcp-server/server.js +6 -8
  524. package/mcp-server/tools/index.js +13 -16
  525. package/mcp-server/tools/project/AddFeatureToProject.d.ts +1 -1
  526. package/mcp-server/tools/project/AddFeatureToProject.js +35 -39
  527. package/mcp-server/tools/project/CreateProjectTool.d.ts +1 -1
  528. package/mcp-server/tools/project/CreateProjectTool.js +46 -50
  529. package/mcp-server/tools/project/DeployProject.d.ts +1 -1
  530. package/mcp-server/tools/project/DeployProject.js +18 -22
  531. package/mcp-server/tools/project/GuidedWalkthroughTool.d.ts +1 -1
  532. package/mcp-server/tools/project/GuidedWalkthroughTool.js +21 -25
  533. package/mcp-server/tools/project/UploadProjectTools.d.ts +1 -1
  534. package/mcp-server/tools/project/UploadProjectTools.js +12 -19
  535. package/mcp-server/tools/project/ValidateProjectTool.d.ts +1 -1
  536. package/mcp-server/tools/project/ValidateProjectTool.js +13 -17
  537. package/mcp-server/tools/project/__tests__/AddFeatureToProject.test.js +12 -14
  538. package/mcp-server/tools/project/__tests__/CreateProjectTool.test.js +13 -15
  539. package/mcp-server/tools/project/__tests__/DeployProject.test.js +6 -8
  540. package/mcp-server/tools/project/__tests__/GuidedWalkthroughTool.test.js +4 -6
  541. package/mcp-server/tools/project/__tests__/UploadProjectTools.test.js +4 -6
  542. package/mcp-server/tools/project/__tests__/ValidateProjectTool.test.js +4 -6
  543. package/mcp-server/tools/project/constants.js +3 -9
  544. package/mcp-server/types.js +1 -5
  545. package/mcp-server/utils/__tests__/command.test.js +9 -11
  546. package/mcp-server/utils/__tests__/project.test.js +12 -17
  547. package/mcp-server/utils/command.d.ts +1 -1
  548. package/mcp-server/utils/command.js +4 -11
  549. package/mcp-server/utils/content.d.ts +1 -1
  550. package/mcp-server/utils/content.js +2 -6
  551. package/mcp-server/utils/project.js +8 -14
  552. package/mcp-server/utils/toolUsageTracking.js +11 -14
  553. package/package.json +15 -11
  554. package/types/Cms.d.ts +1 -1
  555. package/types/Cms.js +1 -2
  556. package/types/LocalDev.d.ts +4 -4
  557. package/types/LocalDev.js +1 -2
  558. package/types/ProjectComponents.d.ts +2 -2
  559. package/types/ProjectComponents.js +1 -2
  560. package/types/Projects.d.ts +1 -1
  561. package/types/Projects.js +2 -5
  562. package/types/Prompts.js +1 -2
  563. package/types/Sandboxes.js +1 -2
  564. package/types/Yargs.js +1 -2
  565. package/commands/app/__tests__/install.test.d.ts +0 -1
  566. package/commands/app/__tests__/install.test.js +0 -52
  567. package/commands/app/install.d.ts +0 -8
  568. package/commands/app/install.js +0 -127
@@ -1,15 +1,10 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const path_1 = __importDefault(require("path"));
7
- const project_parsing_lib_1 = require("@hubspot/project-parsing-lib");
8
- const en_1 = require("../../lang/en");
9
- const ui_1 = require("../ui");
10
- const logger_1 = require("../ui/logger");
11
- const exitCodes_1 = require("../enums/exitCodes");
12
- const projectProfiles_1 = require("../projectProfiles");
1
+ import path from 'path';
2
+ import { loadHsProfileFile, getHsProfileFilename, getAllHsProfiles, } from '@hubspot/project-parsing-lib';
3
+ import { lib } from '../../lang/en.js';
4
+ import { uiBetaTag, uiLine } from '../ui/index.js';
5
+ import { uiLogger } from '../ui/logger.js';
6
+ import { EXIT_CODES } from '../enums/exitCodes.js';
7
+ import { logProfileHeader, logProfileFooter, loadProfile, exitIfUsingProfiles, } from '../projectProfiles.js';
13
8
  // Mock dependencies
14
9
  vi.mock('@hubspot/project-parsing-lib');
15
10
  vi.mock('../ui');
@@ -19,21 +14,21 @@ vi.mock('../../lang/en');
19
14
  const mockExit = vi.spyOn(process, 'exit').mockImplementation(code => {
20
15
  throw new Error(`Process.exit called with code ${code}`);
21
16
  });
22
- const mockedLoadHsProfileFile = project_parsing_lib_1.loadHsProfileFile;
23
- const mockedGetHsProfileFilename = project_parsing_lib_1.getHsProfileFilename;
24
- const mockedGetAllHsProfiles = project_parsing_lib_1.getAllHsProfiles;
25
- const mockedUiBetaTag = ui_1.uiBetaTag;
26
- const mockedUiLine = ui_1.uiLine;
27
- const mockedUiLogger = logger_1.uiLogger;
17
+ const mockedLoadHsProfileFile = loadHsProfileFile;
18
+ const mockedGetHsProfileFilename = getHsProfileFilename;
19
+ const mockedGetAllHsProfiles = getAllHsProfiles;
20
+ const mockedUiBetaTag = uiBetaTag;
21
+ const mockedUiLine = uiLine;
22
+ const mockedUiLogger = uiLogger;
28
23
  describe('lib/projectProfiles', () => {
29
24
  describe('logProfileHeader()', () => {
30
25
  it('should log profile header with correct format', () => {
31
26
  const profileName = 'test-profile';
32
27
  const filename = 'test-profile.hsprofile';
33
28
  mockedGetHsProfileFilename.mockReturnValue(filename);
34
- (0, projectProfiles_1.logProfileHeader)(profileName);
29
+ logProfileHeader(profileName);
35
30
  expect(mockedUiLine).toHaveBeenCalled();
36
- expect(mockedUiBetaTag).toHaveBeenCalledWith(en_1.lib.projectProfiles.logs.usingProfile(filename));
31
+ expect(mockedUiBetaTag).toHaveBeenCalledWith(lib.projectProfiles.logs.usingProfile(filename));
37
32
  expect(mockedUiLogger.log).toHaveBeenCalledWith('');
38
33
  });
39
34
  });
@@ -46,16 +41,16 @@ describe('lib/projectProfiles', () => {
46
41
  },
47
42
  };
48
43
  it('should log profile footer with account ID', () => {
49
- (0, projectProfiles_1.logProfileFooter)(mockProfile);
50
- expect(mockedUiLogger.log).toHaveBeenCalledWith(en_1.lib.projectProfiles.logs.profileTargetAccount(mockProfile.accountId));
44
+ logProfileFooter(mockProfile);
45
+ expect(mockedUiLogger.log).toHaveBeenCalledWith(lib.projectProfiles.logs.profileTargetAccount(mockProfile.accountId));
51
46
  expect(mockedUiLine).toHaveBeenCalled();
52
47
  expect(mockedUiLogger.log).toHaveBeenCalledWith('');
53
48
  });
54
49
  it('should log variables when includeVariables is true', () => {
55
- (0, projectProfiles_1.logProfileFooter)(mockProfile, true);
56
- expect(mockedUiLogger.log).toHaveBeenCalledWith(en_1.lib.projectProfiles.logs.profileTargetAccount(mockProfile.accountId));
50
+ logProfileFooter(mockProfile, true);
51
+ expect(mockedUiLogger.log).toHaveBeenCalledWith(lib.projectProfiles.logs.profileTargetAccount(mockProfile.accountId));
57
52
  expect(mockedUiLogger.log).toHaveBeenCalledWith('');
58
- expect(mockedUiLogger.log).toHaveBeenCalledWith(en_1.lib.projectProfiles.logs.profileVariables);
53
+ expect(mockedUiLogger.log).toHaveBeenCalledWith(lib.projectProfiles.logs.profileVariables);
59
54
  expect(mockedUiLogger.log).toHaveBeenCalledWith(' key1: value1');
60
55
  expect(mockedUiLogger.log).toHaveBeenCalledWith(' key2: value2');
61
56
  expect(mockedUiLine).toHaveBeenCalled();
@@ -74,25 +69,25 @@ describe('lib/projectProfiles', () => {
74
69
  accountId: 123,
75
70
  };
76
71
  it('should return undefined when project config is missing', () => {
77
- const result = (0, projectProfiles_1.loadProfile)(null, mockProjectDir, mockProfileName);
72
+ const result = loadProfile(null, mockProjectDir, mockProfileName);
78
73
  expect(result).toBeUndefined();
79
- expect(mockedUiLogger.error).toHaveBeenCalledWith(en_1.lib.projectProfiles.loadProfile.errors.noProjectConfig);
74
+ expect(mockedUiLogger.error).toHaveBeenCalledWith(lib.projectProfiles.loadProfile.errors.noProjectConfig);
80
75
  });
81
76
  it('should return undefined when profile is not found', () => {
82
77
  mockedLoadHsProfileFile.mockReturnValue(null);
83
78
  const filename = 'test-profile.hsprofile';
84
79
  mockedGetHsProfileFilename.mockReturnValue(filename);
85
- const result = (0, projectProfiles_1.loadProfile)(mockProjectConfig, mockProjectDir, mockProfileName);
80
+ const result = loadProfile(mockProjectConfig, mockProjectDir, mockProfileName);
86
81
  expect(result).toBeUndefined();
87
- expect(mockedUiLogger.error).toHaveBeenCalledWith(en_1.lib.projectProfiles.loadProfile.errors.profileNotFound(filename));
82
+ expect(mockedUiLogger.error).toHaveBeenCalledWith(lib.projectProfiles.loadProfile.errors.profileNotFound(filename));
88
83
  });
89
84
  it('should return undefined when profile has no account ID', () => {
90
85
  mockedLoadHsProfileFile.mockReturnValue({});
91
86
  const filename = 'test-profile.hsprofile';
92
87
  mockedGetHsProfileFilename.mockReturnValue(filename);
93
- const result = (0, projectProfiles_1.loadProfile)(mockProjectConfig, mockProjectDir, mockProfileName);
88
+ const result = loadProfile(mockProjectConfig, mockProjectDir, mockProfileName);
94
89
  expect(result).toBeUndefined();
95
- expect(mockedUiLogger.error).toHaveBeenCalledWith(en_1.lib.projectProfiles.loadProfile.errors.missingAccountId(filename));
90
+ expect(mockedUiLogger.error).toHaveBeenCalledWith(lib.projectProfiles.loadProfile.errors.missingAccountId(filename));
96
91
  });
97
92
  it('should return undefined when profile loading fails', () => {
98
93
  mockedLoadHsProfileFile.mockImplementation(() => {
@@ -100,15 +95,15 @@ describe('lib/projectProfiles', () => {
100
95
  });
101
96
  const filename = 'test-profile.hsprofile';
102
97
  mockedGetHsProfileFilename.mockReturnValue(filename);
103
- const result = (0, projectProfiles_1.loadProfile)(mockProjectConfig, mockProjectDir, mockProfileName);
98
+ const result = loadProfile(mockProjectConfig, mockProjectDir, mockProfileName);
104
99
  expect(result).toBeUndefined();
105
- expect(mockedUiLogger.error).toHaveBeenCalledWith(en_1.lib.projectProfiles.loadProfile.errors.failedToLoadProfile(filename));
100
+ expect(mockedUiLogger.error).toHaveBeenCalledWith(lib.projectProfiles.loadProfile.errors.failedToLoadProfile(filename));
106
101
  });
107
102
  it('should return profile when loading succeeds', () => {
108
103
  mockedLoadHsProfileFile.mockReturnValue(mockProfile);
109
- const result = (0, projectProfiles_1.loadProfile)(mockProjectConfig, mockProjectDir, mockProfileName);
104
+ const result = loadProfile(mockProjectConfig, mockProjectDir, mockProfileName);
110
105
  expect(result).toEqual(mockProfile);
111
- expect(mockedLoadHsProfileFile).toHaveBeenCalledWith(path_1.default.join(mockProjectDir, mockProjectConfig.srcDir), mockProfileName);
106
+ expect(mockedLoadHsProfileFile).toHaveBeenCalledWith(path.join(mockProjectDir, mockProjectConfig.srcDir), mockProfileName);
112
107
  });
113
108
  });
114
109
  describe('exitIfUsingProfiles()', () => {
@@ -120,15 +115,15 @@ describe('lib/projectProfiles', () => {
120
115
  const mockProjectDir = '/test/project';
121
116
  it('should not exit when no profiles exist', async () => {
122
117
  mockedGetAllHsProfiles.mockResolvedValue([]);
123
- await (0, projectProfiles_1.exitIfUsingProfiles)(mockProjectConfig, mockProjectDir);
118
+ await exitIfUsingProfiles(mockProjectConfig, mockProjectDir);
124
119
  expect(mockedUiLogger.error).not.toHaveBeenCalled();
125
120
  expect(mockExit).not.toHaveBeenCalled();
126
121
  });
127
122
  it('should exit with error when profiles exist', async () => {
128
123
  mockedGetAllHsProfiles.mockResolvedValue(['profile1', 'profile2']);
129
- await expect((0, projectProfiles_1.exitIfUsingProfiles)(mockProjectConfig, mockProjectDir)).rejects.toThrow(`Process.exit called with code ${exitCodes_1.EXIT_CODES.ERROR}`);
130
- expect(mockedUiLogger.error).toHaveBeenCalledWith(en_1.lib.projectProfiles.exitIfUsingProfiles.errors.noProfileSpecified);
131
- expect(mockExit).toHaveBeenCalledWith(exitCodes_1.EXIT_CODES.ERROR);
124
+ await expect(exitIfUsingProfiles(mockProjectConfig, mockProjectDir)).rejects.toThrow(`Process.exit called with code ${EXIT_CODES.ERROR}`);
125
+ expect(mockedUiLogger.error).toHaveBeenCalledWith(lib.projectProfiles.exitIfUsingProfiles.errors.noProfileSpecified);
126
+ expect(mockExit).toHaveBeenCalledWith(EXIT_CODES.ERROR);
132
127
  });
133
128
  });
134
129
  });
@@ -1,41 +1,36 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const logger_1 = require("@hubspot/local-dev-lib/logger");
7
- const sandboxSync_1 = require("@hubspot/local-dev-lib/api/sandboxSync");
8
- const config_1 = require("@hubspot/local-dev-lib/config");
9
- const config_2 = require("@hubspot/local-dev-lib/constants/config");
10
- const testUtils_1 = require("../testUtils");
11
- const sandboxes_1 = require("../sandboxes");
12
- const sandboxSync_2 = require("../sandboxSync");
13
- const SpinniesManager_1 = __importDefault(require("../ui/SpinniesManager"));
1
+ import { logger } from '@hubspot/local-dev-lib/logger';
2
+ import { initiateSync } from '@hubspot/local-dev-lib/api/sandboxSync';
3
+ import { getAccountId } from '@hubspot/local-dev-lib/config';
4
+ import { HUBSPOT_ACCOUNT_TYPES } from '@hubspot/local-dev-lib/constants/config';
5
+ import { mockHubSpotHttpError } from '../testUtils.js';
6
+ import { getAvailableSyncTypes } from '../sandboxes.js';
7
+ import { syncSandbox } from '../sandboxSync.js';
8
+ import SpinniesManager from '../ui/SpinniesManager.js';
14
9
  vi.mock('@hubspot/local-dev-lib/logger');
15
10
  vi.mock('@hubspot/local-dev-lib/api/sandboxSync');
16
11
  vi.mock('@hubspot/local-dev-lib/config');
17
12
  vi.mock('../sandboxes');
18
13
  vi.mock('../ui/SpinniesManager');
19
- const mockedLogger = logger_1.logger;
20
- const mockedInitiateSync = sandboxSync_1.initiateSync;
21
- const mockedGetAccountId = config_1.getAccountId;
22
- const mockedGetAvailableSyncTypes = sandboxes_1.getAvailableSyncTypes;
23
- const mockedSpinniesInit = SpinniesManager_1.default.init;
24
- const mockedSpinniesAdd = SpinniesManager_1.default.add;
25
- const mockedSpinniesSucceed = SpinniesManager_1.default.succeed;
26
- const mockedSpinniesFail = SpinniesManager_1.default.fail;
14
+ const mockedLogger = logger;
15
+ const mockedInitiateSync = initiateSync;
16
+ const mockedGetAccountId = getAccountId;
17
+ const mockedGetAvailableSyncTypes = getAvailableSyncTypes;
18
+ const mockedSpinniesInit = SpinniesManager.init;
19
+ const mockedSpinniesAdd = SpinniesManager.add;
20
+ const mockedSpinniesSucceed = SpinniesManager.succeed;
21
+ const mockedSpinniesFail = SpinniesManager.fail;
27
22
  describe('lib/sandboxSync', () => {
28
23
  const mockEnv = 'qa';
29
24
  const mockParentAccount = {
30
25
  name: 'Parent Account',
31
26
  portalId: 123,
32
- accountType: config_2.HUBSPOT_ACCOUNT_TYPES.STANDARD_SANDBOX,
27
+ accountType: HUBSPOT_ACCOUNT_TYPES.STANDARD_SANDBOX,
33
28
  env: mockEnv,
34
29
  };
35
30
  const mockChildAccount = {
36
31
  name: 'Child Account',
37
32
  portalId: 456,
38
- accountType: config_2.HUBSPOT_ACCOUNT_TYPES.DEVELOPMENT_SANDBOX,
33
+ accountType: HUBSPOT_ACCOUNT_TYPES.DEVELOPMENT_SANDBOX,
39
34
  env: mockEnv,
40
35
  };
41
36
  const mockSyncTasks = [{ type: 'mock-sync-type' }];
@@ -48,7 +43,7 @@ describe('lib/sandboxSync', () => {
48
43
  describe('syncSandbox()', () => {
49
44
  it('successfully syncs a sandbox with provided sync tasks', async () => {
50
45
  mockedInitiateSync.mockResolvedValue({ status: 'SUCCESS' });
51
- await (0, sandboxSync_2.syncSandbox)(mockChildAccount, mockParentAccount, mockEnv, mockSyncTasks);
46
+ await syncSandbox(mockChildAccount, mockParentAccount, mockEnv, mockSyncTasks);
52
47
  expect(mockedSpinniesInit).toHaveBeenCalled();
53
48
  expect(mockedSpinniesAdd).toHaveBeenCalled();
54
49
  expect(mockedInitiateSync).toHaveBeenCalledWith(mockParentAccount.portalId, mockChildAccount.portalId, mockSyncTasks, mockChildAccount.portalId);
@@ -56,7 +51,7 @@ describe('lib/sandboxSync', () => {
56
51
  });
57
52
  it('fetches sync types when no tasks are provided', async () => {
58
53
  mockedInitiateSync.mockResolvedValue({ status: 'SUCCESS' });
59
- await (0, sandboxSync_2.syncSandbox)(mockChildAccount, mockParentAccount, mockEnv, []);
54
+ await syncSandbox(mockChildAccount, mockParentAccount, mockEnv, []);
60
55
  expect(mockedGetAvailableSyncTypes).toHaveBeenCalledWith(mockParentAccount, mockChildAccount);
61
56
  expect(mockedGetAvailableSyncTypes).toHaveBeenCalledWith(mockParentAccount, mockChildAccount);
62
57
  expect(mockedInitiateSync).toHaveBeenCalled();
@@ -65,10 +60,10 @@ describe('lib/sandboxSync', () => {
65
60
  mockedGetAccountId.mockReset();
66
61
  mockedGetAccountId.mockReturnValue(null);
67
62
  const errorRegex = new RegExp(`Couldn't sync ${mockChildAccount.portalId} because your account has been removed from`);
68
- await expect((0, sandboxSync_2.syncSandbox)(mockChildAccount, mockParentAccount, mockEnv, mockSyncTasks)).rejects.toThrow(errorRegex);
63
+ await expect(syncSandbox(mockChildAccount, mockParentAccount, mockEnv, mockSyncTasks)).rejects.toThrow(errorRegex);
69
64
  });
70
65
  it('handles sync in progress error', async () => {
71
- const error = (0, testUtils_1.mockHubSpotHttpError)('', {
66
+ const error = mockHubSpotHttpError('', {
72
67
  status: 429,
73
68
  data: {
74
69
  category: 'RATE_LIMITS',
@@ -76,12 +71,12 @@ describe('lib/sandboxSync', () => {
76
71
  },
77
72
  });
78
73
  mockedInitiateSync.mockRejectedValue(error);
79
- await expect((0, sandboxSync_2.syncSandbox)(mockChildAccount, mockParentAccount, mockEnv, mockSyncTasks)).rejects.toEqual(error);
74
+ await expect(syncSandbox(mockChildAccount, mockParentAccount, mockEnv, mockSyncTasks)).rejects.toEqual(error);
80
75
  expect(mockedSpinniesFail).toHaveBeenCalled();
81
76
  expect(mockedLogger.error).toHaveBeenCalledWith(expect.stringMatching(/Couldn't run the sync because there's another sync in progress/));
82
77
  });
83
78
  it('handles invalid user error', async () => {
84
- const error = (0, testUtils_1.mockHubSpotHttpError)('', {
79
+ const error = mockHubSpotHttpError('', {
85
80
  status: 403,
86
81
  data: {
87
82
  category: 'BANNED',
@@ -89,12 +84,12 @@ describe('lib/sandboxSync', () => {
89
84
  },
90
85
  });
91
86
  mockedInitiateSync.mockRejectedValue(error);
92
- await expect((0, sandboxSync_2.syncSandbox)(mockChildAccount, mockParentAccount, mockEnv, mockSyncTasks)).rejects.toEqual(error);
87
+ await expect(syncSandbox(mockChildAccount, mockParentAccount, mockEnv, mockSyncTasks)).rejects.toEqual(error);
93
88
  expect(mockedSpinniesFail).toHaveBeenCalled();
94
89
  expect(mockedLogger.error).toHaveBeenCalledWith(expect.stringMatching(/because your account has been removed from/));
95
90
  });
96
91
  it('handles not super admin error', async () => {
97
- const error = (0, testUtils_1.mockHubSpotHttpError)('', {
92
+ const error = mockHubSpotHttpError('', {
98
93
  status: 403,
99
94
  data: {
100
95
  category: 'BANNED',
@@ -102,12 +97,12 @@ describe('lib/sandboxSync', () => {
102
97
  },
103
98
  });
104
99
  mockedInitiateSync.mockRejectedValue(error);
105
- await expect((0, sandboxSync_2.syncSandbox)(mockChildAccount, mockParentAccount, mockEnv, mockSyncTasks)).rejects.toEqual(error);
100
+ await expect(syncSandbox(mockChildAccount, mockParentAccount, mockEnv, mockSyncTasks)).rejects.toEqual(error);
106
101
  expect(mockedSpinniesFail).toHaveBeenCalled();
107
102
  expect(mockedLogger.error).toHaveBeenCalledWith(expect.stringMatching(/Couldn't run the sync because you are not a super admin in/));
108
103
  });
109
104
  it('handles sandbox not found error', async () => {
110
- const error = (0, testUtils_1.mockHubSpotHttpError)('', {
105
+ const error = mockHubSpotHttpError('', {
111
106
  status: 404,
112
107
  data: {
113
108
  category: 'OBJECT_NOT_FOUND',
@@ -115,13 +110,13 @@ describe('lib/sandboxSync', () => {
115
110
  },
116
111
  });
117
112
  mockedInitiateSync.mockRejectedValue(error);
118
- await expect((0, sandboxSync_2.syncSandbox)(mockChildAccount, mockParentAccount, mockEnv, mockSyncTasks)).rejects.toEqual(error);
113
+ await expect(syncSandbox(mockChildAccount, mockParentAccount, mockEnv, mockSyncTasks)).rejects.toEqual(error);
119
114
  expect(mockedSpinniesFail).toHaveBeenCalled();
120
115
  expect(mockedLogger.error).toHaveBeenCalledWith(expect.stringMatching(/may have been deleted through the UI/));
121
116
  });
122
117
  it('displays slim info message when specified', async () => {
123
118
  mockedInitiateSync.mockResolvedValue({ status: 'SUCCESS' });
124
- await (0, sandboxSync_2.syncSandbox)(mockChildAccount, mockParentAccount, mockEnv, mockSyncTasks, true);
119
+ await syncSandbox(mockChildAccount, mockParentAccount, mockEnv, mockSyncTasks, true);
125
120
  expect(mockedLogger.info).not.toHaveBeenCalled();
126
121
  expect(mockedSpinniesSucceed).toHaveBeenCalledWith('sandboxSync', expect.objectContaining({
127
122
  text: expect.stringMatching(/Initiated sync of object definitions from production to /),
@@ -1,31 +1,29 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const logger_1 = require("@hubspot/local-dev-lib/logger");
4
- const sandboxHubs_1 = require("@hubspot/local-dev-lib/api/sandboxHubs");
5
- const sandboxSync_1 = require("@hubspot/local-dev-lib/api/sandboxSync");
6
- const config_1 = require("@hubspot/local-dev-lib/config");
7
- const config_2 = require("@hubspot/local-dev-lib/constants/config");
8
- const testUtils_1 = require("../testUtils");
9
- const sandboxes_1 = require("../sandboxes");
1
+ import { logger } from '@hubspot/local-dev-lib/logger';
2
+ import { getSandboxUsageLimits } from '@hubspot/local-dev-lib/api/sandboxHubs';
3
+ import { fetchTypes } from '@hubspot/local-dev-lib/api/sandboxSync';
4
+ import { getAccountId, getConfigAccounts } from '@hubspot/local-dev-lib/config';
5
+ import { HUBSPOT_ACCOUNT_TYPES } from '@hubspot/local-dev-lib/constants/config';
6
+ import { mockHubSpotHttpError } from '../testUtils.js';
7
+ import { getSandboxTypeAsString, getHasSandboxesByType, getAvailableSyncTypes, validateSandboxUsageLimits, handleSandboxCreateError, } from '../sandboxes.js';
10
8
  vi.mock('@hubspot/local-dev-lib/logger');
11
9
  vi.mock('@hubspot/local-dev-lib/api/sandboxHubs');
12
10
  vi.mock('@hubspot/local-dev-lib/api/sandboxSync');
13
11
  vi.mock('@hubspot/local-dev-lib/config');
14
- const mockedGetAccountId = config_1.getAccountId;
15
- const mockedGetSandboxUsageLimits = sandboxHubs_1.getSandboxUsageLimits;
16
- const mockedFetchTypes = sandboxSync_1.fetchTypes;
17
- const mockedGetConfigAccounts = config_1.getConfigAccounts;
18
- const mockedLogger = logger_1.logger;
12
+ const mockedGetAccountId = getAccountId;
13
+ const mockedGetSandboxUsageLimits = getSandboxUsageLimits;
14
+ const mockedFetchTypes = fetchTypes;
15
+ const mockedGetConfigAccounts = getConfigAccounts;
16
+ const mockedLogger = logger;
19
17
  describe('lib/sandboxes', () => {
20
18
  describe('getSandboxTypeAsString()', () => {
21
19
  it('returns "development" for development sandbox type', () => {
22
- expect((0, sandboxes_1.getSandboxTypeAsString)(config_2.HUBSPOT_ACCOUNT_TYPES.DEVELOPMENT_SANDBOX)).toBe('development');
20
+ expect(getSandboxTypeAsString(HUBSPOT_ACCOUNT_TYPES.DEVELOPMENT_SANDBOX)).toBe('development');
23
21
  });
24
22
  it('returns "standard" for standard sandbox type', () => {
25
- expect((0, sandboxes_1.getSandboxTypeAsString)(config_2.HUBSPOT_ACCOUNT_TYPES.STANDARD_SANDBOX)).toBe('standard');
23
+ expect(getSandboxTypeAsString(HUBSPOT_ACCOUNT_TYPES.STANDARD_SANDBOX)).toBe('standard');
26
24
  });
27
25
  it('returns "standard" for undefined input', () => {
28
- expect((0, sandboxes_1.getSandboxTypeAsString)(undefined)).toBe('standard');
26
+ expect(getSandboxTypeAsString(undefined)).toBe('standard');
29
27
  });
30
28
  });
31
29
  describe('getHasSandboxesByType()', () => {
@@ -33,7 +31,7 @@ describe('lib/sandboxes', () => {
33
31
  name: 'Parent Account',
34
32
  portalId: 123,
35
33
  authType: undefined,
36
- accountType: config_2.HUBSPOT_ACCOUNT_TYPES.STANDARD_SANDBOX,
34
+ accountType: HUBSPOT_ACCOUNT_TYPES.STANDARD_SANDBOX,
37
35
  env: 'qa',
38
36
  };
39
37
  it('returns true when sandbox of specified type exists', () => {
@@ -43,14 +41,14 @@ describe('lib/sandboxes', () => {
43
41
  {
44
42
  ...mockParentAccount,
45
43
  parentAccountId: 123,
46
- accountType: config_2.HUBSPOT_ACCOUNT_TYPES.DEVELOPMENT_SANDBOX,
44
+ accountType: HUBSPOT_ACCOUNT_TYPES.DEVELOPMENT_SANDBOX,
47
45
  },
48
46
  ]);
49
- expect((0, sandboxes_1.getHasSandboxesByType)(mockParentAccount, config_2.HUBSPOT_ACCOUNT_TYPES.DEVELOPMENT_SANDBOX)).toBe(true);
47
+ expect(getHasSandboxesByType(mockParentAccount, HUBSPOT_ACCOUNT_TYPES.DEVELOPMENT_SANDBOX)).toBe(true);
50
48
  });
51
49
  it('returns false when no sandbox of specified type exists', () => {
52
50
  mockedGetConfigAccounts.mockReturnValue([mockParentAccount]);
53
- expect((0, sandboxes_1.getHasSandboxesByType)(mockParentAccount, config_2.HUBSPOT_ACCOUNT_TYPES.DEVELOPMENT_SANDBOX)).toBe(false);
51
+ expect(getHasSandboxesByType(mockParentAccount, HUBSPOT_ACCOUNT_TYPES.DEVELOPMENT_SANDBOX)).toBe(false);
54
52
  });
55
53
  });
56
54
  describe('getAvailableSyncTypes()', () => {
@@ -71,12 +69,12 @@ describe('lib/sandboxes', () => {
71
69
  mockedFetchTypes.mockResolvedValue({
72
70
  data: { results: mockSyncTypes },
73
71
  });
74
- const result = await (0, sandboxes_1.getAvailableSyncTypes)(mockParentAccount, mockChildAccount);
72
+ const result = await getAvailableSyncTypes(mockParentAccount, mockChildAccount);
75
73
  expect(result).toEqual([{ type: 'type1' }, { type: 'type2' }]);
76
74
  });
77
75
  it('throws error when sync types fetch fails', async () => {
78
76
  mockedFetchTypes.mockResolvedValue({ data: { results: null } });
79
- await expect((0, sandboxes_1.getAvailableSyncTypes)(mockParentAccount, mockChildAccount)).rejects.toThrow(/Unable to fetch available sandbox sync types/);
77
+ await expect(getAvailableSyncTypes(mockParentAccount, mockChildAccount)).rejects.toThrow(/Unable to fetch available sandbox sync types/);
80
78
  });
81
79
  });
82
80
  describe('validateSandboxUsageLimits()', () => {
@@ -93,7 +91,7 @@ describe('lib/sandboxes', () => {
93
91
  usage: { DEVELOPER: { available: 1, limit: 3 } },
94
92
  },
95
93
  });
96
- await expect((0, sandboxes_1.validateSandboxUsageLimits)(mockAccount, config_2.HUBSPOT_ACCOUNT_TYPES.DEVELOPMENT_SANDBOX, 'qa')).resolves.not.toThrow();
94
+ await expect(validateSandboxUsageLimits(mockAccount, HUBSPOT_ACCOUNT_TYPES.DEVELOPMENT_SANDBOX, 'qa')).resolves.not.toThrow();
97
95
  });
98
96
  it('throws error when development sandbox limit is reached', async () => {
99
97
  mockedGetAccountId.mockReturnValue(mockAccount.portalId);
@@ -103,7 +101,7 @@ describe('lib/sandboxes', () => {
103
101
  usage: { DEVELOPER: { available: 0, limit: 1 } },
104
102
  },
105
103
  });
106
- await expect((0, sandboxes_1.validateSandboxUsageLimits)(mockAccount, config_2.HUBSPOT_ACCOUNT_TYPES.DEVELOPMENT_SANDBOX, 'qa')).rejects.toThrow(/reached the limit of 1 development sandbox/);
104
+ await expect(validateSandboxUsageLimits(mockAccount, HUBSPOT_ACCOUNT_TYPES.DEVELOPMENT_SANDBOX, 'qa')).rejects.toThrow(/reached the limit of 1 development sandbox/);
107
105
  });
108
106
  });
109
107
  describe('handleSandboxCreateError()', () => {
@@ -111,37 +109,37 @@ describe('lib/sandboxes', () => {
111
109
  const mockName = 'Test Sandbox';
112
110
  const mockAccountId = 123;
113
111
  it('handles missing scope error', () => {
114
- const error = (0, testUtils_1.mockHubSpotHttpError)('missing scopes error', {
112
+ const error = mockHubSpotHttpError('missing scopes error', {
115
113
  status: 403,
116
114
  data: {
117
115
  message: 'Missing scopes error',
118
116
  category: 'MISSING_SCOPES',
119
117
  },
120
118
  });
121
- expect(() => (0, sandboxes_1.handleSandboxCreateError)(error, mockEnv, mockName, mockAccountId)).toThrow(error);
119
+ expect(() => handleSandboxCreateError(error, mockEnv, mockName, mockAccountId)).toThrow(error);
122
120
  expect(mockedLogger.error).toHaveBeenCalledWith(expect.stringMatching(/The personal access key you provided doesn't include sandbox permissions/));
123
121
  expect(mockedLogger.info).toHaveBeenCalledWith(expect.stringMatching(/To update CLI permissions for/));
124
122
  });
125
123
  it('handles user access not allowed error', () => {
126
- const error = (0, testUtils_1.mockHubSpotHttpError)('user access not allowed error', {
124
+ const error = mockHubSpotHttpError('user access not allowed error', {
127
125
  status: 403,
128
126
  data: {
129
127
  category: 'BANNED',
130
128
  subCategory: 'SandboxErrors.USER_ACCESS_NOT_ALLOWED',
131
129
  },
132
130
  });
133
- expect(() => (0, sandboxes_1.handleSandboxCreateError)(error, mockEnv, mockName, mockAccountId)).toThrow(error);
131
+ expect(() => handleSandboxCreateError(error, mockEnv, mockName, mockAccountId)).toThrow(error);
134
132
  expect(mockedLogger.error).toHaveBeenCalledWith(expect.stringMatching(/your permission set doesn't allow you to create the sandbox/));
135
133
  });
136
134
  it('handles 403 gating error', () => {
137
- const error = (0, testUtils_1.mockHubSpotHttpError)('403 gating error', {
135
+ const error = mockHubSpotHttpError('403 gating error', {
138
136
  status: 403,
139
137
  data: {
140
138
  category: 'BANNED',
141
139
  subCategory: 'SandboxErrors.DEVELOPMENT_SANDBOX_ACCESS_NOT_ALLOWED',
142
140
  },
143
141
  });
144
- expect(() => (0, sandboxes_1.handleSandboxCreateError)(error, mockEnv, mockName, mockAccountId)).toThrow(error);
142
+ expect(() => handleSandboxCreateError(error, mockEnv, mockName, mockAccountId)).toThrow(error);
145
143
  expect(mockedLogger.error).toHaveBeenCalledWith(expect.stringMatching(/does not have access to development sandboxes/));
146
144
  });
147
145
  });
@@ -1,11 +1,6 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const mock_stdin_1 = __importDefault(require("mock-stdin"));
7
- const serverlessFunctionLogs_1 = require("../ui/serverlessFunctionLogs");
8
- const serverlessLogs_1 = require("../serverlessLogs");
1
+ import mockStdIn from 'mock-stdin';
2
+ import { outputLogs } from '../ui/serverlessFunctionLogs.js';
3
+ import { tailLogs } from '../serverlessLogs.js';
9
4
  vi.mock('../ui/serverlessFunctionLogs');
10
5
  vi.mock('@hubspot/local-dev-lib/logger');
11
6
  vi.mock('../ui/SpinniesManager', () => ({
@@ -26,7 +21,7 @@ describe('lib/serverlessLogs', () => {
26
21
  beforeEach(() => {
27
22
  // @ts-ignore - we don't need to mock the entire process object
28
23
  vi.spyOn(process, 'exit').mockImplementation(() => { });
29
- stdinMock = mock_stdin_1.default.stdin();
24
+ stdinMock = mockStdIn.stdin();
30
25
  });
31
26
  afterEach(() => {
32
27
  vi.clearAllTimers();
@@ -69,7 +64,7 @@ describe('lib/serverlessLogs', () => {
69
64
  });
70
65
  });
71
66
  // @ts-ignore - headers is not used in the actual function and does not need to be mocked
72
- await (0, serverlessLogs_1.tailLogs)(ACCOUNT_ID, 'name', fetchLatest, tailCall, compact);
67
+ await tailLogs(ACCOUNT_ID, 'name', fetchLatest, tailCall, compact);
73
68
  vi.runOnlyPendingTimers();
74
69
  expect(fetchLatest).toHaveBeenCalled();
75
70
  expect(tailCall).toHaveBeenCalledTimes(2);
@@ -125,9 +120,9 @@ describe('lib/serverlessLogs', () => {
125
120
  };
126
121
  const tailCall = vi.fn(() => Promise.resolve({ data: latestLogResponse }));
127
122
  // @ts-ignore - headers is not used in the actual function and does not need to be mocked
128
- await (0, serverlessLogs_1.tailLogs)(ACCOUNT_ID, 'name', fetchLatest, tailCall, compact);
123
+ await tailLogs(ACCOUNT_ID, 'name', fetchLatest, tailCall, compact);
129
124
  vi.runOnlyPendingTimers();
130
- expect(serverlessFunctionLogs_1.outputLogs).toHaveBeenCalledWith(latestLogResponse, expect.objectContaining({ compact }));
125
+ expect(outputLogs).toHaveBeenCalledWith(latestLogResponse, expect.objectContaining({ compact }));
131
126
  expect(tailCall).toHaveBeenCalledTimes(2);
132
127
  });
133
128
  it('handles no logs', async () => {
@@ -146,7 +141,7 @@ describe('lib/serverlessLogs', () => {
146
141
  stackTrace: [],
147
142
  statusCode: 404,
148
143
  }));
149
- await (0, serverlessLogs_1.tailLogs)(ACCOUNT_ID, 'name', fetchLatest, tailCall, compact);
144
+ await tailLogs(ACCOUNT_ID, 'name', fetchLatest, tailCall, compact);
150
145
  vi.runOnlyPendingTimers();
151
146
  expect(tailCall).toHaveBeenCalledTimes(2);
152
147
  });