@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
@@ -1,198 +0,0 @@
1
- import yargs from 'yargs';
2
- import { addAccountOptions, addConfigOptions, addUseEnvironmentOptions, addTestingOptions, } from '../../../lib/commonOpts.js';
3
- import sandboxCreateCommand from '../create.js';
4
- import * as sandboxPrompts from '../../../lib/prompts/sandboxesPrompt.js';
5
- import * as accountNamePrompt from '../../../lib/prompts/accountNamePrompt.js';
6
- import * as configUtils from '@hubspot/local-dev-lib/config';
7
- import * as promptUtils from '../../../lib/prompts/promptUtils.js';
8
- import { trackCommandUsage } from '../../../lib/usageTracking.js';
9
- import { HUBSPOT_ACCOUNT_TYPES } from '@hubspot/local-dev-lib/constants/config';
10
- import * as buildAccount from '../../../lib/buildAccount.js';
11
- import { EXIT_CODES } from '../../../lib/enums/exitCodes.js';
12
- import { uiLogger } from '../../../lib/ui/logger.js';
13
- import * as sandboxesLib from '../../../lib/sandboxes.js';
14
- import { vi } from 'vitest';
15
- import { ENVIRONMENTS } from '@hubspot/local-dev-lib/constants/environments';
16
- vi.mock('@hubspot/local-dev-lib/config');
17
- vi.mock('../../../lib/commonOpts');
18
- vi.mock('../../../lib/hasFeature');
19
- vi.mock('../../../lib/prompts/sandboxesPrompt');
20
- vi.mock('../../../lib/prompts/promptUtils');
21
- vi.mock('../../../lib/prompts/accountNamePrompt');
22
- vi.mock('../../../lib/sandboxes');
23
- vi.mock('../../../lib/buildAccount');
24
- vi.mock('../../../lib/sandboxes');
25
- vi.mock('../../../lib/commonOpts');
26
- const getConfigAccountByIdSpy = vi.spyOn(configUtils, 'getConfigAccountById');
27
- const promptUserSpy = vi.spyOn(promptUtils, 'promptUser');
28
- const sandboxTypePromptSpy = vi.spyOn(sandboxPrompts, 'sandboxTypePrompt');
29
- const processExitSpy = vi.spyOn(process, 'exit');
30
- const buildV2SandboxSpy = vi.spyOn(buildAccount, 'buildV2Sandbox');
31
- const getConfigAccountEnvironmentSpy = vi.spyOn(configUtils, 'getConfigAccountEnvironment');
32
- const validateSandboxUsageLimitsSpy = vi.spyOn(sandboxesLib, 'validateSandboxUsageLimits');
33
- const hubspotAccountNamePromptSpy = vi.spyOn(accountNamePrompt, 'hubspotAccountNamePrompt');
34
- describe('commands/sandbox/create', () => {
35
- const yargsMock = yargs;
36
- describe('command', () => {
37
- it('should have the correct command structure', () => {
38
- expect(sandboxCreateCommand.command).toEqual('create');
39
- });
40
- });
41
- describe('describe', () => {
42
- it('should provide a description', () => {
43
- expect(sandboxCreateCommand.describe).toBeDefined();
44
- });
45
- });
46
- describe('builder', () => {
47
- it('should support the correct options', () => {
48
- sandboxCreateCommand.builder(yargsMock);
49
- expect(yargsMock.example).toHaveBeenCalledTimes(1);
50
- expect(addTestingOptions).toHaveBeenCalledTimes(1);
51
- expect(addTestingOptions).toHaveBeenCalledWith(yargsMock);
52
- expect(addAccountOptions).toHaveBeenCalledTimes(1);
53
- expect(addAccountOptions).toHaveBeenCalledWith(yargsMock);
54
- expect(addConfigOptions).toHaveBeenCalledTimes(1);
55
- expect(addConfigOptions).toHaveBeenCalledWith(yargsMock);
56
- expect(addUseEnvironmentOptions).toHaveBeenCalledTimes(1);
57
- expect(addUseEnvironmentOptions).toHaveBeenCalledWith(yargsMock);
58
- });
59
- });
60
- describe('handler', () => {
61
- let args;
62
- const sandboxNameFromPrompt = 'sandbox name from prompt';
63
- const mockSandbox = {
64
- sandboxHubId: 56789,
65
- parentHubId: 123456,
66
- createdAt: '2025-01-01',
67
- type: 'DEVELOPER',
68
- archived: false,
69
- version: 'V1',
70
- status: 'PENDING',
71
- name: 'Test Sandbox',
72
- domain: 'test-sandbox.hubspot.com',
73
- createdByUser: {
74
- userId: 11111,
75
- email: 'test@test.com',
76
- firstName: 'Test',
77
- lastName: 'User',
78
- },
79
- };
80
- beforeEach(() => {
81
- args = {
82
- derivedAccountId: 1234567890,
83
- };
84
- getConfigAccountByIdSpy.mockReturnValue({
85
- accountId: 1234567890,
86
- accountType: HUBSPOT_ACCOUNT_TYPES.STANDARD,
87
- env: 'prod',
88
- });
89
- hubspotAccountNamePromptSpy.mockResolvedValue({
90
- name: sandboxNameFromPrompt,
91
- });
92
- sandboxTypePromptSpy.mockResolvedValue({
93
- type: HUBSPOT_ACCOUNT_TYPES.DEVELOPMENT_SANDBOX,
94
- });
95
- promptUserSpy.mockResolvedValue({
96
- contactRecordsSyncPrompt: false,
97
- });
98
- validateSandboxUsageLimitsSpy.mockResolvedValue(undefined);
99
- getConfigAccountEnvironmentSpy.mockReturnValue(ENVIRONMENTS.PROD);
100
- buildV2SandboxSpy.mockResolvedValue({
101
- sandbox: { ...mockSandbox, version: 'V2' },
102
- });
103
- // Spy on process.exit so our tests don't close when it's called
104
- // @ts-expect-error Doesn't match the actual signature because then the linter complains about unused variables
105
- processExitSpy.mockImplementation(() => { });
106
- });
107
- it('should load the account config for the correct account id', async () => {
108
- await sandboxCreateCommand.handler(args);
109
- expect(getConfigAccountByIdSpy).toHaveBeenCalledTimes(2); // 1st is for parent account, 2nd is for sandbox account
110
- expect(getConfigAccountByIdSpy).toHaveBeenCalledWith(args.derivedAccountId);
111
- });
112
- it('should track the command usage', async () => {
113
- await sandboxCreateCommand.handler(args);
114
- expect(trackCommandUsage).toHaveBeenCalledTimes(1);
115
- expect(trackCommandUsage).toHaveBeenCalledWith('sandbox-create', {}, args.derivedAccountId);
116
- });
117
- it('should validate sandbox usage limits', async () => {
118
- await sandboxCreateCommand.handler(args);
119
- expect(validateSandboxUsageLimitsSpy).toHaveBeenCalledTimes(1);
120
- expect(validateSandboxUsageLimitsSpy).toHaveBeenCalledWith({
121
- accountId: 1234567890,
122
- accountType: HUBSPOT_ACCOUNT_TYPES.STANDARD,
123
- env: 'prod',
124
- }, HUBSPOT_ACCOUNT_TYPES.DEVELOPMENT_SANDBOX, 'prod');
125
- });
126
- it('should prompt for the sandbox type if no type is provided in options', async () => {
127
- await sandboxCreateCommand.handler(args);
128
- expect(sandboxTypePromptSpy).toHaveBeenCalledTimes(1);
129
- });
130
- it('should not prompt for the sandbox type if type is provided in options', async () => {
131
- await sandboxCreateCommand.handler({
132
- ...args,
133
- type: 'developer',
134
- });
135
- expect(sandboxTypePromptSpy).toHaveBeenCalledTimes(0);
136
- });
137
- it('should not prompt for contact records sync if the sandbox type is developer', async () => {
138
- await sandboxCreateCommand.handler({
139
- ...args,
140
- type: 'developer',
141
- });
142
- expect(promptUserSpy).toHaveBeenCalledTimes(0);
143
- });
144
- it('should prompt for the contact records sync if the sandbox type is standard', async () => {
145
- await sandboxCreateCommand.handler({
146
- ...args,
147
- type: 'standard',
148
- });
149
- expect(promptUserSpy).toHaveBeenCalledTimes(1);
150
- });
151
- it('should build a v2 sandbox', async () => {
152
- await sandboxCreateCommand.handler(args);
153
- expect(buildV2SandboxSpy).toHaveBeenCalledTimes(1);
154
- expect(buildV2SandboxSpy).toHaveBeenCalledWith(sandboxNameFromPrompt, {
155
- accountId: 1234567890,
156
- accountType: HUBSPOT_ACCOUNT_TYPES.STANDARD,
157
- env: 'prod',
158
- }, HUBSPOT_ACCOUNT_TYPES.DEVELOPMENT_SANDBOX, false, // syncObjectRecords
159
- 'prod', undefined // force
160
- );
161
- });
162
- it('should log an error and exit when force is used and invalid sandbox type is provided', async () => {
163
- await sandboxCreateCommand.handler({
164
- ...args,
165
- name: sandboxNameFromPrompt,
166
- type: 'invalid',
167
- force: true,
168
- });
169
- expect(uiLogger.error).toHaveBeenCalledTimes(1);
170
- expect(processExitSpy).toHaveBeenCalled();
171
- expect(processExitSpy).toHaveBeenCalledWith(EXIT_CODES.ERROR);
172
- });
173
- it('should log an error and exit when force is used and no sandbox name is provided', async () => {
174
- await sandboxCreateCommand.handler({
175
- ...args,
176
- type: 'standard',
177
- force: true,
178
- });
179
- expect(uiLogger.error).toHaveBeenCalled();
180
- expect(processExitSpy).toHaveBeenCalled();
181
- expect(processExitSpy).toHaveBeenCalledWith(EXIT_CODES.ERROR);
182
- });
183
- it('should error out if the default account type is not standard', async () => {
184
- getConfigAccountByIdSpy.mockReturnValue({
185
- accountId: 1234567890,
186
- accountType: HUBSPOT_ACCOUNT_TYPES.DEVELOPMENT_SANDBOX,
187
- env: 'prod',
188
- });
189
- await sandboxCreateCommand.handler({
190
- ...args,
191
- type: 'developer',
192
- });
193
- expect(uiLogger.error).toHaveBeenCalled();
194
- expect(processExitSpy).toHaveBeenCalled();
195
- expect(processExitSpy).toHaveBeenCalledWith(EXIT_CODES.ERROR);
196
- });
197
- });
198
- });
@@ -1 +0,0 @@
1
- export {};
@@ -1,31 +0,0 @@
1
- import yargs from 'yargs';
2
- import { addAccountOptions, addConfigOptions, addUseEnvironmentOptions, addTestingOptions, } from '../../../lib/commonOpts.js';
3
- import sandboxDeleteCommand from '../delete.js';
4
- vi.mock('../../../lib/commonOpts');
5
- describe('commands/sandbox/delete', () => {
6
- const yargsMock = yargs;
7
- describe('command', () => {
8
- it('should have the correct command structure', () => {
9
- expect(sandboxDeleteCommand.command).toEqual('delete');
10
- });
11
- });
12
- describe('describe', () => {
13
- it('should provide a description', () => {
14
- expect(sandboxDeleteCommand.describe).toBeDefined();
15
- });
16
- });
17
- describe('builder', () => {
18
- it('should support the correct options', () => {
19
- sandboxDeleteCommand.builder(yargsMock);
20
- expect(yargsMock.example).toHaveBeenCalledTimes(1);
21
- expect(addTestingOptions).toHaveBeenCalledTimes(1);
22
- expect(addTestingOptions).toHaveBeenCalledWith(yargsMock);
23
- expect(addAccountOptions).toHaveBeenCalledTimes(1);
24
- expect(addAccountOptions).toHaveBeenCalledWith(yargsMock);
25
- expect(addConfigOptions).toHaveBeenCalledTimes(1);
26
- expect(addConfigOptions).toHaveBeenCalledWith(yargsMock);
27
- expect(addUseEnvironmentOptions).toHaveBeenCalledTimes(1);
28
- expect(addUseEnvironmentOptions).toHaveBeenCalledWith(yargsMock);
29
- });
30
- });
31
- });
@@ -1 +0,0 @@
1
- export {};
@@ -1,162 +0,0 @@
1
- import yargs from 'yargs';
2
- import { addSecret, fetchSecrets } from '@hubspot/local-dev-lib/api/secrets';
3
- import { secretNamePrompt, secretValuePrompt, } from '../../../lib/prompts/secretPrompt.js';
4
- import { trackCommandUsage } from '../../../lib/usageTracking.js';
5
- import { logError, ApiErrorContext } from '../../../lib/errorHandlers/index.js';
6
- import { EXIT_CODES } from '../../../lib/enums/exitCodes.js';
7
- import addSecretCommand from '../addSecret.js';
8
- vi.mock('../../../lib/commonOpts');
9
- vi.mock('@hubspot/local-dev-lib/api/secrets');
10
- vi.mock('../../../lib/prompts/secretPrompt.js');
11
- vi.mock('../../../lib/errorHandlers/index.js');
12
- vi.mock('@hubspot/local-dev-lib/config');
13
- const addSecretMock = vi.mocked(addSecret);
14
- const fetchSecretsMock = vi.mocked(fetchSecrets);
15
- const secretNamePromptMock = vi.mocked(secretNamePrompt);
16
- const secretValuePromptMock = vi.mocked(secretValuePrompt);
17
- const trackCommandUsageMock = vi.mocked(trackCommandUsage);
18
- const logErrorMock = vi.mocked(logError);
19
- const processExitSpy = vi.spyOn(process, 'exit');
20
- describe('commands/secret/addSecret', () => {
21
- const yargsMock = yargs;
22
- const uiLogger = global.mockUiLogger;
23
- beforeEach(() => {
24
- vi.clearAllMocks();
25
- // @ts-expect-error Mock implementation
26
- processExitSpy.mockImplementation(() => { });
27
- fetchSecretsMock.mockResolvedValue({
28
- data: { results: [] },
29
- status: 200,
30
- statusText: 'OK',
31
- headers: {},
32
- // @ts-expect-error
33
- config: {},
34
- });
35
- secretValuePromptMock.mockResolvedValue({ secretValue: 'test-value' });
36
- // @ts-expect-error
37
- addSecretMock.mockResolvedValue(undefined);
38
- });
39
- describe('command', () => {
40
- it('should have the correct command structure', () => {
41
- expect(addSecretCommand.command).toEqual('add [name]');
42
- });
43
- });
44
- describe('describe', () => {
45
- it('should provide a description', () => {
46
- expect(addSecretCommand.describe).toBeDefined();
47
- });
48
- });
49
- describe('builder', () => {
50
- it('should support the correct options', () => {
51
- addSecretCommand.builder(yargsMock);
52
- expect(yargsMock.positional).toHaveBeenCalledTimes(1);
53
- expect(yargsMock.positional).toHaveBeenCalledWith('name', expect.objectContaining({ type: 'string' }));
54
- });
55
- });
56
- describe('handler', () => {
57
- let args;
58
- beforeEach(() => {
59
- args = {
60
- name: 'test-secret',
61
- derivedAccountId: 123456,
62
- d: false,
63
- debug: false,
64
- };
65
- });
66
- it('should track command usage', async () => {
67
- await addSecretCommand.handler(args);
68
- expect(trackCommandUsageMock).toHaveBeenCalledWith('secrets-add', {}, 123456);
69
- });
70
- it('should prompt for secret name when not provided', async () => {
71
- delete args.name;
72
- secretNamePromptMock.mockResolvedValue({ secretName: 'prompted-name' });
73
- await addSecretCommand.handler(args);
74
- expect(secretNamePromptMock).toHaveBeenCalledTimes(1);
75
- expect(addSecretMock).toHaveBeenCalledWith(123456, 'prompted-name', 'test-value');
76
- });
77
- it('should use provided secret name', async () => {
78
- await addSecretCommand.handler(args);
79
- expect(secretNamePromptMock).not.toHaveBeenCalled();
80
- expect(addSecretMock).toHaveBeenCalledWith(123456, 'test-secret', 'test-value');
81
- });
82
- it('should fetch existing secrets to check for duplicates', async () => {
83
- await addSecretCommand.handler(args);
84
- expect(fetchSecretsMock).toHaveBeenCalledWith(123456);
85
- });
86
- it('should error and exit if secret already exists', async () => {
87
- fetchSecretsMock.mockResolvedValue({
88
- data: { results: ['test-secret', 'other-secret'] },
89
- status: 200,
90
- statusText: 'OK',
91
- headers: {},
92
- // @ts-expect-error
93
- config: {},
94
- });
95
- await addSecretCommand.handler(args);
96
- expect(uiLogger.error).toHaveBeenCalledWith(expect.stringContaining('test-secret'));
97
- expect(processExitSpy).toHaveBeenCalledWith(EXIT_CODES.ERROR);
98
- expect(addSecretMock).not.toHaveBeenCalled();
99
- });
100
- it('should allow adding secret if name does not exist', async () => {
101
- fetchSecretsMock.mockResolvedValue({
102
- data: { results: ['other-secret', 'another-secret'] },
103
- status: 200,
104
- statusText: 'OK',
105
- headers: {},
106
- // @ts-expect-error
107
- config: {},
108
- });
109
- // @ts-expect-error doesn't matter
110
- addSecretMock.mockResolvedValue(undefined);
111
- await addSecretCommand.handler(args);
112
- expect(addSecretMock).toHaveBeenCalledWith(123456, 'test-secret', 'test-value');
113
- expect(uiLogger.success).toHaveBeenCalledWith(expect.stringContaining('test-secret'));
114
- });
115
- it('should prompt for secret value', async () => {
116
- await addSecretCommand.handler(args);
117
- expect(secretValuePromptMock).toHaveBeenCalledTimes(1);
118
- });
119
- it('should add secret successfully', async () => {
120
- // @ts-expect-error doesn't matter
121
- addSecretMock.mockResolvedValue(undefined);
122
- await addSecretCommand.handler(args);
123
- expect(addSecretMock).toHaveBeenCalledWith(123456, 'test-secret', 'test-value');
124
- expect(uiLogger.success).toHaveBeenCalledWith(expect.stringContaining('test-secret'));
125
- expect(uiLogger.success).toHaveBeenCalledWith(expect.stringContaining('123456'));
126
- expect(processExitSpy).toHaveBeenCalledWith(EXIT_CODES.SUCCESS);
127
- });
128
- it('should handle errors when adding secret', async () => {
129
- const error = new Error('API error');
130
- addSecretMock.mockRejectedValueOnce(error);
131
- await addSecretCommand.handler(args);
132
- expect(uiLogger.error).toHaveBeenCalledWith(expect.stringContaining('test-secret'));
133
- expect(logErrorMock).toHaveBeenCalledWith(error, expect.any(ApiErrorContext));
134
- expect(processExitSpy).toHaveBeenCalledWith(EXIT_CODES.ERROR);
135
- });
136
- it('should handle errors when fetching existing secrets', async () => {
137
- const error = new Error('Fetch error');
138
- fetchSecretsMock.mockRejectedValueOnce(error);
139
- await addSecretCommand.handler(args);
140
- expect(uiLogger.error).toHaveBeenCalled();
141
- expect(logErrorMock).toHaveBeenCalledWith(error, expect.any(ApiErrorContext));
142
- expect(processExitSpy).toHaveBeenCalledWith(EXIT_CODES.ERROR);
143
- });
144
- it('should handle errors when prompting for name', async () => {
145
- delete args.name;
146
- const error = new Error('Prompt error');
147
- secretNamePromptMock.mockRejectedValueOnce(error);
148
- await addSecretCommand.handler(args);
149
- expect(uiLogger.error).toHaveBeenCalled();
150
- expect(logErrorMock).toHaveBeenCalledWith(error, expect.any(ApiErrorContext));
151
- expect(processExitSpy).toHaveBeenCalledWith(EXIT_CODES.ERROR);
152
- });
153
- it('should handle errors when prompting for value', async () => {
154
- const error = new Error('Value prompt error');
155
- secretValuePromptMock.mockRejectedValueOnce(error);
156
- await addSecretCommand.handler(args);
157
- expect(uiLogger.error).toHaveBeenCalled();
158
- expect(logErrorMock).toHaveBeenCalledWith(error, expect.any(ApiErrorContext));
159
- expect(processExitSpy).toHaveBeenCalledWith(EXIT_CODES.ERROR);
160
- });
161
- });
162
- });
@@ -1 +0,0 @@
1
- export {};
@@ -1,41 +0,0 @@
1
- import yargs from 'yargs';
2
- import { addConfigOptions, addAccountOptions, addUseEnvironmentOptions, } from '../../../lib/commonOpts.js';
3
- import deleteSecretCommand from '../deleteSecret.js';
4
- vi.mock('yargs');
5
- vi.mock('../../../lib/commonOpts');
6
- describe('commands/secret/deleteSecret', () => {
7
- let yargsMock = yargs;
8
- beforeEach(() => {
9
- yargsMock = {
10
- positional: vi.fn().mockReturnThis(),
11
- options: vi.fn().mockReturnThis(),
12
- command: vi.fn().mockReturnThis(),
13
- demandCommand: vi.fn().mockReturnThis(),
14
- help: vi.fn().mockReturnThis(),
15
- alias: vi.fn().mockReturnThis(),
16
- argv: {},
17
- };
18
- });
19
- describe('command', () => {
20
- it('should have the correct command structure', () => {
21
- expect(deleteSecretCommand.command).toEqual('delete [name]');
22
- });
23
- });
24
- describe('describe', () => {
25
- it('should provide a description', () => {
26
- expect(deleteSecretCommand.describe).toBeDefined();
27
- });
28
- });
29
- describe('builder', () => {
30
- it('should support the correct options', () => {
31
- deleteSecretCommand.builder(yargsMock);
32
- expect(yargsMock.positional).toHaveBeenCalledTimes(1);
33
- expect(addConfigOptions).toHaveBeenCalledTimes(1);
34
- expect(addConfigOptions).toHaveBeenCalledWith(yargsMock);
35
- expect(addAccountOptions).toHaveBeenCalledTimes(1);
36
- expect(addAccountOptions).toHaveBeenCalledWith(yargsMock);
37
- expect(addUseEnvironmentOptions).toHaveBeenCalledTimes(1);
38
- expect(addUseEnvironmentOptions).toHaveBeenCalledWith(yargsMock);
39
- });
40
- });
41
- });
@@ -1 +0,0 @@
1
- export {};
@@ -1,29 +0,0 @@
1
- import yargs from 'yargs';
2
- import { addConfigOptions, addAccountOptions, addUseEnvironmentOptions, } from '../../../lib/commonOpts.js';
3
- import listSecretCommand from '../listSecret.js';
4
- vi.mock('yargs');
5
- vi.mock('../../../lib/commonOpts');
6
- describe('commands/secret/listSecret', () => {
7
- const yargsMock = yargs;
8
- describe('command', () => {
9
- it('should have the correct command structure', () => {
10
- expect(listSecretCommand.command).toEqual('list');
11
- });
12
- });
13
- describe('describe', () => {
14
- it('should provide a description', () => {
15
- expect(listSecretCommand.describe).toBeDefined();
16
- });
17
- });
18
- describe('builder', () => {
19
- it('should support the correct options', () => {
20
- listSecretCommand.builder(yargsMock);
21
- expect(addConfigOptions).toHaveBeenCalledTimes(1);
22
- expect(addConfigOptions).toHaveBeenCalledWith(yargsMock);
23
- expect(addAccountOptions).toHaveBeenCalledTimes(1);
24
- expect(addAccountOptions).toHaveBeenCalledWith(yargsMock);
25
- expect(addUseEnvironmentOptions).toHaveBeenCalledTimes(1);
26
- expect(addUseEnvironmentOptions).toHaveBeenCalledWith(yargsMock);
27
- });
28
- });
29
- });
@@ -1 +0,0 @@
1
- export {};
@@ -1,29 +0,0 @@
1
- import yargs from 'yargs';
2
- import { addConfigOptions, addAccountOptions, addUseEnvironmentOptions, } from '../../../lib/commonOpts.js';
3
- import updateSecretCommand from '../updateSecret.js';
4
- vi.mock('../../../lib/commonOpts');
5
- describe('commands/secret/updateSecret', () => {
6
- const yargsMock = yargs;
7
- describe('command', () => {
8
- it('should have the correct command structure', () => {
9
- expect(updateSecretCommand.command).toEqual('update [name]');
10
- });
11
- });
12
- describe('describe', () => {
13
- it('should provide a description', () => {
14
- expect(updateSecretCommand.describe).toBeDefined();
15
- });
16
- });
17
- describe('builder', () => {
18
- it('should support the correct options', () => {
19
- updateSecretCommand.builder(yargsMock);
20
- expect(yargsMock.positional).toHaveBeenCalledTimes(1);
21
- expect(addConfigOptions).toHaveBeenCalledTimes(1);
22
- expect(addConfigOptions).toHaveBeenCalledWith(yargsMock);
23
- expect(addAccountOptions).toHaveBeenCalledTimes(1);
24
- expect(addAccountOptions).toHaveBeenCalledWith(yargsMock);
25
- expect(addUseEnvironmentOptions).toHaveBeenCalledTimes(1);
26
- expect(addUseEnvironmentOptions).toHaveBeenCalledWith(yargsMock);
27
- });
28
- });
29
- });
@@ -1 +0,0 @@
1
- export {};
@@ -1,106 +0,0 @@
1
- import yargs from 'yargs';
2
- import { addAccountOptions, addConfigOptions, addUseEnvironmentOptions, addTestingOptions, addJSONOutputOptions, } from '../../../lib/commonOpts.js';
3
- import testAccountCreateCommand from '../create.js';
4
- import { ACCOUNT_LEVEL_CHOICES, ACCOUNT_LEVELS, } from '../../../lib/constants.js';
5
- vi.mock('../../../lib/commonOpts');
6
- describe('commands/testAccount/create', () => {
7
- const yargsMock = yargs;
8
- describe('command', () => {
9
- it('should have the correct command structure', () => {
10
- expect(testAccountCreateCommand.command).toEqual('create');
11
- });
12
- });
13
- describe('describe', () => {
14
- it('should provide a description', () => {
15
- expect(testAccountCreateCommand.describe).toBeDefined();
16
- });
17
- });
18
- describe('builder', () => {
19
- it('should support the correct options', () => {
20
- testAccountCreateCommand.builder(yargsMock);
21
- expect(yargsMock.example).toHaveBeenCalledTimes(1);
22
- expect(addTestingOptions).toHaveBeenCalledTimes(1);
23
- expect(addTestingOptions).toHaveBeenCalledWith(yargsMock);
24
- expect(addAccountOptions).toHaveBeenCalledTimes(1);
25
- expect(addAccountOptions).toHaveBeenCalledWith(yargsMock);
26
- expect(addConfigOptions).toHaveBeenCalledTimes(1);
27
- expect(addConfigOptions).toHaveBeenCalledWith(yargsMock);
28
- expect(addUseEnvironmentOptions).toHaveBeenCalledTimes(1);
29
- expect(addUseEnvironmentOptions).toHaveBeenCalledWith(yargsMock);
30
- expect(addJSONOutputOptions).toHaveBeenCalledTimes(1);
31
- expect(addJSONOutputOptions).toHaveBeenCalledWith(yargsMock);
32
- });
33
- it('should add account-name option', () => {
34
- testAccountCreateCommand.builder(yargsMock);
35
- expect(yargsMock.option).toHaveBeenCalledWith('name', {
36
- type: 'string',
37
- description: 'Name for the test account',
38
- });
39
- });
40
- it('should add description option', () => {
41
- testAccountCreateCommand.builder(yargsMock);
42
- expect(yargsMock.option).toHaveBeenCalledWith('description', {
43
- type: 'string',
44
- description: 'Description for the test account',
45
- });
46
- });
47
- it('should add hub level options', () => {
48
- testAccountCreateCommand.builder(yargsMock);
49
- expect(yargsMock.option).toHaveBeenCalledWith('marketing-level', {
50
- type: 'string',
51
- description: 'Marketing Hub tier. Options: FREE, STARTER, PROFESSIONAL, ENTERPRISE',
52
- choices: ACCOUNT_LEVEL_CHOICES,
53
- });
54
- expect(yargsMock.option).toHaveBeenCalledWith('ops-level', {
55
- type: 'string',
56
- description: 'Operations Hub tier. Options: FREE, STARTER, PROFESSIONAL, ENTERPRISE',
57
- choices: ACCOUNT_LEVEL_CHOICES,
58
- });
59
- expect(yargsMock.option).toHaveBeenCalledWith('service-level', {
60
- type: 'string',
61
- description: 'Service Hub tier. Options: FREE, STARTER, PROFESSIONAL, ENTERPRISE',
62
- choices: ACCOUNT_LEVEL_CHOICES,
63
- });
64
- expect(yargsMock.option).toHaveBeenCalledWith('sales-level', {
65
- type: 'string',
66
- description: 'Sales Hub tier. Options: FREE, STARTER, PROFESSIONAL, ENTERPRISE',
67
- choices: ACCOUNT_LEVEL_CHOICES,
68
- });
69
- expect(yargsMock.option).toHaveBeenCalledWith('content-level', {
70
- type: 'string',
71
- description: 'CMS Hub tier. Options: FREE, STARTER, PROFESSIONAL, ENTERPRISE',
72
- choices: ACCOUNT_LEVEL_CHOICES,
73
- });
74
- expect(yargsMock.option).toHaveBeenCalledWith('commerce-level', {
75
- type: 'string',
76
- description: 'Commerce Hub tier. Options: FREE, PROFESSIONAL, ENTERPRISE',
77
- choices: ACCOUNT_LEVEL_CHOICES.filter(level => level !== ACCOUNT_LEVELS.STARTER),
78
- });
79
- });
80
- it('should add examples for all usage scenarios', () => {
81
- testAccountCreateCommand.builder(yargsMock);
82
- expect(yargsMock.example).toHaveBeenCalledWith([
83
- [
84
- '$0 test-account create',
85
- 'Interactive mode - prompts for all options',
86
- ],
87
- [
88
- '$0 test-account create --name "MyTestAccount"',
89
- 'Provide name via flag, prompt for description and tier selection',
90
- ],
91
- [
92
- '$0 test-account create --name "MyTestAccount" --description "Test account"',
93
- 'Provide name and description, prompt for tier selection',
94
- ],
95
- [
96
- '$0 test-account create --name "MyTestAccount" --marketing-level PROFESSIONAL',
97
- 'Specify marketing tier, other tiers default to ENTERPRISE',
98
- ],
99
- [
100
- '$0 test-account create --config-path ./test-account-config.json',
101
- 'Create from config file (mutually exclusive with other flags)',
102
- ],
103
- ]);
104
- });
105
- });
106
- });
@@ -1 +0,0 @@
1
- export {};
@@ -1,32 +0,0 @@
1
- import yargs from 'yargs';
2
- import testAccountCreateConfigCommand from '../createConfig.js';
3
- vi.mock('../../../lib/commonOpts');
4
- describe('commands/testAccount/createConfig', () => {
5
- const yargsMock = yargs;
6
- describe('command', () => {
7
- it('should have the correct command structure', () => {
8
- expect(testAccountCreateConfigCommand.command).toEqual('create-config');
9
- });
10
- });
11
- describe('describe', () => {
12
- it('should provide a description', () => {
13
- expect(testAccountCreateConfigCommand.describe).toBeDefined();
14
- });
15
- });
16
- describe('builder', () => {
17
- it('should support the correct options', () => {
18
- const optionSpy = vi.spyOn(yargsMock, 'option');
19
- testAccountCreateConfigCommand.builder(yargsMock);
20
- expect(yargsMock.example).toHaveBeenCalledTimes(1);
21
- expect(optionSpy).toHaveBeenCalledWith('name', expect.objectContaining({
22
- type: 'string',
23
- }));
24
- expect(optionSpy).toHaveBeenCalledWith('description', expect.objectContaining({
25
- type: 'string',
26
- }));
27
- expect(optionSpy).toHaveBeenCalledWith('path', expect.objectContaining({
28
- type: 'string',
29
- }));
30
- });
31
- });
32
- });
@@ -1 +0,0 @@
1
- export {};