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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (565) hide show
  1. package/api/__tests__/migrate.test.js +27 -29
  2. package/api/migrate.js +14 -22
  3. package/bin/cli.js +92 -97
  4. package/bin/hs +2 -2
  5. package/bin/hscms +2 -2
  6. package/bin/silenceErrors.js +1 -2
  7. package/commands/__tests__/account.test.js +29 -34
  8. package/commands/__tests__/auth.test.js +11 -16
  9. package/commands/__tests__/cms.test.js +15 -20
  10. package/commands/__tests__/config.test.js +14 -19
  11. package/commands/__tests__/create.test.js +10 -15
  12. package/commands/__tests__/customObject.test.js +14 -19
  13. package/commands/__tests__/doctor.test.js +43 -48
  14. package/commands/__tests__/feedback.test.js +7 -45
  15. package/commands/__tests__/fetch.test.js +29 -28
  16. package/commands/__tests__/filemanager.test.js +14 -19
  17. package/commands/__tests__/function.test.js +16 -21
  18. package/commands/__tests__/getStarted.test.js +45 -50
  19. package/commands/__tests__/hubdb.test.js +17 -22
  20. package/commands/__tests__/init.test.js +12 -17
  21. package/commands/__tests__/lint.test.js +13 -18
  22. package/commands/__tests__/list.test.js +18 -23
  23. package/commands/__tests__/logs.test.js +28 -27
  24. package/commands/__tests__/mcp.test.js +14 -19
  25. package/commands/__tests__/mv.test.js +14 -52
  26. package/commands/__tests__/open.test.js +13 -51
  27. package/commands/__tests__/project.test.js +44 -49
  28. package/commands/__tests__/remove.test.js +13 -51
  29. package/commands/__tests__/sandbox.test.js +14 -19
  30. package/commands/__tests__/secret.test.js +16 -21
  31. package/commands/__tests__/testAccount.test.js +16 -21
  32. package/commands/__tests__/theme.test.js +15 -20
  33. package/commands/account/__tests__/auth.test.js +11 -16
  34. package/commands/account/__tests__/clean.test.js +12 -17
  35. package/commands/account/__tests__/createOverride.test.js +10 -15
  36. package/commands/account/__tests__/info.test.js +11 -16
  37. package/commands/account/__tests__/list.test.js +11 -16
  38. package/commands/account/__tests__/remove.test.js +13 -18
  39. package/commands/account/__tests__/removeOverride.js +8 -13
  40. package/commands/account/__tests__/rename.test.js +15 -20
  41. package/commands/account/__tests__/use.test.js +10 -15
  42. package/commands/account/auth.d.ts +1 -1
  43. package/commands/account/auth.js +65 -67
  44. package/commands/account/clean.d.ts +1 -1
  45. package/commands/account/clean.js +55 -60
  46. package/commands/account/createOverride.d.ts +1 -1
  47. package/commands/account/createOverride.js +52 -57
  48. package/commands/account/info.d.ts +1 -1
  49. package/commands/account/info.js +33 -35
  50. package/commands/account/list.d.ts +1 -1
  51. package/commands/account/list.js +43 -45
  52. package/commands/account/remove.d.ts +1 -1
  53. package/commands/account/remove.js +37 -42
  54. package/commands/account/removeOverride.d.ts +1 -1
  55. package/commands/account/removeOverride.js +38 -43
  56. package/commands/account/rename.d.ts +1 -1
  57. package/commands/account/rename.js +18 -20
  58. package/commands/account/use.d.ts +1 -1
  59. package/commands/account/use.js +29 -31
  60. package/commands/account.d.ts +1 -1
  61. package/commands/account.js +23 -28
  62. package/commands/app/__tests__/migrate.test.js +29 -34
  63. package/commands/app/migrate.d.ts +2 -2
  64. package/commands/app/migrate.js +40 -43
  65. package/commands/app/secret/__tests__/add.test.js +6 -11
  66. package/commands/app/secret/__tests__/delete.test.js +6 -11
  67. package/commands/app/secret/__tests__/list.test.js +6 -11
  68. package/commands/app/secret/__tests__/update.test.js +6 -11
  69. package/commands/app/secret/add.d.ts +1 -1
  70. package/commands/app/secret/add.js +28 -30
  71. package/commands/app/secret/delete.d.ts +1 -1
  72. package/commands/app/secret/delete.js +34 -36
  73. package/commands/app/secret/list.d.ts +1 -1
  74. package/commands/app/secret/list.js +25 -27
  75. package/commands/app/secret/update.d.ts +1 -1
  76. package/commands/app/secret/update.js +32 -34
  77. package/commands/app/secret.d.ts +1 -1
  78. package/commands/app/secret.js +12 -17
  79. package/commands/app.d.ts +1 -1
  80. package/commands/app.js +6 -16
  81. package/commands/auth.d.ts +1 -1
  82. package/commands/auth.js +70 -72
  83. package/commands/cms/convertFields.d.ts +1 -1
  84. package/commands/cms/convertFields.js +34 -39
  85. package/commands/cms/getReactModule.d.ts +1 -1
  86. package/commands/cms/getReactModule.js +32 -37
  87. package/commands/cms/lighthouseScore.d.ts +1 -1
  88. package/commands/cms/lighthouseScore.js +67 -72
  89. package/commands/cms.d.ts +1 -1
  90. package/commands/cms.js +11 -16
  91. package/commands/completion.d.ts +1 -1
  92. package/commands/completion.js +10 -15
  93. package/commands/config/migrate.d.ts +1 -1
  94. package/commands/config/migrate.js +27 -32
  95. package/commands/config/set.d.ts +1 -1
  96. package/commands/config/set.js +23 -25
  97. package/commands/config.d.ts +1 -1
  98. package/commands/config.js +8 -13
  99. package/commands/create/api-sample.d.ts +1 -1
  100. package/commands/create/api-sample.js +28 -33
  101. package/commands/create/app.d.ts +1 -1
  102. package/commands/create/app.js +3 -5
  103. package/commands/create/function.d.ts +1 -1
  104. package/commands/create/function.js +9 -11
  105. package/commands/create/index.d.ts +1 -1
  106. package/commands/create/index.js +19 -24
  107. package/commands/create/module.d.ts +1 -1
  108. package/commands/create/module.js +12 -14
  109. package/commands/create/react-app.d.ts +1 -1
  110. package/commands/create/react-app.js +3 -5
  111. package/commands/create/template.d.ts +1 -1
  112. package/commands/create/template.js +12 -14
  113. package/commands/create/vue-app.d.ts +1 -1
  114. package/commands/create/vue-app.js +3 -5
  115. package/commands/create/webpack-serverless.d.ts +1 -1
  116. package/commands/create/webpack-serverless.js +3 -5
  117. package/commands/create/website-theme.d.ts +1 -1
  118. package/commands/create/website-theme.js +5 -7
  119. package/commands/create.d.ts +2 -2
  120. package/commands/create.js +30 -35
  121. package/commands/customObject/__tests__/create.test.js +13 -18
  122. package/commands/customObject/__tests__/schema.test.js +18 -23
  123. package/commands/customObject/create.d.ts +1 -1
  124. package/commands/customObject/create.js +28 -30
  125. package/commands/customObject/schema/__tests__/create.test.js +13 -18
  126. package/commands/customObject/schema/__tests__/delete.test.js +13 -18
  127. package/commands/customObject/schema/__tests__/fetch-all.test.js +13 -18
  128. package/commands/customObject/schema/__tests__/fetch.test.js +13 -18
  129. package/commands/customObject/schema/__tests__/list.test.js +13 -18
  130. package/commands/customObject/schema/__tests__/update.test.js +13 -18
  131. package/commands/customObject/schema/create.d.ts +1 -1
  132. package/commands/customObject/schema/create.js +28 -30
  133. package/commands/customObject/schema/delete.d.ts +1 -1
  134. package/commands/customObject/schema/delete.js +24 -26
  135. package/commands/customObject/schema/fetch-all.d.ts +1 -1
  136. package/commands/customObject/schema/fetch-all.js +22 -24
  137. package/commands/customObject/schema/fetch.d.ts +1 -1
  138. package/commands/customObject/schema/fetch.js +24 -26
  139. package/commands/customObject/schema/list.d.ts +1 -1
  140. package/commands/customObject/schema/list.js +13 -15
  141. package/commands/customObject/schema/update.d.ts +1 -1
  142. package/commands/customObject/schema/update.js +32 -34
  143. package/commands/customObject/schema.d.ts +1 -1
  144. package/commands/customObject/schema.js +17 -22
  145. package/commands/customObject.d.ts +1 -1
  146. package/commands/customObject.js +13 -18
  147. package/commands/doctor.d.ts +1 -1
  148. package/commands/doctor.js +28 -33
  149. package/commands/feedback.d.ts +1 -1
  150. package/commands/feedback.js +19 -24
  151. package/commands/fetch.d.ts +1 -1
  152. package/commands/fetch.js +28 -30
  153. package/commands/filemanager/__tests__/fetch.test.js +17 -22
  154. package/commands/filemanager/__tests__/upload.test.js +15 -20
  155. package/commands/filemanager/fetch.d.ts +1 -1
  156. package/commands/filemanager/fetch.js +23 -25
  157. package/commands/filemanager/upload.d.ts +1 -1
  158. package/commands/filemanager/upload.js +39 -44
  159. package/commands/filemanager.d.ts +1 -1
  160. package/commands/filemanager.js +8 -13
  161. package/commands/function/deploy.d.ts +1 -1
  162. package/commands/function/deploy.js +35 -40
  163. package/commands/function/list.d.ts +1 -1
  164. package/commands/function/list.js +24 -29
  165. package/commands/function/server.d.ts +1 -1
  166. package/commands/function/server.js +15 -17
  167. package/commands/function.d.ts +1 -1
  168. package/commands/function.js +12 -18
  169. package/commands/getStarted.d.ts +1 -1
  170. package/commands/getStarted.js +119 -125
  171. package/commands/hubdb/__tests__/clear.test.js +13 -18
  172. package/commands/hubdb/__tests__/create.test.js +13 -18
  173. package/commands/hubdb/__tests__/delete.test.js +13 -18
  174. package/commands/hubdb/__tests__/fetch.test.js +13 -18
  175. package/commands/hubdb/__tests__/list.test.js +23 -28
  176. package/commands/hubdb/clear.d.ts +1 -1
  177. package/commands/hubdb/clear.js +20 -22
  178. package/commands/hubdb/create.d.ts +1 -1
  179. package/commands/hubdb/create.js +30 -35
  180. package/commands/hubdb/delete.d.ts +1 -1
  181. package/commands/hubdb/delete.js +24 -26
  182. package/commands/hubdb/fetch.d.ts +1 -1
  183. package/commands/hubdb/fetch.js +17 -19
  184. package/commands/hubdb/list.d.ts +1 -1
  185. package/commands/hubdb/list.js +33 -35
  186. package/commands/hubdb.d.ts +1 -1
  187. package/commands/hubdb.js +18 -24
  188. package/commands/init.d.ts +1 -1
  189. package/commands/init.js +83 -88
  190. package/commands/lint.d.ts +1 -1
  191. package/commands/lint.js +24 -26
  192. package/commands/list.d.ts +1 -1
  193. package/commands/list.js +32 -37
  194. package/commands/logs.d.ts +1 -1
  195. package/commands/logs.js +35 -37
  196. package/commands/mcp/__tests__/setup.test.js +7 -12
  197. package/commands/mcp/__tests__/start.test.js +7 -12
  198. package/commands/mcp/setup.d.ts +1 -1
  199. package/commands/mcp/setup.js +17 -19
  200. package/commands/mcp/start.d.ts +1 -1
  201. package/commands/mcp/start.js +29 -34
  202. package/commands/mcp.d.ts +1 -1
  203. package/commands/mcp.js +7 -12
  204. package/commands/module/marketplace-validate.d.ts +1 -1
  205. package/commands/module/marketplace-validate.js +21 -26
  206. package/commands/module.d.ts +1 -1
  207. package/commands/module.js +7 -13
  208. package/commands/mv.d.ts +1 -1
  209. package/commands/mv.js +20 -22
  210. package/commands/open.d.ts +1 -1
  211. package/commands/open.js +19 -21
  212. package/commands/project/__tests__/add.test.js +10 -15
  213. package/commands/project/__tests__/create.test.js +14 -19
  214. package/commands/project/__tests__/deploy.test.js +96 -134
  215. package/commands/project/__tests__/devUnifiedFlow.test.js +133 -139
  216. package/commands/project/__tests__/download.test.js +14 -19
  217. package/commands/project/__tests__/installDeps.test.js +32 -70
  218. package/commands/project/__tests__/listBuilds.test.js +14 -19
  219. package/commands/project/__tests__/logs.test.js +56 -94
  220. package/commands/project/__tests__/migrate.test.js +25 -30
  221. package/commands/project/__tests__/migrateApp.test.js +17 -22
  222. package/commands/project/__tests__/open.test.js +16 -21
  223. package/commands/project/__tests__/profile.test.js +14 -19
  224. package/commands/project/__tests__/upload.test.js +18 -23
  225. package/commands/project/__tests__/watch.test.js +14 -19
  226. package/commands/project/add.d.ts +1 -1
  227. package/commands/project/add.js +34 -36
  228. package/commands/project/cloneApp.d.ts +1 -1
  229. package/commands/project/cloneApp.js +67 -72
  230. package/commands/project/create.d.ts +2 -2
  231. package/commands/project/create.js +63 -68
  232. package/commands/project/deploy.d.ts +1 -1
  233. package/commands/project/deploy.js +67 -69
  234. package/commands/project/dev/deprecatedFlow.d.ts +2 -2
  235. package/commands/project/dev/deprecatedFlow.js +52 -58
  236. package/commands/project/dev/index.d.ts +1 -1
  237. package/commands/project/dev/index.js +44 -47
  238. package/commands/project/dev/unifiedFlow.d.ts +3 -3
  239. package/commands/project/dev/unifiedFlow.js +62 -68
  240. package/commands/project/download.d.ts +1 -1
  241. package/commands/project/download.js +35 -40
  242. package/commands/project/installDeps.d.ts +1 -1
  243. package/commands/project/installDeps.js +29 -34
  244. package/commands/project/listBuilds.d.ts +1 -1
  245. package/commands/project/listBuilds.js +40 -45
  246. package/commands/project/logs.d.ts +1 -1
  247. package/commands/project/logs.js +52 -54
  248. package/commands/project/migrate.d.ts +1 -1
  249. package/commands/project/migrate.js +24 -26
  250. package/commands/project/migrateApp.d.ts +2 -2
  251. package/commands/project/migrateApp.js +18 -20
  252. package/commands/project/open.d.ts +1 -1
  253. package/commands/project/open.js +25 -30
  254. package/commands/project/profile/add.d.ts +1 -1
  255. package/commands/project/profile/add.js +68 -73
  256. package/commands/project/profile/delete.d.ts +1 -1
  257. package/commands/project/profile/delete.js +51 -56
  258. package/commands/project/profile.d.ts +1 -1
  259. package/commands/project/profile.js +9 -14
  260. package/commands/project/upload.d.ts +1 -1
  261. package/commands/project/upload.js +50 -55
  262. package/commands/project/validate.d.ts +1 -1
  263. package/commands/project/validate.js +35 -40
  264. package/commands/project/watch.d.ts +1 -1
  265. package/commands/project/watch.js +59 -61
  266. package/commands/project.d.ts +1 -1
  267. package/commands/project.js +38 -43
  268. package/commands/remove.d.ts +1 -1
  269. package/commands/remove.js +15 -17
  270. package/commands/sandbox/__tests__/create.test.js +15 -20
  271. package/commands/sandbox/__tests__/delete.test.js +15 -20
  272. package/commands/sandbox/create.d.ts +1 -1
  273. package/commands/sandbox/create.js +67 -69
  274. package/commands/sandbox/delete.d.ts +1 -1
  275. package/commands/sandbox/delete.js +94 -96
  276. package/commands/sandbox.d.ts +1 -1
  277. package/commands/sandbox.js +9 -14
  278. package/commands/secret/__tests__/addSecret.test.js +13 -18
  279. package/commands/secret/__tests__/deleteSecret.test.js +13 -18
  280. package/commands/secret/__tests__/listSecret.test.js +13 -18
  281. package/commands/secret/__tests__/updateSecret.test.js +13 -18
  282. package/commands/secret/addSecret.d.ts +1 -1
  283. package/commands/secret/addSecret.js +26 -28
  284. package/commands/secret/deleteSecret.d.ts +1 -1
  285. package/commands/secret/deleteSecret.js +27 -29
  286. package/commands/secret/listSecret.d.ts +1 -1
  287. package/commands/secret/listSecret.js +19 -21
  288. package/commands/secret/updateSecret.d.ts +1 -1
  289. package/commands/secret/updateSecret.js +25 -27
  290. package/commands/secret.d.ts +1 -1
  291. package/commands/secret.js +13 -18
  292. package/commands/testAccount/__tests__/create.test.js +17 -22
  293. package/commands/testAccount/__tests__/createConfig.test.js +6 -11
  294. package/commands/testAccount/__tests__/delete.test.js +15 -20
  295. package/commands/testAccount/create.d.ts +1 -1
  296. package/commands/testAccount/create.js +45 -53
  297. package/commands/testAccount/createConfig.d.ts +1 -1
  298. package/commands/testAccount/createConfig.js +36 -41
  299. package/commands/testAccount/delete.d.ts +1 -1
  300. package/commands/testAccount/delete.js +17 -19
  301. package/commands/testAccount.d.ts +1 -1
  302. package/commands/testAccount.js +10 -15
  303. package/commands/theme/__tests__/generate-selectors.test.js +7 -12
  304. package/commands/theme/__tests__/marketplace-validate.test.js +14 -19
  305. package/commands/theme/__tests__/preview.test.js +12 -17
  306. package/commands/theme/generate-selectors.d.ts +1 -1
  307. package/commands/theme/generate-selectors.js +23 -28
  308. package/commands/theme/marketplace-validate.d.ts +1 -1
  309. package/commands/theme/marketplace-validate.js +19 -24
  310. package/commands/theme/preview.d.ts +1 -1
  311. package/commands/theme/preview.js +60 -65
  312. package/commands/theme.d.ts +1 -1
  313. package/commands/theme.js +11 -16
  314. package/commands/upload.d.ts +1 -1
  315. package/commands/upload.js +77 -82
  316. package/commands/watch.d.ts +1 -1
  317. package/commands/watch.js +45 -51
  318. package/lang/en.d.ts +0 -22
  319. package/lang/en.js +371 -399
  320. package/lib/__tests__/accountTypes.test.js +20 -22
  321. package/lib/__tests__/buildAccount.test.js +28 -63
  322. package/lib/__tests__/commonOpts.test.js +20 -22
  323. package/lib/__tests__/dependencyManagement.test.js +46 -51
  324. package/lib/__tests__/developerTestAccounts.test.js +27 -62
  325. package/lib/__tests__/hasFeature.test.js +6 -8
  326. package/lib/__tests__/npm.test.js +15 -20
  327. package/lib/__tests__/oauth.test.js +23 -28
  328. package/lib/__tests__/parsing.test.js +18 -20
  329. package/lib/__tests__/polling.test.js +24 -26
  330. package/lib/__tests__/process.test.js +14 -19
  331. package/lib/__tests__/projectProfiles.test.js +34 -39
  332. package/lib/__tests__/sandboxSync.test.js +30 -35
  333. package/lib/__tests__/sandboxes.test.js +29 -31
  334. package/lib/__tests__/serverlessLogs.test.js +8 -13
  335. package/lib/__tests__/usageTracking.test.js +33 -34
  336. package/lib/__tests__/validation.test.js +18 -20
  337. package/lib/__tests__/yargsUtils.test.js +6 -41
  338. package/lib/accountTypes.js +24 -34
  339. package/lib/app/__tests__/migrate.test.js +94 -99
  340. package/lib/app/__tests__/migrate_legacy.test.js +29 -31
  341. package/lib/app/migrate.d.ts +3 -3
  342. package/lib/app/migrate.js +127 -145
  343. package/lib/app/migrate_legacy.d.ts +1 -1
  344. package/lib/app/migrate_legacy.js +72 -78
  345. package/lib/app/urls.js +5 -9
  346. package/lib/buildAccount.d.ts +1 -1
  347. package/lib/buildAccount.js +71 -80
  348. package/lib/commonOpts.d.ts +1 -1
  349. package/lib/commonOpts.js +42 -59
  350. package/lib/configMigrate.js +34 -38
  351. package/lib/configOptions.js +34 -40
  352. package/lib/constants.js +31 -34
  353. package/lib/customObject.js +2 -6
  354. package/lib/dependencyManagement.js +37 -45
  355. package/lib/developerTestAccounts.d.ts +1 -1
  356. package/lib/developerTestAccounts.js +34 -39
  357. package/lib/doctor/Diagnosis.d.ts +1 -1
  358. package/lib/doctor/Diagnosis.js +25 -29
  359. package/lib/doctor/DiagnosticInfoBuilder.d.ts +1 -1
  360. package/lib/doctor/DiagnosticInfoBuilder.js +30 -37
  361. package/lib/doctor/Doctor.d.ts +1 -1
  362. package/lib/doctor/Doctor.js +94 -101
  363. package/lib/doctor/__tests__/Diagnosis.test.js +9 -14
  364. package/lib/doctor/__tests__/DiagnosticInfoBuilder.test.js +29 -34
  365. package/lib/doctor/__tests__/Doctor.test.js +24 -26
  366. package/lib/enums/exitCodes.js +1 -4
  367. package/lib/errorHandlers/index.js +32 -41
  368. package/lib/errorHandlers/suppressError.d.ts +1 -1
  369. package/lib/errorHandlers/suppressError.js +28 -31
  370. package/lib/filesystem.js +8 -15
  371. package/lib/generateSelectors.js +18 -29
  372. package/lib/hasFeature.d.ts +1 -1
  373. package/lib/hasFeature.js +3 -6
  374. package/lib/interpolation.js +11 -18
  375. package/lib/lang.d.ts +1 -1
  376. package/lib/lang.js +22 -27
  377. package/lib/links.js +16 -24
  378. package/lib/marketplaceValidate.js +29 -39
  379. package/lib/mcp/setup.js +70 -82
  380. package/lib/middleware/__test__/configMiddleware.test.js +20 -55
  381. package/lib/middleware/__test__/gitMiddleware.test.js +7 -42
  382. package/lib/middleware/__test__/notificationsMiddleware.test.js +2 -4
  383. package/lib/middleware/__test__/requestMiddleware.test.js +6 -11
  384. package/lib/middleware/__test__/utils.test.js +9 -11
  385. package/lib/middleware/__test__/yargsChecksMiddleware.test.js +9 -44
  386. package/lib/middleware/autoUpdateMiddleware.js +33 -40
  387. package/lib/middleware/configMiddleware.js +36 -42
  388. package/lib/middleware/fireAlarmMiddleware.js +12 -18
  389. package/lib/middleware/gitMiddleware.js +5 -8
  390. package/lib/middleware/notificationsMiddleware.js +16 -23
  391. package/lib/middleware/requestMiddleware.js +4 -10
  392. package/lib/middleware/utils.js +1 -4
  393. package/lib/middleware/yargsChecksMiddleware.js +10 -13
  394. package/lib/npm.js +14 -23
  395. package/lib/oauth.js +29 -35
  396. package/lib/parsing.js +3 -6
  397. package/lib/polling.js +11 -15
  398. package/lib/process.js +11 -19
  399. package/lib/projectProfiles.d.ts +2 -2
  400. package/lib/projectProfiles.js +32 -42
  401. package/lib/projects/ProjectLogsManager.js +18 -21
  402. package/lib/projects/__tests__/AppDevModeInterface.test.js +140 -145
  403. package/lib/projects/__tests__/LocalDevProcess.test.js +68 -73
  404. package/lib/projects/__tests__/LocalDevWebsocketServer.test.js +32 -37
  405. package/lib/projects/__tests__/ProjectLogsManager.test.js +56 -58
  406. package/lib/projects/__tests__/buildAndDeploy.test.js +7 -9
  407. package/lib/projects/__tests__/components.test.js +9 -14
  408. package/lib/projects/__tests__/projects.test.js +35 -40
  409. package/lib/projects/__tests__/structure.test.js +43 -81
  410. package/lib/projects/add/__tests__/legacyAddComponent.test.js +26 -28
  411. package/lib/projects/add/__tests__/v3AddComponent.test.js +25 -30
  412. package/lib/projects/add/legacyAddComponent.d.ts +1 -1
  413. package/lib/projects/add/legacyAddComponent.js +24 -30
  414. package/lib/projects/add/v3AddComponent.d.ts +1 -1
  415. package/lib/projects/add/v3AddComponent.js +36 -42
  416. package/lib/projects/buildAndDeploy.d.ts +1 -1
  417. package/lib/projects/buildAndDeploy.js +88 -97
  418. package/lib/projects/components.js +19 -25
  419. package/lib/projects/config.d.ts +1 -1
  420. package/lib/projects/config.js +32 -41
  421. package/lib/projects/create/__tests__/legacy.test.js +22 -57
  422. package/lib/projects/create/__tests__/v3.test.js +5 -7
  423. package/lib/projects/create/index.d.ts +3 -3
  424. package/lib/projects/create/index.js +19 -22
  425. package/lib/projects/create/legacy.d.ts +1 -1
  426. package/lib/projects/create/legacy.js +25 -31
  427. package/lib/projects/create/v3.d.ts +3 -3
  428. package/lib/projects/create/v3.js +49 -59
  429. package/lib/projects/ensureProjectExists.js +31 -37
  430. package/lib/projects/localDev/AppDevModeInterface.d.ts +3 -3
  431. package/lib/projects/localDev/AppDevModeInterface.js +58 -60
  432. package/lib/projects/localDev/DevServerManager.d.ts +1 -1
  433. package/lib/projects/localDev/DevServerManager.js +22 -24
  434. package/lib/projects/localDev/DevServerManagerV2.d.ts +2 -2
  435. package/lib/projects/localDev/DevServerManagerV2.js +15 -20
  436. package/lib/projects/localDev/LocalDevLogger.d.ts +1 -1
  437. package/lib/projects/localDev/LocalDevLogger.js +59 -64
  438. package/lib/projects/localDev/LocalDevManager.d.ts +1 -1
  439. package/lib/projects/localDev/LocalDevManager.js +106 -111
  440. package/lib/projects/localDev/LocalDevProcess.d.ts +4 -4
  441. package/lib/projects/localDev/LocalDevProcess.js +25 -30
  442. package/lib/projects/localDev/LocalDevState.d.ts +3 -3
  443. package/lib/projects/localDev/LocalDevState.js +3 -5
  444. package/lib/projects/localDev/LocalDevWatcher.d.ts +1 -1
  445. package/lib/projects/localDev/LocalDevWatcher.js +6 -11
  446. package/lib/projects/localDev/LocalDevWebsocketServer.d.ts +1 -1
  447. package/lib/projects/localDev/LocalDevWebsocketServer.js +25 -27
  448. package/lib/projects/localDev/helpers.d.ts +3 -3
  449. package/lib/projects/localDev/helpers.js +156 -174
  450. package/lib/projects/structure.d.ts +4 -4
  451. package/lib/projects/structure.js +32 -78
  452. package/lib/projects/ui.js +10 -13
  453. package/lib/projects/upload.d.ts +2 -3
  454. package/lib/projects/upload.js +55 -65
  455. package/lib/projects/urls.js +14 -24
  456. package/lib/projects/watch.d.ts +1 -1
  457. package/lib/projects/watch.js +48 -54
  458. package/lib/prompts/__tests__/downloadProjectPrompt.test.js +9 -11
  459. package/lib/prompts/__tests__/projectsLogsPrompt.test.js +11 -16
  460. package/lib/prompts/accountNamePrompt.d.ts +1 -1
  461. package/lib/prompts/accountNamePrompt.js +26 -31
  462. package/lib/prompts/accountsPrompt.js +12 -15
  463. package/lib/prompts/cmsFieldPrompt.js +13 -19
  464. package/lib/prompts/createApiSamplePrompt.d.ts +1 -1
  465. package/lib/prompts/createApiSamplePrompt.js +9 -12
  466. package/lib/prompts/createDeveloperTestAccountConfigPrompt.d.ts +1 -1
  467. package/lib/prompts/createDeveloperTestAccountConfigPrompt.js +23 -26
  468. package/lib/prompts/createFunctionPrompt.js +17 -20
  469. package/lib/prompts/createModulePrompt.js +12 -15
  470. package/lib/prompts/createTemplatePrompt.js +5 -8
  471. package/lib/prompts/downloadProjectPrompt.js +17 -20
  472. package/lib/prompts/installAppPrompt.js +19 -26
  473. package/lib/prompts/personalAccessKeyPrompt.d.ts +2 -2
  474. package/lib/prompts/personalAccessKeyPrompt.js +40 -47
  475. package/lib/prompts/previewPrompt.js +15 -22
  476. package/lib/prompts/projectAddPrompt.d.ts +1 -1
  477. package/lib/prompts/projectAddPrompt.js +14 -18
  478. package/lib/prompts/projectDevTargetAccountPrompt.d.ts +1 -1
  479. package/lib/prompts/projectDevTargetAccountPrompt.js +48 -54
  480. package/lib/prompts/projectNameAndDestPrompt.d.ts +1 -1
  481. package/lib/prompts/projectNameAndDestPrompt.js +22 -29
  482. package/lib/prompts/projectNamePrompt.js +11 -14
  483. package/lib/prompts/projectsLogsPrompt.js +5 -8
  484. package/lib/prompts/promptUtils.d.ts +1 -1
  485. package/lib/prompts/promptUtils.js +17 -24
  486. package/lib/prompts/sandboxesPrompt.d.ts +1 -1
  487. package/lib/prompts/sandboxesPrompt.js +26 -30
  488. package/lib/prompts/secretPrompt.js +10 -15
  489. package/lib/prompts/selectAppPrompt.js +11 -14
  490. package/lib/prompts/selectHubDBTablePrompt.js +24 -30
  491. package/lib/prompts/selectProjectTemplatePrompt.d.ts +1 -1
  492. package/lib/prompts/selectProjectTemplatePrompt.js +10 -13
  493. package/lib/prompts/selectPublicAppForMigrationPrompt.js +22 -25
  494. package/lib/prompts/setAsDefaultAccountPrompt.js +13 -16
  495. package/lib/prompts/uploadPrompt.js +11 -17
  496. package/lib/sandboxSync.d.ts +1 -1
  497. package/lib/sandboxSync.js +58 -65
  498. package/lib/sandboxes.d.ts +1 -1
  499. package/lib/sandboxes.js +68 -76
  500. package/lib/schema.js +13 -20
  501. package/lib/serverlessLogs.js +45 -52
  502. package/lib/testUtils.js +4 -8
  503. package/lib/ui/SpinniesManager.d.ts +1 -1
  504. package/lib/ui/SpinniesManager.js +29 -34
  505. package/lib/ui/boxen.js +11 -14
  506. package/lib/ui/git.js +14 -20
  507. package/lib/ui/index.js +55 -73
  508. package/lib/ui/logger.js +10 -13
  509. package/lib/ui/serverlessFunctionLogs.js +14 -20
  510. package/lib/ui/spinniesUtils.js +24 -39
  511. package/lib/ui/supportHyperlinks.js +3 -6
  512. package/lib/ui/supportsColor.js +11 -17
  513. package/lib/ui/table.js +6 -13
  514. package/lib/upload.js +15 -21
  515. package/lib/usageTracking.js +35 -44
  516. package/lib/utils/hasFlag.js +2 -8
  517. package/lib/validation.js +48 -87
  518. package/lib/yargsUtils.d.ts +1 -1
  519. package/lib/yargsUtils.js +13 -16
  520. package/mcp-server/server.js +6 -8
  521. package/mcp-server/tools/index.js +13 -16
  522. package/mcp-server/tools/project/AddFeatureToProject.d.ts +1 -1
  523. package/mcp-server/tools/project/AddFeatureToProject.js +35 -39
  524. package/mcp-server/tools/project/CreateProjectTool.d.ts +1 -1
  525. package/mcp-server/tools/project/CreateProjectTool.js +46 -50
  526. package/mcp-server/tools/project/DeployProject.d.ts +1 -1
  527. package/mcp-server/tools/project/DeployProject.js +18 -22
  528. package/mcp-server/tools/project/GuidedWalkthroughTool.d.ts +1 -1
  529. package/mcp-server/tools/project/GuidedWalkthroughTool.js +21 -25
  530. package/mcp-server/tools/project/UploadProjectTools.d.ts +1 -1
  531. package/mcp-server/tools/project/UploadProjectTools.js +12 -19
  532. package/mcp-server/tools/project/ValidateProjectTool.d.ts +1 -1
  533. package/mcp-server/tools/project/ValidateProjectTool.js +13 -17
  534. package/mcp-server/tools/project/__tests__/AddFeatureToProject.test.js +12 -14
  535. package/mcp-server/tools/project/__tests__/CreateProjectTool.test.js +13 -15
  536. package/mcp-server/tools/project/__tests__/DeployProject.test.js +6 -8
  537. package/mcp-server/tools/project/__tests__/GuidedWalkthroughTool.test.js +4 -6
  538. package/mcp-server/tools/project/__tests__/UploadProjectTools.test.js +4 -6
  539. package/mcp-server/tools/project/__tests__/ValidateProjectTool.test.js +4 -6
  540. package/mcp-server/tools/project/constants.js +3 -9
  541. package/mcp-server/types.js +1 -5
  542. package/mcp-server/utils/__tests__/command.test.js +9 -11
  543. package/mcp-server/utils/__tests__/project.test.js +12 -17
  544. package/mcp-server/utils/command.d.ts +1 -1
  545. package/mcp-server/utils/command.js +4 -11
  546. package/mcp-server/utils/content.d.ts +1 -1
  547. package/mcp-server/utils/content.js +2 -6
  548. package/mcp-server/utils/project.js +8 -14
  549. package/mcp-server/utils/toolUsageTracking.js +11 -14
  550. package/package.json +15 -11
  551. package/types/Cms.d.ts +1 -1
  552. package/types/Cms.js +1 -2
  553. package/types/LocalDev.d.ts +4 -4
  554. package/types/LocalDev.js +1 -2
  555. package/types/ProjectComponents.d.ts +2 -2
  556. package/types/ProjectComponents.js +1 -2
  557. package/types/Projects.d.ts +1 -1
  558. package/types/Projects.js +2 -5
  559. package/types/Prompts.js +1 -2
  560. package/types/Sandboxes.js +1 -2
  561. package/types/Yargs.js +1 -2
  562. package/commands/app/__tests__/install.test.d.ts +0 -1
  563. package/commands/app/__tests__/install.test.js +0 -52
  564. package/commands/app/install.d.ts +0 -8
  565. package/commands/app/install.js +0 -127
