@hubspot/cli 8.0.11-experimental.0 → 8.0.11-experimental.1

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 (534) hide show
  1. package/bin/cli.js +2 -0
  2. package/commands/account/auth.js +12 -22
  3. package/commands/account/clean.js +5 -6
  4. package/commands/account/createOverride.js +7 -7
  5. package/commands/account/info.js +2 -1
  6. package/commands/account/list.js +3 -5
  7. package/commands/account/remove.js +2 -3
  8. package/commands/account/removeOverride.js +8 -10
  9. package/commands/account/rename.js +5 -6
  10. package/commands/account/use.js +8 -19
  11. package/commands/api.d.ts +10 -0
  12. package/commands/api.js +164 -0
  13. package/commands/app/migrate.js +8 -8
  14. package/commands/app/secret/add.js +6 -7
  15. package/commands/app/secret/delete.js +9 -10
  16. package/commands/app/secret/list.js +6 -7
  17. package/commands/app/secret/update.js +8 -9
  18. package/commands/auth.js +12 -12
  19. package/commands/cms/app/create.js +9 -5
  20. package/commands/cms/convertFields.js +8 -8
  21. package/commands/cms/delete.js +2 -3
  22. package/commands/cms/fetch.js +7 -7
  23. package/commands/cms/function/create.js +9 -5
  24. package/commands/cms/function/deploy.js +2 -3
  25. package/commands/cms/function/list.js +11 -7
  26. package/commands/cms/function/logs.js +17 -23
  27. package/commands/cms/function/server.js +2 -3
  28. package/commands/cms/getReactModule.js +7 -8
  29. package/commands/cms/lighthouseScore.js +25 -24
  30. package/commands/cms/lint.js +4 -5
  31. package/commands/cms/list.js +5 -6
  32. package/commands/cms/module/create.js +9 -5
  33. package/commands/cms/module/marketplace-validate.js +7 -8
  34. package/commands/cms/mv.js +2 -3
  35. package/commands/cms/template/create.js +10 -6
  36. package/commands/cms/theme/create.js +5 -5
  37. package/commands/cms/theme/generate-selectors.js +5 -4
  38. package/commands/cms/theme/marketplace-validate.js +8 -9
  39. package/commands/cms/theme/preview.js +16 -8
  40. package/commands/cms/upload.js +15 -12
  41. package/commands/cms/watch.js +5 -5
  42. package/commands/cms/webpack/create.js +5 -5
  43. package/commands/completion.js +3 -5
  44. package/commands/config/migrate.js +6 -7
  45. package/commands/config/set.js +5 -6
  46. package/commands/customObject/create.js +4 -5
  47. package/commands/customObject/createSchema.js +4 -5
  48. package/commands/customObject/deleteSchema.js +4 -5
  49. package/commands/customObject/fetchAllSchemas.js +2 -3
  50. package/commands/customObject/fetchSchema.js +2 -3
  51. package/commands/customObject/listSchemas.js +2 -3
  52. package/commands/customObject/updateSchema.js +4 -5
  53. package/commands/doctor.js +8 -8
  54. package/commands/feedback.js +6 -4
  55. package/commands/filemanager/fetch.js +5 -6
  56. package/commands/filemanager/upload.js +5 -5
  57. package/commands/getStarted.js +14 -16
  58. package/commands/hubdb/clear.js +5 -6
  59. package/commands/hubdb/create.js +4 -5
  60. package/commands/hubdb/delete.js +8 -9
  61. package/commands/hubdb/fetch.js +5 -6
  62. package/commands/hubdb/list.js +16 -14
  63. package/commands/init.js +14 -17
  64. package/commands/mcp/setup.js +5 -6
  65. package/commands/mcp/start.js +2 -3
  66. package/commands/open.js +4 -5
  67. package/commands/project/add.js +10 -5
  68. package/commands/project/create.js +10 -10
  69. package/commands/project/delete.d.ts +7 -0
  70. package/commands/project/delete.js +74 -0
  71. package/commands/project/deploy.js +36 -34
  72. package/commands/project/dev/deprecatedFlow.js +42 -15
  73. package/commands/project/dev/index.d.ts +3 -3
  74. package/commands/project/dev/index.js +24 -30
  75. package/commands/project/dev/unifiedFlow.js +37 -14
  76. package/commands/project/download.js +10 -11
  77. package/commands/project/info.js +17 -17
  78. package/commands/project/installDeps.js +9 -6
  79. package/commands/project/lint.js +11 -8
  80. package/commands/project/list.js +14 -14
  81. package/commands/project/listBuilds.js +8 -6
  82. package/commands/project/logs.js +5 -6
  83. package/commands/project/migrate.js +8 -8
  84. package/commands/project/open.js +5 -6
  85. package/commands/project/profile/add.js +12 -8
  86. package/commands/project/profile/delete.js +15 -11
  87. package/commands/project/updateDeps.js +9 -6
  88. package/commands/project/upload.js +31 -17
  89. package/commands/project/validate.js +11 -11
  90. package/commands/project/watch.js +20 -20
  91. package/commands/project.js +2 -0
  92. package/commands/sandbox/create.js +15 -15
  93. package/commands/sandbox/delete.js +13 -14
  94. package/commands/secret/addSecret.js +6 -7
  95. package/commands/secret/deleteSecret.js +5 -6
  96. package/commands/secret/listSecret.js +2 -3
  97. package/commands/secret/updateSecret.js +4 -5
  98. package/commands/testAccount/create.d.ts +1 -1
  99. package/commands/testAccount/create.js +20 -16
  100. package/commands/testAccount/createConfig.js +7 -8
  101. package/commands/testAccount/delete.js +27 -18
  102. package/commands/testAccount/importData.js +6 -7
  103. package/commands/upgrade.js +9 -10
  104. package/lang/en.d.ts +94 -7
  105. package/lang/en.js +94 -10
  106. package/lib/accountAuth.js +2 -2
  107. package/lib/buildAccount.js +3 -3
  108. package/lib/constants.d.ts +0 -1
  109. package/lib/constants.js +0 -1
  110. package/lib/doctor/Diagnosis.js +5 -5
  111. package/lib/errorHandlers/index.js +4 -3
  112. package/lib/errorHandlers/suppressError.js +4 -0
  113. package/lib/errors/PromptExitError.d.ts +4 -2
  114. package/lib/errors/PromptExitError.js +3 -0
  115. package/lib/hasFeature.js +1 -2
  116. package/lib/middleware/autoUpdateMiddleware.js +6 -3
  117. package/lib/process.d.ts +1 -1
  118. package/lib/process.js +10 -3
  119. package/lib/projects/create/v2.js +1 -2
  120. package/lib/projects/delete.d.ts +13 -0
  121. package/lib/projects/delete.js +193 -0
  122. package/lib/projects/localDev/AppDevModeInterface.js +11 -11
  123. package/lib/projects/localDev/DevServerManager_DEPRECATED.d.ts +3 -1
  124. package/lib/projects/localDev/DevServerManager_DEPRECATED.js +2 -2
  125. package/lib/projects/localDev/DevSessionManager.d.ts +6 -3
  126. package/lib/projects/localDev/DevSessionManager.js +31 -19
  127. package/lib/projects/localDev/LocalDevManager_DEPRECATED.d.ts +3 -0
  128. package/lib/projects/localDev/LocalDevManager_DEPRECATED.js +16 -12
  129. package/lib/projects/localDev/LocalDevProcess.js +6 -5
  130. package/lib/projects/localDev/LocalDevState.d.ts +3 -2
  131. package/lib/projects/localDev/LocalDevState.js +3 -1
  132. package/lib/projects/localDev/helpers/account.d.ts +4 -3
  133. package/lib/projects/localDev/helpers/account.js +16 -19
  134. package/lib/projects/localDev/helpers/process.d.ts +1 -1
  135. package/lib/projects/localDev/helpers/process.js +4 -10
  136. package/lib/projects/localDev/helpers/project.d.ts +4 -3
  137. package/lib/projects/localDev/helpers/project.js +31 -15
  138. package/lib/projects/projectInfo.d.ts +3 -20
  139. package/lib/projects/projectInfo.js +32 -54
  140. package/lib/projects/projectProfiles.d.ts +1 -2
  141. package/lib/projects/projectProfiles.js +5 -17
  142. package/lib/projects/upload.js +19 -0
  143. package/lib/projects/workspaces.d.ts +42 -0
  144. package/lib/projects/workspaces.js +350 -0
  145. package/lib/prompts/createApiSamplePrompt.js +4 -0
  146. package/lib/prompts/projectProfilePrompt.d.ts +2 -0
  147. package/lib/prompts/projectProfilePrompt.js +46 -0
  148. package/lib/prompts/promptUtils.js +3 -2
  149. package/lib/prompts/selectHubDBTablePrompt.js +2 -2
  150. package/lib/prompts/selectPublicAppForMigrationPrompt.js +2 -2
  151. package/lib/theme/cmsDevServerProcess.d.ts +2 -0
  152. package/lib/theme/cmsDevServerProcess.js +7 -6
  153. package/lib/ui/SpinniesManager.d.ts +1 -0
  154. package/lib/ui/SpinniesManager.js +20 -6
  155. package/lib/ui/spinniesUtils.d.ts +0 -1
  156. package/lib/ui/spinniesUtils.js +6 -16
  157. package/lib/usageTracking.d.ts +3 -4
  158. package/lib/yargs/makeYargsBuilder.d.ts +13 -0
  159. package/lib/yargs/makeYargsBuilder.js +33 -0
  160. package/lib/yargs/makeYargsHandlerWithUsageTracking.d.ts +3 -0
  161. package/lib/yargs/makeYargsHandlerWithUsageTracking.js +95 -0
  162. package/lib/yargs/strictEnforceBoolean.d.ts +1 -0
  163. package/lib/yargs/strictEnforceBoolean.js +13 -0
  164. package/lib/yargsUtils.d.ts +3 -16
  165. package/lib/yargsUtils.js +3 -48
  166. package/mcp-server/tools/cms/HsCreateTemplateTool.d.ts +1 -1
  167. package/package.json +10 -5
  168. package/types/LocalDev.d.ts +5 -0
  169. package/types/Projects.d.ts +19 -0
  170. package/types/Yargs.d.ts +18 -1
  171. package/api/__tests__/migrate.test.d.ts +0 -1
  172. package/api/__tests__/migrate.test.js +0 -199
  173. package/commands/__tests__/account.test.d.ts +0 -1
  174. package/commands/__tests__/account.test.js +0 -69
  175. package/commands/__tests__/auth.test.d.ts +0 -1
  176. package/commands/__tests__/auth.test.js +0 -43
  177. package/commands/__tests__/cms.test.d.ts +0 -1
  178. package/commands/__tests__/cms.test.js +0 -87
  179. package/commands/__tests__/config.test.d.ts +0 -1
  180. package/commands/__tests__/config.test.js +0 -44
  181. package/commands/__tests__/customObject.test.d.ts +0 -1
  182. package/commands/__tests__/customObject.test.js +0 -68
  183. package/commands/__tests__/doctor.test.d.ts +0 -1
  184. package/commands/__tests__/doctor.test.js +0 -132
  185. package/commands/__tests__/feedback.test.d.ts +0 -1
  186. package/commands/__tests__/feedback.test.js +0 -24
  187. package/commands/__tests__/filemanager.test.d.ts +0 -1
  188. package/commands/__tests__/filemanager.test.js +0 -45
  189. package/commands/__tests__/getStarted.test.d.ts +0 -1
  190. package/commands/__tests__/getStarted.test.js +0 -173
  191. package/commands/__tests__/hubdb.test.d.ts +0 -1
  192. package/commands/__tests__/hubdb.test.js +0 -50
  193. package/commands/__tests__/init.test.d.ts +0 -1
  194. package/commands/__tests__/init.test.js +0 -42
  195. package/commands/__tests__/mcp.test.d.ts +0 -1
  196. package/commands/__tests__/mcp.test.js +0 -46
  197. package/commands/__tests__/open.test.d.ts +0 -1
  198. package/commands/__tests__/open.test.js +0 -58
  199. package/commands/__tests__/project.test.d.ts +0 -1
  200. package/commands/__tests__/project.test.js +0 -125
  201. package/commands/__tests__/sandbox.test.d.ts +0 -1
  202. package/commands/__tests__/sandbox.test.js +0 -44
  203. package/commands/__tests__/secret.test.d.ts +0 -1
  204. package/commands/__tests__/secret.test.js +0 -49
  205. package/commands/__tests__/testAccount.test.d.ts +0 -1
  206. package/commands/__tests__/testAccount.test.js +0 -57
  207. package/commands/__tests__/upgrade.test.d.ts +0 -1
  208. package/commands/__tests__/upgrade.test.js +0 -309
  209. package/commands/account/__tests__/auth.test.d.ts +0 -1
  210. package/commands/account/__tests__/auth.test.js +0 -206
  211. package/commands/account/__tests__/clean.test.d.ts +0 -1
  212. package/commands/account/__tests__/clean.test.js +0 -28
  213. package/commands/account/__tests__/createOverride.test.d.ts +0 -1
  214. package/commands/account/__tests__/createOverride.test.js +0 -32
  215. package/commands/account/__tests__/info.test.d.ts +0 -1
  216. package/commands/account/__tests__/info.test.js +0 -28
  217. package/commands/account/__tests__/list.test.d.ts +0 -1
  218. package/commands/account/__tests__/list.test.js +0 -153
  219. package/commands/account/__tests__/remove.test.d.ts +0 -1
  220. package/commands/account/__tests__/remove.test.js +0 -36
  221. package/commands/account/__tests__/removeOverride.d.ts +0 -1
  222. package/commands/account/__tests__/removeOverride.js +0 -25
  223. package/commands/account/__tests__/rename.test.d.ts +0 -1
  224. package/commands/account/__tests__/rename.test.js +0 -82
  225. package/commands/account/__tests__/use.test.d.ts +0 -1
  226. package/commands/account/__tests__/use.test.js +0 -170
  227. package/commands/app/__tests__/migrate.test.d.ts +0 -1
  228. package/commands/app/__tests__/migrate.test.js +0 -111
  229. package/commands/app/secret/__tests__/add.test.d.ts +0 -1
  230. package/commands/app/secret/__tests__/add.test.js +0 -140
  231. package/commands/app/secret/__tests__/delete.test.d.ts +0 -1
  232. package/commands/app/secret/__tests__/delete.test.js +0 -28
  233. package/commands/app/secret/__tests__/list.test.d.ts +0 -1
  234. package/commands/app/secret/__tests__/list.test.js +0 -25
  235. package/commands/app/secret/__tests__/update.test.d.ts +0 -1
  236. package/commands/app/secret/__tests__/update.test.js +0 -28
  237. package/commands/cms/__tests__/delete.test.d.ts +0 -1
  238. package/commands/cms/__tests__/delete.test.js +0 -39
  239. package/commands/cms/__tests__/fetch.test.d.ts +0 -1
  240. package/commands/cms/__tests__/fetch.test.js +0 -156
  241. package/commands/cms/__tests__/function.test.d.ts +0 -1
  242. package/commands/cms/__tests__/function.test.js +0 -50
  243. package/commands/cms/__tests__/lint.test.d.ts +0 -1
  244. package/commands/cms/__tests__/lint.test.js +0 -33
  245. package/commands/cms/__tests__/list.test.d.ts +0 -1
  246. package/commands/cms/__tests__/list.test.js +0 -42
  247. package/commands/cms/__tests__/module.test.d.ts +0 -1
  248. package/commands/cms/__tests__/module.test.js +0 -45
  249. package/commands/cms/__tests__/mv.test.d.ts +0 -1
  250. package/commands/cms/__tests__/mv.test.js +0 -46
  251. package/commands/cms/__tests__/theme.test.d.ts +0 -1
  252. package/commands/cms/__tests__/theme.test.js +0 -54
  253. package/commands/cms/__tests__/upload.test.d.ts +0 -1
  254. package/commands/cms/__tests__/upload.test.js +0 -312
  255. package/commands/cms/__tests__/watch.test.d.ts +0 -1
  256. package/commands/cms/__tests__/watch.test.js +0 -204
  257. package/commands/cms/function/__tests__/logs.test.d.ts +0 -1
  258. package/commands/cms/function/__tests__/logs.test.js +0 -70
  259. package/commands/cms/theme/__tests__/generate-selectors.test.d.ts +0 -1
  260. package/commands/cms/theme/__tests__/generate-selectors.test.js +0 -28
  261. package/commands/cms/theme/__tests__/marketplace-validate.test.d.ts +0 -1
  262. package/commands/cms/theme/__tests__/marketplace-validate.test.js +0 -36
  263. package/commands/cms/theme/__tests__/preview.test.d.ts +0 -1
  264. package/commands/cms/theme/__tests__/preview.test.js +0 -54
  265. package/commands/customObject/__tests__/create.test.d.ts +0 -1
  266. package/commands/customObject/__tests__/create.test.js +0 -40
  267. package/commands/customObject/__tests__/createSchema.test.d.ts +0 -1
  268. package/commands/customObject/__tests__/createSchema.test.js +0 -28
  269. package/commands/customObject/__tests__/deleteSchema.test.d.ts +0 -1
  270. package/commands/customObject/__tests__/deleteSchema.test.js +0 -42
  271. package/commands/customObject/__tests__/fetch-all-schemas.test.d.ts +0 -1
  272. package/commands/customObject/__tests__/fetch-all-schemas.test.js +0 -41
  273. package/commands/customObject/__tests__/fetchSchema.test.d.ts +0 -1
  274. package/commands/customObject/__tests__/fetchSchema.test.js +0 -45
  275. package/commands/customObject/__tests__/listSchemas.test.d.ts +0 -1
  276. package/commands/customObject/__tests__/listSchemas.test.js +0 -29
  277. package/commands/customObject/__tests__/updateSchema.test.d.ts +0 -1
  278. package/commands/customObject/__tests__/updateSchema.test.js +0 -40
  279. package/commands/filemanager/__tests__/fetch.test.d.ts +0 -1
  280. package/commands/filemanager/__tests__/fetch.test.js +0 -32
  281. package/commands/filemanager/__tests__/upload.test.d.ts +0 -1
  282. package/commands/filemanager/__tests__/upload.test.js +0 -191
  283. package/commands/hubdb/__tests__/clear.test.d.ts +0 -1
  284. package/commands/hubdb/__tests__/clear.test.js +0 -28
  285. package/commands/hubdb/__tests__/create.test.d.ts +0 -1
  286. package/commands/hubdb/__tests__/create.test.js +0 -28
  287. package/commands/hubdb/__tests__/delete.test.d.ts +0 -1
  288. package/commands/hubdb/__tests__/delete.test.js +0 -28
  289. package/commands/hubdb/__tests__/fetch.test.d.ts +0 -1
  290. package/commands/hubdb/__tests__/fetch.test.js +0 -28
  291. package/commands/hubdb/__tests__/list.test.d.ts +0 -1
  292. package/commands/hubdb/__tests__/list.test.js +0 -88
  293. package/commands/mcp/__tests__/setup.test.d.ts +0 -1
  294. package/commands/mcp/__tests__/setup.test.js +0 -26
  295. package/commands/mcp/__tests__/start.test.d.ts +0 -1
  296. package/commands/mcp/__tests__/start.test.js +0 -144
  297. package/commands/project/__tests__/add.test.d.ts +0 -1
  298. package/commands/project/__tests__/add.test.js +0 -107
  299. package/commands/project/__tests__/create.test.d.ts +0 -1
  300. package/commands/project/__tests__/create.test.js +0 -97
  301. package/commands/project/__tests__/deploy.test.d.ts +0 -1
  302. package/commands/project/__tests__/deploy.test.js +0 -307
  303. package/commands/project/__tests__/dev.test.d.ts +0 -1
  304. package/commands/project/__tests__/dev.test.js +0 -273
  305. package/commands/project/__tests__/devUnifiedFlow.test.d.ts +0 -1
  306. package/commands/project/__tests__/devUnifiedFlow.test.js +0 -434
  307. package/commands/project/__tests__/download.test.d.ts +0 -1
  308. package/commands/project/__tests__/download.test.js +0 -39
  309. package/commands/project/__tests__/info.test.d.ts +0 -1
  310. package/commands/project/__tests__/info.test.js +0 -145
  311. package/commands/project/__tests__/installDeps.test.d.ts +0 -1
  312. package/commands/project/__tests__/installDeps.test.js +0 -140
  313. package/commands/project/__tests__/lint.test.d.ts +0 -1
  314. package/commands/project/__tests__/lint.test.js +0 -704
  315. package/commands/project/__tests__/list.test.d.ts +0 -1
  316. package/commands/project/__tests__/list.test.js +0 -31
  317. package/commands/project/__tests__/listBuilds.test.d.ts +0 -1
  318. package/commands/project/__tests__/listBuilds.test.js +0 -38
  319. package/commands/project/__tests__/logs.test.d.ts +0 -1
  320. package/commands/project/__tests__/logs.test.js +0 -202
  321. package/commands/project/__tests__/migrate.test.d.ts +0 -1
  322. package/commands/project/__tests__/migrate.test.js +0 -106
  323. package/commands/project/__tests__/open.test.d.ts +0 -1
  324. package/commands/project/__tests__/open.test.js +0 -39
  325. package/commands/project/__tests__/profile.test.d.ts +0 -1
  326. package/commands/project/__tests__/profile.test.js +0 -42
  327. package/commands/project/__tests__/updateDeps.test.d.ts +0 -1
  328. package/commands/project/__tests__/updateDeps.test.js +0 -140
  329. package/commands/project/__tests__/upload.test.d.ts +0 -1
  330. package/commands/project/__tests__/upload.test.js +0 -234
  331. package/commands/project/__tests__/validate.test.d.ts +0 -1
  332. package/commands/project/__tests__/validate.test.js +0 -381
  333. package/commands/project/__tests__/watch.test.d.ts +0 -1
  334. package/commands/project/__tests__/watch.test.js +0 -35
  335. package/commands/sandbox/__tests__/create.test.d.ts +0 -1
  336. package/commands/sandbox/__tests__/create.test.js +0 -198
  337. package/commands/sandbox/__tests__/delete.test.d.ts +0 -1
  338. package/commands/sandbox/__tests__/delete.test.js +0 -31
  339. package/commands/secret/__tests__/addSecret.test.d.ts +0 -1
  340. package/commands/secret/__tests__/addSecret.test.js +0 -162
  341. package/commands/secret/__tests__/deleteSecret.test.d.ts +0 -1
  342. package/commands/secret/__tests__/deleteSecret.test.js +0 -41
  343. package/commands/secret/__tests__/listSecret.test.d.ts +0 -1
  344. package/commands/secret/__tests__/listSecret.test.js +0 -29
  345. package/commands/secret/__tests__/updateSecret.test.d.ts +0 -1
  346. package/commands/secret/__tests__/updateSecret.test.js +0 -29
  347. package/commands/testAccount/__tests__/create.test.d.ts +0 -1
  348. package/commands/testAccount/__tests__/create.test.js +0 -106
  349. package/commands/testAccount/__tests__/createConfig.test.d.ts +0 -1
  350. package/commands/testAccount/__tests__/createConfig.test.js +0 -32
  351. package/commands/testAccount/__tests__/delete.test.d.ts +0 -1
  352. package/commands/testAccount/__tests__/delete.test.js +0 -29
  353. package/commands/testAccount/__tests__/importData.test.d.ts +0 -1
  354. package/commands/testAccount/__tests__/importData.test.js +0 -92
  355. package/lib/__tests__/CLIWebSocketServer.test.d.ts +0 -1
  356. package/lib/__tests__/CLIWebSocketServer.test.js +0 -252
  357. package/lib/__tests__/accountAuth.test.d.ts +0 -1
  358. package/lib/__tests__/accountAuth.test.js +0 -258
  359. package/lib/__tests__/accountTypes.test.d.ts +0 -1
  360. package/lib/__tests__/accountTypes.test.js +0 -98
  361. package/lib/__tests__/buildAccount.test.d.ts +0 -1
  362. package/lib/__tests__/buildAccount.test.js +0 -211
  363. package/lib/__tests__/cliUpgradeUtils.test.d.ts +0 -1
  364. package/lib/__tests__/cliUpgradeUtils.test.js +0 -131
  365. package/lib/__tests__/commandSuggestion.test.d.ts +0 -1
  366. package/lib/__tests__/commandSuggestion.test.js +0 -121
  367. package/lib/__tests__/commonOpts.test.d.ts +0 -1
  368. package/lib/__tests__/commonOpts.test.js +0 -80
  369. package/lib/__tests__/dependencyManagement.test.d.ts +0 -1
  370. package/lib/__tests__/dependencyManagement.test.js +0 -1067
  371. package/lib/__tests__/developerTestAccounts.test.d.ts +0 -1
  372. package/lib/__tests__/developerTestAccounts.test.js +0 -156
  373. package/lib/__tests__/hasFeature.test.d.ts +0 -1
  374. package/lib/__tests__/hasFeature.test.js +0 -167
  375. package/lib/__tests__/http.test.d.ts +0 -1
  376. package/lib/__tests__/http.test.js +0 -40
  377. package/lib/__tests__/importData.test.d.ts +0 -1
  378. package/lib/__tests__/importData.test.js +0 -98
  379. package/lib/__tests__/npmCli.test.d.ts +0 -1
  380. package/lib/__tests__/npmCli.test.js +0 -84
  381. package/lib/__tests__/oauth.test.d.ts +0 -1
  382. package/lib/__tests__/oauth.test.js +0 -109
  383. package/lib/__tests__/parsing.test.d.ts +0 -1
  384. package/lib/__tests__/parsing.test.js +0 -34
  385. package/lib/__tests__/polling.test.d.ts +0 -1
  386. package/lib/__tests__/polling.test.js +0 -76
  387. package/lib/__tests__/process.test.d.ts +0 -1
  388. package/lib/__tests__/process.test.js +0 -89
  389. package/lib/__tests__/sandboxes.test.d.ts +0 -1
  390. package/lib/__tests__/sandboxes.test.js +0 -128
  391. package/lib/__tests__/serverlessLogs.test.d.ts +0 -1
  392. package/lib/__tests__/serverlessLogs.test.js +0 -163
  393. package/lib/__tests__/usageTracking.test.d.ts +0 -1
  394. package/lib/__tests__/usageTracking.test.js +0 -197
  395. package/lib/__tests__/validation.test.d.ts +0 -1
  396. package/lib/__tests__/validation.test.js +0 -143
  397. package/lib/__tests__/yargsUtils.test.d.ts +0 -1
  398. package/lib/__tests__/yargsUtils.test.js +0 -124
  399. package/lib/app/__tests__/migrate.test.d.ts +0 -1
  400. package/lib/app/__tests__/migrate.test.js +0 -638
  401. package/lib/doctor/__tests__/Diagnosis.test.d.ts +0 -1
  402. package/lib/doctor/__tests__/Diagnosis.test.js +0 -84
  403. package/lib/doctor/__tests__/DiagnosticInfoBuilder.test.d.ts +0 -1
  404. package/lib/doctor/__tests__/DiagnosticInfoBuilder.test.js +0 -177
  405. package/lib/doctor/__tests__/Doctor.test.d.ts +0 -1
  406. package/lib/doctor/__tests__/Doctor.test.js +0 -560
  407. package/lib/errorHandlers/__tests__/index.test.d.ts +0 -1
  408. package/lib/errorHandlers/__tests__/index.test.js +0 -278
  409. package/lib/mcp/__tests__/setup.test.d.ts +0 -1
  410. package/lib/mcp/__tests__/setup.test.js +0 -523
  411. package/lib/middleware/__tests__/commandTargetingUtils.test.d.ts +0 -1
  412. package/lib/middleware/__tests__/commandTargetingUtils.test.js +0 -99
  413. package/lib/middleware/__tests__/configMiddleware.test.d.ts +0 -1
  414. package/lib/middleware/__tests__/configMiddleware.test.js +0 -118
  415. package/lib/middleware/__tests__/gitMiddleware.test.d.ts +0 -1
  416. package/lib/middleware/__tests__/gitMiddleware.test.js +0 -43
  417. package/lib/middleware/__tests__/requestMiddleware.test.d.ts +0 -1
  418. package/lib/middleware/__tests__/requestMiddleware.test.js +0 -15
  419. package/lib/middleware/__tests__/usageTrackingMiddleware.test.d.ts +0 -1
  420. package/lib/middleware/__tests__/usageTrackingMiddleware.test.js +0 -44
  421. package/lib/middleware/__tests__/yargsChecksMiddleware.test.d.ts +0 -1
  422. package/lib/middleware/__tests__/yargsChecksMiddleware.test.js +0 -39
  423. package/lib/projects/__tests__/AppDevModeInterface.test.d.ts +0 -1
  424. package/lib/projects/__tests__/AppDevModeInterface.test.js +0 -541
  425. package/lib/projects/__tests__/DevServerManager.test.d.ts +0 -1
  426. package/lib/projects/__tests__/DevServerManager.test.js +0 -185
  427. package/lib/projects/__tests__/DevSessionManager.test.d.ts +0 -1
  428. package/lib/projects/__tests__/DevSessionManager.test.js +0 -250
  429. package/lib/projects/__tests__/LocalDevProcess.test.d.ts +0 -1
  430. package/lib/projects/__tests__/LocalDevProcess.test.js +0 -481
  431. package/lib/projects/__tests__/LocalDevWebsocketServer.test.d.ts +0 -1
  432. package/lib/projects/__tests__/LocalDevWebsocketServer.test.js +0 -231
  433. package/lib/projects/__tests__/ProjectLogsManager.test.d.ts +0 -1
  434. package/lib/projects/__tests__/ProjectLogsManager.test.js +0 -302
  435. package/lib/projects/__tests__/UIExtensionsDevModeInterface.test.d.ts +0 -1
  436. package/lib/projects/__tests__/UIExtensionsDevModeInterface.test.js +0 -160
  437. package/lib/projects/__tests__/components.test.d.ts +0 -1
  438. package/lib/projects/__tests__/components.test.js +0 -440
  439. package/lib/projects/__tests__/deploy.test.d.ts +0 -1
  440. package/lib/projects/__tests__/deploy.test.js +0 -231
  441. package/lib/projects/__tests__/localDevProjectHelpers.test.d.ts +0 -1
  442. package/lib/projects/__tests__/localDevProjectHelpers.test.js +0 -120
  443. package/lib/projects/__tests__/platformVersion.test.d.ts +0 -1
  444. package/lib/projects/__tests__/platformVersion.test.js +0 -63
  445. package/lib/projects/__tests__/pollProjectBuildAndDeploy.test.d.ts +0 -1
  446. package/lib/projects/__tests__/pollProjectBuildAndDeploy.test.js +0 -328
  447. package/lib/projects/__tests__/projectInfo.test.d.ts +0 -1
  448. package/lib/projects/__tests__/projectInfo.test.js +0 -114
  449. package/lib/projects/__tests__/projectProfiles.test.d.ts +0 -1
  450. package/lib/projects/__tests__/projectProfiles.test.js +0 -441
  451. package/lib/projects/__tests__/projects.test.d.ts +0 -1
  452. package/lib/projects/__tests__/projects.test.js +0 -58
  453. package/lib/projects/__tests__/structure.test.d.ts +0 -1
  454. package/lib/projects/__tests__/structure.test.js +0 -210
  455. package/lib/projects/__tests__/uieLinting.test.d.ts +0 -1
  456. package/lib/projects/__tests__/uieLinting.test.js +0 -631
  457. package/lib/projects/__tests__/upload.test.d.ts +0 -1
  458. package/lib/projects/__tests__/upload.test.js +0 -183
  459. package/lib/projects/add/__tests__/legacyAddComponent.test.d.ts +0 -1
  460. package/lib/projects/add/__tests__/legacyAddComponent.test.js +0 -245
  461. package/lib/projects/add/__tests__/v2AddComponent.test.d.ts +0 -1
  462. package/lib/projects/add/__tests__/v2AddComponent.test.js +0 -343
  463. package/lib/projects/create/__tests__/legacy.test.d.ts +0 -1
  464. package/lib/projects/create/__tests__/legacy.test.js +0 -72
  465. package/lib/projects/create/__tests__/v2.test.d.ts +0 -1
  466. package/lib/projects/create/__tests__/v2.test.js +0 -257
  467. package/lib/prompts/__tests__/createDeveloperTestAccountConfigPrompt.test.d.ts +0 -1
  468. package/lib/prompts/__tests__/createDeveloperTestAccountConfigPrompt.test.js +0 -157
  469. package/lib/prompts/__tests__/createFunctionPrompt.test.d.ts +0 -1
  470. package/lib/prompts/__tests__/createFunctionPrompt.test.js +0 -129
  471. package/lib/prompts/__tests__/createModulePrompt.test.d.ts +0 -1
  472. package/lib/prompts/__tests__/createModulePrompt.test.js +0 -187
  473. package/lib/prompts/__tests__/createTemplatePrompt.test.d.ts +0 -1
  474. package/lib/prompts/__tests__/createTemplatePrompt.test.js +0 -102
  475. package/lib/prompts/__tests__/downloadProjectPrompt.test.d.ts +0 -1
  476. package/lib/prompts/__tests__/downloadProjectPrompt.test.js +0 -31
  477. package/lib/prompts/__tests__/projectAddPrompt.test.d.ts +0 -1
  478. package/lib/prompts/__tests__/projectAddPrompt.test.js +0 -143
  479. package/lib/prompts/__tests__/projectsLogsPrompt.test.d.ts +0 -1
  480. package/lib/prompts/__tests__/projectsLogsPrompt.test.js +0 -37
  481. package/lib/prompts/__tests__/selectProjectTemplatePrompt.test.d.ts +0 -1
  482. package/lib/prompts/__tests__/selectProjectTemplatePrompt.test.js +0 -160
  483. package/lib/theme/__tests__/migrate.test.d.ts +0 -1
  484. package/lib/theme/__tests__/migrate.test.js +0 -247
  485. package/lib/ui/__tests__/SpinniesManager.test.d.ts +0 -1
  486. package/lib/ui/__tests__/SpinniesManager.test.js +0 -488
  487. package/lib/ui/__tests__/removeAnsiCodes.test.d.ts +0 -1
  488. package/lib/ui/__tests__/removeAnsiCodes.test.js +0 -84
  489. package/mcp-server/tools/cms/__tests__/HsCreateFunctionTool.test.d.ts +0 -1
  490. package/mcp-server/tools/cms/__tests__/HsCreateFunctionTool.test.js +0 -254
  491. package/mcp-server/tools/cms/__tests__/HsCreateModuleTool.test.d.ts +0 -1
  492. package/mcp-server/tools/cms/__tests__/HsCreateModuleTool.test.js +0 -227
  493. package/mcp-server/tools/cms/__tests__/HsCreateTemplateTool.test.d.ts +0 -1
  494. package/mcp-server/tools/cms/__tests__/HsCreateTemplateTool.test.js +0 -208
  495. package/mcp-server/tools/cms/__tests__/HsFunctionLogsTool.test.d.ts +0 -1
  496. package/mcp-server/tools/cms/__tests__/HsFunctionLogsTool.test.js +0 -186
  497. package/mcp-server/tools/cms/__tests__/HsListFunctionsTool.test.d.ts +0 -1
  498. package/mcp-server/tools/cms/__tests__/HsListFunctionsTool.test.js +0 -124
  499. package/mcp-server/tools/cms/__tests__/HsListTool.test.d.ts +0 -1
  500. package/mcp-server/tools/cms/__tests__/HsListTool.test.js +0 -124
  501. package/mcp-server/tools/project/__tests__/AddFeatureToProjectTool.test.d.ts +0 -1
  502. package/mcp-server/tools/project/__tests__/AddFeatureToProjectTool.test.js +0 -157
  503. package/mcp-server/tools/project/__tests__/CreateProjectTool.test.d.ts +0 -1
  504. package/mcp-server/tools/project/__tests__/CreateProjectTool.test.js +0 -131
  505. package/mcp-server/tools/project/__tests__/CreateTestAccountTool.test.d.ts +0 -1
  506. package/mcp-server/tools/project/__tests__/CreateTestAccountTool.test.js +0 -461
  507. package/mcp-server/tools/project/__tests__/DeployProjectTool.test.d.ts +0 -1
  508. package/mcp-server/tools/project/__tests__/DeployProjectTool.test.js +0 -125
  509. package/mcp-server/tools/project/__tests__/DocFetchTool.test.d.ts +0 -1
  510. package/mcp-server/tools/project/__tests__/DocFetchTool.test.js +0 -125
  511. package/mcp-server/tools/project/__tests__/DocsSearchTool.test.d.ts +0 -1
  512. package/mcp-server/tools/project/__tests__/DocsSearchTool.test.js +0 -210
  513. package/mcp-server/tools/project/__tests__/GetApiUsagePatternsByAppIdTool.test.d.ts +0 -1
  514. package/mcp-server/tools/project/__tests__/GetApiUsagePatternsByAppIdTool.test.js +0 -146
  515. package/mcp-server/tools/project/__tests__/GetApplicationInfoTool.test.d.ts +0 -1
  516. package/mcp-server/tools/project/__tests__/GetApplicationInfoTool.test.js +0 -124
  517. package/mcp-server/tools/project/__tests__/GetBuildLogsTool.test.d.ts +0 -1
  518. package/mcp-server/tools/project/__tests__/GetBuildLogsTool.test.js +0 -307
  519. package/mcp-server/tools/project/__tests__/GetBuildStatusTool.test.d.ts +0 -1
  520. package/mcp-server/tools/project/__tests__/GetBuildStatusTool.test.js +0 -242
  521. package/mcp-server/tools/project/__tests__/GetConfigValuesTool.test.d.ts +0 -1
  522. package/mcp-server/tools/project/__tests__/GetConfigValuesTool.test.js +0 -209
  523. package/mcp-server/tools/project/__tests__/GuidedWalkthroughTool.test.d.ts +0 -1
  524. package/mcp-server/tools/project/__tests__/GuidedWalkthroughTool.test.js +0 -158
  525. package/mcp-server/tools/project/__tests__/UploadProjectTools.test.d.ts +0 -1
  526. package/mcp-server/tools/project/__tests__/UploadProjectTools.test.js +0 -187
  527. package/mcp-server/tools/project/__tests__/ValidateProjectTool.test.d.ts +0 -1
  528. package/mcp-server/tools/project/__tests__/ValidateProjectTool.test.js +0 -118
  529. package/mcp-server/utils/__tests__/command.test.d.ts +0 -1
  530. package/mcp-server/utils/__tests__/command.test.js +0 -275
  531. package/mcp-server/utils/__tests__/content.test.d.ts +0 -1
  532. package/mcp-server/utils/__tests__/content.test.js +0 -164
  533. package/mcp-server/utils/__tests__/feedbackTracking.test.d.ts +0 -1
  534. package/mcp-server/utils/__tests__/feedbackTracking.test.js +0 -69
