@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,62 +1,27 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- const config_1 = require("@hubspot/local-dev-lib/config");
37
- const logger_1 = require("@hubspot/local-dev-lib/logger");
38
- const config_2 = require("@hubspot/local-dev-lib/constants/config");
39
- const developerTestAccounts_1 = require("@hubspot/local-dev-lib/api/developerTestAccounts");
40
- const testUtils_1 = require("../testUtils");
41
- const errorHandlers = __importStar(require("../errorHandlers"));
42
- const developerTestAccounts_2 = require("../developerTestAccounts");
1
+ import { getAccountId, getConfigAccounts } from '@hubspot/local-dev-lib/config';
2
+ import { logger } from '@hubspot/local-dev-lib/logger';
3
+ import { HUBSPOT_ACCOUNT_TYPES } from '@hubspot/local-dev-lib/constants/config';
4
+ import { fetchDeveloperTestAccounts } from '@hubspot/local-dev-lib/api/developerTestAccounts';
5
+ import { mockHubSpotHttpError } from '../testUtils.js';
6
+ import * as errorHandlers from '../errorHandlers/index.js';
7
+ import { getHasDevTestAccounts, handleDeveloperTestAccountCreateError, validateDevTestAccountUsageLimits, } from '../developerTestAccounts.js';
43
8
  vi.mock('@hubspot/local-dev-lib/config');
44
9
  vi.mock('@hubspot/local-dev-lib/logger');
45
10
  vi.mock('@hubspot/local-dev-lib/api/developerTestAccounts');
46
11
  vi.mock('../errorHandlers');
47
- const mockedGetAccountId = config_1.getAccountId;
48
- const mockedGetConfigAccounts = config_1.getConfigAccounts;
49
- const mockedFetchDeveloperTestAccounts = developerTestAccounts_1.fetchDeveloperTestAccounts;
12
+ const mockedGetAccountId = getAccountId;
13
+ const mockedGetConfigAccounts = getConfigAccounts;
14
+ const mockedFetchDeveloperTestAccounts = fetchDeveloperTestAccounts;
50
15
  const APP_DEVELOPER_ACCOUNT_1 = {
51
16
  name: 'app-developer-1',
52
17
  accountId: 123,
53
- accountType: config_2.HUBSPOT_ACCOUNT_TYPES.APP_DEVELOPER,
18
+ accountType: HUBSPOT_ACCOUNT_TYPES.APP_DEVELOPER,
54
19
  env: 'prod',
55
20
  };
56
21
  const APP_DEVELOPER_ACCOUNT_2 = {
57
22
  name: 'app-developer-2',
58
23
  accountId: 456,
59
- accountType: config_2.HUBSPOT_ACCOUNT_TYPES.APP_DEVELOPER,
24
+ accountType: HUBSPOT_ACCOUNT_TYPES.APP_DEVELOPER,
60
25
  env: 'prod',
61
26
  };
62
27
  const accounts = [
@@ -66,7 +31,7 @@ const accounts = [
66
31
  name: 'test-account',
67
32
  accountId: 789,
68
33
  parentAccountId: APP_DEVELOPER_ACCOUNT_1.accountId,
69
- accountType: config_2.HUBSPOT_ACCOUNT_TYPES.DEVELOPER_TEST,
34
+ accountType: HUBSPOT_ACCOUNT_TYPES.DEVELOPER_TEST,
70
35
  env: 'prod',
71
36
  },
72
37
  ];
@@ -75,19 +40,19 @@ describe('lib/developerTestAccounts', () => {
75
40
  it('should return true if there are developer test accounts associated with the account', () => {
76
41
  mockedGetAccountId.mockReturnValueOnce(APP_DEVELOPER_ACCOUNT_1.accountId);
77
42
  mockedGetConfigAccounts.mockReturnValueOnce(accounts);
78
- const result = (0, developerTestAccounts_2.getHasDevTestAccounts)(APP_DEVELOPER_ACCOUNT_1);
43
+ const result = getHasDevTestAccounts(APP_DEVELOPER_ACCOUNT_1);
79
44
  expect(result).toBe(true);
80
45
  });
81
46
  it('should return false if there are no developer test accounts associated with the account', () => {
82
47
  mockedGetAccountId.mockReturnValueOnce(APP_DEVELOPER_ACCOUNT_2.accountId);
83
48
  mockedGetConfigAccounts.mockReturnValueOnce(accounts);
84
- const result = (0, developerTestAccounts_2.getHasDevTestAccounts)(APP_DEVELOPER_ACCOUNT_2);
49
+ const result = getHasDevTestAccounts(APP_DEVELOPER_ACCOUNT_2);
85
50
  expect(result).toBe(false);
86
51
  });
87
52
  it('should return false if there are no accounts configured', () => {
88
53
  mockedGetAccountId.mockReturnValueOnce(APP_DEVELOPER_ACCOUNT_1.accountId);
89
54
  mockedGetConfigAccounts.mockReturnValueOnce(undefined);
90
- const result = (0, developerTestAccounts_2.getHasDevTestAccounts)(APP_DEVELOPER_ACCOUNT_1);
55
+ const result = getHasDevTestAccounts(APP_DEVELOPER_ACCOUNT_1);
91
56
  expect(result).toBe(false);
92
57
  });
93
58
  });
