@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,31 +1,26 @@
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 upload_1 = require("../upload");
9
- const config_1 = require("../config");
10
- const LocalDevProcess_1 = __importDefault(require("../localDev/LocalDevProcess"));
11
- const LocalDevLogger_1 = __importDefault(require("../localDev/LocalDevLogger"));
12
- const DevServerManagerV2_1 = __importDefault(require("../localDev/DevServerManagerV2"));
13
- const environments_1 = require("@hubspot/local-dev-lib/constants/environments");
14
- const vitest_1 = require("vitest");
1
+ import path from 'path';
2
+ import { translateForLocalDev } from '@hubspot/project-parsing-lib';
3
+ import { handleProjectUpload } from '../upload.js';
4
+ import { getProjectConfig } from '../config.js';
5
+ import LocalDevProcess from '../localDev/LocalDevProcess.js';
6
+ import LocalDevLogger from '../localDev/LocalDevLogger.js';
7
+ import DevServerManagerV2 from '../localDev/DevServerManagerV2.js';
8
+ import { ENVIRONMENTS } from '@hubspot/local-dev-lib/constants/environments';
9
+ import { vi } from 'vitest';
15
10
  // Mock @hubspot/ui-extensions-dev-server
16
- vitest_1.vi.mock('@hubspot/ui-extensions-dev-server', () => ({
11
+ vi.mock('@hubspot/ui-extensions-dev-server', () => ({
17
12
  DevModeUnifiedInterface: {
18
- setup: vitest_1.vi.fn().mockResolvedValue(undefined),
19
- start: vitest_1.vi.fn().mockResolvedValue(undefined),
20
- fileChange: vitest_1.vi.fn().mockResolvedValue(undefined),
21
- cleanup: vitest_1.vi.fn().mockResolvedValue(undefined),
13
+ setup: vi.fn().mockResolvedValue(undefined),
14
+ start: vi.fn().mockResolvedValue(undefined),
15
+ fileChange: vi.fn().mockResolvedValue(undefined),
16
+ cleanup: vi.fn().mockResolvedValue(undefined),
22
17
  },
23
18
  }));
24
- vitest_1.vi.mock('@hubspot/project-parsing-lib');
25
- vitest_1.vi.mock('../upload');
26
- vitest_1.vi.mock('../config');
27
- vitest_1.vi.mock('../localDev/LocalDevLogger');
28
- vitest_1.vi.mock('../localDev/DevServerManagerV2');
19
+ vi.mock('@hubspot/project-parsing-lib');
20
+ vi.mock('../upload');
21
+ vi.mock('../config');
22
+ vi.mock('../localDev/LocalDevLogger');
23
+ vi.mock('../localDev/DevServerManagerV2');
29
24
  // Tests for LocalDevProcess and LocalDevState
30
25
  describe('LocalDevProcess', () => {
31
26
  let mockLocalDevLogger;
@@ -79,51 +74,51 @@ describe('LocalDevProcess', () => {
79
74
  projectId: 789,
80
75
  isGithubLinked: false,
81
76
  initialProjectNodes: {},
82
- env: environments_1.ENVIRONMENTS.PROD,
77
+ env: ENVIRONMENTS.PROD,
83
78
  deployedBuild: mockBuild,
84
79
  projectName: 'test-project',
85
80
  };
86
81
  beforeEach(() => {
87
- vitest_1.vi.clearAllMocks();
82
+ vi.clearAllMocks();
88
83
  mockLocalDevLogger = {
89
- resetSpinnies: vitest_1.vi.fn(),
90
- devServerSetupError: vitest_1.vi.fn(),
91
- devServerStartError: vitest_1.vi.fn(),
92
- devServerCleanupError: vitest_1.vi.fn(),
93
- missingComponentsWarning: vitest_1.vi.fn(),
94
- noDeployedBuild: vitest_1.vi.fn(),
95
- startupMessage: vitest_1.vi.fn(),
96
- monitorConsoleOutput: vitest_1.vi.fn(),
97
- cleanupStart: vitest_1.vi.fn(),
98
- cleanupError: vitest_1.vi.fn(),
99
- cleanupSuccess: vitest_1.vi.fn(),
100
- uploadInitiated: vitest_1.vi.fn(),
101
- projectConfigMismatch: vitest_1.vi.fn(),
102
- uploadError: vitest_1.vi.fn(),
103
- uploadSuccess: vitest_1.vi.fn(),
104
- clearUploadWarnings: vitest_1.vi.fn(),
105
- fileChangeError: vitest_1.vi.fn(),
106
- uploadWarning: vitest_1.vi.fn(),
84
+ resetSpinnies: vi.fn(),
85
+ devServerSetupError: vi.fn(),
86
+ devServerStartError: vi.fn(),
87
+ devServerCleanupError: vi.fn(),
88
+ missingComponentsWarning: vi.fn(),
89
+ noDeployedBuild: vi.fn(),
90
+ startupMessage: vi.fn(),
91
+ monitorConsoleOutput: vi.fn(),
92
+ cleanupStart: vi.fn(),
93
+ cleanupError: vi.fn(),
94
+ cleanupSuccess: vi.fn(),
95
+ uploadInitiated: vi.fn(),
96
+ projectConfigMismatch: vi.fn(),
97
+ uploadError: vi.fn(),
98
+ uploadSuccess: vi.fn(),
99
+ clearUploadWarnings: vi.fn(),
100
+ fileChangeError: vi.fn(),
101
+ uploadWarning: vi.fn(),
107
102
  };
108
103
  mockDevServerManager = {
109
- setup: vitest_1.vi.fn().mockResolvedValue(undefined),
110
- start: vitest_1.vi.fn().mockResolvedValue(undefined),
111
- cleanup: vitest_1.vi.fn().mockResolvedValue(undefined),
112
- fileChange: vitest_1.vi.fn().mockResolvedValue(undefined),
104
+ setup: vi.fn().mockResolvedValue(undefined),
105
+ start: vi.fn().mockResolvedValue(undefined),
106
+ cleanup: vi.fn().mockResolvedValue(undefined),
107
+ fileChange: vi.fn().mockResolvedValue(undefined),
113
108
  };
114
109
  // Mock constructors
115
- LocalDevLogger_1.default.mockImplementation(() => mockLocalDevLogger);
116
- DevServerManagerV2_1.default.mockImplementation(() => mockDevServerManager);
110
+ LocalDevLogger.mockImplementation(() => mockLocalDevLogger);
111
+ DevServerManagerV2.mockImplementation(() => mockDevServerManager);
117
112
  // Create process instance
118
- process = new LocalDevProcess_1.default(mockOptions);
113
+ process = new LocalDevProcess(mockOptions);
119
114
  // Mock process.exit
120
- vitest_1.vi.spyOn(global.process, 'exit').mockImplementation((code) => {
115
+ vi.spyOn(global.process, 'exit').mockImplementation((code) => {
121
116
  throw new Error(`Process.exit called with code ${code}`);
122
117
  });
123
118
  });
124
119
  describe('start()', () => {
125
120
  it('should exit if no deployed build exists', async () => {
126
- const processWithoutBuild = new LocalDevProcess_1.default({
121
+ const processWithoutBuild = new LocalDevProcess({
127
122
  ...mockOptions,
128
123
  deployedBuild: undefined,
129
124
  });
@@ -156,7 +151,7 @@ describe('LocalDevProcess', () => {
156
151
  config: {},
157
152
  files: [],
158
153
  };
159
- const processWithNode = new LocalDevProcess_1.default({
154
+ const processWithNode = new LocalDevProcess({
160
155
  ...mockOptions,
161
156
  initialProjectNodes: {
162
157
  component3: mockNode,
@@ -187,13 +182,13 @@ describe('LocalDevProcess', () => {
187
182
  describe('updateProjectNodes()', () => {
188
183
  it('should update project nodes with translated representation', async () => {
189
184
  const mockNodes = { node1: { uid: 'node1' } };
190
- project_parsing_lib_1.translateForLocalDev.mockResolvedValue({
185
+ translateForLocalDev.mockResolvedValue({
191
186
  intermediateNodesIndexedByUid: mockNodes,
192
187
  });
193
188
  // @ts-expect-error testing private method
194
189
  await process.updateProjectNodes();
195
- expect(project_parsing_lib_1.translateForLocalDev).toHaveBeenCalledWith({
196
- projectSourceDir: path_1.default.join(mockOptions.projectDir, mockOptions.projectConfig.srcDir),
190
+ expect(translateForLocalDev).toHaveBeenCalledWith({
191
+ projectSourceDir: path.join(mockOptions.projectDir, mockOptions.projectConfig.srcDir),
197
192
  platformVersion: mockOptions.projectConfig.platformVersion,
198
193
  accountId: mockOptions.targetProjectAccountId,
199
194
  }, { projectNodesAtLastUpload: {} });
@@ -202,18 +197,18 @@ describe('LocalDevProcess', () => {
202
197
  });
203
198
  describe('uploadProject()', () => {
204
199
  it('should not upload if project config is invalid', async () => {
205
- config_1.getProjectConfig.mockResolvedValue({
200
+ getProjectConfig.mockResolvedValue({
206
201
  projectConfig: null,
207
202
  });
208
203
  await process.uploadProject();
209
204
  expect(mockLocalDevLogger.projectConfigMismatch).toHaveBeenCalled();
210
- expect(upload_1.handleProjectUpload).not.toHaveBeenCalled();
205
+ expect(handleProjectUpload).not.toHaveBeenCalled();
211
206
  });
212
207
  it('should handle upload error', async () => {
213
- config_1.getProjectConfig.mockResolvedValue({
208
+ getProjectConfig.mockResolvedValue({
214
209
  projectConfig: mockOptions.projectConfig,
215
210
  });
216
- upload_1.handleProjectUpload.mockResolvedValue({
211
+ handleProjectUpload.mockResolvedValue({
217
212
  uploadError: new Error('Upload failed'),
218
213
  });
219
214
  const success = await process.uploadProject();
@@ -222,10 +217,10 @@ describe('LocalDevProcess', () => {
222
217
  });
223
218
  it('should handle successful upload', async () => {
224
219
  await process.handleConfigFileChange();
225
- config_1.getProjectConfig.mockResolvedValue({
220
+ getProjectConfig.mockResolvedValue({
226
221
  projectConfig: mockOptions.projectConfig,
227
222
  });
228
- upload_1.handleProjectUpload.mockResolvedValue({
223
+ handleProjectUpload.mockResolvedValue({
229
224
  uploadError: null,
230
225
  });
231
226
  const success = await process.uploadProject();
@@ -238,19 +233,19 @@ describe('LocalDevProcess', () => {
238
233
  const initialProjectNodes = { existingNode: { uid: 'existingNode' } };
239
234
  // @ts-expect-error accessing private property for testing
240
235
  process.state._projectNodesAtLastUpload = initialProjectNodes;
241
- config_1.getProjectConfig.mockResolvedValue({
236
+ getProjectConfig.mockResolvedValue({
242
237
  projectConfig: mockOptions.projectConfig,
243
238
  });
244
- upload_1.handleProjectUpload.mockResolvedValue({
239
+ handleProjectUpload.mockResolvedValue({
245
240
  uploadError: null,
246
241
  });
247
- project_parsing_lib_1.translateForLocalDev.mockResolvedValue({
242
+ translateForLocalDev.mockResolvedValue({
248
243
  intermediateNodesIndexedByUid: mockNodes,
249
244
  });
250
245
  const success = await process.uploadProject();
251
246
  // Verify translateForLocalDev was called without projectNodesAtLastUpload option
252
- expect(project_parsing_lib_1.translateForLocalDev).toHaveBeenCalledWith({
253
- projectSourceDir: path_1.default.join(mockOptions.projectDir, mockOptions.projectConfig.srcDir),
247
+ expect(translateForLocalDev).toHaveBeenCalledWith({
248
+ projectSourceDir: path.join(mockOptions.projectDir, mockOptions.projectConfig.srcDir),
254
249
  platformVersion: mockOptions.projectConfig.platformVersion,
255
250
  accountId: mockOptions.targetProjectAccountId,
256
251
  }, { projectNodesAtLastUpload: undefined });
@@ -281,14 +276,14 @@ describe('LocalDevProcess', () => {
281
276
  });
282
277
  describe('handleConfigFileChange()', () => {
283
278
  beforeEach(() => {
284
- project_parsing_lib_1.translateForLocalDev.mockResolvedValue({
279
+ translateForLocalDev.mockResolvedValue({
285
280
  intermediateNodesIndexedByUid: {},
286
281
  });
287
282
  });
288
283
  it('should update project nodes and show upload warning', async () => {
289
284
  await process.handleConfigFileChange();
290
- expect(project_parsing_lib_1.translateForLocalDev).toHaveBeenCalledWith({
291
- projectSourceDir: path_1.default.join(mockOptions.projectDir, mockOptions.projectConfig.srcDir),
285
+ expect(translateForLocalDev).toHaveBeenCalledWith({
286
+ projectSourceDir: path.join(mockOptions.projectDir, mockOptions.projectConfig.srcDir),
292
287
  platformVersion: mockOptions.projectConfig.platformVersion,
293
288
  accountId: mockOptions.targetProjectAccountId,
294
289
  }, { projectNodesAtLastUpload: {} });
@@ -297,7 +292,7 @@ describe('LocalDevProcess', () => {
297
292
  });
298
293
  describe('addStateListener()', () => {
299
294
  it('should add state listener', () => {
300
- const listener = vitest_1.vi.fn();
295
+ const listener = vi.fn();
301
296
  const key = 'projectNodes';
302
297
  process.addStateListener(key, listener);
303
298
  // @ts-expect-error
@@ -305,7 +300,7 @@ describe('LocalDevProcess', () => {
305
300
  expect(listener).toHaveBeenCalled();
306
301
  });
307
302
  it('should call listener immediately when callOnInit is true', () => {
308
- const listener = vitest_1.vi.fn();
303
+ const listener = vi.fn();
309
304
  const key = 'projectNodes';
310
305
  process.addStateListener(key, listener, true);
311
306
  expect(listener).toHaveBeenCalledWith(process.projectNodes);
@@ -1,14 +1,9 @@
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 ws_1 = require("ws");
7
- const portManager_1 = require("@hubspot/local-dev-lib/portManager");
8
- const logger_1 = require("@hubspot/local-dev-lib/logger");
9
- const constants_1 = require("../../constants");
10
- const LocalDevWebsocketServer_1 = __importDefault(require("../localDev/LocalDevWebsocketServer"));
11
- const en_1 = require("../../../lang/en");
1
+ import { WebSocketServer } from 'ws';
2
+ import { isPortManagerServerRunning, requestPorts, } from '@hubspot/local-dev-lib/portManager';
3
+ import { logger } from '@hubspot/local-dev-lib/logger';
4
+ import { LOCAL_DEV_UI_MESSAGE_RECEIVE_TYPES, LOCAL_DEV_SERVER_MESSAGE_TYPES, } from '../../constants.js';
5
+ import LocalDevWebsocketServer from '../localDev/LocalDevWebsocketServer.js';
6
+ import { lib } from '../../../lang/en.js';
12
7
  vi.mock('ws');
13
8
  vi.mock('@hubspot/local-dev-lib/portManager');
14
9
  vi.mock('@hubspot/local-dev-lib/logger');
@@ -38,28 +33,28 @@ describe('LocalDevWebsocketServer', () => {
38
33
  sendDevServerMessage: vi.fn(),
39
34
  };
40
35
  // Mock WebSocketServer constructor
41
- ws_1.WebSocketServer.mockImplementation(() => mockWebSocketServer);
36
+ WebSocketServer.mockImplementation(() => mockWebSocketServer);
42
37
  // Create server instance
43
- server = new LocalDevWebsocketServer_1.default(mockLocalDevProcess, true);
38
+ server = new LocalDevWebsocketServer(mockLocalDevProcess, true);
44
39
  });
45
40
  describe('start()', () => {
46
41
  it('should throw error if port manager is not running', async () => {
47
- portManager_1.isPortManagerServerRunning.mockResolvedValue(false);
42
+ isPortManagerServerRunning.mockResolvedValue(false);
48
43
  await expect(server.start()).rejects.toThrow();
49
44
  });
50
45
  it('should start websocket server successfully', async () => {
51
- portManager_1.isPortManagerServerRunning.mockResolvedValue(true);
52
- portManager_1.requestPorts.mockResolvedValue({
46
+ isPortManagerServerRunning.mockResolvedValue(true);
47
+ requestPorts.mockResolvedValue({
53
48
  'local-dev-ui-websocket-server': 1234,
54
49
  });
55
50
  await server.start();
56
- expect(ws_1.WebSocketServer).toHaveBeenCalledWith({ port: 1234 });
51
+ expect(WebSocketServer).toHaveBeenCalledWith({ port: 1234 });
57
52
  expect(mockWebSocketServer.on).toHaveBeenCalledWith('connection', expect.any(Function));
58
- expect(logger_1.logger.log).toHaveBeenCalled();
53
+ expect(logger.log).toHaveBeenCalled();
59
54
  });
60
55
  it('should accept connection from valid origin', async () => {
61
- portManager_1.isPortManagerServerRunning.mockResolvedValue(true);
62
- portManager_1.requestPorts.mockResolvedValue({
56
+ isPortManagerServerRunning.mockResolvedValue(true);
57
+ requestPorts.mockResolvedValue({
63
58
  'local-dev-ui-websocket-server': 1234,
64
59
  });
65
60
  await server.start();
@@ -74,8 +69,8 @@ describe('LocalDevWebsocketServer', () => {
74
69
  expect(mockWebSocket.close).not.toHaveBeenCalled();
75
70
  });
76
71
  it('should reject connection from invalid origin', async () => {
77
- portManager_1.isPortManagerServerRunning.mockResolvedValue(true);
78
- portManager_1.requestPorts.mockResolvedValue({
72
+ isPortManagerServerRunning.mockResolvedValue(true);
73
+ requestPorts.mockResolvedValue({
79
74
  'local-dev-ui-websocket-server': 1234,
80
75
  });
81
76
  await server.start();
@@ -85,13 +80,13 @@ describe('LocalDevWebsocketServer', () => {
85
80
  connectionCallback(mockWebSocket, {
86
81
  headers: { origin: 'https://malicious-site.com' },
87
82
  });
88
- expect(mockWebSocket.close).toHaveBeenCalledWith(1008, en_1.lib.LocalDevWebsocketServer.errors.originNotAllowed('https://malicious-site.com'));
83
+ expect(mockWebSocket.close).toHaveBeenCalledWith(1008, lib.LocalDevWebsocketServer.errors.originNotAllowed('https://malicious-site.com'));
89
84
  expect(mockWebSocket.on).not.toHaveBeenCalled();
90
85
  expect(mockLocalDevProcess.addStateListener).not.toHaveBeenCalled();
91
86
  });
92
87
  it('should reject connection with no origin header', async () => {
93
- portManager_1.isPortManagerServerRunning.mockResolvedValue(true);
94
- portManager_1.requestPorts.mockResolvedValue({
88
+ isPortManagerServerRunning.mockResolvedValue(true);
89
+ requestPorts.mockResolvedValue({
95
90
  'local-dev-ui-websocket-server': 1234,
96
91
  });
97
92
  await server.start();
@@ -101,13 +96,13 @@ describe('LocalDevWebsocketServer', () => {
101
96
  connectionCallback(mockWebSocket, {
102
97
  headers: {},
103
98
  });
104
- expect(mockWebSocket.close).toHaveBeenCalledWith(1008, en_1.lib.LocalDevWebsocketServer.errors.originNotAllowed());
99
+ expect(mockWebSocket.close).toHaveBeenCalledWith(1008, lib.LocalDevWebsocketServer.errors.originNotAllowed());
105
100
  expect(mockWebSocket.on).not.toHaveBeenCalled();
106
101
  expect(mockLocalDevProcess.addStateListener).not.toHaveBeenCalled();
107
102
  });
108
103
  it('should send WEBSOCKET_SERVER_CONNECTED message when valid connection is established', async () => {
109
- portManager_1.isPortManagerServerRunning.mockResolvedValue(true);
110
- portManager_1.requestPorts.mockResolvedValue({
104
+ isPortManagerServerRunning.mockResolvedValue(true);
105
+ requestPorts.mockResolvedValue({
111
106
  'local-dev-ui-websocket-server': 1234,
112
107
  });
113
108
  await server.start();
@@ -117,13 +112,13 @@ describe('LocalDevWebsocketServer', () => {
117
112
  connectionCallback(mockWebSocket, {
118
113
  headers: { origin: 'https://app.hubspot.com' },
119
114
  });
120
- expect(mockLocalDevProcess.sendDevServerMessage).toHaveBeenCalledWith(constants_1.LOCAL_DEV_SERVER_MESSAGE_TYPES.WEBSOCKET_SERVER_CONNECTED);
115
+ expect(mockLocalDevProcess.sendDevServerMessage).toHaveBeenCalledWith(LOCAL_DEV_SERVER_MESSAGE_TYPES.WEBSOCKET_SERVER_CONNECTED);
121
116
  });
122
117
  });
123
118
  describe('message handling', () => {
124
119
  beforeEach(async () => {
125
- portManager_1.isPortManagerServerRunning.mockResolvedValue(true);
126
- portManager_1.requestPorts.mockResolvedValue({
120
+ isPortManagerServerRunning.mockResolvedValue(true);
121
+ requestPorts.mockResolvedValue({
127
122
  'local-dev-ui-websocket-server': 1234,
128
123
  });
129
124
  await server.start();
@@ -135,7 +130,7 @@ describe('LocalDevWebsocketServer', () => {
135
130
  it('should handle UPLOAD message type', () => {
136
131
  const messageCallback = mockWebSocket.on.mock.calls[0][1];
137
132
  const message = {
138
- type: constants_1.LOCAL_DEV_UI_MESSAGE_RECEIVE_TYPES.UPLOAD,
133
+ type: LOCAL_DEV_UI_MESSAGE_RECEIVE_TYPES.UPLOAD,
139
134
  };
140
135
  messageCallback(JSON.stringify(message));
141
136
  expect(mockLocalDevProcess.uploadProject).toHaveBeenCalled();
@@ -144,7 +139,7 @@ describe('LocalDevWebsocketServer', () => {
144
139
  const messageCallback = mockWebSocket.on.mock.calls[0][1];
145
140
  const message = {};
146
141
  messageCallback(JSON.stringify(message));
147
- expect(logger_1.logger.error).toHaveBeenCalled();
142
+ expect(logger.error).toHaveBeenCalled();
148
143
  });
149
144
  it('should log error for unknown message type', () => {
150
145
  const messageCallback = mockWebSocket.on.mock.calls[0][1];
@@ -152,19 +147,19 @@ describe('LocalDevWebsocketServer', () => {
152
147
  type: 'UNKNOWN_TYPE',
153
148
  };
154
149
  messageCallback(JSON.stringify(message));
155
- expect(logger_1.logger.error).toHaveBeenCalled();
150
+ expect(logger.error).toHaveBeenCalled();
156
151
  });
157
152
  it('should log error for invalid JSON', () => {
158
153
  const messageCallback = mockWebSocket.on.mock.calls[0][1];
159
154
  const invalidJson = 'invalid json';
160
155
  messageCallback(invalidJson);
161
- expect(logger_1.logger.error).toHaveBeenCalled();
156
+ expect(logger.error).toHaveBeenCalled();
162
157
  });
163
158
  });
164
159
  describe('shutdown()', () => {
165
160
  it('should close the websocket server', async () => {
166
- portManager_1.isPortManagerServerRunning.mockResolvedValue(true);
167
- portManager_1.requestPorts.mockResolvedValue({
161
+ isPortManagerServerRunning.mockResolvedValue(true);
162
+ requestPorts.mockResolvedValue({
168
163
  'local-dev-ui-websocket-server': 1234,
169
164
  });
170
165
  await server.start();
@@ -1,9 +1,7 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const ProjectLogsManager_1 = require("../ProjectLogsManager");
4
- const config_1 = require("../config");
5
- const ensureProjectExists_1 = require("../ensureProjectExists");
6
- const projects_1 = require("@hubspot/local-dev-lib/api/projects");
1
+ import { ProjectLogsManager } from '../ProjectLogsManager.js';
2
+ import { getProjectConfig } from '../config.js';
3
+ import { ensureProjectExists } from '../ensureProjectExists.js';
4
+ import { fetchProjectComponentsMetadata } from '@hubspot/local-dev-lib/api/projects';
7
5
  const SUBCOMPONENT_TYPES = {
8
6
  APP_ID: 'APP_ID',
9
7
  PACKAGE_LOCK_FILE: 'PACKAGE_LOCK_FILE',
@@ -57,10 +55,10 @@ describe('lib/projects/ProjectLogsManager', () => {
57
55
  },
58
56
  ];
59
57
  beforeEach(() => {
60
- ProjectLogsManager_1.ProjectLogsManager.reset();
61
- config_1.getProjectConfig.mockResolvedValue(projectConfig);
62
- ensureProjectExists_1.ensureProjectExists.mockResolvedValue(projectDetails);
63
- projects_1.fetchProjectComponentsMetadata.mockResolvedValue({
58
+ ProjectLogsManager.reset();
59
+ getProjectConfig.mockResolvedValue(projectConfig);
60
+ ensureProjectExists.mockResolvedValue(projectDetails);
61
+ fetchProjectComponentsMetadata.mockResolvedValue({
64
62
  data: {
65
63
  topLevelComponentMetadata: [
66
64
  {
@@ -85,59 +83,59 @@ describe('lib/projects/ProjectLogsManager', () => {
85
83
  });
86
84
  describe('init', () => {
87
85
  it('should load the project config', async () => {
88
- await ProjectLogsManager_1.ProjectLogsManager.init(accountId);
89
- expect(config_1.getProjectConfig).toHaveBeenCalledTimes(1);
86
+ await ProjectLogsManager.init(accountId);
87
+ expect(getProjectConfig).toHaveBeenCalledTimes(1);
90
88
  });
91
89
  it('should throw an error if there is a problem with the config', async () => {
92
- config_1.getProjectConfig.mockResolvedValue({});
93
- await expect(async () => ProjectLogsManager_1.ProjectLogsManager.init(accountId)).rejects.toThrow('No project detected. Run this command again from a project directory.');
94
- expect(config_1.getProjectConfig).toHaveBeenCalledTimes(1);
90
+ getProjectConfig.mockResolvedValue({});
91
+ await expect(async () => ProjectLogsManager.init(accountId)).rejects.toThrow('No project detected. Run this command again from a project directory.');
92
+ expect(getProjectConfig).toHaveBeenCalledTimes(1);
95
93
  });
96
94
  it('should ensure the project exists', async () => {
97
- await ProjectLogsManager_1.ProjectLogsManager.init(accountId);
98
- expect(ensureProjectExists_1.ensureProjectExists).toHaveBeenCalledTimes(1);
99
- expect(ensureProjectExists_1.ensureProjectExists).toHaveBeenCalledWith(accountId, projectName, {
95
+ await ProjectLogsManager.init(accountId);
96
+ expect(ensureProjectExists).toHaveBeenCalledTimes(1);
97
+ expect(ensureProjectExists).toHaveBeenCalledWith(accountId, projectName, {
100
98
  allowCreate: false,
101
99
  });
102
100
  });
103
101
  it('should throw an error if there is data missing from the project details', async () => {
104
- ensureProjectExists_1.ensureProjectExists.mockResolvedValue({});
105
- await expect(async () => ProjectLogsManager_1.ProjectLogsManager.init(accountId)).rejects.toThrow(/There was an error fetching project details/);
102
+ ensureProjectExists.mockResolvedValue({});
103
+ await expect(async () => ProjectLogsManager.init(accountId)).rejects.toThrow(/There was an error fetching project details/);
106
104
  });
107
105
  it('should set all of the expected fields correctly', async () => {
108
- await ProjectLogsManager_1.ProjectLogsManager.init(accountId);
109
- expect(ProjectLogsManager_1.ProjectLogsManager.projectId).toEqual(projectId);
110
- expect(ProjectLogsManager_1.ProjectLogsManager.projectName).toEqual(projectName);
111
- expect(ProjectLogsManager_1.ProjectLogsManager.accountId).toEqual(accountId);
112
- expect(ProjectLogsManager_1.ProjectLogsManager.functions).toEqual(functions);
106
+ await ProjectLogsManager.init(accountId);
107
+ expect(ProjectLogsManager.projectId).toEqual(projectId);
108
+ expect(ProjectLogsManager.projectName).toEqual(projectName);
109
+ expect(ProjectLogsManager.accountId).toEqual(accountId);
110
+ expect(ProjectLogsManager.functions).toEqual(functions);
113
111
  });
114
112
  });
115
113
  describe('fetchFunctionDetails', () => {
116
114
  it('should throw an error if the projectId is null when the method is called', async () => {
117
- await expect(async () => ProjectLogsManager_1.ProjectLogsManager.fetchFunctionDetails()).rejects.toThrow('No project detected. Run this command again from a project directory.');
115
+ await expect(async () => ProjectLogsManager.fetchFunctionDetails()).rejects.toThrow('No project detected. Run this command again from a project directory.');
118
116
  });
119
117
  it('should fetch the component metadata', async () => {
120
- ProjectLogsManager_1.ProjectLogsManager.projectId = projectId;
121
- ProjectLogsManager_1.ProjectLogsManager.accountId = accountId;
122
- await ProjectLogsManager_1.ProjectLogsManager.fetchFunctionDetails();
123
- expect(projects_1.fetchProjectComponentsMetadata).toHaveBeenCalledTimes(1);
124
- expect(projects_1.fetchProjectComponentsMetadata).toHaveBeenCalledWith(accountId, projectId);
118
+ ProjectLogsManager.projectId = projectId;
119
+ ProjectLogsManager.accountId = accountId;
120
+ await ProjectLogsManager.fetchFunctionDetails();
121
+ expect(fetchProjectComponentsMetadata).toHaveBeenCalledTimes(1);
122
+ expect(fetchProjectComponentsMetadata).toHaveBeenCalledWith(accountId, projectId);
125
123
  });
126
124
  it('should set the functions correctly', async () => {
127
- ProjectLogsManager_1.ProjectLogsManager.projectId = projectId;
128
- ProjectLogsManager_1.ProjectLogsManager.accountId = accountId;
129
- await ProjectLogsManager_1.ProjectLogsManager.fetchFunctionDetails();
130
- expect(ProjectLogsManager_1.ProjectLogsManager.functions).toEqual(functions);
125
+ ProjectLogsManager.projectId = projectId;
126
+ ProjectLogsManager.accountId = accountId;
127
+ await ProjectLogsManager.fetchFunctionDetails();
128
+ expect(ProjectLogsManager.functions).toEqual(functions);
131
129
  });
132
130
  });
133
131
  describe('getFunctionNames', () => {
134
132
  it('should return an empty array if functions is empty', async () => {
135
- ProjectLogsManager_1.ProjectLogsManager.functions = [];
136
- expect(ProjectLogsManager_1.ProjectLogsManager.getFunctionNames()).toEqual([]);
133
+ ProjectLogsManager.functions = [];
134
+ expect(ProjectLogsManager.getFunctionNames()).toEqual([]);
137
135
  });
138
136
  it('should return an array of the componentNames', async () => {
139
- ProjectLogsManager_1.ProjectLogsManager.functions = functions;
140
- expect(ProjectLogsManager_1.ProjectLogsManager.getFunctionNames()).toEqual([
137
+ ProjectLogsManager.functions = functions;
138
+ expect(ProjectLogsManager.getFunctionNames()).toEqual([
141
139
  'function1',
142
140
  'function2',
143
141
  ]);
@@ -145,13 +143,13 @@ describe('lib/projects/ProjectLogsManager', () => {
145
143
  });
146
144
  describe('setFunction', () => {
147
145
  it('should throw an error when functions is empty', async () => {
148
- ProjectLogsManager_1.ProjectLogsManager.functions = [];
149
- expect(() => ProjectLogsManager_1.ProjectLogsManager.setFunction('foo')).toThrow(`There aren't any functions in this project`);
146
+ ProjectLogsManager.functions = [];
147
+ expect(() => ProjectLogsManager.setFunction('foo')).toThrow(`There aren't any functions in this project`);
150
148
  });
151
149
  it('should throw an error when the provided function is invalid', async () => {
152
- ProjectLogsManager_1.ProjectLogsManager.functions = functions;
150
+ ProjectLogsManager.functions = functions;
153
151
  const badName = 'foo';
154
- expect(() => ProjectLogsManager_1.ProjectLogsManager.setFunction(badName)).toThrow(`No function with name "${badName}"`);
152
+ expect(() => ProjectLogsManager.setFunction(badName)).toThrow(`No function with name "${badName}"`);
155
153
  });
156
154
  it('should set the data correctly for public functions', async () => {
157
155
  const functionToChoose = {
@@ -165,27 +163,27 @@ describe('lib/projects/ProjectLogsManager', () => {
165
163
  endpoint: { path: 'yooooooo', methods: ['GET'] },
166
164
  },
167
165
  };
168
- ProjectLogsManager_1.ProjectLogsManager.functions = [functionToChoose];
169
- ProjectLogsManager_1.ProjectLogsManager.setFunction('function1');
170
- expect(ProjectLogsManager_1.ProjectLogsManager.functionName).toEqual('function1');
171
- expect(ProjectLogsManager_1.ProjectLogsManager.endpointName).toEqual('yooooooo');
172
- expect(ProjectLogsManager_1.ProjectLogsManager.selectedFunction).toEqual(functionToChoose);
173
- expect(ProjectLogsManager_1.ProjectLogsManager.isPublicFunction).toEqual(true);
166
+ ProjectLogsManager.functions = [functionToChoose];
167
+ ProjectLogsManager.setFunction('function1');
168
+ expect(ProjectLogsManager.functionName).toEqual('function1');
169
+ expect(ProjectLogsManager.endpointName).toEqual('yooooooo');
170
+ expect(ProjectLogsManager.selectedFunction).toEqual(functionToChoose);
171
+ expect(ProjectLogsManager.isPublicFunction).toEqual(true);
174
172
  });
175
173
  it('should set the data correctly for public functions', async () => {
176
- ProjectLogsManager_1.ProjectLogsManager.functions = functions;
177
- ProjectLogsManager_1.ProjectLogsManager.setFunction('function1');
178
- expect(ProjectLogsManager_1.ProjectLogsManager.selectedFunction).toEqual(function1);
179
- expect(ProjectLogsManager_1.ProjectLogsManager.functionName).toEqual('function1');
180
- expect(ProjectLogsManager_1.ProjectLogsManager.isPublicFunction).toEqual(false);
174
+ ProjectLogsManager.functions = functions;
175
+ ProjectLogsManager.setFunction('function1');
176
+ expect(ProjectLogsManager.selectedFunction).toEqual(function1);
177
+ expect(ProjectLogsManager.functionName).toEqual('function1');
178
+ expect(ProjectLogsManager.isPublicFunction).toEqual(false);
181
179
  });
182
180
  });
183
181
  describe('reset', () => {
184
182
  it('should reset all the values', async () => {
185
- ProjectLogsManager_1.ProjectLogsManager.projectName = 'value';
186
- expect(ProjectLogsManager_1.ProjectLogsManager.projectName).toBeDefined();
187
- ProjectLogsManager_1.ProjectLogsManager.reset();
188
- expect(ProjectLogsManager_1.ProjectLogsManager.projectName).toBeUndefined();
183
+ ProjectLogsManager.projectName = 'value';
184
+ expect(ProjectLogsManager.projectName).toBeDefined();
185
+ ProjectLogsManager.reset();
186
+ expect(ProjectLogsManager.projectName).toBeUndefined();
189
187
  });
190
188
  });
191
189
  });
@@ -1,25 +1,23 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const buildAndDeploy_1 = require("../buildAndDeploy");
1
+ import { useV3Api } from '../buildAndDeploy.js';
4
2
  describe('buildAndDeploy', () => {
5
3
  describe('useV3Api', () => {
6
4
  it('returns true if platform version is UNSTABLE', () => {
7
- expect((0, buildAndDeploy_1.useV3Api)('UNSTABLE')).toBe(true);
5
+ expect(useV3Api('UNSTABLE')).toBe(true);
8
6
  });
9
7
  it('returns true if platform version is equal to the minimum', () => {
10
- expect((0, buildAndDeploy_1.useV3Api)('2025.2')).toBe(true);
8
+ expect(useV3Api('2025.2')).toBe(true);
11
9
  });
12
10
  it('returns true if platform version is greater than the minimum', () => {
13
- expect((0, buildAndDeploy_1.useV3Api)('2026.2')).toBe(true);
11
+ expect(useV3Api('2026.2')).toBe(true);
14
12
  });
15
13
  it('returns false if platform version is less than the minimum', () => {
16
- expect((0, buildAndDeploy_1.useV3Api)('2025.0')).toBe(false);
14
+ expect(useV3Api('2025.0')).toBe(false);
17
15
  });
18
16
  it('returns false if platform version is invalid', () => {
19
- expect((0, buildAndDeploy_1.useV3Api)(null)).toBe(false);
17
+ expect(useV3Api(null)).toBe(false);
20
18
  });
21
19
  it('returns false for an invalid platform version', () => {
22
- expect((0, buildAndDeploy_1.useV3Api)('notplaformversion')).toBe(false);
20
+ expect(useV3Api('notplaformversion')).toBe(false);
23
21
  });
24
22
  });
25
23
  });