@@ -1,47 +1,42 @@
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 vitest_1 = require("vitest");
1
+ import { vi } from 'vitest';
7
2
  // Mock the ui-extensions-dev-server module
8
- vitest_1.vi.mock('@hubspot/ui-extensions-dev-server', () => {
3
+ vi.mock('@hubspot/ui-extensions-dev-server', () => {
9
4
  return {
10
5
  DevModeUnifiedInterface: {
11
- setup: vitest_1.vi.fn().mockResolvedValue(undefined),
12
- start: vitest_1.vi.fn().mockResolvedValue(undefined),
13
- fileChange: vitest_1.vi.fn().mockResolvedValue(undefined),
14
- cleanup: vitest_1.vi.fn().mockResolvedValue(undefined),
6
+ setup: vi.fn().mockResolvedValue(undefined),
7
+ start: vi.fn().mockResolvedValue(undefined),
8
+ fileChange: vi.fn().mockResolvedValue(undefined),
9
+ cleanup: vi.fn().mockResolvedValue(undefined),
15
10
  },
16
11
  };
17
12
  });
18
- const localDevAuth_1 = require("@hubspot/local-dev-lib/api/localDevAuth");
19
- const appsDev_1 = require("@hubspot/local-dev-lib/api/appsDev");
20
- const ui_extensions_dev_server_1 = require("@hubspot/ui-extensions-dev-server");
21
- const portManager_1 = require("@hubspot/local-dev-lib/portManager");
22
- const config_1 = require("@hubspot/local-dev-lib/config");
23
- const AppDevModeInterface_1 = __importDefault(require("../localDev/AppDevModeInterface"));
24
- const LocalDevState_1 = __importDefault(require("../localDev/LocalDevState"));
25
- const LocalDevLogger_1 = __importDefault(require("../localDev/LocalDevLogger"));
26
- const installAppPrompt_1 = require("../../prompts/installAppPrompt");
27
- const promptUtils_1 = require("../../prompts/promptUtils");
28
- const urls_1 = require("../../app/urls");
29
- const accountTypes_1 = require("../../accountTypes");
30
- const index_1 = require("../../errorHandlers/index");
31
- const constants_1 = require("../../constants");
32
- const environments_1 = require("@hubspot/local-dev-lib/constants/environments");
33
- vitest_1.vi.mock('@hubspot/local-dev-lib/api/localDevAuth');
34
- vitest_1.vi.mock('@hubspot/local-dev-lib/api/appsDev');
35
- vitest_1.vi.mock('@hubspot/local-dev-lib/portManager');
36
- vitest_1.vi.mock('@hubspot/local-dev-lib/config');
37
- vitest_1.vi.mock('../../prompts/installAppPrompt');
38
- vitest_1.vi.mock('../../prompts/promptUtils');
39
- vitest_1.vi.mock('../../app/urls');
40
- vitest_1.vi.mock('../../accountTypes');
41
- vitest_1.vi.mock('../../ui/logger');
42
- vitest_1.vi.mock('../../errorHandlers/index');
43
- vitest_1.vi.mock('../localDev/LocalDevState');
44
- vitest_1.vi.mock('../localDev/LocalDevLogger');
13
+ import { fetchAppInstallationData } from '@hubspot/local-dev-lib/api/localDevAuth';
14
+ import { fetchPublicAppsForPortal, fetchPublicAppProductionInstallCounts, installStaticAuthAppOnTestAccount, } from '@hubspot/local-dev-lib/api/appsDev';
15
+ import { DevModeUnifiedInterface as UIEDevModeInterface } from '@hubspot/ui-extensions-dev-server';
16
+ import { requestPorts } from '@hubspot/local-dev-lib/portManager';
17
+ import { getAccountConfig } from '@hubspot/local-dev-lib/config';
18
+ import AppDevModeInterface from '../localDev/AppDevModeInterface.js';
19
+ import LocalDevState from '../localDev/LocalDevState.js';
20
+ import LocalDevLogger from '../localDev/LocalDevLogger.js';
21
+ import { installAppAutoPrompt, installAppBrowserPrompt, } from '../../prompts/installAppPrompt.js';
22
+ import { confirmPrompt } from '../../prompts/promptUtils.js';
23
+ import { getOauthAppInstallUrl, getStaticAuthAppInstallUrl, } from '../../app/urls.js';
24
+ import { isDeveloperTestAccount, isSandbox } from '../../accountTypes.js';
25
+ import { logError } from '../../errorHandlers/index.js';
26
+ import { APP_AUTH_TYPES, APP_DISTRIBUTION_TYPES, APP_INSTALLATION_STATES, LOCAL_DEV_SERVER_MESSAGE_TYPES, } from '../../constants.js';
27
+ import { ENVIRONMENTS } from '@hubspot/local-dev-lib/constants/environments';
28
+ vi.mock('@hubspot/local-dev-lib/api/localDevAuth');
29
+ vi.mock('@hubspot/local-dev-lib/api/appsDev');
30
+ vi.mock('@hubspot/local-dev-lib/portManager');
31
+ vi.mock('@hubspot/local-dev-lib/config');
32
+ vi.mock('../../prompts/installAppPrompt');
33
+ vi.mock('../../prompts/promptUtils');
34
+ vi.mock('../../app/urls');
35
+ vi.mock('../../accountTypes');
36
+ vi.mock('../../ui/logger');
37
+ vi.mock('../../errorHandlers/index');
38
+ vi.mock('../localDev/LocalDevState');
39
+ vi.mock('../localDev/LocalDevLogger');
45
40
  describe('AppDevModeInterface', () => {
46
41
  let appDevModeInterface;
47
42
  let mockLocalDevState;
@@ -59,13 +54,13 @@ describe('AppDevModeInterface', () => {
59
54
  description: 'Test app description',
60
55
  logo: 'logo.png',
61
56
  auth: {
62
- type: constants_1.APP_AUTH_TYPES.STATIC,
57
+ type: APP_AUTH_TYPES.STATIC,
63
58
  requiredScopes: ['test-scope'],
64
59
  optionalScopes: [],
65
60
  conditionallyRequiredScopes: [],
66
61
  redirectUrls: ['http://localhost:3000'],
67
62
  },
68
- distribution: constants_1.APP_DISTRIBUTION_TYPES.PRIVATE,
63
+ distribution: APP_DISTRIBUTION_TYPES.PRIVATE,
69
64
  },
70
65
  localDev: {
71
66
  componentRoot: '/test/path',
@@ -80,7 +75,7 @@ describe('AppDevModeInterface', () => {
80
75
  id: 123,
81
76
  clientId: 'test-client-id',
82
77
  name: 'Test App',
83
- installationState: constants_1.APP_INSTALLATION_STATES.NOT_INSTALLED,
78
+ installationState: APP_INSTALLATION_STATES.NOT_INSTALLED,
84
79
  scopeGroupIds: [1, 2, 3],
85
80
  };
86
81
  const mockPublicApp = {
@@ -91,61 +86,61 @@ describe('AppDevModeInterface', () => {
91
86
  scopeGroupIds: [1, 2, 3],
92
87
  };
93
88
  beforeEach(() => {
94
- vitest_1.vi.clearAllMocks();
89
+ vi.clearAllMocks();
95
90
  mockLocalDevState = {
96
91
  targetProjectAccountId: 12345,
97
92
  targetTestingAccountId: 67890,
98
93
  projectConfig: mockProjectConfig,
99
94
  projectDir: '/test/project',
100
95
  projectId: 999,
101
- env: environments_1.ENVIRONMENTS.PROD,
96
+ env: ENVIRONMENTS.PROD,
102
97
  projectNodes: { [mockAppNode.uid]: mockAppNode },
103
- getAppDataByUid: vitest_1.vi.fn(),
104
- setAppDataForUid: vitest_1.vi.fn(),
105
- addListener: vitest_1.vi.fn(),
98
+ getAppDataByUid: vi.fn(),
99
+ setAppDataForUid: vi.fn(),
100
+ addListener: vi.fn(),
106
101
  };
107
102
  mockLocalDevLogger = {
108
- addUploadWarning: vitest_1.vi.fn(),
103
+ addUploadWarning: vi.fn(),
109
104
  };
110
105
  // Mock constructors
111
- LocalDevState_1.default.mockImplementation(() => mockLocalDevState);
112
- LocalDevLogger_1.default.mockImplementation(() => mockLocalDevLogger);
106
+ LocalDevState.mockImplementation(() => mockLocalDevState);
107
+ LocalDevLogger.mockImplementation(() => mockLocalDevLogger);
113
108
  // Mock external dependencies
114
- appsDev_1.fetchPublicAppsForPortal.mockResolvedValue({
109
+ fetchPublicAppsForPortal.mockResolvedValue({
115
110
  data: { results: [mockPublicApp] },
116
111
  });
117
- appsDev_1.fetchPublicAppProductionInstallCounts.mockResolvedValue({
112
+ fetchPublicAppProductionInstallCounts.mockResolvedValue({
118
113
  data: { uniquePortalInstallCount: 5 },
119
114
  });
120
- localDevAuth_1.fetchAppInstallationData.mockResolvedValue({
115
+ fetchAppInstallationData.mockResolvedValue({
121
116
  data: {
122
117
  isInstalledWithScopeGroups: true,
123
118
  previouslyAuthorizedScopeGroups: [],
124
119
  },
125
120
  });
126
- config_1.getAccountConfig.mockReturnValue({
121
+ getAccountConfig.mockReturnValue({
127
122
  parentAccountId: 12345,
128
123
  });
129
- accountTypes_1.isDeveloperTestAccount.mockReturnValue(true);
130
- accountTypes_1.isSandbox.mockReturnValue(false);
131
- urls_1.getOauthAppInstallUrl.mockReturnValue('http://oauth-install-url');
132
- urls_1.getStaticAuthAppInstallUrl.mockReturnValue('http://static-install-url');
133
- installAppPrompt_1.installAppAutoPrompt.mockResolvedValue(true);
134
- installAppPrompt_1.installAppBrowserPrompt.mockResolvedValue(undefined);
135
- promptUtils_1.confirmPrompt.mockResolvedValue(true);
136
- appsDev_1.installStaticAuthAppOnTestAccount.mockResolvedValue(undefined);
124
+ isDeveloperTestAccount.mockReturnValue(true);
125
+ isSandbox.mockReturnValue(false);
126
+ getOauthAppInstallUrl.mockReturnValue('http://oauth-install-url');
127
+ getStaticAuthAppInstallUrl.mockReturnValue('http://static-install-url');
128
+ installAppAutoPrompt.mockResolvedValue(true);
129
+ installAppBrowserPrompt.mockResolvedValue(undefined);
130
+ confirmPrompt.mockResolvedValue(true);
131
+ installStaticAuthAppOnTestAccount.mockResolvedValue(undefined);
137
132
  // Mock process.exit
138
- vitest_1.vi.spyOn(global.process, 'exit').mockImplementation((code) => {
133
+ vi.spyOn(global.process, 'exit').mockImplementation((code) => {
139
134
  throw new Error(`Process.exit called with code ${code}`);
140
135
  });
141
- appDevModeInterface = new AppDevModeInterface_1.default({
136
+ appDevModeInterface = new AppDevModeInterface({
142
137
  localDevState: mockLocalDevState,
143
138
  localDevLogger: mockLocalDevLogger,
144
139
  });
145
140
  });
146
141
  describe('constructor', () => {
147
142
  it('should initialize with valid state', () => {
148
- expect(appDevModeInterface).toBeInstanceOf(AppDevModeInterface_1.default);
143
+ expect(appDevModeInterface).toBeInstanceOf(AppDevModeInterface);
149
144
  expect(appDevModeInterface.localDevState).toBe(mockLocalDevState);
150
145
  expect(appDevModeInterface.localDevLogger).toBe(mockLocalDevLogger);
151
146
  });
@@ -155,7 +150,7 @@ describe('AppDevModeInterface', () => {
155
150
  targetProjectAccountId: null,
156
151
  };
157
152
  expect(() => {
158
- new AppDevModeInterface_1.default({
153
+ new AppDevModeInterface({
159
154
  localDevState: mockLocalDevStateWithoutAccountId,
160
155
  localDevLogger: mockLocalDevLogger,
161
156
  });
@@ -167,7 +162,7 @@ describe('AppDevModeInterface', () => {
167
162
  projectConfig: null,
168
163
  };
169
164
  expect(() => {
170
- new AppDevModeInterface_1.default({
165
+ new AppDevModeInterface({
171
166
  localDevState: mockLocalDevStateWithoutConfig,
172
167
  localDevLogger: mockLocalDevLogger,
173
168
  });
@@ -179,7 +174,7 @@ describe('AppDevModeInterface', () => {
179
174
  projectDir: null,
180
175
  };
181
176
  expect(() => {
182
- new AppDevModeInterface_1.default({
177
+ new AppDevModeInterface({
183
178
  localDevState: mockLocalDevStateWithoutDir,
184
179
  localDevLogger: mockLocalDevLogger,
185
180
  });
@@ -193,29 +188,29 @@ describe('AppDevModeInterface', () => {
193
188
  it('should return early if no app node exists', async () => {
194
189
  mockLocalDevState.projectNodes = {};
195
190
  await appDevModeInterface.setup({});
196
- expect(appsDev_1.fetchPublicAppsForPortal).not.toHaveBeenCalled();
197
- expect(ui_extensions_dev_server_1.DevModeUnifiedInterface.setup).not.toHaveBeenCalled();
191
+ expect(fetchPublicAppsForPortal).not.toHaveBeenCalled();
192
+ expect(UIEDevModeInterface.setup).not.toHaveBeenCalled();
198
193
  });
199
194
  it('should setup successfully with private app', async () => {
200
195
  await appDevModeInterface.setup({});
201
- expect(appsDev_1.fetchPublicAppsForPortal).toHaveBeenCalledWith(12345);
202
- expect(appsDev_1.fetchPublicAppProductionInstallCounts).toHaveBeenCalledWith(123, 12345);
203
- expect(localDevAuth_1.fetchAppInstallationData).toHaveBeenCalledWith(67890, 999, 'test-app-uid', ['test-scope'], []);
204
- expect(ui_extensions_dev_server_1.DevModeUnifiedInterface.setup).toHaveBeenCalled();
196
+ expect(fetchPublicAppsForPortal).toHaveBeenCalledWith(12345);
197
+ expect(fetchPublicAppProductionInstallCounts).toHaveBeenCalledWith(123, 12345);
198
+ expect(fetchAppInstallationData).toHaveBeenCalledWith(67890, 999, 'test-app-uid', ['test-scope'], []);
199
+ expect(UIEDevModeInterface.setup).toHaveBeenCalled();
205
200
  });
206
201
  it('should show marketplace warning for marketplace apps', async () => {
207
202
  const marketplaceAppNode = {
208
203
  ...mockAppNode,
209
204
  config: {
210
205
  ...mockAppNode.config,
211
- distribution: constants_1.APP_DISTRIBUTION_TYPES.MARKETPLACE,
206
+ distribution: APP_DISTRIBUTION_TYPES.MARKETPLACE,
212
207
  },
213
208
  };
214
209
  mockLocalDevState.projectNodes = {
215
210
  [marketplaceAppNode.uid]: marketplaceAppNode,
216
211
  };
217
212
  await appDevModeInterface.setup({});
218
- expect(promptUtils_1.confirmPrompt).toHaveBeenCalled();
213
+ expect(confirmPrompt).toHaveBeenCalled();
219
214
  expect(mockLocalDevLogger.addUploadWarning).toHaveBeenCalled();
220
215
  });
221
216
  it('should exit if user declines marketplace warning', async () => {
@@ -223,20 +218,20 @@ describe('AppDevModeInterface', () => {
223
218
  ...mockAppNode,
224
219
  config: {
225
220
  ...mockAppNode.config,
226
- distribution: constants_1.APP_DISTRIBUTION_TYPES.MARKETPLACE,
221
+ distribution: APP_DISTRIBUTION_TYPES.MARKETPLACE,
227
222
  },
228
223
  };
229
224
  mockLocalDevState.projectNodes = {
230
225
  [marketplaceAppNode.uid]: marketplaceAppNode,
231
226
  };
232
227
  // Set up conditions to trigger marketplace warning
233
- appsDev_1.fetchPublicAppProductionInstallCounts.mockResolvedValue({
228
+ fetchPublicAppProductionInstallCounts.mockResolvedValue({
234
229
  data: { uniquePortalInstallCount: 5 },
235
230
  });
236
231
  mockLocalDevState.getAppDataByUid.mockReturnValue(mockAppData);
237
- promptUtils_1.confirmPrompt.mockResolvedValue(false);
232
+ confirmPrompt.mockResolvedValue(false);
238
233
  // Create a new instance to trigger the exit during setup
239
- const newAppDevModeInterface = new AppDevModeInterface_1.default({
234
+ const newAppDevModeInterface = new AppDevModeInterface({
240
235
  localDevState: mockLocalDevState,
241
236
  localDevLogger: mockLocalDevLogger,
242
237
  });
@@ -245,14 +240,14 @@ describe('AppDevModeInterface', () => {
245
240
  expect(process.exit).toHaveBeenCalledWith(0);
246
241
  });
247
242
  it('should auto-install static auth app on test account', async () => {
248
- localDevAuth_1.fetchAppInstallationData.mockResolvedValue({
243
+ fetchAppInstallationData.mockResolvedValue({
249
244
  data: {
250
245
  isInstalledWithScopeGroups: false,
251
246
  previouslyAuthorizedScopeGroups: [],
252
247
  },
253
248
  });
254
249
  await appDevModeInterface.setup({});
255
- expect(appsDev_1.installStaticAuthAppOnTestAccount).toHaveBeenCalledWith(123, 67890, [1, 2, 3]);
250
+ expect(installStaticAuthAppOnTestAccount).toHaveBeenCalledWith(123, 67890, [1, 2, 3]);
256
251
  });
257
252
  it('should open browser for OAuth app installation', async () => {
258
253
  const oauthAppNode = {
@@ -261,50 +256,50 @@ describe('AppDevModeInterface', () => {
261
256
  ...mockAppNode.config,
262
257
  auth: {
263
258
  ...mockAppNode.config.auth,
264
- type: constants_1.APP_AUTH_TYPES.OAUTH,
259
+ type: APP_AUTH_TYPES.OAUTH,
265
260
  },
266
261
  },
267
262
  };
268
263
  mockLocalDevState.projectNodes = { [oauthAppNode.uid]: oauthAppNode };
269
- localDevAuth_1.fetchAppInstallationData.mockResolvedValue({
264
+ fetchAppInstallationData.mockResolvedValue({
270
265
  data: {
271
266
  isInstalledWithScopeGroups: false,
272
267
  previouslyAuthorizedScopeGroups: [],
273
268
  },
274
269
  });
275
270
  await appDevModeInterface.setup({});
276
- expect(urls_1.getOauthAppInstallUrl).toHaveBeenCalledWith({
271
+ expect(getOauthAppInstallUrl).toHaveBeenCalledWith({
277
272
  targetAccountId: 67890,
278
- env: environments_1.ENVIRONMENTS.PROD,
273
+ env: ENVIRONMENTS.PROD,
279
274
  clientId: 'test-client-id',
280
275
  scopes: ['test-scope'],
281
276
  redirectUrls: ['http://localhost:3000'],
282
277
  });
283
- expect(installAppPrompt_1.installAppBrowserPrompt).toHaveBeenCalled();
278
+ expect(installAppBrowserPrompt).toHaveBeenCalled();
284
279
  });
285
280
  it('should handle app reinstallation', async () => {
286
281
  // Set up conditions for non-automatic installation
287
- config_1.getAccountConfig.mockReturnValue(null);
288
- localDevAuth_1.fetchAppInstallationData.mockResolvedValue({
282
+ getAccountConfig.mockReturnValue(null);
283
+ fetchAppInstallationData.mockResolvedValue({
289
284
  data: {
290
285
  isInstalledWithScopeGroups: false,
291
286
  previouslyAuthorizedScopeGroups: ['old-scope'],
292
287
  },
293
288
  });
294
289
  await appDevModeInterface.setup({});
295
- expect(installAppPrompt_1.installAppBrowserPrompt).toHaveBeenCalledWith('http://static-install-url', true);
290
+ expect(installAppBrowserPrompt).toHaveBeenCalledWith('http://static-install-url', true);
296
291
  });
297
292
  it('should handle errors during setup', async () => {
298
293
  const error = new Error('Setup failed');
299
- appsDev_1.fetchPublicAppsForPortal.mockRejectedValue(error);
294
+ fetchPublicAppsForPortal.mockRejectedValue(error);
300
295
  await appDevModeInterface.setup({});
301
- expect(index_1.logError).toHaveBeenCalledWith(error);
296
+ expect(logError).toHaveBeenCalledWith(error);
302
297
  });
303
298
  it('should exit if app not found in portal', async () => {
304
299
  // Set up conditions for non-automatic installation to force getAppInstallUrl call
305
- config_1.getAccountConfig.mockReturnValue(null);
300
+ getAccountConfig.mockReturnValue(null);
306
301
  // First call for fetchAppData succeeds
307
- appsDev_1.fetchPublicAppsForPortal
302
+ fetchPublicAppsForPortal
308
303
  .mockResolvedValueOnce({
309
304
  data: { results: [mockPublicApp] },
310
305
  })
@@ -312,7 +307,7 @@ describe('AppDevModeInterface', () => {
312
307
  .mockResolvedValueOnce({
313
308
  data: { results: [] },
314
309
  });
315
- localDevAuth_1.fetchAppInstallationData.mockResolvedValue({
310
+ fetchAppInstallationData.mockResolvedValue({
316
311
  data: {
317
312
  isInstalledWithScopeGroups: false,
318
313
  previouslyAuthorizedScopeGroups: [],
@@ -324,19 +319,19 @@ describe('AppDevModeInterface', () => {
324
319
  });
325
320
  it('should exit if user declines auto-install', async () => {
326
321
  // Set up conditions for automatic installation
327
- config_1.getAccountConfig.mockReturnValue({
322
+ getAccountConfig.mockReturnValue({
328
323
  parentAccountId: 12345, // matches targetProjectAccountId
329
324
  });
330
- accountTypes_1.isDeveloperTestAccount.mockReturnValue(true);
331
- localDevAuth_1.fetchAppInstallationData.mockResolvedValue({
325
+ isDeveloperTestAccount.mockReturnValue(true);
326
+ fetchAppInstallationData.mockResolvedValue({
332
327
  data: {
333
328
  isInstalledWithScopeGroups: false,
334
329
  previouslyAuthorizedScopeGroups: [],
335
330
  },
336
331
  });
337
- installAppPrompt_1.installAppAutoPrompt.mockResolvedValue(false);
332
+ installAppAutoPrompt.mockResolvedValue(false);
338
333
  // Create a new instance to trigger the exit during setup
339
- const newAppDevModeInterface = new AppDevModeInterface_1.default({
334
+ const newAppDevModeInterface = new AppDevModeInterface({
340
335
  localDevState: mockLocalDevState,
341
336
  localDevLogger: mockLocalDevLogger,
342
337
  });
@@ -345,29 +340,29 @@ describe('AppDevModeInterface', () => {
345
340
  expect(process.exit).toHaveBeenCalledWith(0);
346
341
  });
347
342
  it('should fallback to browser install if auto-install fails', async () => {
348
- localDevAuth_1.fetchAppInstallationData.mockResolvedValue({
343
+ fetchAppInstallationData.mockResolvedValue({
349
344
  data: {
350
345
  isInstalledWithScopeGroups: false,
351
346
  previouslyAuthorizedScopeGroups: [],
352
347
  },
353
348
  });
354
- appsDev_1.installStaticAuthAppOnTestAccount.mockRejectedValue(new Error('Install failed'));
349
+ installStaticAuthAppOnTestAccount.mockRejectedValue(new Error('Install failed'));
355
350
  await appDevModeInterface.setup({});
356
- expect(installAppPrompt_1.installAppBrowserPrompt).toHaveBeenCalledWith('http://static-install-url', false);
351
+ expect(installAppBrowserPrompt).toHaveBeenCalledWith('http://static-install-url', false);
357
352
  });
358
353
  });
359
354
  describe('start()', () => {
360
355
  it('should return early if no app node exists', async () => {
361
356
  mockLocalDevState.projectNodes = {};
362
357
  await appDevModeInterface.start();
363
- expect(ui_extensions_dev_server_1.DevModeUnifiedInterface.start).not.toHaveBeenCalled();
358
+ expect(UIEDevModeInterface.start).not.toHaveBeenCalled();
364
359
  });
365
360
  it('should start UIE dev mode interface', async () => {
366
361
  await appDevModeInterface.start();
367
- expect(ui_extensions_dev_server_1.DevModeUnifiedInterface.start).toHaveBeenCalledWith({
362
+ expect(UIEDevModeInterface.start).toHaveBeenCalledWith({
368
363
  accountId: 67890,
369
364
  projectConfig: mockProjectConfig,
370
- requestPorts: portManager_1.requestPorts,
365
+ requestPorts,
371
366
  });
372
367
  });
373
368
  });
@@ -375,22 +370,22 @@ describe('AppDevModeInterface', () => {
375
370
  it('should return early if no app node exists', async () => {
376
371
  mockLocalDevState.projectNodes = {};
377
372
  await appDevModeInterface.fileChange('test.js', 'change');
378
- expect(ui_extensions_dev_server_1.DevModeUnifiedInterface.fileChange).not.toHaveBeenCalled();
373
+ expect(UIEDevModeInterface.fileChange).not.toHaveBeenCalled();
379
374
  });
380
375
  it('should forward file change to UIE dev mode interface', async () => {
381
376
  await appDevModeInterface.fileChange('test.js', 'change');
382
- expect(ui_extensions_dev_server_1.DevModeUnifiedInterface.fileChange).toHaveBeenCalledWith('test.js', 'change');
377
+ expect(UIEDevModeInterface.fileChange).toHaveBeenCalledWith('test.js', 'change');
383
378
  });
384
379
  });
385
380
  describe('cleanup()', () => {
386
381
  it('should return early if no app node exists', async () => {
387
382
  mockLocalDevState.projectNodes = {};
388
383
  await appDevModeInterface.cleanup();
389
- expect(ui_extensions_dev_server_1.DevModeUnifiedInterface.cleanup).not.toHaveBeenCalled();
384
+ expect(UIEDevModeInterface.cleanup).not.toHaveBeenCalled();
390
385
  });
391
386
  it('should cleanup UIE dev mode interface', async () => {
392
387
  await appDevModeInterface.cleanup();
393
- expect(ui_extensions_dev_server_1.DevModeUnifiedInterface.cleanup).toHaveBeenCalled();
388
+ expect(UIEDevModeInterface.cleanup).toHaveBeenCalled();
394
389
  });
395
390
  });
396
391
  describe('isAutomaticallyInstallable()', () => {
@@ -400,106 +395,106 @@ describe('AppDevModeInterface', () => {
400
395
  });
401
396
  it('should return false if target account config is missing', async () => {
402
397
  // Reset mocks to ensure clean state
403
- vitest_1.vi.clearAllMocks();
398
+ vi.clearAllMocks();
404
399
  // Set up basic mocks
405
- appsDev_1.fetchPublicAppsForPortal.mockResolvedValue({
400
+ fetchPublicAppsForPortal.mockResolvedValue({
406
401
  data: { results: [mockPublicApp] },
407
402
  });
408
- appsDev_1.fetchPublicAppProductionInstallCounts.mockResolvedValue({
403
+ fetchPublicAppProductionInstallCounts.mockResolvedValue({
409
404
  data: { uniquePortalInstallCount: 5 },
410
405
  });
411
- urls_1.getStaticAuthAppInstallUrl.mockReturnValue('http://static-install-url');
412
- installAppPrompt_1.installAppBrowserPrompt.mockResolvedValue(undefined);
406
+ getStaticAuthAppInstallUrl.mockReturnValue('http://static-install-url');
407
+ installAppBrowserPrompt.mockResolvedValue(undefined);
413
408
  // Reset the mock LocalDevState
414
- mockLocalDevState.getAppDataByUid = vitest_1.vi.fn().mockReturnValue(mockAppData);
415
- mockLocalDevState.setAppDataForUid = vitest_1.vi.fn();
416
- mockLocalDevState.addListener = vitest_1.vi.fn();
409
+ mockLocalDevState.getAppDataByUid = vi.fn().mockReturnValue(mockAppData);
410
+ mockLocalDevState.setAppDataForUid = vi.fn();
411
+ mockLocalDevState.addListener = vi.fn();
417
412
  // Target account config is missing
418
- config_1.getAccountConfig.mockReturnValue(null);
413
+ getAccountConfig.mockReturnValue(null);
419
414
  // App is not installed
420
- localDevAuth_1.fetchAppInstallationData.mockResolvedValue({
415
+ fetchAppInstallationData.mockResolvedValue({
421
416
  data: {
422
417
  isInstalledWithScopeGroups: false,
423
418
  previouslyAuthorizedScopeGroups: [],
424
419
  },
425
420
  });
426
421
  // Create a new instance to avoid interference from previous test setup
427
- const newAppDevModeInterface = new AppDevModeInterface_1.default({
422
+ const newAppDevModeInterface = new AppDevModeInterface({
428
423
  localDevState: mockLocalDevState,
429
424
  localDevLogger: mockLocalDevLogger,
430
425
  });
431
426
  await newAppDevModeInterface.setup({});
432
- expect(installAppPrompt_1.installAppBrowserPrompt).toHaveBeenCalled();
427
+ expect(installAppBrowserPrompt).toHaveBeenCalled();
433
428
  });
434
429
  it('should return false for OAuth app', async () => {
435
430
  // Reset mocks to ensure clean state
436
- vitest_1.vi.clearAllMocks();
431
+ vi.clearAllMocks();
437
432
  // Set up basic mocks
438
- appsDev_1.fetchPublicAppsForPortal.mockResolvedValue({
433
+ fetchPublicAppsForPortal.mockResolvedValue({
439
434
  data: { results: [mockPublicApp] },
440
435
  });
441
- appsDev_1.fetchPublicAppProductionInstallCounts.mockResolvedValue({
436
+ fetchPublicAppProductionInstallCounts.mockResolvedValue({
442
437
  data: { uniquePortalInstallCount: 5 },
443
438
  });
444
- urls_1.getOauthAppInstallUrl.mockReturnValue('http://oauth-install-url');
445
- installAppPrompt_1.installAppBrowserPrompt.mockResolvedValue(undefined);
439
+ getOauthAppInstallUrl.mockReturnValue('http://oauth-install-url');
440
+ installAppBrowserPrompt.mockResolvedValue(undefined);
446
441
  // Reset the mock LocalDevState
447
- mockLocalDevState.getAppDataByUid = vitest_1.vi.fn().mockReturnValue(mockAppData);
448
- mockLocalDevState.setAppDataForUid = vitest_1.vi.fn();
449
- mockLocalDevState.addListener = vitest_1.vi.fn();
442
+ mockLocalDevState.getAppDataByUid = vi.fn().mockReturnValue(mockAppData);
443
+ mockLocalDevState.setAppDataForUid = vi.fn();
444
+ mockLocalDevState.addListener = vi.fn();
450
445
  const oauthAppNode = {
451
446
  ...mockAppNode,
452
447
  config: {
453
448
  ...mockAppNode.config,
454
449
  auth: {
455
450
  ...mockAppNode.config.auth,
456
- type: constants_1.APP_AUTH_TYPES.OAUTH,
451
+ type: APP_AUTH_TYPES.OAUTH,
457
452
  },
458
453
  },
459
454
  };
460
455
  mockLocalDevState.projectNodes = { [oauthAppNode.uid]: oauthAppNode };
461
456
  // App is not installed
462
- localDevAuth_1.fetchAppInstallationData.mockResolvedValue({
457
+ fetchAppInstallationData.mockResolvedValue({
463
458
  data: {
464
459
  isInstalledWithScopeGroups: false,
465
460
  previouslyAuthorizedScopeGroups: [],
466
461
  },
467
462
  });
468
463
  // Create a new instance to avoid interference from previous test setup
469
- const newAppDevModeInterface = new AppDevModeInterface_1.default({
464
+ const newAppDevModeInterface = new AppDevModeInterface({
470
465
  localDevState: mockLocalDevState,
471
466
  localDevLogger: mockLocalDevLogger,
472
467
  });
473
468
  await newAppDevModeInterface.setup({});
474
- expect(installAppPrompt_1.installAppBrowserPrompt).toHaveBeenCalled();
469
+ expect(installAppBrowserPrompt).toHaveBeenCalled();
475
470
  });
476
471
  });
477
472
  describe('websocket server message handling', () => {
478
473
  it('should check app installation when websocket server connects', async () => {
479
474
  // Reset mocks to ensure clean state
480
- vitest_1.vi.clearAllMocks();
475
+ vi.clearAllMocks();
481
476
  // Set up basic mocks
482
- appsDev_1.fetchPublicAppsForPortal.mockResolvedValue({
477
+ fetchPublicAppsForPortal.mockResolvedValue({
483
478
  data: { results: [mockPublicApp] },
484
479
  });
485
- appsDev_1.fetchPublicAppProductionInstallCounts.mockResolvedValue({
480
+ fetchPublicAppProductionInstallCounts.mockResolvedValue({
486
481
  data: { uniquePortalInstallCount: 5 },
487
482
  });
488
- urls_1.getStaticAuthAppInstallUrl.mockReturnValue('http://static-install-url');
489
- installAppPrompt_1.installAppBrowserPrompt.mockResolvedValue(undefined);
483
+ getStaticAuthAppInstallUrl.mockReturnValue('http://static-install-url');
484
+ installAppBrowserPrompt.mockResolvedValue(undefined);
490
485
  // Reset the mock LocalDevState
491
- mockLocalDevState.getAppDataByUid = vitest_1.vi.fn().mockReturnValue(mockAppData);
492
- mockLocalDevState.setAppDataForUid = vitest_1.vi.fn();
493
- mockLocalDevState.addListener = vitest_1.vi.fn();
486
+ mockLocalDevState.getAppDataByUid = vi.fn().mockReturnValue(mockAppData);
487
+ mockLocalDevState.setAppDataForUid = vi.fn();
488
+ mockLocalDevState.addListener = vi.fn();
494
489
  // App is not installed so fetchAppInstallationData will be called
495
- localDevAuth_1.fetchAppInstallationData.mockResolvedValue({
490
+ fetchAppInstallationData.mockResolvedValue({
496
491
  data: {
497
492
  isInstalledWithScopeGroups: false,
498
493
  previouslyAuthorizedScopeGroups: [],
499
494
  },
500
495
  });
501
496
  // Create a new instance to avoid interference from previous test setup
502
- const newAppDevModeInterface = new AppDevModeInterface_1.default({
497
+ const newAppDevModeInterface = new AppDevModeInterface({
503
498
  localDevState: mockLocalDevState,
504
499
  localDevLogger: mockLocalDevLogger,
505
500
  });
@@ -510,8 +505,8 @@ describe('AppDevModeInterface', () => {
510
505
  const [eventType, callback] = addListenerCall;
511
506
  expect(eventType).toBe('devServerMessage');
512
507
  // Call the callback with websocket connection message
513
- await callback(constants_1.LOCAL_DEV_SERVER_MESSAGE_TYPES.WEBSOCKET_SERVER_CONNECTED);
514
- expect(localDevAuth_1.fetchAppInstallationData).toHaveBeenCalledTimes(2); // Once in setup, once in listener
508
+ await callback(LOCAL_DEV_SERVER_MESSAGE_TYPES.WEBSOCKET_SERVER_CONNECTED);
509
+ expect(fetchAppInstallationData).toHaveBeenCalledTimes(2); // Once in setup, once in listener
515
510
  });
516
511
  });
517
512
  });