@hubspot/cli 8.2.0 → 8.2.1-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 (748) 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.d.ts +3 -1
  6. package/commands/account/auth.js +25 -7
  7. package/commands/account/clean.js +7 -6
  8. package/commands/account/createOverride.js +10 -7
  9. package/commands/account/info.js +36 -17
  10. package/commands/account/link.d.ts +4 -0
  11. package/commands/account/link.js +87 -0
  12. package/commands/account/list.js +32 -76
  13. package/commands/account/remove.js +4 -3
  14. package/commands/account/removeOverride.js +11 -10
  15. package/commands/account/rename.js +5 -6
  16. package/commands/account/unlink.d.ts +4 -0
  17. package/commands/account/unlink.js +68 -0
  18. package/commands/account/use.js +75 -6
  19. package/commands/account.js +4 -0
  20. package/commands/api.d.ts +13 -0
  21. package/commands/api.js +161 -0
  22. package/commands/app/logDetails.d.ts +9 -0
  23. package/commands/app/logDetails.js +86 -0
  24. package/commands/app/logs.d.ts +13 -0
  25. package/commands/app/logs.js +126 -0
  26. package/commands/app/migrate.js +13 -13
  27. package/commands/app/secret/add.js +6 -7
  28. package/commands/app/secret/delete.js +9 -10
  29. package/commands/app/secret/list.js +6 -7
  30. package/commands/app/secret/update.js +8 -9
  31. package/commands/app.js +8 -1
  32. package/commands/auth.js +20 -16
  33. package/commands/cms/app/create.js +9 -5
  34. package/commands/cms/convertFields.js +8 -8
  35. package/commands/cms/delete.js +2 -3
  36. package/commands/cms/fetch.js +7 -7
  37. package/commands/cms/function/create.js +9 -5
  38. package/commands/cms/function/deploy.js +2 -3
  39. package/commands/cms/function/list.js +11 -7
  40. package/commands/cms/function/logs.js +17 -23
  41. package/commands/cms/function/server.js +2 -3
  42. package/commands/cms/getReactModule.js +7 -8
  43. package/commands/cms/lighthouseScore.js +25 -24
  44. package/commands/cms/lint.js +4 -5
  45. package/commands/cms/list.js +5 -6
  46. package/commands/cms/module/create.js +15 -5
  47. package/commands/cms/module/marketplace-validate.js +7 -8
  48. package/commands/cms/mv.js +2 -3
  49. package/commands/cms/template/create.js +10 -6
  50. package/commands/cms/theme/create.js +5 -5
  51. package/commands/cms/theme/generate-selectors.js +5 -4
  52. package/commands/cms/theme/marketplace-validate.js +8 -9
  53. package/commands/cms/theme/preview.js +16 -8
  54. package/commands/cms/upload.js +15 -12
  55. package/commands/cms/watch.js +5 -5
  56. package/commands/cms/webpack/create.js +5 -5
  57. package/commands/completion.js +3 -5
  58. package/commands/config/migrate.js +6 -7
  59. package/commands/config/set.js +29 -11
  60. package/commands/customObject/create.js +4 -5
  61. package/commands/customObject/createSchema.js +6 -8
  62. package/commands/customObject/deleteSchema.js +4 -5
  63. package/commands/customObject/fetchAllSchemas.js +2 -3
  64. package/commands/customObject/fetchSchema.js +2 -3
  65. package/commands/customObject/listSchemas.js +2 -3
  66. package/commands/customObject/updateSchema.js +6 -8
  67. package/commands/doctor.js +8 -8
  68. package/commands/feedback.js +6 -4
  69. package/commands/filemanager/fetch.js +5 -6
  70. package/commands/filemanager/upload.js +5 -5
  71. package/commands/getStarted.js +20 -19
  72. package/commands/hubdb/clear.js +6 -3
  73. package/commands/hubdb/create.js +4 -5
  74. package/commands/hubdb/delete.js +9 -6
  75. package/commands/hubdb/fetch.js +6 -3
  76. package/commands/hubdb/list.d.ts +1 -1
  77. package/commands/hubdb/list.js +23 -22
  78. package/commands/init.js +18 -15
  79. package/commands/mcp/setup.d.ts +2 -0
  80. package/commands/mcp/setup.js +35 -8
  81. package/commands/mcp/start.js +2 -3
  82. package/commands/open.js +4 -5
  83. package/commands/project/add.js +13 -8
  84. package/commands/project/appInstallStatus.d.ts +5 -0
  85. package/commands/project/appInstallStatus.js +135 -0
  86. package/commands/project/create.js +29 -17
  87. package/commands/project/delete.d.ts +7 -0
  88. package/commands/project/delete.js +74 -0
  89. package/commands/project/deploy.d.ts +2 -1
  90. package/commands/project/deploy.js +68 -48
  91. package/commands/project/dev/index.d.ts +3 -3
  92. package/commands/project/dev/index.js +33 -68
  93. package/commands/project/dev/unifiedFlow.js +73 -22
  94. package/commands/project/download.js +12 -9
  95. package/commands/project/info.d.ts +5 -0
  96. package/commands/project/info.js +70 -0
  97. package/commands/project/installApp.d.ts +8 -0
  98. package/commands/project/installApp.js +180 -0
  99. package/commands/project/installDeps.js +11 -6
  100. package/commands/project/lint.js +43 -12
  101. package/commands/project/list.d.ts +2 -2
  102. package/commands/project/list.js +15 -14
  103. package/commands/project/listBuilds.d.ts +1 -1
  104. package/commands/project/listBuilds.js +16 -12
  105. package/commands/project/logs.js +7 -10
  106. package/commands/project/migrate.js +18 -18
  107. package/commands/project/open.js +5 -6
  108. package/commands/project/profile/add.d.ts +2 -1
  109. package/commands/project/profile/add.js +34 -9
  110. package/commands/project/profile/delete.d.ts +1 -1
  111. package/commands/project/profile/delete.js +15 -11
  112. package/commands/project/release/create.d.ts +8 -0
  113. package/commands/project/release/create.js +158 -0
  114. package/commands/project/release/info.d.ts +7 -0
  115. package/commands/project/release/info.js +148 -0
  116. package/commands/project/release/list.d.ts +7 -0
  117. package/commands/project/release/list.js +119 -0
  118. package/commands/project/release.d.ts +3 -0
  119. package/commands/project/release.js +20 -0
  120. package/commands/project/updateDeps.js +9 -6
  121. package/commands/project/upload.d.ts +7 -1
  122. package/commands/project/upload.js +145 -32
  123. package/commands/project/validate.d.ts +1 -1
  124. package/commands/project/validate.js +12 -12
  125. package/commands/project/watch.js +23 -22
  126. package/commands/project.js +16 -3
  127. package/commands/sandbox/create.js +18 -45
  128. package/commands/sandbox/delete.js +15 -17
  129. package/commands/secret/addSecret.js +6 -7
  130. package/commands/secret/deleteSecret.js +5 -6
  131. package/commands/secret/listSecret.js +2 -3
  132. package/commands/secret/updateSecret.js +4 -5
  133. package/commands/testAccount/create.d.ts +3 -2
  134. package/commands/testAccount/create.js +30 -22
  135. package/commands/testAccount/createConfig.js +7 -8
  136. package/commands/testAccount/delete.js +27 -18
  137. package/commands/testAccount/importData.d.ts +1 -1
  138. package/commands/testAccount/importData.js +6 -7
  139. package/commands/upgrade.js +11 -10
  140. package/lang/en.d.ts +558 -40
  141. package/lang/en.js +595 -63
  142. package/lib/CLIWebSocketServer.d.ts +5 -3
  143. package/lib/CLIWebSocketServer.js +31 -4
  144. package/lib/accountAuth.d.ts +3 -1
  145. package/lib/accountAuth.js +47 -17
  146. package/lib/accountTargetDiscovery.d.ts +15 -0
  147. package/lib/accountTargetDiscovery.js +175 -0
  148. package/lib/api/usageTracking.d.ts +30 -0
  149. package/lib/api/usageTracking.js +11 -0
  150. package/lib/app/install.d.ts +22 -0
  151. package/lib/app/install.js +42 -0
  152. package/lib/app/logs.d.ts +38 -0
  153. package/lib/app/logs.js +225 -0
  154. package/lib/app/migrate.js +18 -5
  155. package/lib/app/urls.d.ts +2 -0
  156. package/lib/app/urls.js +7 -1
  157. package/lib/auth/awaitPersonalAccessKeyOverWebsocket.d.ts +4 -0
  158. package/lib/auth/awaitPersonalAccessKeyOverWebsocket.js +146 -0
  159. package/lib/buildAccount.d.ts +1 -6
  160. package/lib/buildAccount.js +10 -43
  161. package/lib/commonOpts.js +6 -2
  162. package/lib/configOptions.d.ts +10 -10
  163. package/lib/configOptions.js +10 -11
  164. package/lib/constants.d.ts +12 -3
  165. package/lib/constants.js +14 -3
  166. package/lib/dependencyManagement.js +7 -7
  167. package/lib/doctor/Diagnosis.js +5 -5
  168. package/lib/doctor/Doctor.d.ts +1 -0
  169. package/lib/doctor/Doctor.js +33 -7
  170. package/lib/errorHandlers/index.js +4 -3
  171. package/lib/errorHandlers/suppressError.js +4 -0
  172. package/lib/errors/PromptExitError.d.ts +6 -0
  173. package/lib/errors/PromptExitError.js +11 -0
  174. package/lib/getStartedV2Actions.js +5 -4
  175. package/lib/hasFeature.js +1 -2
  176. package/lib/importData.js +3 -4
  177. package/lib/jsonOutput.d.ts +109 -0
  178. package/lib/jsonOutput.js +94 -0
  179. package/lib/link/accountTableUtils.d.ts +10 -0
  180. package/lib/link/accountTableUtils.js +39 -0
  181. package/lib/link/index.d.ts +18 -0
  182. package/lib/link/index.js +185 -0
  183. package/lib/link/linkUtils.d.ts +5 -0
  184. package/lib/link/linkUtils.js +49 -0
  185. package/lib/link/prompts.d.ts +7 -0
  186. package/lib/link/prompts.js +126 -0
  187. package/lib/link/renderLinkedAccountsTable.d.ts +2 -0
  188. package/lib/link/renderLinkedAccountsTable.js +14 -0
  189. package/lib/link/warnIfLinkedDirectory.d.ts +1 -0
  190. package/lib/link/warnIfLinkedDirectory.js +9 -0
  191. package/lib/links.js +6 -5
  192. package/lib/mcp/clients.d.ts +13 -0
  193. package/lib/mcp/clients.js +62 -0
  194. package/lib/mcp/promotion.d.ts +3 -0
  195. package/lib/mcp/promotion.js +109 -0
  196. package/lib/mcp/setup.d.ts +8 -2
  197. package/lib/mcp/setup.js +123 -38
  198. package/lib/middleware/autoUpdateMiddleware.js +6 -3
  199. package/lib/middleware/commandTargetingUtils.js +1 -0
  200. package/lib/npm/npmCli.d.ts +1 -0
  201. package/lib/npm/npmCli.js +13 -0
  202. package/lib/process.d.ts +1 -1
  203. package/lib/process.js +10 -3
  204. package/lib/projects/ProjectLogsManager.js +6 -3
  205. package/lib/projects/builds.d.ts +2 -0
  206. package/lib/projects/builds.js +22 -0
  207. package/lib/projects/components.js +15 -4
  208. package/lib/projects/create/index.js +2 -2
  209. package/lib/projects/create/legacy.js +2 -2
  210. package/lib/projects/create/v2.js +5 -5
  211. package/lib/projects/delete.d.ts +13 -0
  212. package/lib/projects/delete.js +193 -0
  213. package/lib/projects/deploy.d.ts +1 -1
  214. package/lib/projects/deploy.js +2 -2
  215. package/lib/projects/installApp.d.ts +58 -0
  216. package/lib/projects/installApp.js +283 -0
  217. package/lib/projects/localDev/AppDevModeInterface.d.ts +0 -3
  218. package/lib/projects/localDev/AppDevModeInterface.js +35 -53
  219. package/lib/projects/localDev/DevSessionManager.d.ts +8 -5
  220. package/lib/projects/localDev/DevSessionManager.js +35 -49
  221. package/lib/projects/localDev/LocalDevProcess.js +13 -10
  222. package/lib/projects/localDev/LocalDevState.d.ts +3 -2
  223. package/lib/projects/localDev/LocalDevState.js +3 -1
  224. package/lib/projects/localDev/LocalDevWebsocketServer.js +1 -1
  225. package/lib/projects/localDev/UIExtensionsDevModeInterface.js +2 -0
  226. package/lib/projects/localDev/helpers/account.d.ts +1 -7
  227. package/lib/projects/localDev/helpers/account.js +12 -100
  228. package/lib/projects/localDev/helpers/process.d.ts +1 -1
  229. package/lib/projects/localDev/helpers/process.js +4 -10
  230. package/lib/projects/localDev/helpers/project.d.ts +8 -6
  231. package/lib/projects/localDev/helpers/project.js +80 -29
  232. package/lib/projects/npmAuditOnUpload.d.ts +10 -0
  233. package/lib/projects/npmAuditOnUpload.js +73 -0
  234. package/lib/projects/pollProjectBuildAndDeploy.d.ts +5 -1
  235. package/lib/projects/pollProjectBuildAndDeploy.js +3 -2
  236. package/lib/projects/preview.d.ts +7 -0
  237. package/lib/projects/preview.js +48 -0
  238. package/lib/projects/projectInfo.d.ts +5 -0
  239. package/lib/projects/projectInfo.js +82 -0
  240. package/lib/projects/projectProfiles.d.ts +1 -2
  241. package/lib/projects/projectProfiles.js +5 -17
  242. package/lib/projects/release.d.ts +4 -0
  243. package/lib/projects/release.js +90 -0
  244. package/lib/projects/ui.d.ts +1 -0
  245. package/lib/projects/ui.js +14 -0
  246. package/lib/projects/uieLinting.d.ts +21 -3
  247. package/lib/projects/uieLinting.js +132 -28
  248. package/lib/projects/upload.d.ts +12 -2
  249. package/lib/projects/upload.js +59 -13
  250. package/lib/projects/urls.d.ts +0 -1
  251. package/lib/projects/urls.js +6 -13
  252. package/lib/projects/validateLintConfigOnUpload.d.ts +9 -0
  253. package/lib/projects/validateLintConfigOnUpload.js +45 -0
  254. package/lib/projects/workspaces.d.ts +60 -0
  255. package/lib/projects/workspaces.js +411 -0
  256. package/lib/prompts/createApiSamplePrompt.js +4 -0
  257. package/lib/prompts/downloadProjectPrompt.js +11 -10
  258. package/lib/prompts/installAppPrompt.js +3 -2
  259. package/lib/prompts/personalAccessKeyPrompt.d.ts +2 -5
  260. package/lib/prompts/personalAccessKeyPrompt.js +10 -7
  261. package/lib/prompts/projectDevTargetAccountPrompt.d.ts +1 -0
  262. package/lib/prompts/projectDevTargetAccountPrompt.js +26 -18
  263. package/lib/prompts/projectProfilePrompt.d.ts +2 -0
  264. package/lib/prompts/projectProfilePrompt.js +46 -0
  265. package/lib/prompts/projectsLogsPrompt.js +3 -0
  266. package/lib/prompts/promptUtils.js +4 -2
  267. package/lib/prompts/selectAppPrompt.js +1 -0
  268. package/lib/prompts/selectHubDBTablePrompt.js +8 -4
  269. package/lib/prompts/selectPublicAppForMigrationPrompt.js +12 -6
  270. package/lib/prompts/setAsDefaultAccountPrompt.js +2 -1
  271. package/lib/sandboxes.d.ts +1 -9
  272. package/lib/sandboxes.js +0 -21
  273. package/lib/serverlessLogs.js +2 -2
  274. package/lib/theme/cmsDevServerProcess.d.ts +2 -0
  275. package/lib/theme/cmsDevServerProcess.js +8 -7
  276. package/lib/theme/migrate.d.ts +1 -1
  277. package/lib/theme/migrate.js +1 -5
  278. package/lib/ui/SpinniesManager.d.ts +1 -0
  279. package/lib/ui/SpinniesManager.js +22 -6
  280. package/lib/ui/accountTable.d.ts +8 -0
  281. package/lib/ui/accountTable.js +67 -0
  282. package/lib/ui/appLogs.d.ts +32 -0
  283. package/lib/ui/appLogs.js +175 -0
  284. package/lib/ui/spinniesUtils.d.ts +0 -1
  285. package/lib/ui/spinniesUtils.js +6 -16
  286. package/lib/usageTracking.d.ts +10 -20
  287. package/lib/usageTracking.js +77 -30
  288. package/lib/yargs/makeWrappedYargsHandler.d.ts +7 -0
  289. package/lib/yargs/makeWrappedYargsHandler.js +179 -0
  290. package/lib/yargs/makeYargsBuilder.d.ts +13 -0
  291. package/lib/yargs/makeYargsBuilder.js +33 -0
  292. package/lib/yargs/parseYargsOrExit.d.ts +4 -0
  293. package/lib/yargs/parseYargsOrExit.js +25 -0
  294. package/lib/yargs/strictEnforceBoolean.d.ts +1 -0
  295. package/lib/yargs/strictEnforceBoolean.js +13 -0
  296. package/lib/yargsUtils.d.ts +3 -16
  297. package/lib/yargsUtils.js +3 -48
  298. package/mcp-server/Tool.d.ts +20 -0
  299. package/mcp-server/Tool.js +79 -0
  300. package/mcp-server/server.js +47 -3
  301. package/mcp-server/tools/cms/HsCreateFunctionTool.d.ts +5 -3
  302. package/mcp-server/tools/cms/HsCreateFunctionTool.js +18 -23
  303. package/mcp-server/tools/cms/HsCreateModuleTool.d.ts +5 -3
  304. package/mcp-server/tools/cms/HsCreateModuleTool.js +21 -26
  305. package/mcp-server/tools/cms/HsCreateTemplateTool.d.ts +5 -3
  306. package/mcp-server/tools/cms/HsCreateTemplateTool.js +16 -16
  307. package/mcp-server/tools/cms/HsFunctionLogsTool.d.ts +5 -3
  308. package/mcp-server/tools/cms/HsFunctionLogsTool.js +16 -15
  309. package/mcp-server/tools/cms/HsListFunctionsTool.d.ts +5 -3
  310. package/mcp-server/tools/cms/HsListFunctionsTool.js +14 -13
  311. package/mcp-server/tools/cms/HsListTool.d.ts +5 -3
  312. package/mcp-server/tools/cms/HsListTool.js +14 -16
  313. package/mcp-server/tools/index.d.ts +3 -2
  314. package/mcp-server/tools/index.js +26 -22
  315. package/mcp-server/tools/project/AddFeatureToProjectTool.d.ts +8 -4
  316. package/mcp-server/tools/project/AddFeatureToProjectTool.js +16 -15
  317. package/mcp-server/tools/project/AuthAccountTool.d.ts +18 -0
  318. package/mcp-server/tools/project/AuthAccountTool.js +78 -0
  319. package/mcp-server/tools/project/CreateProjectTool.d.ts +8 -4
  320. package/mcp-server/tools/project/CreateProjectTool.js +21 -17
  321. package/mcp-server/tools/project/CreateTestAccountTool.d.ts +5 -3
  322. package/mcp-server/tools/project/CreateTestAccountTool.js +35 -24
  323. package/mcp-server/tools/project/DeployProjectTool.d.ts +5 -3
  324. package/mcp-server/tools/project/DeployProjectTool.js +14 -16
  325. package/mcp-server/tools/project/DocFetchTool.d.ts +4 -2
  326. package/mcp-server/tools/project/DocFetchTool.js +8 -6
  327. package/mcp-server/tools/project/DocsSearchTool.d.ts +9 -3
  328. package/mcp-server/tools/project/DocsSearchTool.js +39 -15
  329. package/mcp-server/tools/project/FindProjectsTool.d.ts +15 -0
  330. package/mcp-server/tools/project/FindProjectsTool.js +60 -0
  331. package/mcp-server/tools/project/GetApiUsagePatternsByAppIdTool.d.ts +6 -3
  332. package/mcp-server/tools/project/GetApiUsagePatternsByAppIdTool.js +16 -13
  333. package/mcp-server/tools/project/GetApplicationInfoTool.d.ts +6 -3
  334. package/mcp-server/tools/project/GetApplicationInfoTool.js +19 -14
  335. package/mcp-server/tools/project/GetBuildLogsTool.d.ts +4 -2
  336. package/mcp-server/tools/project/GetBuildLogsTool.js +19 -13
  337. package/mcp-server/tools/project/GetBuildStatusTool.d.ts +4 -2
  338. package/mcp-server/tools/project/GetBuildStatusTool.js +19 -13
  339. package/mcp-server/tools/project/GetConfigValuesTool.d.ts +6 -3
  340. package/mcp-server/tools/project/GetConfigValuesTool.js +20 -13
  341. package/mcp-server/tools/project/GuidedWalkthroughTool.d.ts +4 -2
  342. package/mcp-server/tools/project/GuidedWalkthroughTool.js +4 -6
  343. package/mcp-server/tools/project/UploadProjectTools.d.ts +5 -3
  344. package/mcp-server/tools/project/UploadProjectTools.js +18 -15
  345. package/mcp-server/tools/project/ValidateProjectTool.d.ts +5 -3
  346. package/mcp-server/tools/project/ValidateProjectTool.js +13 -10
  347. package/mcp-server/tools/project/constants.d.ts +3 -1
  348. package/mcp-server/tools/project/constants.js +3 -1
  349. package/mcp-server/types.d.ts +0 -7
  350. package/mcp-server/types.js +1 -13
  351. package/mcp-server/utils/command.d.ts +25 -2
  352. package/mcp-server/utils/command.js +68 -16
  353. package/mcp-server/utils/config.js +6 -0
  354. package/mcp-server/utils/logger.d.ts +13 -0
  355. package/mcp-server/utils/logger.js +59 -0
  356. package/mcp-server/utils/toolUsageTracking.js +28 -11
  357. package/package.json +22 -15
  358. package/types/AccountTargets.d.ts +37 -0
  359. package/types/AccountTargets.js +12 -0
  360. package/types/Link.d.ts +32 -0
  361. package/types/Link.js +5 -0
  362. package/types/LocalDev.d.ts +8 -2
  363. package/types/PackageJson.d.ts +1 -0
  364. package/types/ProjectComponents.d.ts +2 -1
  365. package/types/Projects.d.ts +24 -0
  366. package/types/Prompts.d.ts +1 -0
  367. package/types/Yargs.d.ts +22 -2
  368. package/ui/components/ActionSection.d.ts +1 -1
  369. package/ui/components/InputField.d.ts +1 -1
  370. package/ui/components/SelectInput.d.ts +1 -1
  371. package/ui/components/StatusIcon.d.ts +1 -1
  372. package/ui/components/Table.d.ts +5 -5
  373. package/ui/components/getStarted/GetStartedFlow.d.ts +1 -1
  374. package/ui/components/getStarted/screens/InstallationScreen.d.ts +1 -1
  375. package/ui/components/getStarted/screens/ProjectSetupScreen.d.ts +1 -1
  376. package/ui/components/getStarted/screens/UploadScreen.d.ts +1 -1
  377. package/api/__tests__/migrate.test.d.ts +0 -1
  378. package/api/__tests__/migrate.test.js +0 -199
  379. package/commands/__tests__/account.test.d.ts +0 -1
  380. package/commands/__tests__/account.test.js +0 -69
  381. package/commands/__tests__/auth.test.d.ts +0 -1
  382. package/commands/__tests__/auth.test.js +0 -43
  383. package/commands/__tests__/cms.test.d.ts +0 -1
  384. package/commands/__tests__/cms.test.js +0 -87
  385. package/commands/__tests__/config.test.d.ts +0 -1
  386. package/commands/__tests__/config.test.js +0 -44
  387. package/commands/__tests__/customObject.test.d.ts +0 -1
  388. package/commands/__tests__/customObject.test.js +0 -68
  389. package/commands/__tests__/doctor.test.d.ts +0 -1
  390. package/commands/__tests__/doctor.test.js +0 -132
  391. package/commands/__tests__/feedback.test.d.ts +0 -1
  392. package/commands/__tests__/feedback.test.js +0 -24
  393. package/commands/__tests__/filemanager.test.d.ts +0 -1
  394. package/commands/__tests__/filemanager.test.js +0 -45
  395. package/commands/__tests__/getStarted.test.d.ts +0 -1
  396. package/commands/__tests__/getStarted.test.js +0 -173
  397. package/commands/__tests__/hubdb.test.d.ts +0 -1
  398. package/commands/__tests__/hubdb.test.js +0 -50
  399. package/commands/__tests__/init.test.d.ts +0 -1
  400. package/commands/__tests__/init.test.js +0 -42
  401. package/commands/__tests__/mcp.test.d.ts +0 -1
  402. package/commands/__tests__/mcp.test.js +0 -46
  403. package/commands/__tests__/open.test.d.ts +0 -1
  404. package/commands/__tests__/open.test.js +0 -58
  405. package/commands/__tests__/project.test.d.ts +0 -1
  406. package/commands/__tests__/project.test.js +0 -125
  407. package/commands/__tests__/sandbox.test.d.ts +0 -1
  408. package/commands/__tests__/sandbox.test.js +0 -44
  409. package/commands/__tests__/secret.test.d.ts +0 -1
  410. package/commands/__tests__/secret.test.js +0 -49
  411. package/commands/__tests__/testAccount.test.d.ts +0 -1
  412. package/commands/__tests__/testAccount.test.js +0 -57
  413. package/commands/__tests__/upgrade.test.d.ts +0 -1
  414. package/commands/__tests__/upgrade.test.js +0 -309
  415. package/commands/account/__tests__/auth.test.d.ts +0 -1
  416. package/commands/account/__tests__/auth.test.js +0 -206
  417. package/commands/account/__tests__/clean.test.d.ts +0 -1
  418. package/commands/account/__tests__/clean.test.js +0 -28
  419. package/commands/account/__tests__/createOverride.test.d.ts +0 -1
  420. package/commands/account/__tests__/createOverride.test.js +0 -32
  421. package/commands/account/__tests__/info.test.d.ts +0 -1
  422. package/commands/account/__tests__/info.test.js +0 -28
  423. package/commands/account/__tests__/list.test.d.ts +0 -1
  424. package/commands/account/__tests__/list.test.js +0 -153
  425. package/commands/account/__tests__/remove.test.d.ts +0 -1
  426. package/commands/account/__tests__/remove.test.js +0 -36
  427. package/commands/account/__tests__/removeOverride.d.ts +0 -1
  428. package/commands/account/__tests__/removeOverride.js +0 -25
  429. package/commands/account/__tests__/rename.test.d.ts +0 -1
  430. package/commands/account/__tests__/rename.test.js +0 -82
  431. package/commands/account/__tests__/use.test.d.ts +0 -1
  432. package/commands/account/__tests__/use.test.js +0 -170
  433. package/commands/app/__tests__/migrate.test.d.ts +0 -1
  434. package/commands/app/__tests__/migrate.test.js +0 -111
  435. package/commands/app/secret/__tests__/add.test.d.ts +0 -1
  436. package/commands/app/secret/__tests__/add.test.js +0 -140
  437. package/commands/app/secret/__tests__/delete.test.d.ts +0 -1
  438. package/commands/app/secret/__tests__/delete.test.js +0 -28
  439. package/commands/app/secret/__tests__/list.test.d.ts +0 -1
  440. package/commands/app/secret/__tests__/list.test.js +0 -25
  441. package/commands/app/secret/__tests__/update.test.d.ts +0 -1
  442. package/commands/app/secret/__tests__/update.test.js +0 -28
  443. package/commands/cms/__tests__/delete.test.d.ts +0 -1
  444. package/commands/cms/__tests__/delete.test.js +0 -39
  445. package/commands/cms/__tests__/fetch.test.d.ts +0 -1
  446. package/commands/cms/__tests__/fetch.test.js +0 -156
  447. package/commands/cms/__tests__/function.test.d.ts +0 -1
  448. package/commands/cms/__tests__/function.test.js +0 -50
  449. package/commands/cms/__tests__/lint.test.d.ts +0 -1
  450. package/commands/cms/__tests__/lint.test.js +0 -33
  451. package/commands/cms/__tests__/list.test.d.ts +0 -1
  452. package/commands/cms/__tests__/list.test.js +0 -42
  453. package/commands/cms/__tests__/module.test.d.ts +0 -1
  454. package/commands/cms/__tests__/module.test.js +0 -45
  455. package/commands/cms/__tests__/mv.test.d.ts +0 -1
  456. package/commands/cms/__tests__/mv.test.js +0 -46
  457. package/commands/cms/__tests__/theme.test.d.ts +0 -1
  458. package/commands/cms/__tests__/theme.test.js +0 -54
  459. package/commands/cms/__tests__/upload.test.d.ts +0 -1
  460. package/commands/cms/__tests__/upload.test.js +0 -308
  461. package/commands/cms/__tests__/watch.test.d.ts +0 -1
  462. package/commands/cms/__tests__/watch.test.js +0 -204
  463. package/commands/cms/function/__tests__/logs.test.d.ts +0 -1
  464. package/commands/cms/function/__tests__/logs.test.js +0 -70
  465. package/commands/cms/theme/__tests__/generate-selectors.test.d.ts +0 -1
  466. package/commands/cms/theme/__tests__/generate-selectors.test.js +0 -28
  467. package/commands/cms/theme/__tests__/marketplace-validate.test.d.ts +0 -1
  468. package/commands/cms/theme/__tests__/marketplace-validate.test.js +0 -36
  469. package/commands/cms/theme/__tests__/preview.test.d.ts +0 -1
  470. package/commands/cms/theme/__tests__/preview.test.js +0 -54
  471. package/commands/customObject/__tests__/create.test.d.ts +0 -1
  472. package/commands/customObject/__tests__/create.test.js +0 -40
  473. package/commands/customObject/__tests__/createSchema.test.d.ts +0 -1
  474. package/commands/customObject/__tests__/createSchema.test.js +0 -28
  475. package/commands/customObject/__tests__/deleteSchema.test.d.ts +0 -1
  476. package/commands/customObject/__tests__/deleteSchema.test.js +0 -42
  477. package/commands/customObject/__tests__/fetch-all-schemas.test.d.ts +0 -1
  478. package/commands/customObject/__tests__/fetch-all-schemas.test.js +0 -41
  479. package/commands/customObject/__tests__/fetchSchema.test.d.ts +0 -1
  480. package/commands/customObject/__tests__/fetchSchema.test.js +0 -45
  481. package/commands/customObject/__tests__/listSchemas.test.d.ts +0 -1
  482. package/commands/customObject/__tests__/listSchemas.test.js +0 -29
  483. package/commands/customObject/__tests__/updateSchema.test.d.ts +0 -1
  484. package/commands/customObject/__tests__/updateSchema.test.js +0 -40
  485. package/commands/filemanager/__tests__/fetch.test.d.ts +0 -1
  486. package/commands/filemanager/__tests__/fetch.test.js +0 -32
  487. package/commands/filemanager/__tests__/upload.test.d.ts +0 -1
  488. package/commands/filemanager/__tests__/upload.test.js +0 -191
  489. package/commands/hubdb/__tests__/clear.test.d.ts +0 -1
  490. package/commands/hubdb/__tests__/clear.test.js +0 -28
  491. package/commands/hubdb/__tests__/create.test.d.ts +0 -1
  492. package/commands/hubdb/__tests__/create.test.js +0 -28
  493. package/commands/hubdb/__tests__/delete.test.d.ts +0 -1
  494. package/commands/hubdb/__tests__/delete.test.js +0 -28
  495. package/commands/hubdb/__tests__/fetch.test.d.ts +0 -1
  496. package/commands/hubdb/__tests__/fetch.test.js +0 -28
  497. package/commands/hubdb/__tests__/list.test.d.ts +0 -1
  498. package/commands/hubdb/__tests__/list.test.js +0 -88
  499. package/commands/mcp/__tests__/setup.test.d.ts +0 -1
  500. package/commands/mcp/__tests__/setup.test.js +0 -26
  501. package/commands/mcp/__tests__/start.test.d.ts +0 -1
  502. package/commands/mcp/__tests__/start.test.js +0 -144
  503. package/commands/project/__tests__/add.test.d.ts +0 -1
  504. package/commands/project/__tests__/add.test.js +0 -107
  505. package/commands/project/__tests__/create.test.d.ts +0 -1
  506. package/commands/project/__tests__/create.test.js +0 -97
  507. package/commands/project/__tests__/deploy.test.d.ts +0 -1
  508. package/commands/project/__tests__/deploy.test.js +0 -307
  509. package/commands/project/__tests__/dev.test.d.ts +0 -1
  510. package/commands/project/__tests__/dev.test.js +0 -273
  511. package/commands/project/__tests__/devUnifiedFlow.test.d.ts +0 -1
  512. package/commands/project/__tests__/devUnifiedFlow.test.js +0 -434
  513. package/commands/project/__tests__/download.test.d.ts +0 -1
  514. package/commands/project/__tests__/download.test.js +0 -39
  515. package/commands/project/__tests__/installDeps.test.d.ts +0 -1
  516. package/commands/project/__tests__/installDeps.test.js +0 -140
  517. package/commands/project/__tests__/lint.test.d.ts +0 -1
  518. package/commands/project/__tests__/lint.test.js +0 -704
  519. package/commands/project/__tests__/list.test.d.ts +0 -1
  520. package/commands/project/__tests__/list.test.js +0 -31
  521. package/commands/project/__tests__/listBuilds.test.d.ts +0 -1
  522. package/commands/project/__tests__/listBuilds.test.js +0 -38
  523. package/commands/project/__tests__/logs.test.d.ts +0 -1
  524. package/commands/project/__tests__/logs.test.js +0 -202
  525. package/commands/project/__tests__/migrate.test.d.ts +0 -1
  526. package/commands/project/__tests__/migrate.test.js +0 -106
  527. package/commands/project/__tests__/open.test.d.ts +0 -1
  528. package/commands/project/__tests__/open.test.js +0 -39
  529. package/commands/project/__tests__/profile.test.d.ts +0 -1
  530. package/commands/project/__tests__/profile.test.js +0 -42
  531. package/commands/project/__tests__/updateDeps.test.d.ts +0 -1
  532. package/commands/project/__tests__/updateDeps.test.js +0 -140
  533. package/commands/project/__tests__/upload.test.d.ts +0 -1
  534. package/commands/project/__tests__/upload.test.js +0 -234
  535. package/commands/project/__tests__/validate.test.d.ts +0 -1
  536. package/commands/project/__tests__/validate.test.js +0 -381
  537. package/commands/project/__tests__/watch.test.d.ts +0 -1
  538. package/commands/project/__tests__/watch.test.js +0 -35
  539. package/commands/project/dev/deprecatedFlow.d.ts +0 -11
  540. package/commands/project/dev/deprecatedFlow.js +0 -135
  541. package/commands/sandbox/__tests__/create.test.d.ts +0 -1
  542. package/commands/sandbox/__tests__/create.test.js +0 -245
  543. package/commands/sandbox/__tests__/delete.test.d.ts +0 -1
  544. package/commands/sandbox/__tests__/delete.test.js +0 -31
  545. package/commands/secret/__tests__/addSecret.test.d.ts +0 -1
  546. package/commands/secret/__tests__/addSecret.test.js +0 -162
  547. package/commands/secret/__tests__/deleteSecret.test.d.ts +0 -1
  548. package/commands/secret/__tests__/deleteSecret.test.js +0 -41
  549. package/commands/secret/__tests__/listSecret.test.d.ts +0 -1
  550. package/commands/secret/__tests__/listSecret.test.js +0 -29
  551. package/commands/secret/__tests__/updateSecret.test.d.ts +0 -1
  552. package/commands/secret/__tests__/updateSecret.test.js +0 -29
  553. package/commands/testAccount/__tests__/create.test.d.ts +0 -1
  554. package/commands/testAccount/__tests__/create.test.js +0 -106
  555. package/commands/testAccount/__tests__/createConfig.test.d.ts +0 -1
  556. package/commands/testAccount/__tests__/createConfig.test.js +0 -32
  557. package/commands/testAccount/__tests__/delete.test.d.ts +0 -1
  558. package/commands/testAccount/__tests__/delete.test.js +0 -29
  559. package/commands/testAccount/__tests__/importData.test.d.ts +0 -1
  560. package/commands/testAccount/__tests__/importData.test.js +0 -92
  561. package/lib/__tests__/CLIWebSocketServer.test.d.ts +0 -1
  562. package/lib/__tests__/CLIWebSocketServer.test.js +0 -252
  563. package/lib/__tests__/accountAuth.test.d.ts +0 -1
  564. package/lib/__tests__/accountAuth.test.js +0 -258
  565. package/lib/__tests__/accountTypes.test.d.ts +0 -1
  566. package/lib/__tests__/accountTypes.test.js +0 -98
  567. package/lib/__tests__/buildAccount.test.d.ts +0 -1
  568. package/lib/__tests__/buildAccount.test.js +0 -262
  569. package/lib/__tests__/cliUpgradeUtils.test.d.ts +0 -1
  570. package/lib/__tests__/cliUpgradeUtils.test.js +0 -131
  571. package/lib/__tests__/commandSuggestion.test.d.ts +0 -1
  572. package/lib/__tests__/commandSuggestion.test.js +0 -121
  573. package/lib/__tests__/commonOpts.test.d.ts +0 -1
  574. package/lib/__tests__/commonOpts.test.js +0 -80
  575. package/lib/__tests__/dependencyManagement.test.d.ts +0 -1
  576. package/lib/__tests__/dependencyManagement.test.js +0 -1067
  577. package/lib/__tests__/developerTestAccounts.test.d.ts +0 -1
  578. package/lib/__tests__/developerTestAccounts.test.js +0 -156
  579. package/lib/__tests__/hasFeature.test.d.ts +0 -1
  580. package/lib/__tests__/hasFeature.test.js +0 -167
  581. package/lib/__tests__/http.test.d.ts +0 -1
  582. package/lib/__tests__/http.test.js +0 -40
  583. package/lib/__tests__/importData.test.d.ts +0 -1
  584. package/lib/__tests__/importData.test.js +0 -98
  585. package/lib/__tests__/npmCli.test.d.ts +0 -1
  586. package/lib/__tests__/npmCli.test.js +0 -84
  587. package/lib/__tests__/oauth.test.d.ts +0 -1
  588. package/lib/__tests__/oauth.test.js +0 -109
  589. package/lib/__tests__/parsing.test.d.ts +0 -1
  590. package/lib/__tests__/parsing.test.js +0 -34
  591. package/lib/__tests__/polling.test.d.ts +0 -1
  592. package/lib/__tests__/polling.test.js +0 -76
  593. package/lib/__tests__/process.test.d.ts +0 -1
  594. package/lib/__tests__/process.test.js +0 -89
  595. package/lib/__tests__/sandboxSync.test.d.ts +0 -1
  596. package/lib/__tests__/sandboxSync.test.js +0 -147
  597. package/lib/__tests__/sandboxes.test.d.ts +0 -1
  598. package/lib/__tests__/sandboxes.test.js +0 -156
  599. package/lib/__tests__/serverlessLogs.test.d.ts +0 -1
  600. package/lib/__tests__/serverlessLogs.test.js +0 -163
  601. package/lib/__tests__/usageTracking.test.d.ts +0 -1
  602. package/lib/__tests__/usageTracking.test.js +0 -197
  603. package/lib/__tests__/validation.test.d.ts +0 -1
  604. package/lib/__tests__/validation.test.js +0 -143
  605. package/lib/__tests__/yargsUtils.test.d.ts +0 -1
  606. package/lib/__tests__/yargsUtils.test.js +0 -124
  607. package/lib/app/__tests__/migrate.test.d.ts +0 -1
  608. package/lib/app/__tests__/migrate.test.js +0 -638
  609. package/lib/doctor/__tests__/Diagnosis.test.d.ts +0 -1
  610. package/lib/doctor/__tests__/Diagnosis.test.js +0 -84
  611. package/lib/doctor/__tests__/DiagnosticInfoBuilder.test.d.ts +0 -1
  612. package/lib/doctor/__tests__/DiagnosticInfoBuilder.test.js +0 -177
  613. package/lib/doctor/__tests__/Doctor.test.d.ts +0 -1
  614. package/lib/doctor/__tests__/Doctor.test.js +0 -560
  615. package/lib/errorHandlers/__tests__/index.test.d.ts +0 -1
  616. package/lib/errorHandlers/__tests__/index.test.js +0 -278
  617. package/lib/mcp/__tests__/setup.test.d.ts +0 -1
  618. package/lib/mcp/__tests__/setup.test.js +0 -523
  619. package/lib/middleware/__tests__/commandTargetingUtils.test.d.ts +0 -1
  620. package/lib/middleware/__tests__/commandTargetingUtils.test.js +0 -99
  621. package/lib/middleware/__tests__/configMiddleware.test.d.ts +0 -1
  622. package/lib/middleware/__tests__/configMiddleware.test.js +0 -118
  623. package/lib/middleware/__tests__/gitMiddleware.test.d.ts +0 -1
  624. package/lib/middleware/__tests__/gitMiddleware.test.js +0 -43
  625. package/lib/middleware/__tests__/requestMiddleware.test.d.ts +0 -1
  626. package/lib/middleware/__tests__/requestMiddleware.test.js +0 -15
  627. package/lib/middleware/__tests__/usageTrackingMiddleware.test.d.ts +0 -1
  628. package/lib/middleware/__tests__/usageTrackingMiddleware.test.js +0 -44
  629. package/lib/middleware/__tests__/yargsChecksMiddleware.test.d.ts +0 -1
  630. package/lib/middleware/__tests__/yargsChecksMiddleware.test.js +0 -39
  631. package/lib/projects/__tests__/AppDevModeInterface.test.d.ts +0 -1
  632. package/lib/projects/__tests__/AppDevModeInterface.test.js +0 -541
  633. package/lib/projects/__tests__/DevServerManager.test.d.ts +0 -1
  634. package/lib/projects/__tests__/DevServerManager.test.js +0 -185
  635. package/lib/projects/__tests__/DevSessionManager.test.d.ts +0 -1
  636. package/lib/projects/__tests__/DevSessionManager.test.js +0 -250
  637. package/lib/projects/__tests__/LocalDevProcess.test.d.ts +0 -1
  638. package/lib/projects/__tests__/LocalDevProcess.test.js +0 -481
  639. package/lib/projects/__tests__/LocalDevWebsocketServer.test.d.ts +0 -1
  640. package/lib/projects/__tests__/LocalDevWebsocketServer.test.js +0 -231
  641. package/lib/projects/__tests__/ProjectLogsManager.test.d.ts +0 -1
  642. package/lib/projects/__tests__/ProjectLogsManager.test.js +0 -302
  643. package/lib/projects/__tests__/UIExtensionsDevModeInterface.test.d.ts +0 -1
  644. package/lib/projects/__tests__/UIExtensionsDevModeInterface.test.js +0 -160
  645. package/lib/projects/__tests__/components.test.d.ts +0 -1
  646. package/lib/projects/__tests__/components.test.js +0 -426
  647. package/lib/projects/__tests__/deploy.test.d.ts +0 -1
  648. package/lib/projects/__tests__/deploy.test.js +0 -231
  649. package/lib/projects/__tests__/localDevProjectHelpers.test.d.ts +0 -1
  650. package/lib/projects/__tests__/localDevProjectHelpers.test.js +0 -120
  651. package/lib/projects/__tests__/platformVersion.test.d.ts +0 -1
  652. package/lib/projects/__tests__/platformVersion.test.js +0 -63
  653. package/lib/projects/__tests__/pollProjectBuildAndDeploy.test.d.ts +0 -1
  654. package/lib/projects/__tests__/pollProjectBuildAndDeploy.test.js +0 -328
  655. package/lib/projects/__tests__/projectProfiles.test.d.ts +0 -1
  656. package/lib/projects/__tests__/projectProfiles.test.js +0 -441
  657. package/lib/projects/__tests__/projects.test.d.ts +0 -1
  658. package/lib/projects/__tests__/projects.test.js +0 -58
  659. package/lib/projects/__tests__/structure.test.d.ts +0 -1
  660. package/lib/projects/__tests__/structure.test.js +0 -210
  661. package/lib/projects/__tests__/uieLinting.test.d.ts +0 -1
  662. package/lib/projects/__tests__/uieLinting.test.js +0 -631
  663. package/lib/projects/__tests__/upload.test.d.ts +0 -1
  664. package/lib/projects/__tests__/upload.test.js +0 -183
  665. package/lib/projects/add/__tests__/legacyAddComponent.test.d.ts +0 -1
  666. package/lib/projects/add/__tests__/legacyAddComponent.test.js +0 -245
  667. package/lib/projects/add/__tests__/v2AddComponent.test.d.ts +0 -1
  668. package/lib/projects/add/__tests__/v2AddComponent.test.js +0 -343
  669. package/lib/projects/create/__tests__/legacy.test.d.ts +0 -1
  670. package/lib/projects/create/__tests__/legacy.test.js +0 -72
  671. package/lib/projects/create/__tests__/v2.test.d.ts +0 -1
  672. package/lib/projects/create/__tests__/v2.test.js +0 -257
  673. package/lib/projects/localDev/DevServerManager_DEPRECATED.d.ts +0 -40
  674. package/lib/projects/localDev/DevServerManager_DEPRECATED.js +0 -128
  675. package/lib/projects/localDev/LocalDevManager_DEPRECATED.d.ts +0 -59
  676. package/lib/projects/localDev/LocalDevManager_DEPRECATED.js +0 -383
  677. package/lib/projects/platformVersion.d.ts +0 -9
  678. package/lib/projects/platformVersion.js +0 -39
  679. package/lib/prompts/__tests__/createDeveloperTestAccountConfigPrompt.test.d.ts +0 -1
  680. package/lib/prompts/__tests__/createDeveloperTestAccountConfigPrompt.test.js +0 -157
  681. package/lib/prompts/__tests__/createFunctionPrompt.test.d.ts +0 -1
  682. package/lib/prompts/__tests__/createFunctionPrompt.test.js +0 -129
  683. package/lib/prompts/__tests__/createModulePrompt.test.d.ts +0 -1
  684. package/lib/prompts/__tests__/createModulePrompt.test.js +0 -187
  685. package/lib/prompts/__tests__/createTemplatePrompt.test.d.ts +0 -1
  686. package/lib/prompts/__tests__/createTemplatePrompt.test.js +0 -102
  687. package/lib/prompts/__tests__/downloadProjectPrompt.test.d.ts +0 -1
  688. package/lib/prompts/__tests__/downloadProjectPrompt.test.js +0 -31
  689. package/lib/prompts/__tests__/projectAddPrompt.test.d.ts +0 -1
  690. package/lib/prompts/__tests__/projectAddPrompt.test.js +0 -143
  691. package/lib/prompts/__tests__/projectsLogsPrompt.test.d.ts +0 -1
  692. package/lib/prompts/__tests__/projectsLogsPrompt.test.js +0 -37
  693. package/lib/prompts/__tests__/selectProjectTemplatePrompt.test.d.ts +0 -1
  694. package/lib/prompts/__tests__/selectProjectTemplatePrompt.test.js +0 -160
  695. package/lib/sandboxSync.d.ts +0 -4
  696. package/lib/sandboxSync.js +0 -102
  697. package/lib/theme/__tests__/migrate.test.d.ts +0 -1
  698. package/lib/theme/__tests__/migrate.test.js +0 -256
  699. package/lib/ui/__tests__/SpinniesManager.test.d.ts +0 -1
  700. package/lib/ui/__tests__/SpinniesManager.test.js +0 -488
  701. package/lib/ui/__tests__/removeAnsiCodes.test.d.ts +0 -1
  702. package/lib/ui/__tests__/removeAnsiCodes.test.js +0 -84
  703. package/mcp-server/tools/cms/__tests__/HsCreateFunctionTool.test.d.ts +0 -1
  704. package/mcp-server/tools/cms/__tests__/HsCreateFunctionTool.test.js +0 -254
  705. package/mcp-server/tools/cms/__tests__/HsCreateModuleTool.test.d.ts +0 -1
  706. package/mcp-server/tools/cms/__tests__/HsCreateModuleTool.test.js +0 -227
  707. package/mcp-server/tools/cms/__tests__/HsCreateTemplateTool.test.d.ts +0 -1
  708. package/mcp-server/tools/cms/__tests__/HsCreateTemplateTool.test.js +0 -208
  709. package/mcp-server/tools/cms/__tests__/HsFunctionLogsTool.test.d.ts +0 -1
  710. package/mcp-server/tools/cms/__tests__/HsFunctionLogsTool.test.js +0 -186
  711. package/mcp-server/tools/cms/__tests__/HsListFunctionsTool.test.d.ts +0 -1
  712. package/mcp-server/tools/cms/__tests__/HsListFunctionsTool.test.js +0 -124
  713. package/mcp-server/tools/cms/__tests__/HsListTool.test.d.ts +0 -1
  714. package/mcp-server/tools/cms/__tests__/HsListTool.test.js +0 -124
  715. package/mcp-server/tools/project/__tests__/AddFeatureToProjectTool.test.d.ts +0 -1
  716. package/mcp-server/tools/project/__tests__/AddFeatureToProjectTool.test.js +0 -157
  717. package/mcp-server/tools/project/__tests__/CreateProjectTool.test.d.ts +0 -1
  718. package/mcp-server/tools/project/__tests__/CreateProjectTool.test.js +0 -132
  719. package/mcp-server/tools/project/__tests__/CreateTestAccountTool.test.d.ts +0 -1
  720. package/mcp-server/tools/project/__tests__/CreateTestAccountTool.test.js +0 -461
  721. package/mcp-server/tools/project/__tests__/DeployProjectTool.test.d.ts +0 -1
  722. package/mcp-server/tools/project/__tests__/DeployProjectTool.test.js +0 -125
  723. package/mcp-server/tools/project/__tests__/DocFetchTool.test.d.ts +0 -1
  724. package/mcp-server/tools/project/__tests__/DocFetchTool.test.js +0 -125
  725. package/mcp-server/tools/project/__tests__/DocsSearchTool.test.d.ts +0 -1
  726. package/mcp-server/tools/project/__tests__/DocsSearchTool.test.js +0 -210
  727. package/mcp-server/tools/project/__tests__/GetApiUsagePatternsByAppIdTool.test.d.ts +0 -1
  728. package/mcp-server/tools/project/__tests__/GetApiUsagePatternsByAppIdTool.test.js +0 -146
  729. package/mcp-server/tools/project/__tests__/GetApplicationInfoTool.test.d.ts +0 -1
  730. package/mcp-server/tools/project/__tests__/GetApplicationInfoTool.test.js +0 -124
  731. package/mcp-server/tools/project/__tests__/GetBuildLogsTool.test.d.ts +0 -1
  732. package/mcp-server/tools/project/__tests__/GetBuildLogsTool.test.js +0 -307
  733. package/mcp-server/tools/project/__tests__/GetBuildStatusTool.test.d.ts +0 -1
  734. package/mcp-server/tools/project/__tests__/GetBuildStatusTool.test.js +0 -242
  735. package/mcp-server/tools/project/__tests__/GetConfigValuesTool.test.d.ts +0 -1
  736. package/mcp-server/tools/project/__tests__/GetConfigValuesTool.test.js +0 -209
  737. package/mcp-server/tools/project/__tests__/GuidedWalkthroughTool.test.d.ts +0 -1
  738. package/mcp-server/tools/project/__tests__/GuidedWalkthroughTool.test.js +0 -158
  739. package/mcp-server/tools/project/__tests__/UploadProjectTools.test.d.ts +0 -1
  740. package/mcp-server/tools/project/__tests__/UploadProjectTools.test.js +0 -187
  741. package/mcp-server/tools/project/__tests__/ValidateProjectTool.test.d.ts +0 -1
  742. package/mcp-server/tools/project/__tests__/ValidateProjectTool.test.js +0 -118
  743. package/mcp-server/utils/__tests__/command.test.d.ts +0 -1
  744. package/mcp-server/utils/__tests__/command.test.js +0 -275
  745. package/mcp-server/utils/__tests__/content.test.d.ts +0 -1
  746. package/mcp-server/utils/__tests__/content.test.js +0 -164
  747. package/mcp-server/utils/__tests__/feedbackTracking.test.d.ts +0 -1
  748. package/mcp-server/utils/__tests__/feedbackTracking.test.js +0 -69
