@hubspot/cli 8.1.0 → 8.1.2-experimental.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (681) hide show
  1. package/api/migrate.js +8 -4
  2. package/api/releases.d.ts +36 -0
  3. package/api/releases.js +41 -0
  4. package/bin/cli.js +12 -6
  5. package/commands/account/auth.js +7 -7
  6. package/commands/account/clean.js +7 -6
  7. package/commands/account/createOverride.js +10 -7
  8. package/commands/account/info.js +36 -17
  9. package/commands/account/link.d.ts +4 -0
  10. package/commands/account/link.js +89 -0
  11. package/commands/account/list.js +32 -76
  12. package/commands/account/remove.js +4 -3
  13. package/commands/account/removeOverride.js +11 -10
  14. package/commands/account/rename.js +5 -6
  15. package/commands/account/unlink.d.ts +4 -0
  16. package/commands/account/unlink.js +70 -0
  17. package/commands/account/use.js +75 -6
  18. package/commands/account.js +4 -0
  19. package/commands/api.d.ts +10 -0
  20. package/commands/api.js +164 -0
  21. package/commands/app/migrate.js +13 -13
  22. package/commands/app/secret/add.js +6 -7
  23. package/commands/app/secret/delete.js +9 -10
  24. package/commands/app/secret/list.js +6 -7
  25. package/commands/app/secret/update.js +8 -9
  26. package/commands/auth.js +19 -15
  27. package/commands/cms/app/create.js +9 -5
  28. package/commands/cms/convertFields.js +8 -8
  29. package/commands/cms/delete.js +2 -3
  30. package/commands/cms/fetch.js +7 -7
  31. package/commands/cms/function/create.js +9 -5
  32. package/commands/cms/function/deploy.js +2 -3
  33. package/commands/cms/function/list.js +11 -7
  34. package/commands/cms/function/logs.js +17 -22
  35. package/commands/cms/function/server.js +2 -3
  36. package/commands/cms/getReactModule.js +7 -8
  37. package/commands/cms/lighthouseScore.js +25 -24
  38. package/commands/cms/lint.js +4 -5
  39. package/commands/cms/list.js +5 -6
  40. package/commands/cms/module/create.js +14 -5
  41. package/commands/cms/module/marketplace-validate.js +7 -8
  42. package/commands/cms/mv.js +2 -3
  43. package/commands/cms/template/create.js +10 -6
  44. package/commands/cms/theme/create.js +5 -5
  45. package/commands/cms/theme/generate-selectors.js +5 -4
  46. package/commands/cms/theme/marketplace-validate.js +8 -9
  47. package/commands/cms/theme/preview.js +23 -70
  48. package/commands/cms/upload.js +15 -12
  49. package/commands/cms/watch.d.ts +0 -1
  50. package/commands/cms/watch.js +6 -12
  51. package/commands/cms/webpack/create.js +5 -5
  52. package/commands/completion.js +3 -5
  53. package/commands/config/migrate.js +6 -7
  54. package/commands/config/set.js +5 -6
  55. package/commands/customObject/create.js +4 -5
  56. package/commands/customObject/createSchema.js +4 -5
  57. package/commands/customObject/deleteSchema.js +4 -5
  58. package/commands/customObject/fetchAllSchemas.js +2 -3
  59. package/commands/customObject/fetchSchema.js +2 -3
  60. package/commands/customObject/listSchemas.js +2 -3
  61. package/commands/customObject/updateSchema.js +4 -5
  62. package/commands/doctor.js +8 -8
  63. package/commands/feedback.js +7 -5
  64. package/commands/filemanager/fetch.js +5 -6
  65. package/commands/filemanager/upload.js +5 -5
  66. package/commands/getStarted.js +17 -19
  67. package/commands/hubdb/clear.js +6 -3
  68. package/commands/hubdb/create.js +4 -5
  69. package/commands/hubdb/delete.js +9 -6
  70. package/commands/hubdb/fetch.js +6 -3
  71. package/commands/hubdb/list.js +16 -14
  72. package/commands/init.js +15 -14
  73. package/commands/mcp/setup.js +5 -14
  74. package/commands/mcp/start.js +2 -4
  75. package/commands/open.js +4 -5
  76. package/commands/project/add.js +13 -8
  77. package/commands/project/appInstallStatus.d.ts +4 -0
  78. package/commands/project/appInstallStatus.js +132 -0
  79. package/commands/project/create.js +28 -17
  80. package/commands/project/delete.d.ts +7 -0
  81. package/commands/project/delete.js +74 -0
  82. package/commands/project/deploy.js +39 -36
  83. package/commands/project/dev/deprecatedFlow.js +62 -17
  84. package/commands/project/dev/index.d.ts +3 -3
  85. package/commands/project/dev/index.js +59 -48
  86. package/commands/project/dev/unifiedFlow.js +70 -21
  87. package/commands/project/download.js +12 -9
  88. package/commands/project/info.d.ts +4 -0
  89. package/commands/project/info.js +67 -0
  90. package/commands/project/installDeps.js +9 -6
  91. package/commands/project/lint.js +33 -10
  92. package/commands/project/list.d.ts +2 -2
  93. package/commands/project/list.js +15 -14
  94. package/commands/project/listBuilds.js +8 -6
  95. package/commands/project/logs.js +5 -6
  96. package/commands/project/migrate.js +18 -18
  97. package/commands/project/open.js +5 -6
  98. package/commands/project/profile/add.js +12 -8
  99. package/commands/project/profile/delete.js +15 -11
  100. package/commands/project/updateDeps.js +9 -6
  101. package/commands/project/upload.d.ts +3 -0
  102. package/commands/project/upload.js +98 -25
  103. package/commands/project/validate.js +12 -12
  104. package/commands/project/watch.js +32 -19
  105. package/commands/project.js +12 -3
  106. package/commands/sandbox/create.js +18 -45
  107. package/commands/sandbox/delete.js +13 -14
  108. package/commands/secret/addSecret.js +6 -7
  109. package/commands/secret/deleteSecret.js +5 -6
  110. package/commands/secret/listSecret.js +2 -3
  111. package/commands/secret/updateSecret.js +4 -5
  112. package/commands/testAccount/create.d.ts +1 -1
  113. package/commands/testAccount/create.js +25 -17
  114. package/commands/testAccount/createConfig.js +7 -8
  115. package/commands/testAccount/delete.js +27 -18
  116. package/commands/testAccount/importData.js +6 -7
  117. package/commands/upgrade.js +9 -10
  118. package/lang/en.d.ts +276 -14
  119. package/lang/en.js +293 -28
  120. package/lib/accountAuth.js +4 -0
  121. package/lib/api/usageTracking.d.ts +29 -0
  122. package/lib/api/usageTracking.js +28 -0
  123. package/lib/app/migrate.js +18 -5
  124. package/lib/buildAccount.d.ts +1 -6
  125. package/lib/buildAccount.js +9 -42
  126. package/lib/commandSuggestion.js +1 -7
  127. package/lib/constants.d.ts +3 -4
  128. package/lib/constants.js +5 -4
  129. package/lib/doctor/Diagnosis.js +5 -5
  130. package/lib/doctor/Doctor.js +7 -7
  131. package/lib/errorHandlers/index.js +4 -3
  132. package/lib/errorHandlers/suppressError.js +4 -0
  133. package/lib/errors/PromptExitError.d.ts +6 -0
  134. package/lib/errors/PromptExitError.js +11 -0
  135. package/lib/generateSelectors.js +1 -2
  136. package/lib/getStartedV2Actions.d.ts +13 -0
  137. package/lib/getStartedV2Actions.js +56 -3
  138. package/lib/hasFeature.js +1 -2
  139. package/lib/link/accountTableUtils.d.ts +10 -0
  140. package/lib/link/accountTableUtils.js +39 -0
  141. package/lib/link/index.d.ts +18 -0
  142. package/lib/link/index.js +185 -0
  143. package/lib/link/linkUtils.d.ts +5 -0
  144. package/lib/link/linkUtils.js +49 -0
  145. package/lib/link/prompts.d.ts +7 -0
  146. package/lib/link/prompts.js +126 -0
  147. package/lib/link/renderLinkedAccountsTable.d.ts +2 -0
  148. package/lib/link/renderLinkedAccountsTable.js +14 -0
  149. package/lib/link/warnIfLinkedDirectory.d.ts +1 -0
  150. package/lib/link/warnIfLinkedDirectory.js +9 -0
  151. package/lib/mcp/setup.d.ts +1 -0
  152. package/lib/mcp/setup.js +77 -30
  153. package/lib/middleware/autoUpdateMiddleware.js +6 -3
  154. package/lib/process.d.ts +1 -1
  155. package/lib/process.js +10 -3
  156. package/lib/projects/ProjectLogsManager.js +6 -3
  157. package/lib/projects/components.js +15 -4
  158. package/lib/projects/create/index.js +3 -6
  159. package/lib/projects/create/legacy.js +5 -10
  160. package/lib/projects/create/v2.js +5 -14
  161. package/lib/projects/delete.d.ts +13 -0
  162. package/lib/projects/delete.js +193 -0
  163. package/lib/projects/deploy.d.ts +1 -1
  164. package/lib/projects/deploy.js +2 -2
  165. package/lib/projects/ensureProjectExists.js +1 -2
  166. package/lib/projects/localDev/AppDevModeInterface.js +13 -9
  167. package/lib/projects/localDev/DevServerManager_DEPRECATED.d.ts +4 -1
  168. package/lib/projects/localDev/DevServerManager_DEPRECATED.js +3 -3
  169. package/lib/projects/localDev/DevSessionManager.d.ts +6 -3
  170. package/lib/projects/localDev/DevSessionManager.js +31 -19
  171. package/lib/projects/localDev/LocalDevManager_DEPRECATED.d.ts +5 -0
  172. package/lib/projects/localDev/LocalDevManager_DEPRECATED.js +21 -10
  173. package/lib/projects/localDev/LocalDevProcess.js +6 -5
  174. package/lib/projects/localDev/LocalDevState.d.ts +3 -2
  175. package/lib/projects/localDev/LocalDevState.js +3 -1
  176. package/lib/projects/localDev/helpers/account.d.ts +4 -3
  177. package/lib/projects/localDev/helpers/account.js +21 -30
  178. package/lib/projects/localDev/helpers/process.d.ts +1 -1
  179. package/lib/projects/localDev/helpers/process.js +4 -10
  180. package/lib/projects/localDev/helpers/project.d.ts +4 -3
  181. package/lib/projects/localDev/helpers/project.js +32 -16
  182. package/lib/projects/npmAuditOnUpload.d.ts +10 -0
  183. package/lib/projects/npmAuditOnUpload.js +73 -0
  184. package/lib/projects/pollProjectBuildAndDeploy.d.ts +5 -1
  185. package/lib/projects/pollProjectBuildAndDeploy.js +93 -87
  186. package/lib/projects/preview.d.ts +7 -0
  187. package/lib/projects/preview.js +48 -0
  188. package/lib/projects/projectInfo.d.ts +5 -0
  189. package/lib/projects/projectInfo.js +82 -0
  190. package/lib/projects/projectProfiles.d.ts +1 -2
  191. package/lib/projects/projectProfiles.js +5 -17
  192. package/lib/projects/uieLinting.d.ts +17 -3
  193. package/lib/projects/uieLinting.js +93 -28
  194. package/lib/projects/upload.d.ts +4 -1
  195. package/lib/projects/upload.js +71 -50
  196. package/lib/projects/watch.d.ts +2 -1
  197. package/lib/projects/watch.js +32 -24
  198. package/lib/projects/workspaces.d.ts +52 -0
  199. package/lib/projects/workspaces.js +365 -0
  200. package/lib/prompts/createApiSamplePrompt.js +4 -0
  201. package/lib/prompts/downloadProjectPrompt.js +11 -10
  202. package/lib/prompts/installAppPrompt.js +3 -2
  203. package/lib/prompts/personalAccessKeyPrompt.js +3 -2
  204. package/lib/prompts/projectDevTargetAccountPrompt.d.ts +1 -0
  205. package/lib/prompts/projectDevTargetAccountPrompt.js +23 -16
  206. package/lib/prompts/projectProfilePrompt.d.ts +2 -0
  207. package/lib/prompts/projectProfilePrompt.js +46 -0
  208. package/lib/prompts/projectsLogsPrompt.js +3 -0
  209. package/lib/prompts/promptUtils.js +4 -2
  210. package/lib/prompts/selectHubDBTablePrompt.js +8 -4
  211. package/lib/prompts/selectPublicAppForMigrationPrompt.js +12 -6
  212. package/lib/sandboxes.d.ts +1 -9
  213. package/lib/sandboxes.js +0 -21
  214. package/lib/serverlessLogs.js +50 -44
  215. package/lib/theme/cmsDevServerProcess.d.ts +14 -0
  216. package/lib/theme/cmsDevServerProcess.js +149 -0
  217. package/lib/theme/cmsDevServerRunner.d.ts +14 -0
  218. package/lib/theme/cmsDevServerRunner.js +90 -0
  219. package/lib/theme/migrate.d.ts +1 -1
  220. package/lib/theme/migrate.js +1 -5
  221. package/lib/ui/SpinniesManager.d.ts +1 -0
  222. package/lib/ui/SpinniesManager.js +22 -6
  223. package/lib/ui/accountTable.d.ts +8 -0
  224. package/lib/ui/accountTable.js +67 -0
  225. package/lib/ui/spinniesUtils.d.ts +0 -1
  226. package/lib/ui/spinniesUtils.js +6 -16
  227. package/lib/usageTracking.d.ts +9 -20
  228. package/lib/usageTracking.js +51 -34
  229. package/lib/yargs/makeWrappedYargsHandler.d.ts +3 -0
  230. package/lib/yargs/makeWrappedYargsHandler.js +121 -0
  231. package/lib/yargs/makeYargsBuilder.d.ts +13 -0
  232. package/lib/yargs/makeYargsBuilder.js +33 -0
  233. package/lib/yargs/parseYargsOrExit.d.ts +4 -0
  234. package/lib/yargs/parseYargsOrExit.js +25 -0
  235. package/lib/yargs/strictEnforceBoolean.d.ts +1 -0
  236. package/lib/yargs/strictEnforceBoolean.js +13 -0
  237. package/lib/yargsUtils.d.ts +3 -16
  238. package/lib/yargsUtils.js +3 -48
  239. package/mcp-server/Tool.d.ts +15 -0
  240. package/mcp-server/Tool.js +53 -0
  241. package/mcp-server/server.js +43 -3
  242. package/mcp-server/tools/cms/HsCreateFunctionTool.d.ts +4 -2
  243. package/mcp-server/tools/cms/HsCreateFunctionTool.js +11 -9
  244. package/mcp-server/tools/cms/HsCreateModuleTool.d.ts +4 -2
  245. package/mcp-server/tools/cms/HsCreateModuleTool.js +12 -11
  246. package/mcp-server/tools/cms/HsCreateTemplateTool.d.ts +4 -2
  247. package/mcp-server/tools/cms/HsCreateTemplateTool.js +11 -9
  248. package/mcp-server/tools/cms/HsFunctionLogsTool.d.ts +4 -2
  249. package/mcp-server/tools/cms/HsFunctionLogsTool.js +10 -9
  250. package/mcp-server/tools/cms/HsListFunctionsTool.d.ts +4 -2
  251. package/mcp-server/tools/cms/HsListFunctionsTool.js +10 -9
  252. package/mcp-server/tools/cms/HsListTool.d.ts +4 -2
  253. package/mcp-server/tools/cms/HsListTool.js +11 -9
  254. package/mcp-server/tools/index.d.ts +3 -2
  255. package/mcp-server/tools/index.js +24 -22
  256. package/mcp-server/tools/project/AddFeatureToProjectTool.d.ts +25 -5
  257. package/mcp-server/tools/project/AddFeatureToProjectTool.js +16 -18
  258. package/mcp-server/tools/project/CreateProjectTool.d.ts +29 -6
  259. package/mcp-server/tools/project/CreateProjectTool.js +16 -18
  260. package/mcp-server/tools/project/CreateTestAccountTool.d.ts +4 -2
  261. package/mcp-server/tools/project/CreateTestAccountTool.js +22 -10
  262. package/mcp-server/tools/project/DeployProjectTool.d.ts +4 -2
  263. package/mcp-server/tools/project/DeployProjectTool.js +6 -8
  264. package/mcp-server/tools/project/DocFetchTool.d.ts +4 -2
  265. package/mcp-server/tools/project/DocFetchTool.js +8 -6
  266. package/mcp-server/tools/project/DocsSearchTool.d.ts +9 -3
  267. package/mcp-server/tools/project/DocsSearchTool.js +32 -9
  268. package/mcp-server/tools/project/FindProjectsTool.d.ts +15 -0
  269. package/mcp-server/tools/project/FindProjectsTool.js +60 -0
  270. package/mcp-server/tools/project/GetApiUsagePatternsByAppIdTool.d.ts +4 -2
  271. package/mcp-server/tools/project/GetApiUsagePatternsByAppIdTool.js +13 -14
  272. package/mcp-server/tools/project/GetApplicationInfoTool.d.ts +4 -2
  273. package/mcp-server/tools/project/GetApplicationInfoTool.js +8 -6
  274. package/mcp-server/tools/project/GetBuildLogsTool.d.ts +6 -4
  275. package/mcp-server/tools/project/GetBuildLogsTool.js +15 -14
  276. package/mcp-server/tools/project/GetBuildStatusTool.d.ts +5 -3
  277. package/mcp-server/tools/project/GetBuildStatusTool.js +12 -11
  278. package/mcp-server/tools/project/GetConfigValuesTool.d.ts +4 -2
  279. package/mcp-server/tools/project/GetConfigValuesTool.js +12 -7
  280. package/mcp-server/tools/project/GuidedWalkthroughTool.d.ts +10 -3
  281. package/mcp-server/tools/project/GuidedWalkthroughTool.js +5 -12
  282. package/mcp-server/tools/project/UploadProjectTools.d.ts +4 -2
  283. package/mcp-server/tools/project/UploadProjectTools.js +11 -9
  284. package/mcp-server/tools/project/ValidateProjectTool.d.ts +4 -2
  285. package/mcp-server/tools/project/ValidateProjectTool.js +10 -8
  286. package/mcp-server/tools/project/constants.d.ts +13 -1
  287. package/mcp-server/tools/project/constants.js +13 -16
  288. package/mcp-server/types.d.ts +0 -7
  289. package/mcp-server/types.js +1 -13
  290. package/mcp-server/utils/command.d.ts +5 -0
  291. package/mcp-server/utils/command.js +24 -0
  292. package/mcp-server/utils/feedbackTracking.js +2 -17
  293. package/mcp-server/utils/logger.d.ts +10 -0
  294. package/mcp-server/utils/logger.js +29 -0
  295. package/mcp-server/utils/toolUsageTracking.js +10 -8
  296. package/package.json +15 -11
  297. package/types/Link.d.ts +32 -0
  298. package/types/Link.js +5 -0
  299. package/types/LocalDev.d.ts +5 -0
  300. package/types/PackageJson.d.ts +1 -0
  301. package/types/Projects.d.ts +19 -0
  302. package/types/Prompts.d.ts +1 -0
  303. package/types/Yargs.d.ts +19 -1
  304. package/ui/components/getStarted/GetStartedFlow.js +79 -2
  305. package/ui/components/getStarted/reducer.d.ts +20 -0
  306. package/ui/components/getStarted/reducer.js +36 -0
  307. package/ui/components/getStarted/screens/InstallationScreen.d.ts +7 -0
  308. package/ui/components/getStarted/screens/InstallationScreen.js +16 -0
  309. package/ui/components/getStarted/screens/ProjectSetupScreen.js +2 -1
  310. package/ui/lib/constants.d.ts +1 -0
  311. package/ui/lib/constants.js +1 -0
  312. package/api/__tests__/migrate.test.d.ts +0 -1
  313. package/api/__tests__/migrate.test.js +0 -199
  314. package/commands/__tests__/account.test.d.ts +0 -1
  315. package/commands/__tests__/account.test.js +0 -69
  316. package/commands/__tests__/auth.test.d.ts +0 -1
  317. package/commands/__tests__/auth.test.js +0 -43
  318. package/commands/__tests__/cms.test.d.ts +0 -1
  319. package/commands/__tests__/cms.test.js +0 -87
  320. package/commands/__tests__/config.test.d.ts +0 -1
  321. package/commands/__tests__/config.test.js +0 -44
  322. package/commands/__tests__/customObject.test.d.ts +0 -1
  323. package/commands/__tests__/customObject.test.js +0 -68
  324. package/commands/__tests__/doctor.test.d.ts +0 -1
  325. package/commands/__tests__/doctor.test.js +0 -132
  326. package/commands/__tests__/feedback.test.d.ts +0 -1
  327. package/commands/__tests__/feedback.test.js +0 -24
  328. package/commands/__tests__/filemanager.test.d.ts +0 -1
  329. package/commands/__tests__/filemanager.test.js +0 -45
  330. package/commands/__tests__/getStarted.test.d.ts +0 -1
  331. package/commands/__tests__/getStarted.test.js +0 -173
  332. package/commands/__tests__/hubdb.test.d.ts +0 -1
  333. package/commands/__tests__/hubdb.test.js +0 -50
  334. package/commands/__tests__/init.test.d.ts +0 -1
  335. package/commands/__tests__/init.test.js +0 -42
  336. package/commands/__tests__/mcp.test.d.ts +0 -1
  337. package/commands/__tests__/mcp.test.js +0 -46
  338. package/commands/__tests__/open.test.d.ts +0 -1
  339. package/commands/__tests__/open.test.js +0 -58
  340. package/commands/__tests__/project.test.d.ts +0 -1
  341. package/commands/__tests__/project.test.js +0 -125
  342. package/commands/__tests__/sandbox.test.d.ts +0 -1
  343. package/commands/__tests__/sandbox.test.js +0 -44
  344. package/commands/__tests__/secret.test.d.ts +0 -1
  345. package/commands/__tests__/secret.test.js +0 -49
  346. package/commands/__tests__/testAccount.test.d.ts +0 -1
  347. package/commands/__tests__/testAccount.test.js +0 -57
  348. package/commands/__tests__/upgrade.test.d.ts +0 -1
  349. package/commands/__tests__/upgrade.test.js +0 -309
  350. package/commands/account/__tests__/auth.test.d.ts +0 -1
  351. package/commands/account/__tests__/auth.test.js +0 -206
  352. package/commands/account/__tests__/clean.test.d.ts +0 -1
  353. package/commands/account/__tests__/clean.test.js +0 -28
  354. package/commands/account/__tests__/createOverride.test.d.ts +0 -1
  355. package/commands/account/__tests__/createOverride.test.js +0 -32
  356. package/commands/account/__tests__/info.test.d.ts +0 -1
  357. package/commands/account/__tests__/info.test.js +0 -28
  358. package/commands/account/__tests__/list.test.d.ts +0 -1
  359. package/commands/account/__tests__/list.test.js +0 -153
  360. package/commands/account/__tests__/remove.test.d.ts +0 -1
  361. package/commands/account/__tests__/remove.test.js +0 -36
  362. package/commands/account/__tests__/removeOverride.d.ts +0 -1
  363. package/commands/account/__tests__/removeOverride.js +0 -25
  364. package/commands/account/__tests__/rename.test.d.ts +0 -1
  365. package/commands/account/__tests__/rename.test.js +0 -82
  366. package/commands/account/__tests__/use.test.d.ts +0 -1
  367. package/commands/account/__tests__/use.test.js +0 -170
  368. package/commands/app/__tests__/migrate.test.d.ts +0 -1
  369. package/commands/app/__tests__/migrate.test.js +0 -111
  370. package/commands/app/secret/__tests__/add.test.d.ts +0 -1
  371. package/commands/app/secret/__tests__/add.test.js +0 -140
  372. package/commands/app/secret/__tests__/delete.test.d.ts +0 -1
  373. package/commands/app/secret/__tests__/delete.test.js +0 -28
  374. package/commands/app/secret/__tests__/list.test.d.ts +0 -1
  375. package/commands/app/secret/__tests__/list.test.js +0 -25
  376. package/commands/app/secret/__tests__/update.test.d.ts +0 -1
  377. package/commands/app/secret/__tests__/update.test.js +0 -28
  378. package/commands/cms/__tests__/delete.test.d.ts +0 -1
  379. package/commands/cms/__tests__/delete.test.js +0 -39
  380. package/commands/cms/__tests__/fetch.test.d.ts +0 -1
  381. package/commands/cms/__tests__/fetch.test.js +0 -156
  382. package/commands/cms/__tests__/function.test.d.ts +0 -1
  383. package/commands/cms/__tests__/function.test.js +0 -50
  384. package/commands/cms/__tests__/lint.test.d.ts +0 -1
  385. package/commands/cms/__tests__/lint.test.js +0 -33
  386. package/commands/cms/__tests__/list.test.d.ts +0 -1
  387. package/commands/cms/__tests__/list.test.js +0 -42
  388. package/commands/cms/__tests__/module.test.d.ts +0 -1
  389. package/commands/cms/__tests__/module.test.js +0 -45
  390. package/commands/cms/__tests__/mv.test.d.ts +0 -1
  391. package/commands/cms/__tests__/mv.test.js +0 -46
  392. package/commands/cms/__tests__/theme.test.d.ts +0 -1
  393. package/commands/cms/__tests__/theme.test.js +0 -54
  394. package/commands/cms/__tests__/upload.test.d.ts +0 -1
  395. package/commands/cms/__tests__/upload.test.js +0 -308
  396. package/commands/cms/__tests__/watch.test.d.ts +0 -1
  397. package/commands/cms/__tests__/watch.test.js +0 -212
  398. package/commands/cms/function/__tests__/logs.test.d.ts +0 -1
  399. package/commands/cms/function/__tests__/logs.test.js +0 -70
  400. package/commands/cms/theme/__tests__/generate-selectors.test.d.ts +0 -1
  401. package/commands/cms/theme/__tests__/generate-selectors.test.js +0 -28
  402. package/commands/cms/theme/__tests__/marketplace-validate.test.d.ts +0 -1
  403. package/commands/cms/theme/__tests__/marketplace-validate.test.js +0 -36
  404. package/commands/cms/theme/__tests__/preview.test.d.ts +0 -1
  405. package/commands/cms/theme/__tests__/preview.test.js +0 -54
  406. package/commands/customObject/__tests__/create.test.d.ts +0 -1
  407. package/commands/customObject/__tests__/create.test.js +0 -40
  408. package/commands/customObject/__tests__/createSchema.test.d.ts +0 -1
  409. package/commands/customObject/__tests__/createSchema.test.js +0 -28
  410. package/commands/customObject/__tests__/deleteSchema.test.d.ts +0 -1
  411. package/commands/customObject/__tests__/deleteSchema.test.js +0 -42
  412. package/commands/customObject/__tests__/fetch-all-schemas.test.d.ts +0 -1
  413. package/commands/customObject/__tests__/fetch-all-schemas.test.js +0 -41
  414. package/commands/customObject/__tests__/fetchSchema.test.d.ts +0 -1
  415. package/commands/customObject/__tests__/fetchSchema.test.js +0 -45
  416. package/commands/customObject/__tests__/listSchemas.test.d.ts +0 -1
  417. package/commands/customObject/__tests__/listSchemas.test.js +0 -29
  418. package/commands/customObject/__tests__/updateSchema.test.d.ts +0 -1
  419. package/commands/customObject/__tests__/updateSchema.test.js +0 -40
  420. package/commands/filemanager/__tests__/fetch.test.d.ts +0 -1
  421. package/commands/filemanager/__tests__/fetch.test.js +0 -32
  422. package/commands/filemanager/__tests__/upload.test.d.ts +0 -1
  423. package/commands/filemanager/__tests__/upload.test.js +0 -191
  424. package/commands/hubdb/__tests__/clear.test.d.ts +0 -1
  425. package/commands/hubdb/__tests__/clear.test.js +0 -28
  426. package/commands/hubdb/__tests__/create.test.d.ts +0 -1
  427. package/commands/hubdb/__tests__/create.test.js +0 -28
  428. package/commands/hubdb/__tests__/delete.test.d.ts +0 -1
  429. package/commands/hubdb/__tests__/delete.test.js +0 -28
  430. package/commands/hubdb/__tests__/fetch.test.d.ts +0 -1
  431. package/commands/hubdb/__tests__/fetch.test.js +0 -28
  432. package/commands/hubdb/__tests__/list.test.d.ts +0 -1
  433. package/commands/hubdb/__tests__/list.test.js +0 -88
  434. package/commands/mcp/__tests__/setup.test.d.ts +0 -1
  435. package/commands/mcp/__tests__/setup.test.js +0 -26
  436. package/commands/mcp/__tests__/start.test.d.ts +0 -1
  437. package/commands/mcp/__tests__/start.test.js +0 -137
  438. package/commands/project/__tests__/add.test.d.ts +0 -1
  439. package/commands/project/__tests__/add.test.js +0 -107
  440. package/commands/project/__tests__/create.test.d.ts +0 -1
  441. package/commands/project/__tests__/create.test.js +0 -97
  442. package/commands/project/__tests__/deploy.test.d.ts +0 -1
  443. package/commands/project/__tests__/deploy.test.js +0 -307
  444. package/commands/project/__tests__/dev.test.d.ts +0 -1
  445. package/commands/project/__tests__/dev.test.js +0 -273
  446. package/commands/project/__tests__/devUnifiedFlow.test.d.ts +0 -1
  447. package/commands/project/__tests__/devUnifiedFlow.test.js +0 -434
  448. package/commands/project/__tests__/download.test.d.ts +0 -1
  449. package/commands/project/__tests__/download.test.js +0 -39
  450. package/commands/project/__tests__/installDeps.test.d.ts +0 -1
  451. package/commands/project/__tests__/installDeps.test.js +0 -140
  452. package/commands/project/__tests__/lint.test.d.ts +0 -1
  453. package/commands/project/__tests__/lint.test.js +0 -704
  454. package/commands/project/__tests__/list.test.d.ts +0 -1
  455. package/commands/project/__tests__/list.test.js +0 -31
  456. package/commands/project/__tests__/listBuilds.test.d.ts +0 -1
  457. package/commands/project/__tests__/listBuilds.test.js +0 -38
  458. package/commands/project/__tests__/logs.test.d.ts +0 -1
  459. package/commands/project/__tests__/logs.test.js +0 -202
  460. package/commands/project/__tests__/migrate.test.d.ts +0 -1
  461. package/commands/project/__tests__/migrate.test.js +0 -106
  462. package/commands/project/__tests__/open.test.d.ts +0 -1
  463. package/commands/project/__tests__/open.test.js +0 -39
  464. package/commands/project/__tests__/profile.test.d.ts +0 -1
  465. package/commands/project/__tests__/profile.test.js +0 -42
  466. package/commands/project/__tests__/updateDeps.test.d.ts +0 -1
  467. package/commands/project/__tests__/updateDeps.test.js +0 -140
  468. package/commands/project/__tests__/upload.test.d.ts +0 -1
  469. package/commands/project/__tests__/upload.test.js +0 -234
  470. package/commands/project/__tests__/validate.test.d.ts +0 -1
  471. package/commands/project/__tests__/validate.test.js +0 -381
  472. package/commands/project/__tests__/watch.test.d.ts +0 -1
  473. package/commands/project/__tests__/watch.test.js +0 -35
  474. package/commands/sandbox/__tests__/create.test.d.ts +0 -1
  475. package/commands/sandbox/__tests__/create.test.js +0 -245
  476. package/commands/sandbox/__tests__/delete.test.d.ts +0 -1
  477. package/commands/sandbox/__tests__/delete.test.js +0 -31
  478. package/commands/secret/__tests__/addSecret.test.d.ts +0 -1
  479. package/commands/secret/__tests__/addSecret.test.js +0 -162
  480. package/commands/secret/__tests__/deleteSecret.test.d.ts +0 -1
  481. package/commands/secret/__tests__/deleteSecret.test.js +0 -41
  482. package/commands/secret/__tests__/listSecret.test.d.ts +0 -1
  483. package/commands/secret/__tests__/listSecret.test.js +0 -29
  484. package/commands/secret/__tests__/updateSecret.test.d.ts +0 -1
  485. package/commands/secret/__tests__/updateSecret.test.js +0 -29
  486. package/commands/testAccount/__tests__/create.test.d.ts +0 -1
  487. package/commands/testAccount/__tests__/create.test.js +0 -106
  488. package/commands/testAccount/__tests__/createConfig.test.d.ts +0 -1
  489. package/commands/testAccount/__tests__/createConfig.test.js +0 -32
  490. package/commands/testAccount/__tests__/delete.test.d.ts +0 -1
  491. package/commands/testAccount/__tests__/delete.test.js +0 -29
  492. package/commands/testAccount/__tests__/importData.test.d.ts +0 -1
  493. package/commands/testAccount/__tests__/importData.test.js +0 -92
  494. package/lib/__tests__/CLIWebSocketServer.test.d.ts +0 -1
  495. package/lib/__tests__/CLIWebSocketServer.test.js +0 -252
  496. package/lib/__tests__/accountAuth.test.d.ts +0 -1
  497. package/lib/__tests__/accountAuth.test.js +0 -258
  498. package/lib/__tests__/accountTypes.test.d.ts +0 -1
  499. package/lib/__tests__/accountTypes.test.js +0 -98
  500. package/lib/__tests__/buildAccount.test.d.ts +0 -1
  501. package/lib/__tests__/buildAccount.test.js +0 -262
  502. package/lib/__tests__/cliUpgradeUtils.test.d.ts +0 -1
  503. package/lib/__tests__/cliUpgradeUtils.test.js +0 -131
  504. package/lib/__tests__/commandSuggestion.test.d.ts +0 -1
  505. package/lib/__tests__/commandSuggestion.test.js +0 -119
  506. package/lib/__tests__/commonOpts.test.d.ts +0 -1
  507. package/lib/__tests__/commonOpts.test.js +0 -80
  508. package/lib/__tests__/dependencyManagement.test.d.ts +0 -1
  509. package/lib/__tests__/dependencyManagement.test.js +0 -1067
  510. package/lib/__tests__/developerTestAccounts.test.d.ts +0 -1
  511. package/lib/__tests__/developerTestAccounts.test.js +0 -156
  512. package/lib/__tests__/hasFeature.test.d.ts +0 -1
  513. package/lib/__tests__/hasFeature.test.js +0 -167
  514. package/lib/__tests__/http.test.d.ts +0 -1
  515. package/lib/__tests__/http.test.js +0 -40
  516. package/lib/__tests__/importData.test.d.ts +0 -1
  517. package/lib/__tests__/importData.test.js +0 -98
  518. package/lib/__tests__/npmCli.test.d.ts +0 -1
  519. package/lib/__tests__/npmCli.test.js +0 -84
  520. package/lib/__tests__/oauth.test.d.ts +0 -1
  521. package/lib/__tests__/oauth.test.js +0 -109
  522. package/lib/__tests__/parsing.test.d.ts +0 -1
  523. package/lib/__tests__/parsing.test.js +0 -34
  524. package/lib/__tests__/polling.test.d.ts +0 -1
  525. package/lib/__tests__/polling.test.js +0 -76
  526. package/lib/__tests__/process.test.d.ts +0 -1
  527. package/lib/__tests__/process.test.js +0 -89
  528. package/lib/__tests__/sandboxSync.test.d.ts +0 -1
  529. package/lib/__tests__/sandboxSync.test.js +0 -147
  530. package/lib/__tests__/sandboxes.test.d.ts +0 -1
  531. package/lib/__tests__/sandboxes.test.js +0 -156
  532. package/lib/__tests__/serverlessLogs.test.d.ts +0 -1
  533. package/lib/__tests__/serverlessLogs.test.js +0 -148
  534. package/lib/__tests__/usageTracking.test.d.ts +0 -1
  535. package/lib/__tests__/usageTracking.test.js +0 -197
  536. package/lib/__tests__/validation.test.d.ts +0 -1
  537. package/lib/__tests__/validation.test.js +0 -143
  538. package/lib/__tests__/yargsUtils.test.d.ts +0 -1
  539. package/lib/__tests__/yargsUtils.test.js +0 -124
  540. package/lib/app/__tests__/migrate.test.d.ts +0 -1
  541. package/lib/app/__tests__/migrate.test.js +0 -638
  542. package/lib/doctor/__tests__/Diagnosis.test.d.ts +0 -1
  543. package/lib/doctor/__tests__/Diagnosis.test.js +0 -84
  544. package/lib/doctor/__tests__/DiagnosticInfoBuilder.test.d.ts +0 -1
  545. package/lib/doctor/__tests__/DiagnosticInfoBuilder.test.js +0 -177
  546. package/lib/doctor/__tests__/Doctor.test.d.ts +0 -1
  547. package/lib/doctor/__tests__/Doctor.test.js +0 -560
  548. package/lib/errorHandlers/__tests__/index.test.d.ts +0 -1
  549. package/lib/errorHandlers/__tests__/index.test.js +0 -278
  550. package/lib/mcp/__tests__/setup.test.d.ts +0 -1
  551. package/lib/mcp/__tests__/setup.test.js +0 -194
  552. package/lib/middleware/__tests__/commandTargetingUtils.test.d.ts +0 -1
  553. package/lib/middleware/__tests__/commandTargetingUtils.test.js +0 -99
  554. package/lib/middleware/__tests__/configMiddleware.test.d.ts +0 -1
  555. package/lib/middleware/__tests__/configMiddleware.test.js +0 -118
  556. package/lib/middleware/__tests__/gitMiddleware.test.d.ts +0 -1
  557. package/lib/middleware/__tests__/gitMiddleware.test.js +0 -43
  558. package/lib/middleware/__tests__/requestMiddleware.test.d.ts +0 -1
  559. package/lib/middleware/__tests__/requestMiddleware.test.js +0 -15
  560. package/lib/middleware/__tests__/usageTrackingMiddleware.test.d.ts +0 -1
  561. package/lib/middleware/__tests__/usageTrackingMiddleware.test.js +0 -44
  562. package/lib/middleware/__tests__/yargsChecksMiddleware.test.d.ts +0 -1
  563. package/lib/middleware/__tests__/yargsChecksMiddleware.test.js +0 -39
  564. package/lib/projects/__tests__/AppDevModeInterface.test.d.ts +0 -1
  565. package/lib/projects/__tests__/AppDevModeInterface.test.js +0 -541
  566. package/lib/projects/__tests__/DevServerManager.test.d.ts +0 -1
  567. package/lib/projects/__tests__/DevServerManager.test.js +0 -185
  568. package/lib/projects/__tests__/DevSessionManager.test.d.ts +0 -1
  569. package/lib/projects/__tests__/DevSessionManager.test.js +0 -250
  570. package/lib/projects/__tests__/LocalDevProcess.test.d.ts +0 -1
  571. package/lib/projects/__tests__/LocalDevProcess.test.js +0 -481
  572. package/lib/projects/__tests__/LocalDevWebsocketServer.test.d.ts +0 -1
  573. package/lib/projects/__tests__/LocalDevWebsocketServer.test.js +0 -231
  574. package/lib/projects/__tests__/ProjectLogsManager.test.d.ts +0 -1
  575. package/lib/projects/__tests__/ProjectLogsManager.test.js +0 -302
  576. package/lib/projects/__tests__/UIExtensionsDevModeInterface.test.d.ts +0 -1
  577. package/lib/projects/__tests__/UIExtensionsDevModeInterface.test.js +0 -160
  578. package/lib/projects/__tests__/components.test.d.ts +0 -1
  579. package/lib/projects/__tests__/components.test.js +0 -426
  580. package/lib/projects/__tests__/deploy.test.d.ts +0 -1
  581. package/lib/projects/__tests__/deploy.test.js +0 -231
  582. package/lib/projects/__tests__/localDevProjectHelpers.test.d.ts +0 -1
  583. package/lib/projects/__tests__/localDevProjectHelpers.test.js +0 -120
  584. package/lib/projects/__tests__/platformVersion.test.d.ts +0 -1
  585. package/lib/projects/__tests__/platformVersion.test.js +0 -63
  586. package/lib/projects/__tests__/pollProjectBuildAndDeploy.test.d.ts +0 -1
  587. package/lib/projects/__tests__/pollProjectBuildAndDeploy.test.js +0 -328
  588. package/lib/projects/__tests__/projectProfiles.test.d.ts +0 -1
  589. package/lib/projects/__tests__/projectProfiles.test.js +0 -441
  590. package/lib/projects/__tests__/projects.test.d.ts +0 -1
  591. package/lib/projects/__tests__/projects.test.js +0 -58
  592. package/lib/projects/__tests__/structure.test.d.ts +0 -1
  593. package/lib/projects/__tests__/structure.test.js +0 -210
  594. package/lib/projects/__tests__/uieLinting.test.d.ts +0 -1
  595. package/lib/projects/__tests__/uieLinting.test.js +0 -631
  596. package/lib/projects/__tests__/upload.test.d.ts +0 -1
  597. package/lib/projects/__tests__/upload.test.js +0 -183
  598. package/lib/projects/add/__tests__/legacyAddComponent.test.d.ts +0 -1
  599. package/lib/projects/add/__tests__/legacyAddComponent.test.js +0 -245
  600. package/lib/projects/add/__tests__/v2AddComponent.test.d.ts +0 -1
  601. package/lib/projects/add/__tests__/v2AddComponent.test.js +0 -343
  602. package/lib/projects/create/__tests__/legacy.test.d.ts +0 -1
  603. package/lib/projects/create/__tests__/legacy.test.js +0 -90
  604. package/lib/projects/create/__tests__/v2.test.d.ts +0 -1
  605. package/lib/projects/create/__tests__/v2.test.js +0 -257
  606. package/lib/projects/platformVersion.d.ts +0 -9
  607. package/lib/projects/platformVersion.js +0 -39
  608. package/lib/prompts/__tests__/createDeveloperTestAccountConfigPrompt.test.d.ts +0 -1
  609. package/lib/prompts/__tests__/createDeveloperTestAccountConfigPrompt.test.js +0 -157
  610. package/lib/prompts/__tests__/createFunctionPrompt.test.d.ts +0 -1
  611. package/lib/prompts/__tests__/createFunctionPrompt.test.js +0 -129
  612. package/lib/prompts/__tests__/createModulePrompt.test.d.ts +0 -1
  613. package/lib/prompts/__tests__/createModulePrompt.test.js +0 -187
  614. package/lib/prompts/__tests__/createTemplatePrompt.test.d.ts +0 -1
  615. package/lib/prompts/__tests__/createTemplatePrompt.test.js +0 -102
  616. package/lib/prompts/__tests__/downloadProjectPrompt.test.d.ts +0 -1
  617. package/lib/prompts/__tests__/downloadProjectPrompt.test.js +0 -31
  618. package/lib/prompts/__tests__/projectAddPrompt.test.d.ts +0 -1
  619. package/lib/prompts/__tests__/projectAddPrompt.test.js +0 -143
  620. package/lib/prompts/__tests__/projectsLogsPrompt.test.d.ts +0 -1
  621. package/lib/prompts/__tests__/projectsLogsPrompt.test.js +0 -37
  622. package/lib/prompts/__tests__/selectProjectTemplatePrompt.test.d.ts +0 -1
  623. package/lib/prompts/__tests__/selectProjectTemplatePrompt.test.js +0 -160
  624. package/lib/sandboxSync.d.ts +0 -4
  625. package/lib/sandboxSync.js +0 -102
  626. package/lib/theme/__tests__/migrate.test.d.ts +0 -1
  627. package/lib/theme/__tests__/migrate.test.js +0 -256
  628. package/lib/ui/__tests__/SpinniesManager.test.d.ts +0 -1
  629. package/lib/ui/__tests__/SpinniesManager.test.js +0 -488
  630. package/lib/ui/__tests__/removeAnsiCodes.test.d.ts +0 -1
  631. package/lib/ui/__tests__/removeAnsiCodes.test.js +0 -84
  632. package/mcp-server/tools/cms/__tests__/HsCreateFunctionTool.test.d.ts +0 -1
  633. package/mcp-server/tools/cms/__tests__/HsCreateFunctionTool.test.js +0 -255
  634. package/mcp-server/tools/cms/__tests__/HsCreateModuleTool.test.d.ts +0 -1
  635. package/mcp-server/tools/cms/__tests__/HsCreateModuleTool.test.js +0 -228
  636. package/mcp-server/tools/cms/__tests__/HsCreateTemplateTool.test.d.ts +0 -1
  637. package/mcp-server/tools/cms/__tests__/HsCreateTemplateTool.test.js +0 -209
  638. package/mcp-server/tools/cms/__tests__/HsFunctionLogsTool.test.d.ts +0 -1
  639. package/mcp-server/tools/cms/__tests__/HsFunctionLogsTool.test.js +0 -187
  640. package/mcp-server/tools/cms/__tests__/HsListFunctionsTool.test.d.ts +0 -1
  641. package/mcp-server/tools/cms/__tests__/HsListFunctionsTool.test.js +0 -125
  642. package/mcp-server/tools/cms/__tests__/HsListTool.test.d.ts +0 -1
  643. package/mcp-server/tools/cms/__tests__/HsListTool.test.js +0 -125
  644. package/mcp-server/tools/project/__tests__/AddFeatureToProjectTool.test.d.ts +0 -1
  645. package/mcp-server/tools/project/__tests__/AddFeatureToProjectTool.test.js +0 -158
  646. package/mcp-server/tools/project/__tests__/CreateProjectTool.test.d.ts +0 -1
  647. package/mcp-server/tools/project/__tests__/CreateProjectTool.test.js +0 -133
  648. package/mcp-server/tools/project/__tests__/CreateTestAccountTool.test.d.ts +0 -1
  649. package/mcp-server/tools/project/__tests__/CreateTestAccountTool.test.js +0 -462
  650. package/mcp-server/tools/project/__tests__/DeployProjectTool.test.d.ts +0 -1
  651. package/mcp-server/tools/project/__tests__/DeployProjectTool.test.js +0 -126
  652. package/mcp-server/tools/project/__tests__/DocFetchTool.test.d.ts +0 -1
  653. package/mcp-server/tools/project/__tests__/DocFetchTool.test.js +0 -125
  654. package/mcp-server/tools/project/__tests__/DocsSearchTool.test.d.ts +0 -1
  655. package/mcp-server/tools/project/__tests__/DocsSearchTool.test.js +0 -210
  656. package/mcp-server/tools/project/__tests__/GetApiUsagePatternsByAppIdTool.test.d.ts +0 -1
  657. package/mcp-server/tools/project/__tests__/GetApiUsagePatternsByAppIdTool.test.js +0 -178
  658. package/mcp-server/tools/project/__tests__/GetApplicationInfoTool.test.d.ts +0 -1
  659. package/mcp-server/tools/project/__tests__/GetApplicationInfoTool.test.js +0 -124
  660. package/mcp-server/tools/project/__tests__/GetBuildLogsTool.test.d.ts +0 -1
  661. package/mcp-server/tools/project/__tests__/GetBuildLogsTool.test.js +0 -307
  662. package/mcp-server/tools/project/__tests__/GetBuildStatusTool.test.d.ts +0 -1
  663. package/mcp-server/tools/project/__tests__/GetBuildStatusTool.test.js +0 -242
  664. package/mcp-server/tools/project/__tests__/GetConfigValuesTool.test.d.ts +0 -1
  665. package/mcp-server/tools/project/__tests__/GetConfigValuesTool.test.js +0 -209
  666. package/mcp-server/tools/project/__tests__/GuidedWalkthroughTool.test.d.ts +0 -1
  667. package/mcp-server/tools/project/__tests__/GuidedWalkthroughTool.test.js +0 -158
  668. package/mcp-server/tools/project/__tests__/UploadProjectTools.test.d.ts +0 -1
  669. package/mcp-server/tools/project/__tests__/UploadProjectTools.test.js +0 -179
  670. package/mcp-server/tools/project/__tests__/ValidateProjectTool.test.d.ts +0 -1
  671. package/mcp-server/tools/project/__tests__/ValidateProjectTool.test.js +0 -118
  672. package/mcp-server/utils/__tests__/command.test.d.ts +0 -1
  673. package/mcp-server/utils/__tests__/command.test.js +0 -45
  674. package/mcp-server/utils/__tests__/content.test.d.ts +0 -1
  675. package/mcp-server/utils/__tests__/content.test.js +0 -164
  676. package/mcp-server/utils/__tests__/feedbackTracking.test.d.ts +0 -1
  677. package/mcp-server/utils/__tests__/feedbackTracking.test.js +0 -124
  678. package/mcp-server/utils/__tests__/project.test.d.ts +0 -1
  679. package/mcp-server/utils/__tests__/project.test.js +0 -140
  680. package/mcp-server/utils/project.d.ts +0 -5
  681. package/mcp-server/utils/project.js +0 -18