@@ -98,7 +63,7 @@ describe('lib/developerTestAccounts', () => {
98
63
  });
99
64
  it('should return null if the account id is not found', async () => {
100
65
  mockedGetAccountId.mockReturnValueOnce(undefined);
101
- const result = await (0, developerTestAccounts_2.validateDevTestAccountUsageLimits)(APP_DEVELOPER_ACCOUNT_1);
66
+ const result = await validateDevTestAccountUsageLimits(APP_DEVELOPER_ACCOUNT_1);
102
67
  expect(result).toBe(null);
103
68
  });
104
69
  it('should return null if there is no developer test account data', async () => {
@@ -106,7 +71,7 @@ describe('lib/developerTestAccounts', () => {
106
71
  mockedFetchDeveloperTestAccounts.mockResolvedValueOnce({
107
72
  data: null,
108
73
  });
109
- const result = await (0, developerTestAccounts_2.validateDevTestAccountUsageLimits)(APP_DEVELOPER_ACCOUNT_1);
74
+ const result = await validateDevTestAccountUsageLimits(APP_DEVELOPER_ACCOUNT_1);
110
75
  expect(result).toBe(null);
111
76
  });
112
77
  it('should return the test account data if the account has not reached the limit', async () => {
@@ -118,7 +83,7 @@ describe('lib/developerTestAccounts', () => {
118
83
  mockedFetchDeveloperTestAccounts.mockResolvedValueOnce({
119
84
  data: testAccountData,
120
85
  });
121
- const result = await (0, developerTestAccounts_2.validateDevTestAccountUsageLimits)(APP_DEVELOPER_ACCOUNT_1);
86
+ const result = await validateDevTestAccountUsageLimits(APP_DEVELOPER_ACCOUNT_1);
122
87
  expect(result).toEqual(expect.objectContaining(testAccountData));
123
88
  });
124
89
  it('should throw an error if the account has reached the limit', async () => {
@@ -129,14 +94,14 @@ describe('lib/developerTestAccounts', () => {
129
94
  results: [{}],
130
95
  },
131
96
  });
132
- await expect((0, developerTestAccounts_2.validateDevTestAccountUsageLimits)(APP_DEVELOPER_ACCOUNT_1)).rejects.toThrow();
97
+ await expect(validateDevTestAccountUsageLimits(APP_DEVELOPER_ACCOUNT_1)).rejects.toThrow();
133
98
  });
134
99
  });
135
100
  describe('handleDeveloperTestAccountCreateError()', () => {
136
101
  let loggerErrorSpy;
137
102
  let logErrorSpy;
138
103
  beforeEach(() => {
139
- loggerErrorSpy = vi.spyOn(logger_1.logger, 'error');
104
+ loggerErrorSpy = vi.spyOn(logger, 'error');
140
105
  logErrorSpy = vi.spyOn(errorHandlers, 'logError');
141
106
  });
142
107
  afterEach(() => {
@@ -144,36 +109,36 @@ describe('lib/developerTestAccounts', () => {
144
109
  logErrorSpy.mockRestore();
145
110
  });
146
111
  it('should log and throw an error if the account is missing the required scopes', () => {
147
- const missingScopesError = (0, testUtils_1.mockHubSpotHttpError)('Missing scopes error', {
112
+ const missingScopesError = mockHubSpotHttpError('Missing scopes error', {
148
113
  status: 403,
149
114
  data: {
150
115
  message: 'Missing scopes error',
151
116
  category: 'MISSING_SCOPES',
152
117
  },
153
118
  });
154
- expect(() => (0, developerTestAccounts_2.handleDeveloperTestAccountCreateError)(missingScopesError, APP_DEVELOPER_ACCOUNT_1.accountId, 'prod', 10)).toThrow('Missing scopes error');
119
+ expect(() => handleDeveloperTestAccountCreateError(missingScopesError, APP_DEVELOPER_ACCOUNT_1.accountId, 'prod', 10)).toThrow('Missing scopes error');
155
120
  expect(loggerErrorSpy).toHaveBeenCalled();
156
121
  });
157
122
  it('should log and throw an error if the account is missing the required scopes', () => {
158
- const portalLimitReachedError = (0, testUtils_1.mockHubSpotHttpError)('Portal limit reached error', {
123
+ const portalLimitReachedError = mockHubSpotHttpError('Portal limit reached error', {
159
124
  status: 400,
160
125
  data: {
161
126
  message: 'Portal limit reached error',
162
127
  errorType: 'TEST_PORTAL_LIMIT_REACHED',
163
128
  },
164
129
  });
165
- expect(() => (0, developerTestAccounts_2.handleDeveloperTestAccountCreateError)(portalLimitReachedError, APP_DEVELOPER_ACCOUNT_1.accountId, 'prod', 10)).toThrow('Portal limit reached error');
130
+ expect(() => handleDeveloperTestAccountCreateError(portalLimitReachedError, APP_DEVELOPER_ACCOUNT_1.accountId, 'prod', 10)).toThrow('Portal limit reached error');
166
131
  expect(loggerErrorSpy).toHaveBeenCalled();
167
132
  });
168
133
  it('should log a generic error message for an unknown error type', () => {
169
- const someUnknownError = (0, testUtils_1.mockHubSpotHttpError)('Some unknown error', {
134
+ const someUnknownError = mockHubSpotHttpError('Some unknown error', {
170
135
  status: 400,
171
136
  data: {
172
137
  message: 'Some unknown error',
173
138
  category: 'SOME_UNKNOWN_ERROR',
174
139
  },
175
140
  });
176
- expect(() => (0, developerTestAccounts_2.handleDeveloperTestAccountCreateError)(someUnknownError, APP_DEVELOPER_ACCOUNT_1.accountId, 'prod', 10)).toThrow('Some unknown error');
141
+ expect(() => handleDeveloperTestAccountCreateError(someUnknownError, APP_DEVELOPER_ACCOUNT_1.accountId, 'prod', 10)).toThrow('Some unknown error');
177
142
  expect(logErrorSpy).toHaveBeenCalled();
178
143
  });
179
144
  });
@@ -1,9 +1,7 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const localDevAuth_1 = require("@hubspot/local-dev-lib/api/localDevAuth");
4
- const hasFeature_1 = require("../hasFeature");
1
+ import { fetchEnabledFeatures } from '@hubspot/local-dev-lib/api/localDevAuth';
2
+ import { hasFeature } from '../hasFeature.js';
5
3
  vi.mock('@hubspot/local-dev-lib/api/localDevAuth');
6
- const mockedFetchEnabledFeatures = localDevAuth_1.fetchEnabledFeatures;
4
+ const mockedFetchEnabledFeatures = fetchEnabledFeatures;
7
5
  describe('lib/hasFeature', () => {
8
6
  describe('hasFeature()', () => {
9
7
  const accountId = 123;
@@ -20,17 +18,17 @@ describe('lib/hasFeature', () => {
20
18
  });
21
19
  it('should return true if the feature is enabled', async () => {
22
20
  // @ts-expect-error test data
23
- const result = await (0, hasFeature_1.hasFeature)(accountId, 'feature-1');
21
+ const result = await hasFeature(accountId, 'feature-1');
24
22
  expect(result).toBe(true);
25
23
  });
26
24
  it('should return false if the feature is not enabled', async () => {
27
25
  // @ts-expect-error test data
28
- const result = await (0, hasFeature_1.hasFeature)(accountId, 'feature-2');
26
+ const result = await hasFeature(accountId, 'feature-2');
29
27
  expect(result).toBe(false);
30
28
  });
31
29
  it('should return false if the feature is not present', async () => {
32
30
  // @ts-expect-error test data
33
- const result = await (0, hasFeature_1.hasFeature)(accountId, 'feature-4');
31
+ const result = await hasFeature(accountId, 'feature-4');
34
32
  expect(result).toBe(false);
35
33
  });
36
34
  });
@@ -1,11 +1,6 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const util_1 = __importDefault(require("util"));
7
- const npm_1 = require("../npm");
8
- const package_json_1 = __importDefault(require("../../package.json"));
1
+ import util from 'util';
2
+ import { isGloballyInstalled, getLatestCliVersion, DEFAULT_PACKAGE_MANAGER, } from '../npm.js';
3
+ import pkg from '../../package.json' with { type: 'json' };
9
4
  vi.mock('@hubspot/local-dev-lib/logger');
10
5
  vi.mock('../ui/SpinniesManager');
11
6
  describe('lib/npm', () => {
@@ -17,24 +12,24 @@ describe('lib/npm', () => {
17
12
  }
18
13
  beforeEach(() => {
19
14
  execMock = vi.fn();
20
- util_1.default.promisify = mockedPromisify(execMock);
15
+ util.promisify = mockedPromisify(execMock);
21
16
  });
22
17
  describe('isGloballyInstalled()', () => {
23
18
  it('should return true when exec is successful', async () => {
24
- const actual = await (0, npm_1.isGloballyInstalled)(npm_1.DEFAULT_PACKAGE_MANAGER);
19
+ const actual = await isGloballyInstalled(DEFAULT_PACKAGE_MANAGER);
25
20
  expect(actual).toBe(true);
26
21
  expect(execMock).toHaveBeenCalledTimes(1);
27
- expect(execMock).toHaveBeenCalledWith(`${npm_1.DEFAULT_PACKAGE_MANAGER} --version`);
22
+ expect(execMock).toHaveBeenCalledWith(`${DEFAULT_PACKAGE_MANAGER} --version`);
28
23
  });
29
24
  it('should return false when exec is unsuccessful', async () => {
30
25
  execMock.mockImplementationOnce(() => {
31
26
  throw new Error('unsuccessful');
32
27
  });
33
- util_1.default.promisify = mockedPromisify(execMock);
34
- const actual = await (0, npm_1.isGloballyInstalled)(npm_1.DEFAULT_PACKAGE_MANAGER);
28
+ util.promisify = mockedPromisify(execMock);
29
+ const actual = await isGloballyInstalled(DEFAULT_PACKAGE_MANAGER);
35
30
  expect(actual).toBe(false);
36
31
  expect(execMock).toHaveBeenCalledTimes(1);
37
- expect(execMock).toHaveBeenCalledWith(`${npm_1.DEFAULT_PACKAGE_MANAGER} --version`);
32
+ expect(execMock).toHaveBeenCalledWith(`${DEFAULT_PACKAGE_MANAGER} --version`);
38
33
  });
39
34
  });
40
35
  describe('getLatestCliVersion()', () => {
@@ -44,19 +39,19 @@ describe('lib/npm', () => {
44
39
  execMock.mockResolvedValueOnce({
45
40
  stdout: JSON.stringify({ latest, next }),
46
41
  });
47
- util_1.default.promisify = mockedPromisify(execMock);
48
- const actual = await (0, npm_1.getLatestCliVersion)();
42
+ util.promisify = mockedPromisify(execMock);
43
+ const actual = await getLatestCliVersion();
49
44
  expect(actual).toEqual({ latest, next });
50
- expect(execMock).toHaveBeenCalledWith(`npm info ${package_json_1.default.name} dist-tags --json`);
45
+ expect(execMock).toHaveBeenCalledWith(`npm info ${pkg.name} dist-tags --json`);
51
46
  });
52
47
  it('should throw any errors that encounter with the check', async () => {
53
48
  const errorMessage = 'unsuccessful';
54
49
  execMock.mockImplementationOnce(() => {
55
50
  throw new Error(errorMessage);
56
51
  });
57
- util_1.default.promisify = mockedPromisify(execMock);
58
- await expect(() => (0, npm_1.getLatestCliVersion)()).rejects.toThrow(errorMessage);
59
- expect(execMock).toHaveBeenCalledWith(`npm info ${package_json_1.default.name} dist-tags --json`);
52
+ util.promisify = mockedPromisify(execMock);
53
+ await expect(() => getLatestCliVersion()).rejects.toThrow(errorMessage);
54
+ expect(execMock).toHaveBeenCalledWith(`npm info ${pkg.name} dist-tags --json`);
60
55
  });
61
56
  });
62
57
  });
@@ -1,26 +1,21 @@
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 express_1 = __importDefault(require("express"));
7
- const open_1 = __importDefault(require("open"));
8
- const OAuth2Manager_1 = require("@hubspot/local-dev-lib/models/OAuth2Manager");
9
- const config_1 = require("@hubspot/local-dev-lib/config");
10
- const oauth_1 = require("@hubspot/local-dev-lib/oauth");
11
- const logger_1 = require("@hubspot/local-dev-lib/logger");
12
- const environments_1 = require("@hubspot/local-dev-lib/constants/environments");
13
- const auth_1 = require("@hubspot/local-dev-lib/constants/auth");
14
- const oauth_2 = require("../oauth");
1
+ import express from 'express';
2
+ import open from 'open';
3
+ import { OAuth2Manager } from '@hubspot/local-dev-lib/models/OAuth2Manager';
4
+ import { getAccountConfig } from '@hubspot/local-dev-lib/config';
5
+ import { addOauthToAccountConfig } from '@hubspot/local-dev-lib/oauth';
6
+ import { logger } from '@hubspot/local-dev-lib/logger';
7
+ import { ENVIRONMENTS } from '@hubspot/local-dev-lib/constants/environments';
8
+ import { DEFAULT_OAUTH_SCOPES } from '@hubspot/local-dev-lib/constants/auth';
9
+ import { authenticateWithOauth } from '../oauth.js';
15
10
  vi.mock('express');
16
11
  vi.mock('open');
17
12
  vi.mock('@hubspot/local-dev-lib/models/OAuth2Manager');
18
13
  vi.mock('@hubspot/local-dev-lib/config');
19
14
  vi.mock('@hubspot/local-dev-lib/oauth');
20
15
  vi.mock('@hubspot/local-dev-lib/logger');
21
- const mockedExpress = express_1.default;
22
- const mockedOAuth2Manager = OAuth2Manager_1.OAuth2Manager;
23
- const mockedGetAccountConfig = config_1.getAccountConfig;
16
+ const mockedExpress = express;
17
+ const mockedOAuth2Manager = OAuth2Manager;
18
+ const mockedGetAccountConfig = getAccountConfig;
24
19
  describe('lib/oauth', () => {
25
20
  const mockExpressReq = {
26
21
  query: { code: 'test-auth-code' },
@@ -31,7 +26,7 @@ describe('lib/oauth', () => {
31
26
  clientId: 'test-client-id',
32
27
  clientSecret: 'test-client-secret',
33
28
  scopes: ['test-scope'],
34
- env: environments_1.ENVIRONMENTS.PROD,
29
+ env: ENVIRONMENTS.PROD,
35
30
  };
36
31
  beforeEach(() => {
37
32
  mockedExpress.mockReturnValue({
@@ -55,18 +50,18 @@ describe('lib/oauth', () => {
55
50
  };
56
51
  mockedOAuth2Manager.mockImplementation(() => mockOAuth2Manager);
57
52
  mockedGetAccountConfig.mockReturnValue({
58
- env: environments_1.ENVIRONMENTS.PROD,
53
+ env: ENVIRONMENTS.PROD,
59
54
  });
60
- await (0, oauth_2.authenticateWithOauth)(mockAccountConfig);
55
+ await authenticateWithOauth(mockAccountConfig);
61
56
  // Verify OAuth2Manager was initialized correctly
62
57
  expect(mockedOAuth2Manager).toHaveBeenCalledWith({
63
58
  ...mockAccountConfig,
64
- env: environments_1.ENVIRONMENTS.PROD,
59
+ env: ENVIRONMENTS.PROD,
65
60
  });
66
61
  // Verify logger was called
67
- expect(logger_1.logger.log).toHaveBeenCalledWith('Authorizing');
62
+ expect(logger.log).toHaveBeenCalledWith('Authorizing');
68
63
  // Verify OAuth tokens were added to config
69
- expect(oauth_1.addOauthToAccountConfig).toHaveBeenCalledWith(mockOAuth2Manager);
64
+ expect(addOauthToAccountConfig).toHaveBeenCalledWith(mockOAuth2Manager);
70
65
  });
71
66
  it('should handle missing clientId', async () => {
72
67
  const invalidConfig = {
@@ -79,8 +74,8 @@ describe('lib/oauth', () => {
79
74
  const exitSpy = vi.spyOn(process, 'exit').mockImplementation(() => {
80
75
  throw new Error('exit');
81
76
  });
82
- await expect((0, oauth_2.authenticateWithOauth)(invalidConfig)).rejects.toThrow('exit');
83
- expect(logger_1.logger.error).toHaveBeenCalled();
77
+ await expect(authenticateWithOauth(invalidConfig)).rejects.toThrow('exit');
78
+ expect(logger.error).toHaveBeenCalled();
84
79
  expect(exitSpy).toHaveBeenCalled();
85
80
  exitSpy.mockRestore();
86
81
  });
@@ -94,9 +89,9 @@ describe('lib/oauth', () => {
94
89
  exchangeForTokens: vi.fn().mockResolvedValue({}),
95
90
  };
96
91
  mockedOAuth2Manager.mockImplementation(() => mockOAuth2Manager);
97
- await (0, oauth_2.authenticateWithOauth)(configWithoutScopes);
92
+ await authenticateWithOauth(configWithoutScopes);
98
93
  // Verify default scopes were used
99
- expect(open_1.default).toHaveBeenCalledWith(expect.stringContaining(encodeURIComponent(auth_1.DEFAULT_OAUTH_SCOPES.join(' '))), expect.anything());
94
+ expect(open).toHaveBeenCalledWith(expect.stringContaining(encodeURIComponent(DEFAULT_OAUTH_SCOPES.join(' '))), expect.anything());
100
95
  });
101
96
  it('should handle OAuth exchange failure', async () => {
102
97
  const mockOAuth2Manager = {
@@ -106,7 +101,7 @@ describe('lib/oauth', () => {
106
101
  .mockRejectedValue(new Error('Exchange failed')),
107
102
  };
108
103
  mockedOAuth2Manager.mockImplementation(() => mockOAuth2Manager);
109
- await (0, oauth_2.authenticateWithOauth)(mockAccountConfig);
104
+ await authenticateWithOauth(mockAccountConfig);
110
105
  expect(mockExpressResp.send).toHaveBeenCalledWith(expect.stringContaining('Authorization failed'));
111
106
  });
112
107
  });
@@ -1,36 +1,34 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const parsing_1 = require("../parsing");
1
+ import { parseStringToNumber } from '../parsing.js';
4
2
  describe('lib/parsing', () => {
5
3
  describe('parseStringToNumber', () => {
6
4
  it('should parse valid integer strings', () => {
7
- expect((0, parsing_1.parseStringToNumber)('123')).toBe(123);
8
- expect((0, parsing_1.parseStringToNumber)('0')).toBe(0);
9
- expect((0, parsing_1.parseStringToNumber)('-456')).toBe(-456);
10
- expect((0, parsing_1.parseStringToNumber)('999')).toBe(999);
5
+ expect(parseStringToNumber('123')).toBe(123);
6
+ expect(parseStringToNumber('0')).toBe(0);
7
+ expect(parseStringToNumber('-456')).toBe(-456);
8
+ expect(parseStringToNumber('999')).toBe(999);
11
9
  });
12
10
  it('should parse strings with leading zeros', () => {
13
- expect((0, parsing_1.parseStringToNumber)('007')).toBe(7);
14
- expect((0, parsing_1.parseStringToNumber)('0123')).toBe(123);
11
+ expect(parseStringToNumber('007')).toBe(7);
12
+ expect(parseStringToNumber('0123')).toBe(123);
15
13
  });
16
14
  it('should throw error for strings with leading whitespace', () => {
17
- expect(() => (0, parsing_1.parseStringToNumber)(' 42')).toThrow('Unable to parse string to number');
18
- expect(() => (0, parsing_1.parseStringToNumber)('\t123')).toThrow('Unable to parse string to number');
15
+ expect(() => parseStringToNumber(' 42')).toThrow('Unable to parse string to number');
16
+ expect(() => parseStringToNumber('\t123')).toThrow('Unable to parse string to number');
19
17
  });
20
18
  it('should throw error for invalid number strings', () => {
21
- expect(() => (0, parsing_1.parseStringToNumber)('abc')).toThrow('Unable to parse string to number');
22
- expect(() => (0, parsing_1.parseStringToNumber)('')).toThrow('Unable to parse string to number');
23
- expect(() => (0, parsing_1.parseStringToNumber)('NaN')).toThrow('Unable to parse string to number');
19
+ expect(() => parseStringToNumber('abc')).toThrow('Unable to parse string to number');
20
+ expect(() => parseStringToNumber('')).toThrow('Unable to parse string to number');
21
+ expect(() => parseStringToNumber('NaN')).toThrow('Unable to parse string to number');
24
22
  });
25
23
  it('should throw error for strings with non-numeric characters', () => {
26
- expect(() => (0, parsing_1.parseStringToNumber)('123abc')).toThrow('Unable to parse string to number');
27
- expect(() => (0, parsing_1.parseStringToNumber)('456def')).toThrow('Unable to parse string to number');
28
- expect(() => (0, parsing_1.parseStringToNumber)('12.34')).toThrow('Unable to parse string to number');
24
+ expect(() => parseStringToNumber('123abc')).toThrow('Unable to parse string to number');
25
+ expect(() => parseStringToNumber('456def')).toThrow('Unable to parse string to number');
26
+ expect(() => parseStringToNumber('12.34')).toThrow('Unable to parse string to number');
29
27
  });
30
28
  it('should throw error for strings with mixed content', () => {
31
- expect(() => (0, parsing_1.parseStringToNumber)('123 456')).toThrow('Unable to parse string to number');
32
- expect(() => (0, parsing_1.parseStringToNumber)('1,234')).toThrow('Unable to parse string to number');
33
- expect(() => (0, parsing_1.parseStringToNumber)('1.23e4')).toThrow('Unable to parse string to number');
29
+ expect(() => parseStringToNumber('123 456')).toThrow('Unable to parse string to number');
30
+ expect(() => parseStringToNumber('1,234')).toThrow('Unable to parse string to number');
31
+ expect(() => parseStringToNumber('1.23e4')).toThrow('Unable to parse string to number');
34
32
  });
35
33
  });
36
34
  });
@@ -1,7 +1,5 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const polling_1 = require("../polling");
4
- const constants_1 = require("../constants");
1
+ import { poll, DEFAULT_POLLING_STATES } from '../polling.js';
2
+ import { DEFAULT_POLLING_DELAY } from '../constants.js';
5
3
  // Helper to create a mock polling callback
6
4
  const createMockCallback = (responses) => {
7
5
  let callCount = 0;
@@ -21,56 +19,56 @@ describe('lib/polling', () => {
21
19
  describe('poll()', () => {
22
20
  it('should resolve when status is SUCCESS', async () => {
23
21
  const mockCallback = createMockCallback([
24
- { status: polling_1.DEFAULT_POLLING_STATES.STARTED },
25
- { status: polling_1.DEFAULT_POLLING_STATES.SUCCESS },
22
+ { status: DEFAULT_POLLING_STATES.STARTED },
23
+ { status: DEFAULT_POLLING_STATES.SUCCESS },
26
24
  ]);
27
- const pollPromise = (0, polling_1.poll)(mockCallback);
25
+ const pollPromise = poll(mockCallback);
28
26
  // Fast-forward through two polling intervals
29
- vi.advanceTimersByTime(constants_1.DEFAULT_POLLING_DELAY * 2);
27
+ vi.advanceTimersByTime(DEFAULT_POLLING_DELAY * 2);
30
28
  const result = await pollPromise;
31
- expect(result.status).toBe(polling_1.DEFAULT_POLLING_STATES.SUCCESS);
29
+ expect(result.status).toBe(DEFAULT_POLLING_STATES.SUCCESS);
32
30
  expect(mockCallback).toHaveBeenCalledTimes(2);
33
31
  });
34
32
  it('should reject when status is ERROR', async () => {
35
33
  const mockCallback = createMockCallback([
36
- { status: polling_1.DEFAULT_POLLING_STATES.STARTED },
37
- { status: polling_1.DEFAULT_POLLING_STATES.ERROR },
34
+ { status: DEFAULT_POLLING_STATES.STARTED },
35
+ { status: DEFAULT_POLLING_STATES.ERROR },
38
36
  ]);
39
- const pollPromise = (0, polling_1.poll)(mockCallback);
40
- vi.advanceTimersByTime(constants_1.DEFAULT_POLLING_DELAY * 2);
37
+ const pollPromise = poll(mockCallback);
38
+ vi.advanceTimersByTime(DEFAULT_POLLING_DELAY * 2);
41
39
  await expect(pollPromise).rejects.toEqual({
42
- status: polling_1.DEFAULT_POLLING_STATES.ERROR,
40
+ status: DEFAULT_POLLING_STATES.ERROR,
43
41
  });
44
42
  expect(mockCallback).toHaveBeenCalledTimes(2);
45
43
  });
46
44
  it('should reject when status is FAILURE', async () => {
47
45
  const mockCallback = createMockCallback([
48
- { status: polling_1.DEFAULT_POLLING_STATES.STARTED },
49
- { status: polling_1.DEFAULT_POLLING_STATES.FAILURE },
46
+ { status: DEFAULT_POLLING_STATES.STARTED },
47
+ { status: DEFAULT_POLLING_STATES.FAILURE },
50
48
  ]);
51
- const pollPromise = (0, polling_1.poll)(mockCallback);
52
- vi.advanceTimersByTime(constants_1.DEFAULT_POLLING_DELAY * 2);
49
+ const pollPromise = poll(mockCallback);
50
+ vi.advanceTimersByTime(DEFAULT_POLLING_DELAY * 2);
53
51
  await expect(pollPromise).rejects.toEqual({
54
- status: polling_1.DEFAULT_POLLING_STATES.FAILURE,
52
+ status: DEFAULT_POLLING_STATES.FAILURE,
55
53
  });
56
54
  });
57
55
  it('should reject when status is REVERTED', async () => {
58
56
  const mockCallback = createMockCallback([
59
- { status: polling_1.DEFAULT_POLLING_STATES.STARTED },
60
- { status: polling_1.DEFAULT_POLLING_STATES.REVERTED },
57
+ { status: DEFAULT_POLLING_STATES.STARTED },
58
+ { status: DEFAULT_POLLING_STATES.REVERTED },
61
59
  ]);
62
- const pollPromise = (0, polling_1.poll)(mockCallback);
63
- vi.advanceTimersByTime(constants_1.DEFAULT_POLLING_DELAY * 2);
60
+ const pollPromise = poll(mockCallback);
61
+ vi.advanceTimersByTime(DEFAULT_POLLING_DELAY * 2);
64
62
  await expect(pollPromise).rejects.toEqual({
65
- status: polling_1.DEFAULT_POLLING_STATES.REVERTED,
63
+ status: DEFAULT_POLLING_STATES.REVERTED,
66
64
  });
67
65
  });
68
66
  it('should reject when callback throws an error', async () => {
69
67
  const mockCallback = vi
70
68
  .fn()
71
69
  .mockRejectedValue(new Error('Network error'));
72
- const pollPromise = (0, polling_1.poll)(mockCallback);
73
- vi.advanceTimersByTime(constants_1.DEFAULT_POLLING_DELAY);
70
+ const pollPromise = poll(mockCallback);
71
+ vi.advanceTimersByTime(DEFAULT_POLLING_DELAY);
74
72
  await expect(pollPromise).rejects.toThrow('Network error');
75
73
  expect(mockCallback).toHaveBeenCalledTimes(1);
76
74
  });
@@ -1,40 +1,35 @@
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 readline_1 = __importDefault(require("readline"));
7
- const logger_1 = require("@hubspot/local-dev-lib/logger");
8
- const process_1 = require("../process");
1
+ import readline from 'readline';
2
+ import { logger, setLogLevel, LOG_LEVEL } from '@hubspot/local-dev-lib/logger';
3
+ import { handleExit, handleKeypress, TERMINATION_SIGNALS } from '../process.js';
9
4
  vi.mock('readline');
10
5
  vi.mock('@hubspot/local-dev-lib/logger');
11
- const mockedReadline = readline_1.default;
12
- const mockedLogger = logger_1.logger;
13
- const mockedSetLogLevel = logger_1.setLogLevel;
6
+ const mockedReadline = readline;
7
+ const mockedLogger = logger;
8
+ const mockedSetLogLevel = setLogLevel;
14
9
  const processRemoveListenerSpy = vi.spyOn(process, 'removeAllListeners');
15
10
  const processOnSpy = vi.spyOn(process, 'on');
16
11
  describe('lib/process', () => {
17
12
  describe('handleExit()', () => {
18
13
  const mockCallback = vi.fn();
19
14
  it('should set up listeners for all termination signals', () => {
20
- (0, process_1.handleExit)(mockCallback);
21
- process_1.TERMINATION_SIGNALS.forEach(signal => {
15
+ handleExit(mockCallback);
16
+ TERMINATION_SIGNALS.forEach(signal => {
22
17
  expect(processRemoveListenerSpy).toHaveBeenCalledWith(signal);
23
18
  expect(processOnSpy).toHaveBeenCalledWith(signal, expect.any(Function));
24
19
  });
25
20
  });
26
21
  it('should handle SIGHUP signal correctly', async () => {
27
- (0, process_1.handleExit)(mockCallback);
22
+ handleExit(mockCallback);
28
23
  // Get the callback function passed to process.on for SIGHUP
29
24
  const sighupCallback = processOnSpy.mock.calls.find(call => call[0] === 'SIGHUP')?.[1];
30
25
  expect(sighupCallback).toBeDefined();
31
26
  sighupCallback();
32
- expect(mockedSetLogLevel).toHaveBeenCalledWith(logger_1.LOG_LEVEL.NONE);
27
+ expect(mockedSetLogLevel).toHaveBeenCalledWith(LOG_LEVEL.NONE);
33
28
  expect(mockCallback).toHaveBeenCalledWith({ isSIGHUP: true });
34
29
  expect(mockedLogger.debug).toHaveBeenCalledWith(expect.stringContaining('SIGHUP'));
35
30
  });
36
31
  it('should handle non-SIGHUP signals correctly', async () => {
37
- (0, process_1.handleExit)(mockCallback);
32
+ handleExit(mockCallback);
38
33
  // Get the callback function passed to process.on for SIGINT
39
34
  const sigintCallback = processOnSpy.mock.calls.find(call => call[0] === 'SIGINT')?.[1];
40
35
  expect(sigintCallback).toBeDefined();
@@ -44,7 +39,7 @@ describe('lib/process', () => {
44
39
  expect(mockedLogger.debug).toHaveBeenCalledWith(expect.stringContaining('SIGINT'));
45
40
  });
46
41
  it('should prevent duplicate exit handling', async () => {
47
- (0, process_1.handleExit)(mockCallback);
42
+ handleExit(mockCallback);
48
43
  // Get the callback function passed to process.on for SIGINT
49
44
  const sigintCallback = processOnSpy.mock.calls.find(call => call[0] === 'SIGINT')?.[1];
50
45
  expect(sigintCallback).toBeDefined();
@@ -67,7 +62,7 @@ describe('lib/process', () => {
67
62
  });
68
63
  mockedReadline.createInterface.mockReturnValue({});
69
64
  mockedReadline.emitKeypressEvents.mockImplementation(() => { });
70
- (0, process_1.handleKeypress)(mockCallback);
65
+ handleKeypress(mockCallback);
71
66
  expect(mockedReadline.createInterface).toHaveBeenCalledWith(process.stdin, process.stdout);
72
67
  expect(mockedReadline.emitKeypressEvents).toHaveBeenCalledWith(process.stdin);
73
68
  expect(process.stdin.setRawMode).toHaveBeenCalledWith(true);
@@ -83,7 +78,7 @@ describe('lib/process', () => {
83
78
  removeAllListeners: vi.fn(),
84
79
  },
85
80
  });
86
- (0, process_1.handleKeypress)(mockCallback);
81
+ handleKeypress(mockCallback);
87
82
  expect(process.stdin.setRawMode).toBeUndefined();
88
83
  });
89
84
  });