@@ -6,21 +6,20 @@ import { getHubSpotWebsiteOrigin } from '@hubspot/local-dev-lib/urls';
6
6
  import { listPrompt } from '../../lib/prompts/promptUtils.js';
7
7
  import { logError } from '../../lib/errorHandlers/index.js';
8
8
  import { checkAndConvertToJson } from '../../lib/validation.js';
9
- import { trackCommandUsage } from '../../lib/usageTracking.js';
10
9
  import { commands } from '../../lang/en.js';
11
10
  import { EXIT_CODES } from '../../lib/enums/exitCodes.js';
12
11
  import { isSchemaDefinition } from '../../lib/customObject.js';
12
+ import { makeYargsHandlerWithUsageTracking } from '../../lib/yargs/makeYargsHandlerWithUsageTracking.js';
13
13
  import { makeYargsBuilder } from '../../lib/yargsUtils.js';
14
14
  const command = 'update-schema [name]';
15
15
  const describe = commands.customObject.subcommands.updateSchema.describe;
16
16
  async function handler(args) {
17
- const { path, name: providedName, derivedAccountId } = args;
18
- trackCommandUsage('custom-object-schema-update', {}, derivedAccountId);
17
+ const { path, name: providedName, derivedAccountId, exit } = args;
19
18
  const filePath = getAbsoluteFilePath(path);
20
19
  const schemaJson = checkAndConvertToJson(filePath);
21
20
  if (!isSchemaDefinition(schemaJson)) {
22
21
  uiLogger.error(commands.customObject.subcommands.updateSchema.errors.invalidSchema);
23
- process.exit(EXIT_CODES.ERROR);
22
+ return exit(EXIT_CODES.ERROR);
24
23
  }
25
24
  let name = providedName;
26
25
  try {
@@ -64,7 +63,7 @@ const builder = makeYargsBuilder(schemaUpdateBuilder, command, describe, {
64
63
  const updateSchemaCommand = {
65
64
  command,
66
65
  describe,
67
- handler,
66
+ handler: makeYargsHandlerWithUsageTracking('custom-object-schema-update', handler),
68
67
  builder,
69
68
  };
70
69
  export default updateSchemaCommand;
@@ -1,9 +1,10 @@
1
1
  import path from 'path';
2
2
  import fs from 'fs';
3
- import { trackCommandMetadataUsage, trackCommandUsage, } from '../lib/usageTracking.js';
3
+ import { trackCommandMetadataUsage } from '../lib/usageTracking.js';
4
4
  import { Doctor } from '../lib/doctor/Doctor.js';
5
5
  import { EXIT_CODES } from '../lib/enums/exitCodes.js';
6
6
  import { getCwd } from '@hubspot/local-dev-lib/path';
7
+ import { makeYargsHandlerWithUsageTracking } from '../lib/yargs/makeYargsHandlerWithUsageTracking.js';
7
8
  import { makeYargsBuilder } from '../lib/yargsUtils.js';
8
9
  import { uiLogger } from '../lib/ui/logger.js';
9
10
  import { removeAnsiCodes } from '../lib/ui/removeAnsiCodes.js';
@@ -12,9 +13,8 @@ import { getErrorMessage } from '../lib/errorHandlers/index.js';
12
13
  const command = 'doctor';
13
14
  const describe = commands.doctor.describe;
14
15
  const handler = async (args) => {
15
- const { outputDir } = args;
16
+ const { outputDir, exit } = args;
16
17
  const doctor = new Doctor();
17
- trackCommandUsage(command, undefined, doctor.accountId || undefined);
18
18
  const output = await doctor.diagnose();
19
19
  const totalCount = (output?.errorCount || 0) + (output?.warningCount || 0);
20
20
  if (totalCount > 0) {
@@ -26,9 +26,9 @@ const handler = async (args) => {
26
26
  }
27
27
  else {
28
28
  uiLogger.error(commands.doctor.errors.generatingDiagnosis);
29
- return process.exit(EXIT_CODES.ERROR);
29
+ return exit(EXIT_CODES.ERROR);
30
30
  }
31
- return process.exit(EXIT_CODES.SUCCESS);
31
+ return exit(EXIT_CODES.SUCCESS);
32
32
  }
33
33
  let outputDirPath = outputDir;
34
34
  if (!path.isAbsolute(outputDirPath)) {
@@ -47,9 +47,9 @@ const handler = async (args) => {
47
47
  }
48
48
  catch (e) {
49
49
  uiLogger.error(commands.doctor.errors.unableToWriteOutputFile(outputFile, getErrorMessage(e)));
50
- return process.exit(EXIT_CODES.ERROR);
50
+ return exit(EXIT_CODES.ERROR);
51
51
  }
52
- return process.exit(EXIT_CODES.SUCCESS);
52
+ return exit(EXIT_CODES.SUCCESS);
53
53
  };
54
54
  function doctorBuilder(yargs) {
55
55
  yargs.option('output-dir', {
@@ -64,7 +64,7 @@ const builder = makeYargsBuilder(doctorBuilder, command, describe, {
64
64
  const doctorCommand = {
65
65
  command,
66
66
  describe,
67
- handler,
67
+ handler: makeYargsHandlerWithUsageTracking('doctor', handler),
68
68
  builder,
69
69
  };
70
70
  export default doctorCommand;
@@ -1,5 +1,6 @@
1
1
  import open from 'open';
2
2
  import { confirmPrompt } from '../lib/prompts/promptUtils.js';
3
+ import { makeYargsHandlerWithUsageTracking } from '../lib/yargs/makeYargsHandlerWithUsageTracking.js';
3
4
  import { makeYargsBuilder } from '../lib/yargsUtils.js';
4
5
  import { EXIT_CODES } from '../lib/enums/exitCodes.js';
5
6
  import { commands } from '../lang/en.js';
@@ -7,15 +8,16 @@ import { uiLogger } from '../lib/ui/logger.js';
7
8
  import { FEEDBACK_URL } from '../lib/constants.js';
8
9
  const command = 'feedback';
9
10
  const describe = commands.project.feedback.describe;
10
- async function handler() {
11
+ async function handler(args) {
12
+ const { exit } = args;
11
13
  const shouldOpen = await confirmPrompt(commands.project.feedback.openPrompt);
12
14
  if (!shouldOpen) {
13
15
  uiLogger.log(commands.project.feedback.error(FEEDBACK_URL));
14
- process.exit(EXIT_CODES.SUCCESS);
16
+ return exit(EXIT_CODES.SUCCESS);
15
17
  }
16
18
  open(FEEDBACK_URL, { url: true });
17
19
  uiLogger.success(commands.project.feedback.success(FEEDBACK_URL));
18
- process.exit(EXIT_CODES.SUCCESS);
20
+ return exit(EXIT_CODES.SUCCESS);
19
21
  }
20
22
  function feedbackBuilder(yargs) {
21
23
  return yargs;
@@ -26,7 +28,7 @@ const builder = makeYargsBuilder(feedbackBuilder, command, describe, {
26
28
  const feedbackCommand = {
27
29
  command,
28
30
  describe,
29
- handler,
31
+ handler: makeYargsHandlerWithUsageTracking('feedback', handler),
30
32
  builder,
31
33
  };
32
34
  export default feedbackCommand;
@@ -1,29 +1,28 @@
1
1
  import { downloadFileOrFolder } from '@hubspot/local-dev-lib/fileManager';
2
2
  import { uiLogger } from '../../lib/ui/logger.js';
3
3
  import { resolveLocalPath } from '../../lib/filesystem.js';
4
- import { trackCommandUsage } from '../../lib/usageTracking.js';
5
4
  import { commands } from '../../lang/en.js';
6
5
  import { EXIT_CODES } from '../../lib/enums/exitCodes.js';
7
6
  import { logError } from '../../lib/errorHandlers/index.js';
8
7
  import { addOverwriteOptions } from '../../lib/commonOpts.js';
8
+ import { makeYargsHandlerWithUsageTracking } from '../../lib/yargs/makeYargsHandlerWithUsageTracking.js';
9
9
  import { makeYargsBuilder } from '../../lib/yargsUtils.js';
10
10
  const command = 'fetch <src> [dest]';
11
11
  const describe = commands.filemanager.subcommands.fetch.describe;
12
12
  async function handler(args) {
13
- const { src, includeArchived, derivedAccountId, overwrite } = args;
13
+ const { src, includeArchived, derivedAccountId, overwrite, exit } = args;
14
14
  if (typeof src !== 'string') {
15
15
  uiLogger.error(commands.filemanager.subcommands.fetch.errors.sourceRequired);
16
- process.exit(EXIT_CODES.ERROR);
16
+ return exit(EXIT_CODES.ERROR);
17
17
  }
18
18
  const dest = resolveLocalPath(args.dest);
19
- trackCommandUsage('filemanager-fetch', {}, derivedAccountId);
20
19
  try {
21
20
  // Fetch and write file/folder.
22
21
  await downloadFileOrFolder(derivedAccountId, src, dest, overwrite, includeArchived || false);
23
22
  }
24
23
  catch (err) {
25
24
  logError(err);
26
- process.exit(EXIT_CODES.ERROR);
25
+ return exit(EXIT_CODES.ERROR);
27
26
  }
28
27
  }
29
28
  function fileManagerFetchBuilder(yargs) {
@@ -52,7 +51,7 @@ const builder = makeYargsBuilder(fileManagerFetchBuilder, command, describe, {
52
51
  const fileManagerFetchCommand = {
53
52
  command,
54
53
  describe,
55
- handler,
54
+ handler: makeYargsHandlerWithUsageTracking('filemanager-fetch', handler),
56
55
  builder,
57
56
  };
58
57
  export default fileManagerFetchCommand;
@@ -7,14 +7,14 @@ import { uiLogger } from '../../lib/ui/logger.js';
7
7
  import { validateSrcAndDestPaths } from '@hubspot/local-dev-lib/cms/modules';
8
8
  import { shouldIgnoreFile } from '@hubspot/local-dev-lib/ignoreRules';
9
9
  import { ApiErrorContext, logError } from '../../lib/errorHandlers/index.js';
10
- import { trackCommandUsage } from '../../lib/usageTracking.js';
11
10
  import { commands } from '../../lang/en.js';
12
11
  import { EXIT_CODES } from '../../lib/enums/exitCodes.js';
12
+ import { makeYargsHandlerWithUsageTracking } from '../../lib/yargs/makeYargsHandlerWithUsageTracking.js';
13
13
  import { makeYargsBuilder } from '../../lib/yargsUtils.js';
14
14
  const command = 'upload <src> <dest>';
15
15
  const describe = commands.filemanager.subcommands.upload.describe;
16
16
  async function handler(args) {
17
- const { src, dest, derivedAccountId } = args;
17
+ const { src, dest, derivedAccountId, addUsageMetadata, exit } = args;
18
18
  const absoluteSrcPath = path.resolve(getCwd(), src);
19
19
  let stats;
20
20
  try {
@@ -33,11 +33,11 @@ async function handler(args) {
33
33
  return;
34
34
  }
35
35
  const normalizedDest = convertToUnixPath(dest);
36
- trackCommandUsage('filemanager-upload', { type: stats.isFile() ? 'file' : 'folder' }, derivedAccountId);
36
+ addUsageMetadata({ type: stats.isFile() ? 'file' : 'folder' });
37
37
  const srcDestIssues = await validateSrcAndDestPaths({ isLocal: true, path: src }, { isHubSpot: true, path: dest });
38
38
  if (srcDestIssues.length) {
39
39
  srcDestIssues.forEach(({ message }) => uiLogger.error(message));
40
- process.exit(EXIT_CODES.ERROR);
40
+ return exit(EXIT_CODES.ERROR);
41
41
  }
42
42
  if (stats.isFile()) {
43
43
  if (shouldIgnoreFile(absoluteSrcPath)) {
@@ -91,7 +91,7 @@ const builder = makeYargsBuilder(fileManagerUploadBuilder, command, describe, {
91
91
  const fileManagerUploadCommand = {
92
92
  command,
93
93
  describe,
94
- handler,
94
+ handler: makeYargsHandlerWithUsageTracking('filemanager-upload', handler),
95
95
  builder,
96
96
  };
97
97
  export default fileManagerUploadCommand;
@@ -13,8 +13,9 @@ import { projectNameAndDestPrompt } from '../lib/prompts/projectNameAndDestPromp
13
13
  import { promptUser } from '../lib/prompts/promptUtils.js';
14
14
  import { uiAccountDescription, uiFeatureHighlight, uiInfoSection, } from '../lib/ui/index.js';
15
15
  import { uiLogger } from '../lib/ui/logger.js';
16
- import { trackCommandMetadataUsage, trackCommandUsage, } from '../lib/usageTracking.js';
16
+ import { trackCommandMetadataUsage } from '../lib/usageTracking.js';
17
17
  import { makeYargsBuilder } from '../lib/yargsUtils.js';
18
+ import { makeYargsHandlerWithUsageTracking } from '../lib/yargs/makeYargsHandlerWithUsageTracking.js';
18
19
  import { isV2Project } from '../lib/projects/platformVersion.js';
19
20
  import { pollProjectBuildAndDeploy } from '../lib/projects/pollProjectBuildAndDeploy.js';
20
21
  import { fetchPublicAppsForPortal } from '@hubspot/local-dev-lib/api/appsDev';
@@ -26,9 +27,8 @@ import { runGetStartedV2 } from '../lib/getStarted/getStartedV2.js';
26
27
  const command = 'get-started';
27
28
  const describe = commands.getStarted.describe;
28
29
  async function handler(args) {
29
- const { derivedAccountId } = args;
30
+ const { derivedAccountId, exit } = args;
30
31
  const env = getConfigAccountEnvironment(derivedAccountId);
31
- await trackCommandUsage('get-started', {}, derivedAccountId);
32
32
  const accountName = uiAccountDescription(derivedAccountId);
33
33
  if (args.v2) {
34
34
  try {
@@ -37,13 +37,11 @@ async function handler(args) {
37
37
  name: args.name,
38
38
  dest: args.dest,
39
39
  });
40
- process.exit(EXIT_CODES.SUCCESS);
41
- return;
40
+ return exit(EXIT_CODES.SUCCESS);
42
41
  }
43
42
  catch (error) {
44
43
  logError(error);
45
- process.exit(EXIT_CODES.ERROR);
46
- return;
44
+ return exit(EXIT_CODES.ERROR);
47
45
  }
48
46
  }
49
47
  uiInfoSection(commands.getStarted.startTitle, () => {
@@ -92,7 +90,7 @@ async function handler(args) {
92
90
  openLink(derivedAccountId, 'design-manager');
93
91
  }
94
92
  }
95
- process.exit(EXIT_CODES.SUCCESS);
93
+ return exit(EXIT_CODES.SUCCESS);
96
94
  }
97
95
  else {
98
96
  uiLogger.log(' ');
@@ -110,7 +108,7 @@ async function handler(args) {
110
108
  }, derivedAccountId);
111
109
  uiLogger.log(' ');
112
110
  uiLogger.error(commands.project.create.errors.cannotNestProjects(existingProjectDir));
113
- process.exit(EXIT_CODES.ERROR);
111
+ return exit(EXIT_CODES.ERROR);
114
112
  }
115
113
  // 4. Clone the project template from GitHub
116
114
  try {
@@ -131,7 +129,7 @@ async function handler(args) {
131
129
  debugError(err);
132
130
  uiLogger.log(' ');
133
131
  uiLogger.error(commands.project.create.errors.failedToDownloadProject);
134
- process.exit(EXIT_CODES.ERROR);
132
+ return exit(EXIT_CODES.ERROR);
135
133
  }
136
134
  const projectConfigPath = path.join(projectDest, PROJECT_CONFIG_FILE);
137
135
  const parsedConfigFile = JSON.parse(fs.readFileSync(projectConfigPath).toString());
@@ -177,7 +175,7 @@ async function handler(args) {
177
175
  }, derivedAccountId);
178
176
  uiLogger.log(' ');
179
177
  uiLogger.error(commands.getStarted.errors.configFileNotFound);
180
- process.exit(EXIT_CODES.ERROR);
178
+ return exit(EXIT_CODES.ERROR);
181
179
  }
182
180
  try {
183
181
  validateProjectConfig(newProjectConfig, newProjectDir);
@@ -191,7 +189,7 @@ async function handler(args) {
191
189
  }, derivedAccountId);
192
190
  uiLogger.log(' ');
193
191
  uiLogger.error(error.message);
194
- process.exit(EXIT_CODES.ERROR);
192
+ return exit(EXIT_CODES.ERROR);
195
193
  }
196
194
  throw error;
197
195
  }
@@ -268,13 +266,13 @@ async function handler(args) {
268
266
  uiLogger.log(' ');
269
267
  uiLogger.error(commands.getStarted.errors.uploadFailed);
270
268
  debugError(err);
271
- process.exit(EXIT_CODES.ERROR);
269
+ return exit(EXIT_CODES.ERROR);
272
270
  }
273
271
  }
274
272
  else {
275
273
  uiLogger.log(' ');
276
274
  uiFeatureHighlight(['projectUploadCommand', 'projectDevCommand']);
277
- process.exit(EXIT_CODES.SUCCESS);
275
+ return exit(EXIT_CODES.SUCCESS);
278
276
  }
279
277
  }
280
278
  // Track successful completion of get-started command
@@ -282,7 +280,7 @@ async function handler(args) {
282
280
  successful: true,
283
281
  step: 'command-completed',
284
282
  }, derivedAccountId);
285
- process.exit(EXIT_CODES.SUCCESS);
283
+ return exit(EXIT_CODES.SUCCESS);
286
284
  }
287
285
  function getStartedBuilder(yargs) {
288
286
  yargs.options({
@@ -316,7 +314,7 @@ const builder = makeYargsBuilder(getStartedBuilder, command, commands.getStarted
316
314
  const getStartedCommand = {
317
315
  command,
318
316
  describe,
319
- handler,
317
+ handler: makeYargsHandlerWithUsageTracking('get-started', handler),
320
318
  builder,
321
319
  };
322
320
  export default getStartedCommand;
@@ -1,17 +1,16 @@
1
1
  import { uiLogger } from '../../lib/ui/logger.js';
2
2
  import { logError } from '../../lib/errorHandlers/index.js';
3
- import { PromptExitError } from '../../lib/errors/PromptExitError.js';
3
+ import { isPromptExitError } from '../../lib/errors/PromptExitError.js';
4
4
  import { clearHubDbTableRows } from '@hubspot/local-dev-lib/hubdb';
5
5
  import { publishTable } from '@hubspot/local-dev-lib/api/hubdb';
6
6
  import { selectHubDBTablePrompt } from '../../lib/prompts/selectHubDBTablePrompt.js';
7
- import { trackCommandUsage } from '../../lib/usageTracking.js';
8
7
  import { commands } from '../../lang/en.js';
8
+ import { makeYargsHandlerWithUsageTracking } from '../../lib/yargs/makeYargsHandlerWithUsageTracking.js';
9
9
  import { makeYargsBuilder } from '../../lib/yargsUtils.js';
10
10
  const command = 'clear [table-id]';
11
11
  const describe = commands.hubdb.subcommands.clear.describe;
12
12
  async function handler(args) {
13
13
  const { derivedAccountId } = args;
14
- trackCommandUsage('hubdb-clear', {}, derivedAccountId);
15
14
  try {
16
15
  const { tableId } = 'tableId' in args
17
16
  ? args
@@ -30,8 +29,8 @@ async function handler(args) {
30
29
  }
31
30
  }
32
31
  catch (e) {
33
- if (e instanceof PromptExitError) {
34
- process.exit(e.exitCode);
32
+ if (isPromptExitError(e)) {
33
+ throw e;
35
34
  }
36
35
  logError(e);
37
36
  }
@@ -52,7 +51,7 @@ const builder = makeYargsBuilder(hubdbClearBuilder, command, describe, {
52
51
  const hubdbClearCommand = {
53
52
  command,
54
53
  describe,
55
- handler,
54
+ handler: makeYargsHandlerWithUsageTracking('hubdb-clear', handler),
56
55
  builder,
57
56
  };
58
57
  export default hubdbClearCommand;
@@ -5,9 +5,9 @@ import { getCwd, untildify, isValidPath } from '@hubspot/local-dev-lib/path';
5
5
  import { createHubDbTable } from '@hubspot/local-dev-lib/hubdb';
6
6
  import { promptUser } from '../../lib/prompts/promptUtils.js';
7
7
  import { checkAndConvertToJson } from '../../lib/validation.js';
8
- import { trackCommandUsage } from '../../lib/usageTracking.js';
9
8
  import { commands } from '../../lang/en.js';
10
9
  import { EXIT_CODES } from '../../lib/enums/exitCodes.js';
10
+ import { makeYargsHandlerWithUsageTracking } from '../../lib/yargs/makeYargsHandlerWithUsageTracking.js';
11
11
  import { makeYargsBuilder } from '../../lib/yargsUtils.js';
12
12
  const command = 'create';
13
13
  const describe = commands.hubdb.subcommands.create.describe;
@@ -33,8 +33,7 @@ function selectPathPrompt(options) {
33
33
  ]);
34
34
  }
35
35
  async function handler(args) {
36
- const { derivedAccountId } = args;
37
- trackCommandUsage('hubdb-create', {}, derivedAccountId);
36
+ const { derivedAccountId, exit } = args;
38
37
  let filePath;
39
38
  try {
40
39
  filePath =
@@ -42,7 +41,7 @@ async function handler(args) {
42
41
  ? path.resolve(getCwd(), args.path)
43
42
  : path.resolve(getCwd(), (await selectPathPrompt(args)).path);
44
43
  if (!checkAndConvertToJson(filePath)) {
45
- process.exit(EXIT_CODES.ERROR);
44
+ return exit(EXIT_CODES.ERROR);
46
45
  }
47
46
  const table = await createHubDbTable(derivedAccountId, path.resolve(getCwd(), filePath));
48
47
  uiLogger.success(commands.hubdb.subcommands.create.success.create(table.tableId, derivedAccountId, table.rowCount));
@@ -68,7 +67,7 @@ const builder = makeYargsBuilder(hubdbCreateBuilder, command, describe, {
68
67
  const hubdbCreateCommand = {
69
68
  command,
70
69
  describe,
71
- handler,
70
+ handler: makeYargsHandlerWithUsageTracking('hubdb-create', handler),
72
71
  builder,
73
72
  };
74
73
  export default hubdbCreateCommand;
@@ -1,18 +1,17 @@
1
1
  import { uiLogger } from '../../lib/ui/logger.js';
2
2
  import { logError } from '../../lib/errorHandlers/index.js';
3
- import { PromptExitError } from '../../lib/errors/PromptExitError.js';
3
+ import { isPromptExitError } from '../../lib/errors/PromptExitError.js';
4
4
  import { deleteTable } from '@hubspot/local-dev-lib/api/hubdb';
5
- import { trackCommandUsage } from '../../lib/usageTracking.js';
6
5
  import { selectHubDBTablePrompt } from '../../lib/prompts/selectHubDBTablePrompt.js';
7
6
  import { promptUser } from '../../lib/prompts/promptUtils.js';
8
7
  import { EXIT_CODES } from '../../lib/enums/exitCodes.js';
9
8
  import { commands } from '../../lang/en.js';
9
+ import { makeYargsHandlerWithUsageTracking } from '../../lib/yargs/makeYargsHandlerWithUsageTracking.js';
10
10
  import { makeYargsBuilder } from '../../lib/yargsUtils.js';
11
11
  const command = 'delete [table-id]';
12
12
  const describe = commands.hubdb.subcommands.delete.describe;
13
13
  async function handler(args) {
14
- const { force, derivedAccountId } = args;
15
- trackCommandUsage('hubdb-delete', {}, derivedAccountId);
14
+ const { force, derivedAccountId, exit } = args;
16
15
  try {
17
16
  const { tableId } = 'tableId' in args && args.tableId
18
17
  ? args
@@ -27,16 +26,16 @@ async function handler(args) {
27
26
  message: commands.hubdb.subcommands.delete.shouldDeleteTable(tableId),
28
27
  });
29
28
  if (!shouldDeleteTable) {
30
- process.exit(EXIT_CODES.SUCCESS);
29
+ return exit(EXIT_CODES.SUCCESS);
31
30
  }
32
31
  }
33
32
  await deleteTable(derivedAccountId, tableId);
34
33
  uiLogger.success(commands.hubdb.subcommands.delete.success.delete(tableId, derivedAccountId));
35
- process.exit(EXIT_CODES.SUCCESS);
34
+ return exit(EXIT_CODES.SUCCESS);
36
35
  }
37
36
  catch (e) {
38
- if (e instanceof PromptExitError) {
39
- process.exit(e.exitCode);
37
+ if (isPromptExitError(e)) {
38
+ throw e;
40
39
  }
41
40
  uiLogger.error(commands.hubdb.subcommands.delete.errors.delete(args.tableId || ''));
42
41
  logError(e);
@@ -62,7 +61,7 @@ const builder = makeYargsBuilder(hubdbDeleteBuilder, command, describe, {
62
61
  const hubdbDeleteCommand = {
63
62
  command,
64
63
  describe,
65
- handler,
64
+ handler: makeYargsHandlerWithUsageTracking('hubdb-delete', handler),
66
65
  builder,
67
66
  };
68
67
  export default hubdbDeleteCommand;
@@ -1,16 +1,15 @@
1
1
  import { uiLogger } from '../../lib/ui/logger.js';
2
2
  import { logError } from '../../lib/errorHandlers/index.js';
3
- import { PromptExitError } from '../../lib/errors/PromptExitError.js';
3
+ import { isPromptExitError } from '../../lib/errors/PromptExitError.js';
4
4
  import { downloadHubDbTable } from '@hubspot/local-dev-lib/hubdb';
5
5
  import { selectHubDBTablePrompt } from '../../lib/prompts/selectHubDBTablePrompt.js';
6
- import { trackCommandUsage } from '../../lib/usageTracking.js';
7
6
  import { commands } from '../../lang/en.js';
7
+ import { makeYargsHandlerWithUsageTracking } from '../../lib/yargs/makeYargsHandlerWithUsageTracking.js';
8
8
  import { makeYargsBuilder } from '../../lib/yargsUtils.js';
9
9
  const command = 'fetch [table-id] [dest]';
10
10
  const describe = commands.hubdb.subcommands.fetch.describe;
11
11
  async function handler(args) {
12
12
  const { derivedAccountId } = args;
13
- trackCommandUsage('hubdb-fetch', {}, derivedAccountId);
14
13
  try {
15
14
  const promptAnswers = await selectHubDBTablePrompt({
16
15
  accountId: derivedAccountId,
@@ -23,8 +22,8 @@ async function handler(args) {
23
22
  uiLogger.success(commands.hubdb.subcommands.fetch.success.fetch(tableId, filePath));
24
23
  }
25
24
  catch (e) {
26
- if (e instanceof PromptExitError) {
27
- process.exit(e.exitCode);
25
+ if (isPromptExitError(e)) {
26
+ throw e;
28
27
  }
29
28
  logError(e);
30
29
  }
@@ -49,7 +48,7 @@ const builder = makeYargsBuilder(hubdbFetchBuilder, command, describe, {
49
48
  const hubdbFetchCommand = {
50
49
  command,
51
50
  describe,
52
- handler,
51
+ handler: makeYargsHandlerWithUsageTracking('hubdb-fetch', handler),
53
52
  builder,
54
53
  };
55
54
  export default hubdbFetchCommand;
@@ -1,23 +1,17 @@
1
1
  import { fetchTables } from '@hubspot/local-dev-lib/api/hubdb';
2
+ import { makeYargsHandlerWithUsageTracking } from '../../lib/yargs/makeYargsHandlerWithUsageTracking.js';
2
3
  import { EXIT_CODES } from '../../lib/enums/exitCodes.js';
3
4
  import { uiLogger } from '../../lib/ui/logger.js';
4
5
  import { logError } from '../../lib/errorHandlers/index.js';
5
6
  import { commands } from '../../lang/en.js';
6
7
  import { makeYargsBuilder } from '../../lib/yargsUtils.js';
7
- import { trackCommandUsage } from '../../lib/usageTracking.js';
8
8
  import { renderTable } from '../../ui/render.js';
9
9
  import { getBaseHubSpotUrlForAccount } from '../../lib/projects/urls.js';
10
10
  const command = ['list', 'ls'];
11
11
  const describe = commands.hubdb.subcommands.list.describe;
12
12
  async function getTableData(accountId) {
13
- try {
14
- const response = await fetchTables(accountId);
15
- return response.data;
16
- }
17
- catch (err) {
18
- logError(err);
19
- process.exit(EXIT_CODES.ERROR);
20
- }
13
+ const response = await fetchTables(accountId);
14
+ return response.data;
21
15
  }
22
16
  // stripping the types and unnecessary fields so this data can be turned into a UI table
23
17
  function mapTablesToUI(tables) {
@@ -30,9 +24,17 @@ function mapTablesToUI(tables) {
30
24
  ]);
31
25
  }
32
26
  async function handler(args) {
33
- const { derivedAccountId } = args;
34
- trackCommandUsage('hubdb-list', {}, derivedAccountId);
35
- const { results: tables, total } = await getTableData(derivedAccountId);
27
+ const { derivedAccountId, exit } = args;
28
+ let tableData;
29
+ try {
30
+ tableData = await getTableData(derivedAccountId);
31
+ }
32
+ catch (err) {
33
+ logError(err);
34
+ return exit(EXIT_CODES.ERROR);
35
+ return;
36
+ }
37
+ const { results: tables, total } = tableData;
36
38
  const tableUIData = mapTablesToUI(tables);
37
39
  const tableHeader = [
38
40
  commands.hubdb.subcommands.list.labels.id,
@@ -58,7 +60,7 @@ async function handler(args) {
58
60
  else {
59
61
  uiLogger.log(commands.hubdb.subcommands.list.noTables(derivedAccountId));
60
62
  }
61
- process.exit(EXIT_CODES.SUCCESS);
63
+ return exit(EXIT_CODES.SUCCESS);
62
64
  }
63
65
  function hubdbListBuilder(yargs) {
64
66
  yargs.example([['$0 hubdb list']]);
@@ -73,7 +75,7 @@ const builder = makeYargsBuilder(hubdbListBuilder, command, describe, {
73
75
  const hubdbListCommand = {
74
76
  command,
75
77
  describe,
76
- handler,
78
+ handler: makeYargsHandlerWithUsageTracking('hubdb-list', handler),
77
79
  builder,
78
80
  };
79
81
  export default hubdbListCommand;
package/commands/init.js CHANGED
@@ -12,14 +12,15 @@ import { setCLILogLevel } from '../lib/commonOpts.js';
12
12
  import { makeYargsBuilder } from '../lib/yargsUtils.js';
13
13
  import { handleExit } from '../lib/process.js';
14
14
  import { debugError, logError } from '../lib/errorHandlers/index.js';
15
- import { PromptExitError } from '../lib/errors/PromptExitError.js';
16
- import { trackCommandUsage, trackAuthAction } from '../lib/usageTracking.js';
15
+ import { isPromptExitError } from '../lib/errors/PromptExitError.js';
16
+ import { trackAuthAction } from '../lib/usageTracking.js';
17
17
  import { promptUser } from '../lib/prompts/promptUtils.js';
18
18
  import { OAUTH_FLOW, personalAccessKeyPrompt, } from '../lib/prompts/personalAccessKeyPrompt.js';
19
19
  import { cliAccountNamePrompt } from '../lib/prompts/accountNamePrompt.js';
20
20
  import { authenticateWithOauth } from '../lib/oauth.js';
21
21
  import { EXIT_CODES } from '../lib/enums/exitCodes.js';
22
22
  import { uiCommandReference, uiFeatureHighlight } from '../lib/ui/index.js';
23
+ import { makeYargsHandlerWithUsageTracking } from '../lib/yargs/makeYargsHandlerWithUsageTracking.js';
23
24
  import { uiLogger } from '../lib/ui/logger.js';
24
25
  import { commands } from '../lang/en.js';
25
26
  import { parseStringToNumber } from '../lib/parsing.js';
@@ -62,7 +63,7 @@ async function oauthConfigCreationFlow(env) {
62
63
  }
63
64
  catch (e) {
64
65
  logError(e);
65
- process.exit(EXIT_CODES.ERROR);
66
+ throw e;
66
67
  }
67
68
  return oauthAccount;
68
69
  }
@@ -73,7 +74,7 @@ const AUTH_TYPE_NAMES = {
73
74
  const command = 'init';
74
75
  const describe = commands.init.describe;
75
76
  async function handler(args) {
76
- const { authType: authTypeFlagValue, c: configFlagValue, disableTracking, userProvidedAccount, } = args;
77
+ const { authType: authTypeFlagValue, c: configFlagValue, disableTracking, userProvidedAccount, exit, addUsageMetadata, } = args;
77
78
  let parsedUserProvidedAccountId;
78
79
  try {
79
80
  if (userProvidedAccount) {
@@ -82,7 +83,7 @@ async function handler(args) {
82
83
  }
83
84
  catch (err) {
84
85
  uiLogger.error(commands.init.errors.invalidAccountIdProvided);
85
- process.exit(EXIT_CODES.ERROR);
86
+ return exit(EXIT_CODES.ERROR);
86
87
  }
87
88
  const authType = (authTypeFlagValue && authTypeFlagValue.toLowerCase()) ||
88
89
  PERSONAL_ACCESS_KEY_AUTH_METHOD.value;
@@ -94,22 +95,18 @@ async function handler(args) {
94
95
  }
95
96
  catch (err) { }
96
97
  setCLILogLevel(args);
97
- if (!disableTracking) {
98
- trackCommandUsage('init', {
99
- authType,
100
- });
101
- }
98
+ addUsageMetadata({ authType });
102
99
  const env = args.qa ? ENVIRONMENTS.QA : ENVIRONMENTS.PROD;
103
100
  // Only check for global config if user is not providing a custom config path
104
101
  if (!configFlagValue && globalConfigFileExists()) {
105
102
  uiLogger.error(commands.init.errors.globalConfigFileExists);
106
- process.exit(EXIT_CODES.ERROR);
103
+ return exit(EXIT_CODES.ERROR);
107
104
  }
108
105
  // Check if the specific config file path already exists
109
106
  if (existingConfigPath && existsSync(existingConfigPath)) {
110
107
  uiLogger.error(commands.init.errors.configFileExists(existingConfigPath));
111
108
  uiLogger.info(commands.init.logs.updateConfig);
112
- process.exit(EXIT_CODES.ERROR);
109
+ return exit(EXIT_CODES.ERROR);
113
110
  }
114
111
  if (!disableTracking) {
115
112
  await trackAuthAction('init', authType, TRACKING_STATUS.STARTED, parsedUserProvidedAccountId);
@@ -148,17 +145,17 @@ async function handler(args) {
148
145
  if (!disableTracking) {
149
146
  await trackAuthAction('init', authType, TRACKING_STATUS.COMPLETE, accountId);
150
147
  }
151
- process.exit(EXIT_CODES.SUCCESS);
148
+ return exit(EXIT_CODES.SUCCESS);
152
149
  }
153
150
  catch (err) {
154
- if (err instanceof PromptExitError) {
155
- process.exit(err.exitCode);
151
+ if (isPromptExitError(err)) {
152
+ throw err;
156
153
  }
157
154
  logError(err);
158
155
  if (!disableTracking) {
159
156
  await trackAuthAction('init', authType, TRACKING_STATUS.ERROR, parsedUserProvidedAccountId);
160
157
  }
161
- process.exit(EXIT_CODES.ERROR);
158
+ return exit(EXIT_CODES.ERROR);
162
159
  }
163
160
  }
164
161
  function initBuilder(yargs) {
@@ -194,7 +191,7 @@ const builder = makeYargsBuilder(initBuilder, command, commands.init.verboseDesc
194
191
  const initCommand = {
195
192
  command,
196
193
  describe,
197
- handler,
194
+ handler: makeYargsHandlerWithUsageTracking('init', handler),
198
195
  builder,
199
196
  };
200
197
  export default initCommand;