@@ -0,0 +1,82 @@
1
+ import chalk from 'chalk';
2
+ import { fetchAppMetadataBySourceId } from '@hubspot/local-dev-lib/api/appsDev';
3
+ import { APP_KEY, USER_FACING_TO_INTERNAL_TYPE, } from '@hubspot/project-parsing-lib/constants';
4
+ import { debugError } from '../errorHandlers/index.js';
5
+ import { getProjectDetailUrl } from './urls.js';
6
+ import { commands } from '../../lang/en.js';
7
+ import { uiLine, uiLink } from '../ui/index.js';
8
+ import { uiLogger } from '../ui/logger.js';
9
+ export async function getProjectInfo(project, platformVersion, accountId) {
10
+ const deployedBuild = project.deployedBuild;
11
+ const projectInfo = {
12
+ projectName: project.name,
13
+ platformVersion,
14
+ projectId: project.id,
15
+ deployedBuildId: deployedBuild.buildId,
16
+ autoDeployEnabled: deployedBuild.isAutoDeployEnabled,
17
+ components: [],
18
+ };
19
+ const projectUrl = getProjectDetailUrl(project.name, accountId);
20
+ if (projectUrl) {
21
+ projectInfo.projectUrl = projectUrl;
22
+ }
23
+ const appSubbuild = deployedBuild.subbuildStatuses.find(s => s.buildType === USER_FACING_TO_INTERNAL_TYPE[APP_KEY]);
24
+ if (appSubbuild) {
25
+ try {
26
+ const { data: appMetadata } = await fetchAppMetadataBySourceId(project.id, appSubbuild.buildName, accountId);
27
+ projectInfo.app = {
28
+ name: appMetadata.name,
29
+ id: appMetadata.id,
30
+ uid: appSubbuild.buildName,
31
+ authType: appMetadata.authType,
32
+ distributionType: appMetadata.distributionType,
33
+ };
34
+ }
35
+ catch (err) {
36
+ debugError(err);
37
+ }
38
+ }
39
+ projectInfo.components = deployedBuild.subbuildStatuses
40
+ .filter(s => s.buildType !== USER_FACING_TO_INTERNAL_TYPE[APP_KEY])
41
+ .map(s => ({
42
+ uid: s.buildName,
43
+ type: s.buildType,
44
+ }));
45
+ return projectInfo;
46
+ }
47
+ export function logProjectInfo(projectInfo) {
48
+ uiLogger.log(chalk.bold(commands.project.info.project.title(projectInfo.projectName)));
49
+ uiLine();
50
+ uiLogger.log(commands.project.info.project.platformVersion(projectInfo.platformVersion));
51
+ uiLogger.log(commands.project.info.project.id(projectInfo.projectId));
52
+ uiLogger.log(commands.project.info.project.deployedBuild(projectInfo.deployedBuildId));
53
+ uiLogger.log(commands.project.info.project.autoDeploy(projectInfo.autoDeployEnabled));
54
+ if (projectInfo.projectUrl) {
55
+ uiLogger.log('');
56
+ uiLogger.log(uiLink(commands.project.info.viewProjectLink, projectInfo.projectUrl));
57
+ }
58
+ if (projectInfo.app) {
59
+ uiLogger.log('');
60
+ uiLogger.log(chalk.bold(commands.project.info.app.title));
61
+ uiLine();
62
+ uiLogger.log(commands.project.info.app.name(projectInfo.app.name));
63
+ uiLogger.log(commands.project.info.app.id(projectInfo.app.id));
64
+ uiLogger.log(commands.project.info.app.uid(projectInfo.app.uid));
65
+ if (projectInfo.app.authType) {
66
+ uiLogger.log(commands.project.info.app.authType(projectInfo.app.authType));
67
+ }
68
+ if (projectInfo.app.distributionType) {
69
+ uiLogger.log(commands.project.info.app.distributionType(projectInfo.app.distributionType));
70
+ }
71
+ }
72
+ if (projectInfo.components.length > 0) {
73
+ uiLogger.log('');
74
+ uiLogger.log(chalk.bold(commands.project.info.componentsHeader));
75
+ uiLine();
76
+ const typeColWidth = Math.max(commands.project.info.labels.type.length, ...projectInfo.components.map(c => c.type.length));
77
+ uiLogger.log(`${commands.project.info.labels.type.padEnd(typeColWidth)} ${commands.project.info.labels.uid}`);
78
+ for (const component of projectInfo.components) {
79
+ uiLogger.log(`${component.type.padEnd(typeColWidth)} ${component.uid}`);
80
+ }
81
+ }
82
+ }
@@ -3,8 +3,7 @@ import { ProjectConfig } from '../../types/Projects.js';
3
3
  export declare function logProfileHeader(profileName: string): void;