@@ -1,308 +0,0 @@
1
- import yargs from 'yargs';
2
- import fs from 'fs';
3
- import path from 'path';
4
- import * as uploadFolderLib from '@hubspot/local-dev-lib/cms/uploadFolder';
5
- import * as fileMapperLib from '@hubspot/local-dev-lib/api/fileMapper';
6
- import * as pathLib from '@hubspot/local-dev-lib/path';
7
- import * as modulesLib from '@hubspot/local-dev-lib/cms/modules';
8
- import * as ignoreRulesLib from '@hubspot/local-dev-lib/ignoreRules';
9
- import * as themesLib from '@hubspot/local-dev-lib/cms/themes';
10
- import * as configLib from '@hubspot/local-dev-lib/config';
11
- import { uiLogger } from '../../../lib/ui/logger.js';
12
- import * as errorHandlers from '../../../lib/errorHandlers/index.js';
13
- import * as commonOpts from '../../../lib/commonOpts.js';
14
- import * as uploadPromptLib from '../../../lib/prompts/uploadPrompt.js';
15
- import * as promptUtilsLib from '../../../lib/prompts/promptUtils.js';
16
- import * as validationLib from '../../../lib/validation.js';
17
- import * as usageTrackingLib from '../../../lib/usageTracking.js';
18
- import * as uploadLib from '../../../lib/upload.js';
19
- import { EXIT_CODES } from '../../../lib/enums/exitCodes.js';
20
- import uploadCommand from '../upload.js';
21
- vi.mock('fs');
22
- vi.mock('@hubspot/local-dev-lib/cms/uploadFolder');
23
- vi.mock('@hubspot/local-dev-lib/api/fileMapper');
24
- vi.mock('@hubspot/local-dev-lib/path');
25
- vi.mock('@hubspot/local-dev-lib/cms/modules');
26
- vi.mock('@hubspot/local-dev-lib/ignoreRules');
27
- vi.mock('@hubspot/local-dev-lib/cms/themes');
28
- vi.mock('@hubspot/local-dev-lib/config');
29
- vi.mock('../../../lib/errorHandlers/index.js');
30
- vi.mock('../../../lib/commonOpts.js');
31
- vi.mock('../../../lib/prompts/uploadPrompt.js');
32
- vi.mock('../../../lib/prompts/promptUtils.js');
33
- vi.mock('../../../lib/validation.js');
34
- vi.mock('../../../lib/upload.js');
35
- const uploadFolderSpy = vi.spyOn(uploadFolderLib, 'uploadFolder');
36
- const uploadSpy = vi.spyOn(fileMapperLib, 'upload');
37
- const deleteFileSpy = vi.spyOn(fileMapperLib, 'deleteFile');
38
- const statSyncSpy = vi.spyOn(fs, 'statSync');
39
- const validateSrcAndDestPathsSpy = vi.spyOn(modulesLib, 'validateSrcAndDestPaths');
40
- const shouldIgnoreFileSpy = vi.spyOn(ignoreRulesLib, 'shouldIgnoreFile');
41
- const isAllowedExtensionSpy = vi.spyOn(pathLib, 'isAllowedExtension');
42
- const getCwdSpy = vi.spyOn(pathLib, 'getCwd');
43
- const convertToUnixPathSpy = vi.spyOn(pathLib, 'convertToUnixPath');
44
- const uploadPromptSpy = vi.spyOn(uploadPromptLib, 'uploadPrompt');
45
- const confirmPromptSpy = vi.spyOn(promptUtilsLib, 'confirmPrompt');
46
- const validateCmsPublishModeSpy = vi.spyOn(validationLib, 'validateCmsPublishMode');
47
- const trackCommandUsageSpy = vi.spyOn(usageTrackingLib, 'trackCommandUsage');
48
- const getUploadableFileListSpy = vi.spyOn(uploadLib, 'getUploadableFileList');
49
- const getCmsPublishModeSpy = vi.spyOn(commonOpts, 'getCmsPublishMode');
50
- const getThemePreviewUrlSpy = vi.spyOn(themesLib, 'getThemePreviewUrl');
51
- const getThemeJSONPathSpy = vi.spyOn(themesLib, 'getThemeJSONPath');
52
- const hasUploadErrorsSpy = vi.spyOn(uploadFolderLib, 'hasUploadErrors');
53
- const processExitSpy = vi.spyOn(process, 'exit');
54
- const logErrorSpy = vi.spyOn(errorHandlers, 'logError');
55
- const getConfigAccountIfExistsSpy = vi.spyOn(configLib, 'getConfigAccountIfExists');
56
- describe('commands/cms/upload', () => {
57
- beforeEach(() => {
58
- // @ts-expect-error Mock implementation
59
- processExitSpy.mockImplementation(() => { });
60
- getCwdSpy.mockReturnValue('/test/cwd');
61
- convertToUnixPathSpy.mockImplementation(p => p.replace(/\\/g, '/'));
62
- validateCmsPublishModeSpy.mockReturnValue(true);
63
- getCmsPublishModeSpy.mockReturnValue('publish');
64
- uploadPromptSpy.mockResolvedValue({ src: '', dest: '' });
65
- validateSrcAndDestPathsSpy.mockResolvedValue([]);
66
- getThemeJSONPathSpy.mockReturnValue(null);
67
- getThemePreviewUrlSpy.mockReturnValue(undefined);
68
- // Mock config to prevent reading actual config file in CI
69
- getConfigAccountIfExistsSpy.mockReturnValue(undefined);
70
- });
71
- describe('command', () => {
72
- it('should have the correct command structure', () => {
73
- expect(uploadCommand.command).toEqual('upload [src] [dest]');
74
- });
75
- });
76
- describe('describe', () => {
77
- it('should provide a description', () => {
78
- expect(uploadCommand.describe).toBeDefined();
79
- });
80
- });
81
- describe('builder', () => {
82
- it('should support the correct options', () => {
83
- const optionsSpy = vi.spyOn(yargs, 'option');
84
- const positionalSpy = vi.spyOn(yargs, 'positional');
85
- uploadCommand.builder(yargs);
86
- expect(positionalSpy).toHaveBeenCalledWith('src', expect.objectContaining({ type: 'string' }));
87
- expect(positionalSpy).toHaveBeenCalledWith('dest', expect.objectContaining({ type: 'string' }));
88
- expect(optionsSpy).toHaveBeenCalledWith('field-options', expect.objectContaining({ type: 'array' }));
89
- expect(optionsSpy).toHaveBeenCalledWith('save-output', expect.objectContaining({ type: 'boolean' }));
90
- expect(optionsSpy).toHaveBeenCalledWith('convert-fields', expect.objectContaining({ type: 'boolean' }));
91
- expect(optionsSpy).toHaveBeenCalledWith('clean', expect.objectContaining({ type: 'boolean' }));
92
- expect(optionsSpy).toHaveBeenCalledWith('force', expect.objectContaining({ type: 'boolean' }));
93
- });
94
- });
95
- describe('handler', () => {
96
- let args;
97
- beforeEach(() => {
98
- args = {
99
- src: 'test.js',
100
- dest: '/dest/test.js',
101
- derivedAccountId: 123456,
102
- };
103
- });
104
- describe('validation', () => {
105
- it('should exit if CMS publish mode validation fails', async () => {
106
- validateCmsPublishModeSpy.mockReturnValue(false);
107
- await uploadCommand.handler(args);
108
- expect(validateCmsPublishModeSpy).toHaveBeenCalledWith(args);
109
- expect(processExitSpy).toHaveBeenCalledWith(EXIT_CODES.WARNING);
110
- });
111
- it('should prompt for src and dest when not provided', async () => {
112
- delete args.src;
113
- delete args.dest;
114
- uploadPromptSpy.mockResolvedValue({
115
- src: 'prompted.js',
116
- dest: '/prompted/dest.js',
117
- });
118
- statSyncSpy.mockReturnValue({
119
- isFile: () => true,
120
- isDirectory: () => false,
121
- });
122
- isAllowedExtensionSpy.mockReturnValue(true);
123
- shouldIgnoreFileSpy.mockReturnValue(false);
124
- // @ts-expect-error Mock return value doesn't need full type implementation
125
- uploadSpy.mockResolvedValue({});
126
- await uploadCommand.handler(args);
127
- expect(uploadPromptSpy).toHaveBeenCalledWith(args);
128
- expect(uploadSpy).toHaveBeenCalled();
129
- });
130
- it('should error if dest is not provided', async () => {
131
- args.dest = '';
132
- uploadPromptSpy.mockResolvedValue({ src: 'test.js', dest: '' });
133
- await uploadCommand.handler(args);
134
- expect(uiLogger.error).toHaveBeenCalledWith(expect.stringContaining('destination'));
135
- });
136
- it('should error if src path is invalid', async () => {
137
- statSyncSpy.mockImplementation(() => {
138
- throw new Error('File not found');
139
- });
140
- await uploadCommand.handler(args);
141
- expect(uiLogger.error).toHaveBeenCalledWith(expect.stringContaining('path to a file or folder'));
142
- });
143
- it('should error if src path is not a file or directory', async () => {
144
- statSyncSpy.mockReturnValue({
145
- isFile: () => false,
146
- isDirectory: () => false,
147
- });
148
- await uploadCommand.handler(args);
149
- expect(uiLogger.error).toHaveBeenCalledWith(expect.stringContaining('path to a file or folder'));
150
- });
151
- it('should exit if src/dest validation fails', async () => {
152
- statSyncSpy.mockReturnValue({
153
- isFile: () => true,
154
- isDirectory: () => false,
155
- });
156
- validateSrcAndDestPathsSpy.mockResolvedValue([
157
- { id: '1', message: 'Invalid path' },
158
- ]);
159
- await uploadCommand.handler(args);
160
- expect(uiLogger.error).toHaveBeenCalledWith('Invalid path');
161
- expect(processExitSpy).toHaveBeenCalledWith(EXIT_CODES.WARNING);
162
- });
163
- });
164
- describe('file upload', () => {
165
- beforeEach(() => {
166
- statSyncSpy.mockReturnValue({
167
- isFile: () => true,
168
- isDirectory: () => false,
169
- });
170
- isAllowedExtensionSpy.mockReturnValue(true);
171
- shouldIgnoreFileSpy.mockReturnValue(false);
172
- });
173
- it('should track command usage for file uploads', async () => {
174
- // @ts-expect-error Mock return value doesn't need full type implementation
175
- uploadSpy.mockResolvedValue({});
176
- await uploadCommand.handler(args);
177
- expect(trackCommandUsageSpy).toHaveBeenCalledWith('upload', { mode: 'publish', type: 'file' }, 123456);
178
- });
179
- it('should upload a file successfully', async () => {
180
- // @ts-expect-error Mock return value doesn't need full type implementation
181
- uploadSpy.mockResolvedValue({});
182
- await uploadCommand.handler(args);
183
- expect(uploadSpy).toHaveBeenCalledWith(123456, path.resolve('/test/cwd', 'test.js'), '/dest/test.js', expect.any(Object));
184
- expect(uiLogger.success).toHaveBeenCalledWith(expect.stringMatching(/uploaded/i));
185
- });
186
- it('should error if file has disallowed extension', async () => {
187
- isAllowedExtensionSpy.mockReturnValue(false);
188
- await uploadCommand.handler(args);
189
- expect(uploadSpy).not.toHaveBeenCalled();
190
- expect(uiLogger.error).toHaveBeenCalledWith(expect.stringContaining('path to a file or folder'));
191
- });
192
- it('should error if file is ignored', async () => {
193
- shouldIgnoreFileSpy.mockReturnValue(true);
194
- await uploadCommand.handler(args);
195
- expect(uploadSpy).not.toHaveBeenCalled();
196
- expect(uiLogger.error).toHaveBeenCalledWith(expect.stringContaining('ignored'));
197
- });
198
- it('should handle upload errors', async () => {
199
- vi.useFakeTimers();
200
- const error = new Error('Upload failed');
201
- uploadSpy.mockRejectedValue(error);
202
- await uploadCommand.handler(args);
203
- await vi.runAllTimersAsync();
204
- expect(uiLogger.error).toHaveBeenCalled();
205
- expect(logErrorSpy).toHaveBeenCalledWith(error, expect.any(errorHandlers.ApiErrorContext));
206
- expect(processExitSpy).toHaveBeenCalledWith(EXIT_CODES.WARNING);
207
- vi.useRealTimers();
208
- });
209
- it('should log theme preview URL if available', async () => {
210
- getThemePreviewUrlSpy.mockReturnValue('http://preview.url');
211
- // @ts-expect-error Mock return value doesn't need full type implementation
212
- uploadSpy.mockResolvedValue({});
213
- await uploadCommand.handler(args);
214
- expect(getThemePreviewUrlSpy).toHaveBeenCalledWith('test.js', 123456);
215
- expect(uiLogger.log).toHaveBeenCalledWith(expect.stringContaining('http://preview.url'));
216
- });
217
- });
218
- describe('folder upload', () => {
219
- beforeEach(() => {
220
- statSyncSpy.mockReturnValue({
221
- isFile: () => false,
222
- isDirectory: () => true,
223
- });
224
- getUploadableFileListSpy.mockResolvedValue([]);
225
- uploadFolderSpy.mockResolvedValue([]);
226
- hasUploadErrorsSpy.mockReturnValue(false);
227
- });
228
- it('should track command usage for folder uploads', async () => {
229
- await uploadCommand.handler(args);
230
- expect(trackCommandUsageSpy).toHaveBeenCalledWith('upload', { mode: 'publish', type: 'folder' }, 123456);
231
- });
232
- it('should upload a folder successfully', async () => {
233
- await uploadCommand.handler(args);
234
- expect(uploadFolderSpy).toHaveBeenCalledWith(123456, path.resolve('/test/cwd', 'test.js'), '/dest/test.js', {}, expect.objectContaining({
235
- convertFields: undefined,
236
- saveOutput: undefined,
237
- }), []);
238
- expect(uiLogger.success).toHaveBeenCalledWith(expect.stringContaining('complete'));
239
- });
240
- it('should handle clean upload with confirmation', async () => {
241
- args.clean = true;
242
- confirmPromptSpy.mockResolvedValue(true);
243
- // @ts-expect-error Mock return value doesn't need full type implementation
244
- deleteFileSpy.mockResolvedValue({});
245
- await uploadCommand.handler(args);
246
- expect(confirmPromptSpy).toHaveBeenCalled();
247
- expect(deleteFileSpy).toHaveBeenCalledWith(123456, '/dest/test.js');
248
- // Check that log was called multiple times (upload message + cleaning message)
249
- expect(uiLogger.log).toHaveBeenCalled();
250
- });
251
- it('should skip clean upload if not confirmed', async () => {
252
- args.clean = true;
253
- confirmPromptSpy.mockResolvedValue(false);
254
- await uploadCommand.handler(args);
255
- expect(deleteFileSpy).not.toHaveBeenCalled();
256
- });
257
- it('should force clean upload without confirmation', async () => {
258
- args.clean = true;
259
- args.force = true;
260
- // @ts-expect-error Mock return value doesn't need full type implementation
261
- deleteFileSpy.mockResolvedValue({});
262
- await uploadCommand.handler(args);
263
- expect(confirmPromptSpy).not.toHaveBeenCalled();
264
- expect(deleteFileSpy).toHaveBeenCalledWith(123456, '/dest/test.js');
265
- });
266
- it('should handle delete errors during clean upload', async () => {
267
- args.clean = true;
268
- args.force = true;
269
- const error = new Error('Delete failed');
270
- deleteFileSpy.mockRejectedValue(error);
271
- await uploadCommand.handler(args);
272
- expect(uiLogger.error).toHaveBeenCalledWith(expect.stringContaining('Deleting'));
273
- });
274
- it('should error if folder upload has errors', async () => {
275
- hasUploadErrorsSpy.mockReturnValue(true);
276
- await uploadCommand.handler(args);
277
- expect(uiLogger.error).toHaveBeenCalledWith(expect.stringContaining('failed'));
278
- expect(processExitSpy).toHaveBeenCalledWith(EXIT_CODES.WARNING);
279
- });
280
- it('should handle folder upload errors', async () => {
281
- vi.useFakeTimers();
282
- const error = new Error('Folder upload failed');
283
- uploadFolderSpy.mockRejectedValue(error);
284
- await uploadCommand.handler(args);
285
- await vi.runAllTimersAsync();
286
- expect(uiLogger.error).toHaveBeenCalled();
287
- expect(logErrorSpy).toHaveBeenCalledWith(error, {
288
- accountId: 123456,
289
- });
290
- expect(processExitSpy).toHaveBeenCalledWith(EXIT_CODES.WARNING);
291
- vi.useRealTimers();
292
- });
293
- it('should pass convertFields option to uploadFolder', async () => {
294
- args.convertFields = true;
295
- await uploadCommand.handler(args);
296
- expect(uploadFolderSpy).toHaveBeenCalledWith(123456, expect.any(String), expect.any(String), {}, expect.objectContaining({
297
- convertFields: true,
298
- }), expect.any(Array));
299
- });
300
- it('should generate uploadable file list with convertFields', async () => {
301
- args.convertFields = true;
302
- getUploadableFileListSpy.mockResolvedValue(['file1.js', 'file2.js']);
303
- await uploadCommand.handler(args);
304
- expect(getUploadableFileListSpy).toHaveBeenCalledWith(path.resolve('/test/cwd', 'test.js'), true);
305
- });
306
- });
307
- });
308
- });
@@ -1 +0,0 @@
1
- export {};
@@ -1,212 +0,0 @@
1
- import yargs from 'yargs';
2
- import fs from 'fs';
3
- import path from 'path';
4
- import { AxiosError } from 'axios';
5
- import * as watchLib from '@hubspot/local-dev-lib/cms/watch';
6
- import * as pathLib from '@hubspot/local-dev-lib/path';
7
- import * as configLib from '@hubspot/local-dev-lib/config';
8
- import { uiLogger } from '../../../lib/ui/logger.js';
9
- import * as commonOpts from '../../../lib/commonOpts.js';
10
- import * as uploadPromptLib from '../../../lib/prompts/uploadPrompt.js';
11
- import * as validationLib from '../../../lib/validation.js';
12
- import * as usageTrackingLib from '../../../lib/usageTracking.js';
13
- import * as uploadLib from '../../../lib/upload.js';
14
- import { EXIT_CODES } from '../../../lib/enums/exitCodes.js';
15
- import watchCommand from '../watch.js';
16
- vi.mock('fs');
17
- vi.mock('@hubspot/local-dev-lib/cms/watch');
18
- vi.mock('@hubspot/local-dev-lib/path');
19
- vi.mock('@hubspot/local-dev-lib/config');
20
- vi.mock('../../../lib/commonOpts.js');
21
- vi.mock('../../../lib/prompts/uploadPrompt.js');
22
- vi.mock('../../../lib/validation.js');
23
- vi.mock('../../../lib/upload.js');
24
- const watchSpy = vi.spyOn(watchLib, 'watch');
25
- const statSyncSpy = vi.spyOn(fs, 'statSync');
26
- const getCwdSpy = vi.spyOn(pathLib, 'getCwd');
27
- const uploadPromptSpy = vi.spyOn(uploadPromptLib, 'uploadPrompt');
28
- const validateCmsPublishModeSpy = vi.spyOn(validationLib, 'validateCmsPublishMode');
29
- const getCmsPublishModeSpy = vi.spyOn(commonOpts, 'getCmsPublishMode');
30
- const trackCommandUsageSpy = vi.spyOn(usageTrackingLib, 'trackCommandUsage');
31
- const getUploadableFileListSpy = vi.spyOn(uploadLib, 'getUploadableFileList');
32
- const processExitSpy = vi.spyOn(process, 'exit');
33
- const getConfigAccountIfExistsSpy = vi.spyOn(configLib, 'getConfigAccountIfExists');
34
- describe('commands/cms/watch', () => {
35
- beforeEach(() => {
36
- // @ts-expect-error Mock implementation
37
- processExitSpy.mockImplementation(() => { });
38
- getCwdSpy.mockReturnValue('/test/cwd');
39
- validateCmsPublishModeSpy.mockReturnValue(true);
40
- getCmsPublishModeSpy.mockReturnValue('publish');
41
- uploadPromptSpy.mockResolvedValue({ src: '', dest: '' });
42
- // @ts-expect-error Mock return value doesn't need full type implementation
43
- watchSpy.mockImplementation(() => ({}));
44
- getUploadableFileListSpy.mockResolvedValue([]);
45
- // Mock config to prevent reading actual config file in CI
46
- getConfigAccountIfExistsSpy.mockReturnValue(undefined);
47
- });
48
- describe('command', () => {
49
- it('should have the correct command structure', () => {
50
- expect(watchCommand.command).toEqual('watch [src] [dest]');
51
- });
52
- });
53
- describe('describe', () => {
54
- it('should provide a description', () => {
55
- expect(watchCommand.describe).toBeDefined();
56
- });
57
- });
58
- describe('builder', () => {
59
- it('should support the correct options', () => {
60
- const positionalSpy = vi.spyOn(yargs, 'positional');
61
- const optionSpy = vi.spyOn(yargs, 'option');
62
- watchCommand.builder(yargs);
63
- expect(positionalSpy).toHaveBeenCalledWith('src', expect.objectContaining({ type: 'string' }));
64
- expect(positionalSpy).toHaveBeenCalledWith('dest', expect.objectContaining({ type: 'string' }));
65
- expect(optionSpy).toHaveBeenCalledWith('remove', expect.objectContaining({ type: 'boolean', alias: 'r' }));
66
- expect(optionSpy).toHaveBeenCalledWith('initial-upload', expect.objectContaining({ type: 'boolean', alias: 'i' }));
67
- expect(optionSpy).toHaveBeenCalledWith('disable-initial', expect.objectContaining({ type: 'boolean' }));
68
- expect(optionSpy).toHaveBeenCalledWith('notify', expect.objectContaining({ type: 'string', alias: 'n' }));
69
- expect(optionSpy).toHaveBeenCalledWith('convert-fields', expect.objectContaining({ type: 'boolean' }));
70
- });
71
- });
72
- describe('handler', () => {
73
- let args;
74
- beforeEach(() => {
75
- args = {
76
- src: 'src',
77
- dest: '/dest',
78
- derivedAccountId: 123456,
79
- remove: false,
80
- initialUpload: false,
81
- disableInitial: false,
82
- };
83
- statSyncSpy.mockReturnValue({
84
- isFile: () => false,
85
- isDirectory: () => true,
86
- });
87
- });
88
- describe('validation', () => {
89
- it('should exit if CMS publish mode validation fails', async () => {
90
- validateCmsPublishModeSpy.mockReturnValue(false);
91
- await watchCommand.handler(args);
92
- expect(validateCmsPublishModeSpy).toHaveBeenCalledWith(args);
93
- expect(processExitSpy).toHaveBeenCalledWith(EXIT_CODES.ERROR);
94
- });
95
- it('should prompt for src and dest when not provided', async () => {
96
- delete args.src;
97
- delete args.dest;
98
- uploadPromptSpy.mockResolvedValue({
99
- src: 'prompted-src',
100
- dest: '/prompted-dest',
101
- });
102
- await watchCommand.handler(args);
103
- expect(uploadPromptSpy).toHaveBeenCalledWith(args);
104
- });
105
- it('should error if src path is invalid', async () => {
106
- statSyncSpy.mockImplementation(() => {
107
- throw new Error('File not found');
108
- });
109
- await watchCommand.handler(args);
110
- expect(uiLogger.log).toHaveBeenCalledWith(expect.stringContaining('path to a directory'));
111
- expect(watchSpy).not.toHaveBeenCalled();
112
- });
113
- it('should error if src path is not a directory', async () => {
114
- statSyncSpy.mockReturnValue({
115
- isFile: () => true,
116
- isDirectory: () => false,
117
- });
118
- await watchCommand.handler(args);
119
- expect(uiLogger.log).toHaveBeenCalledWith(expect.stringContaining('path to a directory'));
120
- expect(watchSpy).not.toHaveBeenCalled();
121
- });
122
- it('should error if dest is not provided', async () => {
123
- args.dest = '';
124
- uploadPromptSpy.mockResolvedValue({ src: 'src', dest: '' });
125
- await watchCommand.handler(args);
126
- expect(uiLogger.log).toHaveBeenCalledWith(expect.stringContaining('destination'));
127
- expect(watchSpy).not.toHaveBeenCalled();
128
- });
129
- });
130
- describe('watch execution', () => {
131
- it('should track command usage', async () => {
132
- await watchCommand.handler(args);
133
- expect(trackCommandUsageSpy).toHaveBeenCalledWith('watch', { mode: 'publish' }, 123456);
134
- });
135
- it('should start watching without initial upload by default', async () => {
136
- await watchCommand.handler(args);
137
- expect(uiLogger.info).toHaveBeenCalledWith(expect.stringContaining('not'));
138
- expect(getUploadableFileListSpy).not.toHaveBeenCalled();
139
- expect(watchSpy).toHaveBeenCalledWith(123456, path.resolve('/test/cwd', 'src'), '/dest', expect.objectContaining({
140
- cmsPublishMode: 'publish',
141
- remove: false,
142
- disableInitial: true,
143
- }), null, expect.any(Function), undefined, expect.any(Function));
144
- });
145
- it('should generate uploadable file list when initialUpload is true', async () => {
146
- args.initialUpload = true;
147
- getUploadableFileListSpy.mockResolvedValue(['file1.js', 'file2.js']);
148
- await watchCommand.handler(args);
149
- expect(getUploadableFileListSpy).toHaveBeenCalledWith(path.resolve('/test/cwd', 'src'), undefined);
150
- expect(watchSpy).toHaveBeenCalledWith(123456, expect.any(String), expect.any(String), expect.objectContaining({
151
- disableInitial: false,
152
- filePaths: ['file1.js', 'file2.js'],
153
- }), null, expect.any(Function), undefined, expect.any(Function));
154
- });
155
- it('should show disable initial message when disableInitial is true', async () => {
156
- args.disableInitial = true;
157
- await watchCommand.handler(args);
158
- expect(uiLogger.info).toHaveBeenCalledWith(expect.stringContaining('disable'));
159
- });
160
- it('should pass remove option to watch', async () => {
161
- args.remove = true;
162
- await watchCommand.handler(args);
163
- expect(watchSpy).toHaveBeenCalledWith(123456, expect.any(String), expect.any(String), expect.objectContaining({
164
- remove: true,
165
- }), null, expect.any(Function), undefined, expect.any(Function));
166
- });
167
- it('should pass notify option to watch', async () => {
168
- args.notify = 'http://notify.url';
169
- await watchCommand.handler(args);
170
- expect(watchSpy).toHaveBeenCalledWith(123456, expect.any(String), expect.any(String), expect.objectContaining({
171
- notify: 'http://notify.url',
172
- }), null, expect.any(Function), undefined, expect.any(Function));
173
- });
174
- it('should pass convertFields to getUploadableFileList', async () => {
175
- args.initialUpload = true;
176
- args.convertFields = true;
177
- await watchCommand.handler(args);
178
- expect(getUploadableFileListSpy).toHaveBeenCalledWith(expect.any(String), true);
179
- });
180
- it('should pass command options to watch', async () => {
181
- args.saveOutput = true;
182
- args.fieldOptions = ['option1'];
183
- await watchCommand.handler(args);
184
- expect(watchSpy).toHaveBeenCalledWith(123456, expect.any(String), expect.any(String), expect.objectContaining({
185
- commandOptions: expect.objectContaining({
186
- saveOutput: true,
187
- fieldOptions: ['option1'],
188
- }),
189
- }), null, expect.any(Function), undefined, expect.any(Function));
190
- });
191
- });
192
- describe('error handlers', () => {
193
- it('should provide error handler for folder errors', async () => {
194
- await watchCommand.handler(args);
195
- const folderErrorHandler = watchSpy.mock.calls[0][5];
196
- const error = new AxiosError('Folder error');
197
- // @ts-expect-error Axios version mismatch between test and implementation
198
- folderErrorHandler?.(error);
199
- expect(uiLogger.error).toHaveBeenCalledWith(expect.stringContaining('failures'));
200
- });
201
- it('should provide error handler factory for file errors', async () => {
202
- await watchCommand.handler(args);
203
- const fileErrorHandlerFactory = watchSpy.mock.calls[0][7];
204
- const fileErrorHandler = fileErrorHandlerFactory?.('test.js', '/dest/test.js', 123456);
205
- const error = new AxiosError('File error');
206
- // @ts-expect-error Axios version mismatch between test and implementation
207
- fileErrorHandler?.(error);
208
- expect(uiLogger.error).toHaveBeenCalledWith(expect.stringContaining('test.js'));
209
- });
210
- });
211
- });
212
- });
@@ -1 +0,0 @@
1
- export {};
@@ -1,70 +0,0 @@
1
- import yargs from 'yargs';
2
- import { addConfigOptions, addAccountOptions, addUseEnvironmentOptions, } from '../../../../lib/commonOpts.js';
3
- import logsCommand from '../logs.js';
4
- vi.mock('../../../../lib/commonOpts');
5
- const optionsSpy = vi
6
- .spyOn(yargs, 'options')
7
- .mockReturnValue(yargs);
8
- const conflictsSpy = vi
9
- .spyOn(yargs, 'conflicts')
10
- .mockReturnValue(yargs);
11
- const exampleSpy = vi
12
- .spyOn(yargs, 'example')
13
- .mockReturnValue(yargs);
14
- const positionalSpy = vi
15
- .spyOn(yargs, 'positional')
16
- .mockReturnValue(yargs);
17
- describe('commands/cms/function/logs', () => {
18
- describe('command', () => {
19
- it('should have the correct command structure', () => {
20
- expect(logsCommand.command).toEqual('logs [endpoint]');
21
- });
22
- });
23
- describe('describe', () => {
24
- it('should provide a description', () => {
25
- expect(logsCommand.describe).toBeDefined();
26
- });
27
- });
28
- describe('builder', () => {
29
- it('should support the correct positional arguments', () => {
30
- logsCommand.builder(yargs);
31
- expect(positionalSpy).toHaveBeenCalledTimes(1);
32
- expect(positionalSpy).toHaveBeenCalledWith('endpoint', expect.objectContaining({ type: 'string' }));
33
- });
34
- it('should support the correct options', () => {
35
- logsCommand.builder(yargs);
36
- expect(optionsSpy).toHaveBeenCalledTimes(1);
37
- expect(optionsSpy).toHaveBeenCalledWith({
38
- latest: expect.objectContaining({
39
- alias: 'l',
40
- type: 'boolean',
41
- }),
42
- compact: expect.objectContaining({
43
- type: 'boolean',
44
- }),
45
- follow: expect.objectContaining({
46
- alias: ['f'],
47
- type: 'boolean',
48
- }),
49
- limit: expect.objectContaining({
50
- type: 'number',
51
- }),
52
- });
53
- expect(addConfigOptions).toHaveBeenCalledTimes(1);
54
- expect(addConfigOptions).toHaveBeenCalledWith(yargs);
55
- expect(addAccountOptions).toHaveBeenCalledTimes(1);
56
- expect(addAccountOptions).toHaveBeenCalledWith(yargs);
57
- expect(addUseEnvironmentOptions).toHaveBeenCalledTimes(1);
58
- expect(addUseEnvironmentOptions).toHaveBeenCalledWith(yargs);
59
- });
60
- it('should set the correct conflicts', () => {
61
- logsCommand.builder(yargs);
62
- expect(conflictsSpy).toHaveBeenCalledTimes(1);
63
- expect(conflictsSpy).toHaveBeenCalledWith('follow', 'limit');
64
- });
65
- it('should provide examples', () => {
66
- logsCommand.builder(yargs);
67
- expect(exampleSpy).toHaveBeenCalledTimes(1);
68
- });
69
- });
70
- });
@@ -1,28 +0,0 @@
1
- import yargs from 'yargs';
2
- import generateSelectorsCommand from '../generate-selectors.js';
3
- const positionalSpy = vi
4
- .spyOn(yargs, 'positional')
5
- .mockReturnValue(yargs);
6
- describe('commands/theme/generate-selectors', () => {
7
- describe('command', () => {
8
- it('should have the correct command structure', () => {
9
- expect(generateSelectorsCommand.command).toEqual('generate-selectors <path>');
10
- });
11
- });
12
- describe('describe', () => {
13
- it('should provide a description', () => {
14
- expect(generateSelectorsCommand.describe).toBeDefined();
15
- });
16
- });
17
- describe('builder', () => {
18
- it('should support the correct options', () => {
19
- generateSelectorsCommand.builder(yargs);
20
- expect(positionalSpy).toHaveBeenCalledTimes(1);
21
- expect(positionalSpy).toHaveBeenCalledWith('path', {
22
- describe: expect.any(String),
23
- required: true,
24
- type: 'string',
25
- });
26
- });
27
- });
28
- });