4
4
  export declare function logProfileFooter(profile: HsProfileFile, includeVariables?: boolean): void;
5
5
  export declare function loadProfile(projectConfig: ProjectConfig | null, projectDir: string | null, profileName: string): HsProfileFile | never;
6
- export declare function enforceProfileUsage(projectConfig: ProjectConfig | null, projectDir: string | null): Promise<void>;
7
- export declare function loadAndValidateProfile(projectConfig: ProjectConfig | null, projectDir: string | null, profileName: string | undefined, silent?: boolean): Promise<number | undefined>;
6
+ export declare function loadAndValidateProfile(projectConfig: ProjectConfig | null, projectDir: string | null, profileName: string, silent?: boolean): Promise<HsProfileFile | never>;
8
7
  type ValidateProjectForProfileOptions = {
9
8
  projectConfig: ProjectConfig;
10
9
  projectDir: string;
@@ -1,7 +1,7 @@
1
1
  import path from 'path';
2
- import { loadHsProfileFile, getHsProfileFilename, getAllHsProfiles, validateProfileVariables, } from '@hubspot/project-parsing-lib/profiles';
2
+ import { loadHsProfileFile, getHsProfileFilename, validateProfileVariables, } from '@hubspot/project-parsing-lib/profiles';
3
3
  import { commands, lib } from '../../lang/en.js';
4
- import { indent, uiBetaTag, uiLine } from '../ui/index.js';
4
+ import { indent, uiLine } from '../ui/index.js';
5
5
  import { uiLogger } from '../ui/logger.js';
6
6
  import { getConfigAccountById } from '@hubspot/local-dev-lib/config';
7
7
  import SpinniesManager from '../ui/SpinniesManager.js';
@@ -9,7 +9,7 @@ import { handleTranslate } from './upload.js';
9
9
  import { getErrorMessage } from '../errorHandlers/index.js';
10
10
  export function logProfileHeader(profileName) {
11
11
  uiLine();
12
- uiBetaTag(lib.projectProfiles.logs.usingProfile(getHsProfileFilename(profileName)));
12
+ uiLogger.log(lib.projectProfiles.logs.usingProfile(getHsProfileFilename(profileName)));
13
13
  uiLogger.log('');
14
14
  }
15
15
  export function logProfileFooter(profile, includeVariables = false) {
@@ -51,19 +51,7 @@ export function loadProfile(projectConfig, projectDir, profileName) {
51
51
  }
52
52
  return profile;
53
53
  }
54
- export async function enforceProfileUsage(projectConfig, projectDir) {
55
- if (projectConfig && projectDir) {
56
- const existingProfiles = await getAllHsProfiles(path.join(projectDir, projectConfig.srcDir));
57
- if (existingProfiles.length > 0) {
58
- throw new Error(lib.projectProfiles.exitIfUsingProfiles.errors.noProfileSpecified);
59
- }
60
- }
61
- }
62
54
  export async function loadAndValidateProfile(projectConfig, projectDir, profileName, silent = false) {
63
- if (!profileName) {
64
- await enforceProfileUsage(projectConfig, projectDir);
65
- return;
66
- }
67
55
  if (!silent) {
68
56
  logProfileHeader(profileName);
69
57
  }
@@ -77,7 +65,7 @@ export async function loadAndValidateProfile(projectConfig, projectDir, profileN
77
65
  throw new Error(lib.projectProfiles.loadProfile.errors.profileNotValid(profileName, validationResult.errors));
78
66
  }
79
67
  }
80
- return profile.accountId;
68
+ return profile;
81
69
  }
82
70
  function formatProfileValidationError(error, leadingIndentationLevel = 0) {
83
71
  // Trim leading whitespace and replace tabs with spaces to reducing indentations
@@ -97,7 +85,7 @@ export async function validateProjectForProfile({ projectConfig, projectDir, pro
97
85
  });
98
86
  }
99
87
  try {
100
- const accountId = await loadAndValidateProfile(projectConfig, projectDir, profileName, true);
88
+ const { accountId } = await loadAndValidateProfile(projectConfig, projectDir, profileName, true);
101
89
  targetAccountId = accountId || derivedAccountId;
102
90
  }
103
91
  catch (error) {
@@ -0,0 +1,4 @@
1
+ import { type Release } from '../../api/releases.js';
2
+ export declare function resolveBuildId(accountId: number, projectName: string, buildOption?: number, force?: boolean): Promise<number | null | undefined>;
3
+ export declare function validateBuildForRelease(accountId: number, projectName: string, buildId: number): Promise<boolean>;
4
+ export declare function executeRelease(accountId: number, projectName: string, buildId: number): Promise<Release>;
@@ -0,0 +1,90 @@
1
+ import chalk from 'chalk';
2
+ import { fetchProjectBuilds, getBuildStatus, } from '@hubspot/local-dev-lib/api/projects';
3
+ import { BUILD_STATUS } from '@hubspot/local-dev-lib/enums/build';
4
+ import { isSpecifiedError } from '@hubspot/local-dev-lib/errors/index';
5
+ import { meetsMinimumPlatformVersion } from '@hubspot/project-parsing-lib/projects';
6
+ import { PLATFORM_VERSIONS } from '@hubspot/project-parsing-lib/constants';
7
+ import { getLastSuccessfulBuild } from './builds.js';
8
+ import { logError, ApiErrorContext } from '../errorHandlers/index.js';
9
+ import { uiLogger } from '../ui/logger.js';
10
+ import { listPrompt } from '../prompts/promptUtils.js';
11
+ import { commands } from '../../lang/en.js';
12
+ import { createRelease } from '../../api/releases.js';
13
+ function buildChoiceName(build) {
14
+ const base = build.uploadMessage
15
+ ? `${build.buildId} — ${build.uploadMessage}`
16
+ : `${build.buildId} — ${commands.project.release.create.noUploadMessage}`;
17
+ return build.status !== BUILD_STATUS.SUCCESS
18
+ ? `[${chalk.yellow('DISABLED')}] ${base}`
19
+ : base;
20
+ }
21
+ export async function resolveBuildId(accountId, projectName, buildOption, force) {
22
+ if (buildOption) {
23
+ return buildOption;
24
+ }
25
+ if (force) {
26
+ const lastSuccessful = await getLastSuccessfulBuild(accountId, projectName);
27
+ return lastSuccessful ? lastSuccessful.buildId : null;
28
+ }
29
+ let results;
30
+ try {
31
+ ({
32
+ data: { results },
33
+ } = await fetchProjectBuilds(accountId, projectName));
34
+ }
35
+ catch (e) {
36
+ if (isSpecifiedError(e, { statusCode: 404 }) ||
37
+ isSpecifiedError(e, { statusCode: 400 })) {
38
+ return undefined;
39
+ }
40
+ throw e;
41
+ }
42
+ if (results.length === 0) {
43
+ return undefined;
44
+ }
45
+ const lastSuccessful = await getLastSuccessfulBuild(accountId, projectName);
46
+ if (!lastSuccessful) {
47
+ uiLogger.error(commands.project.release.create.errors.noSuccessfulBuilds(projectName));
48
+ return null;
49
+ }
50
+ return listPrompt(commands.project.release.create.buildIdPrompt, {
51
+ choices: results.map(b => ({
52
+ name: buildChoiceName(b),
53
+ value: b.buildId,
54
+ disabled: b.status !== BUILD_STATUS.SUCCESS
55
+ ? `– ${commands.project.release.create.buildStatus[b.status] ?? b.status}`
56
+ : undefined,
57
+ })),
58
+ });
59
+ }
60
+ export async function validateBuildForRelease(accountId, projectName, buildId) {
61
+ try {
62
+ const { data: build } = await getBuildStatus(accountId, projectName, buildId);
63
+ return meetsMinimumPlatformVersion(build.platformVersion, PLATFORM_VERSIONS.v2026_09_BETA);
64
+ }
65
+ catch (e) {
66
+ if (isSpecifiedError(e, { statusCode: 404 })) {
67
+ uiLogger.error(commands.project.release.create.errors.buildNotFound(buildId, projectName));
68
+ }
69
+ else {
70
+ logError(e, new ApiErrorContext({
71
+ accountId,
72
+ request: 'project release create',
73
+ }));
74
+ }
75
+ throw e;
76
+ }
77
+ }
78
+ export async function executeRelease(accountId, projectName, buildId) {
79
+ try {
80
+ const { data: release } = await createRelease(accountId, projectName, buildId);
81
+ return release;
82
+ }
83
+ catch (e) {
84
+ logError(e, new ApiErrorContext({
85
+ accountId,
86
+ request: 'project release create',
87
+ }));
88
+ throw e;
89
+ }
90
+ }
@@ -1 +1,2 @@
1
1
  export declare function logFeedbackMessage(buildId: number): void;
2
+ export declare function warnAboutSkippedHsMetaFiles(skippedHsMetaFiles: string[], force: boolean, isUpload?: boolean): Promise<boolean>;
@@ -2,6 +2,7 @@ import { uiLogger } from '../ui/logger.js';
2
2
  import { FEEDBACK_INTERVAL } from '../constants.js';
3
3
  import { uiLine } from '../ui/index.js';
4
4
  import { lib } from '../../lang/en.js';
5
+ import { confirmPrompt } from '../prompts/promptUtils.js';
5
6
  export function logFeedbackMessage(buildId) {
6
7
  if (buildId > 0 && buildId % FEEDBACK_INTERVAL === 0) {
7
8
  uiLine();
@@ -10,3 +11,16 @@ export function logFeedbackMessage(buildId) {
10
11
  uiLogger.log(lib.projects.logFeedbackMessage.feedbackMessage);
11
12
  }
12
13
  }
14
+ export async function warnAboutSkippedHsMetaFiles(skippedHsMetaFiles, force, isUpload = true) {
15
+ if (skippedHsMetaFiles.length === 0)
16
+ return true;
17
+ const message = isUpload
18
+ ? lib.projects.skippedHsMetaFiles.uploadWarning(skippedHsMetaFiles)
19
+ : lib.projects.skippedHsMetaFiles.warning(skippedHsMetaFiles);
20
+ uiLogger.warn(message);
21
+ if (force)
22
+ return true;
23
+ return confirmPrompt(lib.projects.skippedHsMetaFiles.prompt, {
24
+ defaultAnswer: false,
25
+ });
26
+ }
@@ -1,10 +1,20 @@
1
+ import { LoadedProjectConfig } from './config.js';
1
2
  export declare const REQUIRED_PACKAGES_AND_MIN_VERSIONS: {
2
3
  readonly eslint: "9.0.0";
3
- readonly '@typescript-eslint/eslint-plugin': "8.46.4";
4
- readonly '@typescript-eslint/parser': "8.46.4";
4
+ readonly '@eslint/js': "9.0.0";
5
5
  readonly 'typescript-eslint': "8.46.4";
6
+ readonly '@hubspot/eslint-config-ui-extensions': "1.0.0";
7
+ readonly 'eslint-config-prettier': "10.0.0";
8
+ readonly 'eslint-plugin-react': "7.0.0";
9
+ readonly 'eslint-plugin-react-hooks': "7.0.0";
10
+ readonly 'eslint-plugin-unused-imports': "4.0.0";
11
+ readonly prettier: "3.0.0";
6
12
  readonly jiti: "2.6.1";
7
13
  };
14
+ export declare const LINT_SCRIPTS: {
15
+ readonly lint: "eslint .";
16
+ readonly 'lint:fix': "eslint . --fix";
17
+ };
8
18
  export declare function isEslintInstalled(directory: string): boolean;
9
19
  export declare function areAllLintPackagesInstalled(directory: string): boolean;
10
20
  export declare function getMissingLintPackages(directory: string): {
@@ -13,7 +23,10 @@ export declare function getMissingLintPackages(directory: string): {
13
23
  export declare function hasEslintConfig(directory: string): boolean;
14
24
  export declare function hasDeprecatedEslintConfig(directory: string): boolean;
15
25
  export declare function getDeprecatedEslintConfigFiles(directory: string): string[];
16
- export declare function createEslintConfig(directory: string): string;
26
+ export declare function createEslintConfig(directory: string, platformVersion?: string | null): Promise<string>;
27
+ export declare function getUieLintablePackageJsonLocations(projectConfig: LoadedProjectConfig): Promise<string[]>;
28
+ export declare const HUBSPOT_UI_EXTENSIONS_RULE_PREFIX = "@hubspot/ui-extensions/";
29
+ export declare function isHubSpotEslintConfigActive(directory: string): Promise<boolean>;
17
30
  export declare function lintPackagesInDirectory(directory: string, projectDir?: string): Promise<{
18
31
  success: boolean;
19
32
  output: string;
@@ -31,3 +44,8 @@ export declare function displayLintResults(results: Array<{
31
44
  success: boolean;
32
45
  output: string;
33
46
  }>): void;
47
+ export declare function getMissingLintScripts(directory: string): string[];
48
+ export declare function addLintScriptsToPackageJson(directory: string): {
49
+ added: string[];
50
+ relativePath: string;
51
+ };
@@ -3,17 +3,28 @@ import path from 'path';
3
3
  import util from 'util';
4
4
  import semver from 'semver';
5
5
  import { exec as execAsync } from 'node:child_process';
6
+ import { fetchRepoFile } from '@hubspot/local-dev-lib/api/github';
6
7
  import { getProjectPackageJsonLocations, isPackageInstalled, } from '../dependencyManagement.js';
7
8
  import { commands } from '../../lang/en.js';
8
9
  import { uiLogger } from '../ui/logger.js';
9
- import { safeGetPackageJsonCached } from '../npm/packageJson.js';
10
+ import { clearPackageJsonCache, safeGetPackageJsonCached, } from '../npm/packageJson.js';
11
+ import { debugError } from '../errorHandlers/index.js';
12
+ import { isLegacyProject } from '@hubspot/project-parsing-lib/projects';
13
+ import { DEFAULT_PROJECT_TEMPLATE_BRANCH, HUBSPOT_PROJECT_COMPONENTS_GITHUB_PATH, } from '../constants.js';
14
+ import { CARDS_KEY, Components, PAGES_KEY, SETTINGS_KEY, } from '@hubspot/project-parsing-lib/constants';
10
15
  export const REQUIRED_PACKAGES_AND_MIN_VERSIONS = {
11
16
  eslint: '9.0.0',
12
- '@typescript-eslint/eslint-plugin': '8.46.4',
13
- '@typescript-eslint/parser': '8.46.4',
17
+ '@eslint/js': '9.0.0',
14
18
  'typescript-eslint': '8.46.4',
19
+ '@hubspot/eslint-config-ui-extensions': '1.0.0',
20
+ 'eslint-config-prettier': '10.0.0',
21
+ 'eslint-plugin-react': '7.0.0',
22
+ 'eslint-plugin-react-hooks': '7.0.0',
23
+ 'eslint-plugin-unused-imports': '4.0.0',
24
+ prettier: '3.0.0',
15
25
  jiti: '2.6.1',
16
26
  };
27
+ const UIE_ESLINT_CONFIG_PATH_IN_REPO = 'components/cards/src/app/cards/eslint.config.js';
17
28
  const ESLINT_CONFIG_FILES = [
18
29
  'eslint.config.mts',
19
30
  'eslint.config.ts',
@@ -30,28 +41,15 @@ const DEPRECATED_ESLINT_CONFIG_FILES = [
30
41
  '.eslintrc.json',
31
42
  '.eslintrc',
32
43
  ];
33
- const ESLINT_CONFIG_TEMPLATE = `import { defineConfig } from "eslint/config";
34
- import tsParser from "@typescript-eslint/parser";
35
-
36
- export default defineConfig([
37
- {
38
- files: ["**/*.{js,mjs,cjs,ts,mts,cts,jsx,tsx}"],
39
- languageOptions: {
40
- parser: tsParser,
41
- parserOptions: {
42
- ecmaVersion: "latest",
43
- sourceType: "module",
44
- ecmaFeatures: {
45
- jsx: true
46
- }
47
- }
48
- },
49
- rules: {
50
- "no-console": ["warn", { allow: ["warn", "error"] }]
51
- }
52
- },
53
- ]);
54
- `;
44
+ const UIE_COMPONENTS = [
45
+ Components[CARDS_KEY],
46
+ Components[SETTINGS_KEY],
47
+ Components[PAGES_KEY],
48
+ ];
49
+ export const LINT_SCRIPTS = {
50
+ lint: 'eslint .',
51
+ 'lint:fix': 'eslint . --fix',
52
+ };
55
53
  function getPackageVersionFromPackageJson(directory, packageName) {
56
54
  const packageJsonPath = path.join(directory, 'package.json');
57
55
  const packageJson = safeGetPackageJsonCached(packageJsonPath);
@@ -127,10 +125,43 @@ export function getDeprecatedEslintConfigFiles(directory) {
127
125
  return fs.existsSync(configPath);
128
126
  });
129
127
  }
130
- export function createEslintConfig(directory) {
131
- const configPath = path.join(directory, 'eslint.config.mts');
128
+ function repoFileDataToString(data) {
129
+ if (typeof data === 'string') {
130
+ return data;
131
+ }
132
+ if (Buffer.isBuffer(data)) {
133
+ return data.toString('utf-8');
134
+ }
135
+ return String(data);
136
+ }
137
+ export async function createEslintConfig(directory, platformVersion) {
138
+ const versionForRemote = platformVersion && !isLegacyProject(platformVersion)
139
+ ? platformVersion
140
+ : null;
141
+ if (versionForRemote === null) {
142
+ const message = commands.project.lint.createEslintConfigRequiresV2Platform(platformVersion);
143
+ uiLogger.error(message);
144
+ throw new Error(message);
145
+ }
146
+ let fetchedContent = null;
147
+ try {
148
+ const { data } = await fetchRepoFile(HUBSPOT_PROJECT_COMPONENTS_GITHUB_PATH, `${versionForRemote}/${UIE_ESLINT_CONFIG_PATH_IN_REPO}`, DEFAULT_PROJECT_TEMPLATE_BRANCH);
149
+ const content = repoFileDataToString(data);
150
+ if (content.trim().length > 0) {
151
+ fetchedContent = content;
152
+ }
153
+ }
154
+ catch (error) {
155
+ debugError(error);
156
+ }
157
+ if (fetchedContent === null) {
158
+ const message = commands.project.lint.failedToFetchRemoteEslintConfig(versionForRemote);
159
+ uiLogger.error(message);
160
+ throw new Error(message);
161
+ }
162
+ const configPath = path.join(directory, 'eslint.config.js');
132
163
  try {
133
- fs.writeFileSync(configPath, ESLINT_CONFIG_TEMPLATE, 'utf-8');
164
+ fs.writeFileSync(configPath, fetchedContent, 'utf-8');
134
165
  return path.relative(process.cwd(), configPath);
135
166
  }
136
167
  catch (error) {
@@ -138,6 +169,38 @@ export function createEslintConfig(directory) {
138
169
  throw error;
139
170
  }
140
171
  }
172
+ export async function getUieLintablePackageJsonLocations(projectConfig) {
173
+ if (!projectConfig.projectDir || !projectConfig.projectConfig?.srcDir) {
174
+ return [];
175
+ }
176
+ const srcDirAbsolute = path.resolve(projectConfig.projectDir, projectConfig.projectConfig.srcDir);
177
+ const uiePackageDirPrefixes = UIE_COMPONENTS.map(component => path.join(srcDirAbsolute, component.parentComponent
178
+ ? Components[component.parentComponent].dir
179
+ : '', component.dir));
180
+ const allLocations = await getProjectPackageJsonLocations(projectConfig.projectDir);
181
+ return allLocations.filter(location => {
182
+ const resolvedLocation = path.resolve(location);
183
+ return uiePackageDirPrefixes.some(prefix => resolvedLocation.startsWith(prefix));
184
+ });
185
+ }
186
+ export const HUBSPOT_UI_EXTENSIONS_RULE_PREFIX = '@hubspot/ui-extensions/';
187
+ function getEnvironmentWithoutNpmConfig() {
188
+ return Object.fromEntries(Object.entries(process.env).filter(([key]) => !key.toLowerCase().startsWith('npm_config_')));
189
+ }
190
+ export async function isHubSpotEslintConfigActive(directory) {
191
+ const exec = util.promisify(execAsync);
192
+ try {
193
+ const { stdout } = await exec('npx eslint --print-config ./Component.tsx', {
194
+ cwd: directory,
195
+ });
196
+ const config = JSON.parse(stdout);
197
+ const rules = config.rules ?? {};
198
+ return Object.keys(rules).some(rule => rule.startsWith(HUBSPOT_UI_EXTENSIONS_RULE_PREFIX));
199
+ }
200
+ catch {
201
+ return false;
202
+ }
203
+ }
141
204
  export async function lintPackagesInDirectory(directory, projectDir) {
142
205
  const displayPath = projectDir
143
206
  ? path.relative(projectDir, directory)
@@ -148,6 +211,7 @@ export async function lintPackagesInDirectory(directory, projectDir) {
148
211
  const { stdout, stderr } = await exec(lintCommand, {
149
212
  cwd: directory,
150
213
  maxBuffer: 10 * 1024 * 1024, // 10MB buffer for large outputs
214
+ env: getEnvironmentWithoutNpmConfig(),
151
215
  });
152
216
  let output = `\n${displayPath}:\n`;
153
217
  if (stdout && stdout.trim()) {
@@ -218,3 +282,43 @@ export function displayLintResults(results) {
218
282
  });
219
283
  }
220
284
  }
285
+ export function getMissingLintScripts(directory) {
286
+ const packageJsonPath = path.join(directory, 'package.json');
287
+ const packageJson = safeGetPackageJsonCached(packageJsonPath);
288
+ if (!packageJson) {
289
+ return [];
290
+ }
291
+ return Object.keys(LINT_SCRIPTS).filter(scriptName => !packageJson.scripts?.[scriptName]);
292
+ }
293
+ export function addLintScriptsToPackageJson(directory) {
294
+ const packageJsonPath = path.join(directory, 'package.json');
295
+ try {
296
+ const rawContent = fs.readFileSync(packageJsonPath, 'utf-8');
297
+ const packageJson = JSON.parse(rawContent);
298
+ if (!packageJson.scripts) {
299
+ packageJson.scripts = {};
300
+ }
301
+ const added = [];
302
+ for (const [scriptName, scriptValue] of Object.entries(LINT_SCRIPTS)) {
303
+ if (!packageJson.scripts[scriptName]) {
304
+ packageJson.scripts[scriptName] = scriptValue;
305
+ added.push(scriptName);
306
+ }
307
+ }
308
+ if (added.length > 0) {
309
+ fs.writeFileSync(packageJsonPath, JSON.stringify(packageJson, null, 2) + '\n', 'utf-8');
310
+ clearPackageJsonCache();
311
+ }
312
+ return {
313
+ added,
314
+ relativePath: path.relative(process.cwd(), packageJsonPath),
315
+ };
316
+ }
317
+ catch {
318
+ uiLogger.warn(commands.project.lint.failedToAddLintScripts(packageJsonPath));
319
+ return {
320
+ added: [],
321
+ relativePath: path.relative(process.cwd(), packageJsonPath),
322
+ };
323
+ }
324
+ }
@@ -1,10 +1,13 @@
1
1
  import { FileResult } from 'tmp';
2
+ import { type IntermediateRepresentation } from '@hubspot/project-parsing-lib/translate';
2
3
  import { ProjectConfig } from '../../types/Projects.js';
3
4
  type ProjectUploadCallbackFunction<T> = (accountId: number, projectConfig: ProjectConfig, tempFile: FileResult, buildId: number) => Promise<T>;
4
5
  type ProjectUploadResult<T> = {
5
6
  result?: T;
6
7
  uploadError?: unknown;
7
8
  projectNotFound?: boolean;
9
+ projectId?: number;
10
+ userDeclined?: boolean;
8
11
  };
9
12
  type HandleProjectUploadArg<T> = {
10
13
  accountId: number;
@@ -16,9 +19,12 @@ type HandleProjectUploadArg<T> = {
16
19
  isUploadCommand?: boolean;
17
20
  sendIR?: boolean;
18
21
  skipValidation?: boolean;
22
+ skipNpmAudit?: boolean;
23
+ skipAutoDeploy?: boolean;
19
24
  profile?: string;
25
+ force?: boolean;
20
26
  };
21
- export declare function handleProjectUpload<T>({ accountId, projectConfig, projectDir, callbackFunc, profile, uploadMessage, forceCreate, isUploadCommand, sendIR, skipValidation, }: HandleProjectUploadArg<T>): Promise<ProjectUploadResult<T>>;
27
+ export declare function handleProjectUpload<T>({ accountId, projectConfig, projectDir, callbackFunc, profile, uploadMessage, forceCreate, isUploadCommand, sendIR, skipValidation, skipNpmAudit, skipAutoDeploy, force, }: HandleProjectUploadArg<T>): Promise<ProjectUploadResult<T>>;
22
28
  export declare function validateSourceDirectory(srcDir: string, projectConfig: ProjectConfig, projectDir: string): Promise<void>;
23
29
  export declare function validateNoHSMetaMismatch(srcDir: string, projectConfig: ProjectConfig): Promise<void>;
24
30
  type HandleTranslateArg = {
@@ -29,5 +35,9 @@ type HandleTranslateArg = {
29
35
  profile?: string;
30
36
  includeTranslationErrorMessage?: boolean;
31
37
  };
32
- export declare function handleTranslate({ projectDir, projectConfig, accountId, skipValidation, profile, includeTranslationErrorMessage, }: HandleTranslateArg): Promise<unknown>;
38
+ export type HandleTranslateResult = {
39
+ intermediateRepresentation: IntermediateRepresentation;
40
+ skippedHsMetaFiles: string[];
41
+ };
42
+ export declare function handleTranslate({ projectDir, projectConfig, accountId, skipValidation, profile, includeTranslationErrorMessage, }: HandleTranslateArg): Promise<HandleTranslateResult>;
33
43
  export {};