@hubspot/cli 8.2.0 → 8.2.1-experimental.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (768) 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 +16 -10
  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 +24 -9
  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 +34 -38
  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 +19 -13
  84. package/commands/project/appInstallStatus.d.ts +5 -0
  85. package/commands/project/appInstallStatus.js +139 -0
  86. package/commands/project/create.js +37 -22
  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 +72 -50
  91. package/commands/project/dev/index.d.ts +3 -3
  92. package/commands/project/dev/index.js +40 -73
  93. package/commands/project/dev/unifiedFlow.js +81 -22
  94. package/commands/project/download.js +15 -12
  95. package/commands/project/info.d.ts +5 -0
  96. package/commands/project/info.js +73 -0
  97. package/commands/project/installApp.d.ts +8 -0
  98. package/commands/project/installApp.js +185 -0
  99. package/commands/project/installDeps.js +17 -11
  100. package/commands/project/lint.js +57 -19
  101. package/commands/project/list.d.ts +2 -2
  102. package/commands/project/list.js +15 -14
  103. package/commands/project/listBuilds.d.ts +3 -2
  104. package/commands/project/listBuilds.js +50 -19
  105. package/commands/project/logs.js +7 -10
  106. package/commands/project/migrate.js +30 -28
  107. package/commands/project/open.js +20 -13
  108. package/commands/project/profile/add.d.ts +2 -1
  109. package/commands/project/profile/add.js +42 -13
  110. package/commands/project/profile/delete.d.ts +1 -1
  111. package/commands/project/profile/delete.js +23 -15
  112. package/commands/project/release/create.d.ts +8 -0
  113. package/commands/project/release/create.js +156 -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 +15 -11
  121. package/commands/project/upload.d.ts +7 -1
  122. package/commands/project/upload.js +159 -35
  123. package/commands/project/validate.d.ts +1 -1
  124. package/commands/project/validate.js +23 -106
  125. package/commands/project/watch.js +27 -29
  126. package/commands/project.js +17 -4
  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 +573 -54
  141. package/lang/en.js +614 -79
  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 +23 -12
  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/cms/serverlessDevRuntime.d.ts +1 -0
  162. package/lib/cms/serverlessDevRuntime.js +72 -0
  163. package/lib/commonOpts.js +6 -2
  164. package/lib/configOptions.d.ts +10 -10
  165. package/lib/configOptions.js +10 -11
  166. package/lib/constants.d.ts +14 -3
  167. package/lib/constants.js +16 -3
  168. package/lib/dependencyManagement.js +10 -17
  169. package/lib/doctor/Diagnosis.js +5 -5
  170. package/lib/doctor/DiagnosticInfoBuilder.d.ts +2 -2
  171. package/lib/doctor/DiagnosticInfoBuilder.js +8 -8
  172. package/lib/doctor/Doctor.d.ts +1 -0
  173. package/lib/doctor/Doctor.js +40 -16
  174. package/lib/errorHandlers/index.js +4 -3
  175. package/lib/errorHandlers/suppressError.js +4 -0
  176. package/lib/errors/ProjectErrors.d.ts +0 -6
  177. package/lib/errors/ProjectErrors.js +0 -12
  178. package/lib/errors/ProjectValidationError.d.ts +2 -1
  179. package/lib/errors/ProjectValidationError.js +3 -1
  180. package/lib/errors/PromptExitError.d.ts +6 -0
  181. package/lib/errors/PromptExitError.js +11 -0
  182. package/lib/getStartedV2Actions.js +19 -22
  183. package/lib/hasFeature.js +1 -2
  184. package/lib/importData.js +3 -4
  185. package/lib/jsonOutput.d.ts +195 -0
  186. package/lib/jsonOutput.js +171 -0
  187. package/lib/link/accountTableUtils.d.ts +10 -0
  188. package/lib/link/accountTableUtils.js +39 -0
  189. package/lib/link/index.d.ts +18 -0
  190. package/lib/link/index.js +185 -0
  191. package/lib/link/linkUtils.d.ts +5 -0
  192. package/lib/link/linkUtils.js +49 -0
  193. package/lib/link/prompts.d.ts +7 -0
  194. package/lib/link/prompts.js +126 -0
  195. package/lib/link/renderLinkedAccountsTable.d.ts +2 -0
  196. package/lib/link/renderLinkedAccountsTable.js +14 -0
  197. package/lib/link/warnIfLinkedDirectory.d.ts +1 -0
  198. package/lib/link/warnIfLinkedDirectory.js +9 -0
  199. package/lib/links.js +6 -5
  200. package/lib/mcp/clients.d.ts +13 -0
  201. package/lib/mcp/clients.js +62 -0
  202. package/lib/mcp/promotion.d.ts +3 -0
  203. package/lib/mcp/promotion.js +109 -0
  204. package/lib/mcp/setup.d.ts +8 -2
  205. package/lib/mcp/setup.js +123 -38
  206. package/lib/middleware/autoUpdateMiddleware.js +6 -3
  207. package/lib/middleware/commandTargetingUtils.js +1 -0
  208. package/lib/npm/npmCli.d.ts +1 -0
  209. package/lib/npm/npmCli.js +13 -0
  210. package/lib/npm/packageJson.js +1 -1
  211. package/lib/process.d.ts +1 -1
  212. package/lib/process.js +10 -3
  213. package/lib/projects/ProjectLogsManager.js +7 -7
  214. package/lib/projects/builds.d.ts +2 -0
  215. package/lib/projects/builds.js +22 -0
  216. package/lib/projects/components.js +15 -4
  217. package/lib/projects/config.d.ts +6 -5
  218. package/lib/projects/config.js +7 -38
  219. package/lib/projects/create/index.js +2 -2
  220. package/lib/projects/create/legacy.js +2 -2
  221. package/lib/projects/create/v2.js +5 -5
  222. package/lib/projects/delete.d.ts +13 -0
  223. package/lib/projects/delete.js +193 -0
  224. package/lib/projects/deploy.d.ts +1 -1
  225. package/lib/projects/deploy.js +2 -2
  226. package/lib/projects/installApp.d.ts +58 -0
  227. package/lib/projects/installApp.js +283 -0
  228. package/lib/projects/localDev/AppDevModeInterface.d.ts +0 -3
  229. package/lib/projects/localDev/AppDevModeInterface.js +35 -53
  230. package/lib/projects/localDev/DevSessionManager.d.ts +8 -5
  231. package/lib/projects/localDev/DevSessionManager.js +35 -49
  232. package/lib/projects/localDev/LocalDevLogger.d.ts +4 -0
  233. package/lib/projects/localDev/LocalDevLogger.js +18 -0
  234. package/lib/projects/localDev/LocalDevProcess.d.ts +11 -1
  235. package/lib/projects/localDev/LocalDevProcess.js +104 -19
  236. package/lib/projects/localDev/LocalDevState.d.ts +9 -2
  237. package/lib/projects/localDev/LocalDevState.js +21 -1
  238. package/lib/projects/localDev/LocalDevWatcher.js +1 -1
  239. package/lib/projects/localDev/LocalDevWebsocketServer.d.ts +1 -0
  240. package/lib/projects/localDev/LocalDevWebsocketServer.js +24 -2
  241. package/lib/projects/localDev/UIExtensionsDevModeInterface.js +2 -0
  242. package/lib/projects/localDev/helpers/account.d.ts +1 -7
  243. package/lib/projects/localDev/helpers/account.js +12 -100
  244. package/lib/projects/localDev/helpers/process.d.ts +1 -1
  245. package/lib/projects/localDev/helpers/process.js +4 -10
  246. package/lib/projects/localDev/helpers/project.d.ts +8 -6
  247. package/lib/projects/localDev/helpers/project.js +80 -29
  248. package/lib/projects/localDev/localDevWebsocketServerUtils.d.ts +2 -1
  249. package/lib/projects/localDev/localDevWebsocketServerUtils.js +3 -0
  250. package/lib/projects/npmAuditOnUpload.d.ts +10 -0
  251. package/lib/projects/npmAuditOnUpload.js +73 -0
  252. package/lib/projects/pollProjectBuildAndDeploy.d.ts +5 -1
  253. package/lib/projects/pollProjectBuildAndDeploy.js +3 -2
  254. package/lib/projects/preview.d.ts +7 -0
  255. package/lib/projects/preview.js +48 -0
  256. package/lib/projects/projectInfo.d.ts +5 -0
  257. package/lib/projects/projectInfo.js +82 -0
  258. package/lib/projects/projectProfiles.d.ts +2 -3
  259. package/lib/projects/projectProfiles.js +5 -20
  260. package/lib/projects/release.d.ts +4 -0
  261. package/lib/projects/release.js +90 -0
  262. package/lib/projects/ui.d.ts +1 -0
  263. package/lib/projects/ui.js +14 -0
  264. package/lib/projects/uieLinting.d.ts +21 -3
  265. package/lib/projects/uieLinting.js +129 -28
  266. package/lib/projects/upload.d.ts +12 -2
  267. package/lib/projects/upload.js +59 -13
  268. package/lib/projects/urls.d.ts +0 -1
  269. package/lib/projects/urls.js +6 -13
  270. package/lib/projects/validate.d.ts +9 -0
  271. package/lib/projects/validate.js +96 -0
  272. package/lib/projects/validateLintConfigOnUpload.d.ts +9 -0
  273. package/lib/projects/validateLintConfigOnUpload.js +45 -0
  274. package/lib/projects/workspaces.d.ts +60 -0
  275. package/lib/projects/workspaces.js +411 -0
  276. package/lib/prompts/createApiSamplePrompt.js +4 -0
  277. package/lib/prompts/downloadProjectPrompt.js +11 -10
  278. package/lib/prompts/installAppPrompt.js +3 -2
  279. package/lib/prompts/personalAccessKeyPrompt.d.ts +2 -5
  280. package/lib/prompts/personalAccessKeyPrompt.js +10 -7
  281. package/lib/prompts/projectDevTargetAccountPrompt.d.ts +1 -0
  282. package/lib/prompts/projectDevTargetAccountPrompt.js +26 -18
  283. package/lib/prompts/projectProfilePrompt.d.ts +2 -0
  284. package/lib/prompts/projectProfilePrompt.js +46 -0
  285. package/lib/prompts/projectsLogsPrompt.js +3 -0
  286. package/lib/prompts/promptUtils.js +4 -2
  287. package/lib/prompts/selectAppPrompt.js +1 -0
  288. package/lib/prompts/selectHubDBTablePrompt.js +8 -4
  289. package/lib/prompts/selectPublicAppForMigrationPrompt.js +12 -6
  290. package/lib/prompts/setAsDefaultAccountPrompt.js +2 -1
  291. package/lib/sandboxes.d.ts +1 -9
  292. package/lib/sandboxes.js +0 -21
  293. package/lib/serverlessLogs.js +2 -2
  294. package/lib/theme/cmsDevServerProcess.d.ts +2 -0
  295. package/lib/theme/cmsDevServerProcess.js +8 -7
  296. package/lib/theme/migrate.d.ts +1 -1
  297. package/lib/theme/migrate.js +2 -9
  298. package/lib/ui/SpinniesManager.d.ts +1 -0
  299. package/lib/ui/SpinniesManager.js +22 -6
  300. package/lib/ui/accountTable.d.ts +8 -0
  301. package/lib/ui/accountTable.js +67 -0
  302. package/lib/ui/appLogs.d.ts +32 -0
  303. package/lib/ui/appLogs.js +175 -0
  304. package/lib/ui/spinniesUtils.d.ts +0 -1
  305. package/lib/ui/spinniesUtils.js +6 -16
  306. package/lib/usageTracking.d.ts +10 -20
  307. package/lib/usageTracking.js +77 -30
  308. package/lib/yargs/makeWrappedYargsHandler.d.ts +7 -0
  309. package/lib/yargs/makeWrappedYargsHandler.js +179 -0
  310. package/lib/yargs/makeYargsBuilder.d.ts +13 -0
  311. package/lib/yargs/makeYargsBuilder.js +33 -0
  312. package/lib/yargs/parseYargsOrExit.d.ts +4 -0
  313. package/lib/yargs/parseYargsOrExit.js +25 -0
  314. package/lib/yargs/strictEnforceBoolean.d.ts +1 -0
  315. package/lib/yargs/strictEnforceBoolean.js +13 -0
  316. package/lib/yargsUtils.d.ts +3 -16
  317. package/lib/yargsUtils.js +3 -48
  318. package/mcp-server/Tool.d.ts +20 -0
  319. package/mcp-server/Tool.js +79 -0
  320. package/mcp-server/server.js +47 -3
  321. package/mcp-server/tools/cms/HsCreateFunctionTool.d.ts +5 -3
  322. package/mcp-server/tools/cms/HsCreateFunctionTool.js +18 -23
  323. package/mcp-server/tools/cms/HsCreateModuleTool.d.ts +5 -3
  324. package/mcp-server/tools/cms/HsCreateModuleTool.js +21 -26
  325. package/mcp-server/tools/cms/HsCreateTemplateTool.d.ts +5 -3
  326. package/mcp-server/tools/cms/HsCreateTemplateTool.js +16 -16
  327. package/mcp-server/tools/cms/HsFunctionLogsTool.d.ts +5 -3
  328. package/mcp-server/tools/cms/HsFunctionLogsTool.js +16 -15
  329. package/mcp-server/tools/cms/HsListFunctionsTool.d.ts +5 -3
  330. package/mcp-server/tools/cms/HsListFunctionsTool.js +14 -13
  331. package/mcp-server/tools/cms/HsListTool.d.ts +5 -3
  332. package/mcp-server/tools/cms/HsListTool.js +14 -16
  333. package/mcp-server/tools/index.d.ts +3 -2
  334. package/mcp-server/tools/index.js +26 -22
  335. package/mcp-server/tools/project/AddFeatureToProjectTool.d.ts +8 -4
  336. package/mcp-server/tools/project/AddFeatureToProjectTool.js +16 -15
  337. package/mcp-server/tools/project/AuthAccountTool.d.ts +18 -0
  338. package/mcp-server/tools/project/AuthAccountTool.js +78 -0
  339. package/mcp-server/tools/project/CreateProjectTool.d.ts +8 -4
  340. package/mcp-server/tools/project/CreateProjectTool.js +21 -17
  341. package/mcp-server/tools/project/CreateTestAccountTool.d.ts +5 -3
  342. package/mcp-server/tools/project/CreateTestAccountTool.js +35 -24
  343. package/mcp-server/tools/project/DeployProjectTool.d.ts +5 -3
  344. package/mcp-server/tools/project/DeployProjectTool.js +14 -16
  345. package/mcp-server/tools/project/DocFetchTool.d.ts +4 -2
  346. package/mcp-server/tools/project/DocFetchTool.js +8 -6
  347. package/mcp-server/tools/project/DocsSearchTool.d.ts +9 -3
  348. package/mcp-server/tools/project/DocsSearchTool.js +39 -15
  349. package/mcp-server/tools/project/FindProjectsTool.d.ts +15 -0
  350. package/mcp-server/tools/project/FindProjectsTool.js +60 -0
  351. package/mcp-server/tools/project/GetApiUsagePatternsByAppIdTool.d.ts +6 -3
  352. package/mcp-server/tools/project/GetApiUsagePatternsByAppIdTool.js +16 -13
  353. package/mcp-server/tools/project/GetApplicationInfoTool.d.ts +6 -3
  354. package/mcp-server/tools/project/GetApplicationInfoTool.js +19 -14
  355. package/mcp-server/tools/project/GetBuildLogsTool.d.ts +4 -2
  356. package/mcp-server/tools/project/GetBuildLogsTool.js +19 -14
  357. package/mcp-server/tools/project/GetBuildStatusTool.d.ts +4 -2
  358. package/mcp-server/tools/project/GetBuildStatusTool.js +19 -14
  359. package/mcp-server/tools/project/GetConfigValuesTool.d.ts +6 -3
  360. package/mcp-server/tools/project/GetConfigValuesTool.js +20 -13
  361. package/mcp-server/tools/project/GuidedWalkthroughTool.d.ts +4 -2
  362. package/mcp-server/tools/project/GuidedWalkthroughTool.js +4 -6
  363. package/mcp-server/tools/project/UploadProjectTools.d.ts +5 -3
  364. package/mcp-server/tools/project/UploadProjectTools.js +21 -20
  365. package/mcp-server/tools/project/ValidateProjectTool.d.ts +5 -3
  366. package/mcp-server/tools/project/ValidateProjectTool.js +13 -10
  367. package/mcp-server/tools/project/constants.d.ts +3 -1
  368. package/mcp-server/tools/project/constants.js +3 -1
  369. package/mcp-server/types.d.ts +0 -7
  370. package/mcp-server/types.js +1 -13
  371. package/mcp-server/utils/command.d.ts +25 -2
  372. package/mcp-server/utils/command.js +68 -16
  373. package/mcp-server/utils/config.js +6 -0
  374. package/mcp-server/utils/logger.d.ts +13 -0
  375. package/mcp-server/utils/logger.js +59 -0
  376. package/mcp-server/utils/toolUsageTracking.js +28 -11
  377. package/package.json +25 -17
  378. package/types/AccountTargets.d.ts +37 -0
  379. package/types/AccountTargets.js +12 -0
  380. package/types/Link.d.ts +32 -0
  381. package/types/Link.js +5 -0
  382. package/types/LocalDev.d.ts +15 -2
  383. package/types/PackageJson.d.ts +1 -0
  384. package/types/ProjectComponents.d.ts +2 -1
  385. package/types/Projects.d.ts +25 -5
  386. package/types/Prompts.d.ts +1 -0
  387. package/types/Yargs.d.ts +23 -2
  388. package/ui/components/ActionSection.d.ts +1 -1
  389. package/ui/components/InputField.d.ts +1 -1
  390. package/ui/components/SelectInput.d.ts +1 -1
  391. package/ui/components/StatusIcon.d.ts +1 -1
  392. package/ui/components/Table.d.ts +5 -5
  393. package/ui/components/getStarted/GetStartedFlow.d.ts +1 -1
  394. package/ui/components/getStarted/screens/InstallationScreen.d.ts +1 -1
  395. package/ui/components/getStarted/screens/ProjectSetupScreen.d.ts +1 -1
  396. package/ui/components/getStarted/screens/UploadScreen.d.ts +1 -1
  397. package/api/__tests__/migrate.test.d.ts +0 -1
  398. package/api/__tests__/migrate.test.js +0 -199
  399. package/commands/__tests__/account.test.d.ts +0 -1
  400. package/commands/__tests__/account.test.js +0 -69
  401. package/commands/__tests__/auth.test.d.ts +0 -1
  402. package/commands/__tests__/auth.test.js +0 -43
  403. package/commands/__tests__/cms.test.d.ts +0 -1
  404. package/commands/__tests__/cms.test.js +0 -87
  405. package/commands/__tests__/config.test.d.ts +0 -1
  406. package/commands/__tests__/config.test.js +0 -44
  407. package/commands/__tests__/customObject.test.d.ts +0 -1
  408. package/commands/__tests__/customObject.test.js +0 -68
  409. package/commands/__tests__/doctor.test.d.ts +0 -1
  410. package/commands/__tests__/doctor.test.js +0 -132
  411. package/commands/__tests__/feedback.test.d.ts +0 -1
  412. package/commands/__tests__/feedback.test.js +0 -24
  413. package/commands/__tests__/filemanager.test.d.ts +0 -1
  414. package/commands/__tests__/filemanager.test.js +0 -45
  415. package/commands/__tests__/getStarted.test.d.ts +0 -1
  416. package/commands/__tests__/getStarted.test.js +0 -173
  417. package/commands/__tests__/hubdb.test.d.ts +0 -1
  418. package/commands/__tests__/hubdb.test.js +0 -50
  419. package/commands/__tests__/init.test.d.ts +0 -1
  420. package/commands/__tests__/init.test.js +0 -42
  421. package/commands/__tests__/mcp.test.d.ts +0 -1
  422. package/commands/__tests__/mcp.test.js +0 -46
  423. package/commands/__tests__/open.test.d.ts +0 -1
  424. package/commands/__tests__/open.test.js +0 -58
  425. package/commands/__tests__/project.test.d.ts +0 -1
  426. package/commands/__tests__/project.test.js +0 -125
  427. package/commands/__tests__/sandbox.test.d.ts +0 -1
  428. package/commands/__tests__/sandbox.test.js +0 -44
  429. package/commands/__tests__/secret.test.d.ts +0 -1
  430. package/commands/__tests__/secret.test.js +0 -49
  431. package/commands/__tests__/testAccount.test.d.ts +0 -1
  432. package/commands/__tests__/testAccount.test.js +0 -57
  433. package/commands/__tests__/upgrade.test.d.ts +0 -1
  434. package/commands/__tests__/upgrade.test.js +0 -309
  435. package/commands/account/__tests__/auth.test.d.ts +0 -1
  436. package/commands/account/__tests__/auth.test.js +0 -206
  437. package/commands/account/__tests__/clean.test.d.ts +0 -1
  438. package/commands/account/__tests__/clean.test.js +0 -28
  439. package/commands/account/__tests__/createOverride.test.d.ts +0 -1
  440. package/commands/account/__tests__/createOverride.test.js +0 -32
  441. package/commands/account/__tests__/info.test.d.ts +0 -1
  442. package/commands/account/__tests__/info.test.js +0 -28
  443. package/commands/account/__tests__/list.test.d.ts +0 -1
  444. package/commands/account/__tests__/list.test.js +0 -153
  445. package/commands/account/__tests__/remove.test.d.ts +0 -1
  446. package/commands/account/__tests__/remove.test.js +0 -36
  447. package/commands/account/__tests__/removeOverride.d.ts +0 -1
  448. package/commands/account/__tests__/removeOverride.js +0 -25
  449. package/commands/account/__tests__/rename.test.d.ts +0 -1
  450. package/commands/account/__tests__/rename.test.js +0 -82
  451. package/commands/account/__tests__/use.test.d.ts +0 -1
  452. package/commands/account/__tests__/use.test.js +0 -170
  453. package/commands/app/__tests__/migrate.test.d.ts +0 -1
  454. package/commands/app/__tests__/migrate.test.js +0 -111
  455. package/commands/app/secret/__tests__/add.test.d.ts +0 -1
  456. package/commands/app/secret/__tests__/add.test.js +0 -140
  457. package/commands/app/secret/__tests__/delete.test.d.ts +0 -1
  458. package/commands/app/secret/__tests__/delete.test.js +0 -28
  459. package/commands/app/secret/__tests__/list.test.d.ts +0 -1
  460. package/commands/app/secret/__tests__/list.test.js +0 -25
  461. package/commands/app/secret/__tests__/update.test.d.ts +0 -1
  462. package/commands/app/secret/__tests__/update.test.js +0 -28
  463. package/commands/cms/__tests__/delete.test.d.ts +0 -1
  464. package/commands/cms/__tests__/delete.test.js +0 -39
  465. package/commands/cms/__tests__/fetch.test.d.ts +0 -1
  466. package/commands/cms/__tests__/fetch.test.js +0 -156
  467. package/commands/cms/__tests__/function.test.d.ts +0 -1
  468. package/commands/cms/__tests__/function.test.js +0 -50
  469. package/commands/cms/__tests__/lint.test.d.ts +0 -1
  470. package/commands/cms/__tests__/lint.test.js +0 -33
  471. package/commands/cms/__tests__/list.test.d.ts +0 -1
  472. package/commands/cms/__tests__/list.test.js +0 -42
  473. package/commands/cms/__tests__/module.test.d.ts +0 -1
  474. package/commands/cms/__tests__/module.test.js +0 -45
  475. package/commands/cms/__tests__/mv.test.d.ts +0 -1
  476. package/commands/cms/__tests__/mv.test.js +0 -46
  477. package/commands/cms/__tests__/theme.test.d.ts +0 -1
  478. package/commands/cms/__tests__/theme.test.js +0 -54
  479. package/commands/cms/__tests__/upload.test.d.ts +0 -1
  480. package/commands/cms/__tests__/upload.test.js +0 -308
  481. package/commands/cms/__tests__/watch.test.d.ts +0 -1
  482. package/commands/cms/__tests__/watch.test.js +0 -204
  483. package/commands/cms/function/__tests__/logs.test.d.ts +0 -1
  484. package/commands/cms/function/__tests__/logs.test.js +0 -70
  485. package/commands/cms/theme/__tests__/generate-selectors.test.d.ts +0 -1
  486. package/commands/cms/theme/__tests__/generate-selectors.test.js +0 -28
  487. package/commands/cms/theme/__tests__/marketplace-validate.test.d.ts +0 -1
  488. package/commands/cms/theme/__tests__/marketplace-validate.test.js +0 -36
  489. package/commands/cms/theme/__tests__/preview.test.d.ts +0 -1
  490. package/commands/cms/theme/__tests__/preview.test.js +0 -54
  491. package/commands/customObject/__tests__/create.test.d.ts +0 -1
  492. package/commands/customObject/__tests__/create.test.js +0 -40
  493. package/commands/customObject/__tests__/createSchema.test.d.ts +0 -1
  494. package/commands/customObject/__tests__/createSchema.test.js +0 -28
  495. package/commands/customObject/__tests__/deleteSchema.test.d.ts +0 -1
  496. package/commands/customObject/__tests__/deleteSchema.test.js +0 -42
  497. package/commands/customObject/__tests__/fetch-all-schemas.test.d.ts +0 -1
  498. package/commands/customObject/__tests__/fetch-all-schemas.test.js +0 -41
  499. package/commands/customObject/__tests__/fetchSchema.test.d.ts +0 -1
  500. package/commands/customObject/__tests__/fetchSchema.test.js +0 -45
  501. package/commands/customObject/__tests__/listSchemas.test.d.ts +0 -1
  502. package/commands/customObject/__tests__/listSchemas.test.js +0 -29
  503. package/commands/customObject/__tests__/updateSchema.test.d.ts +0 -1
  504. package/commands/customObject/__tests__/updateSchema.test.js +0 -40
  505. package/commands/filemanager/__tests__/fetch.test.d.ts +0 -1
  506. package/commands/filemanager/__tests__/fetch.test.js +0 -32
  507. package/commands/filemanager/__tests__/upload.test.d.ts +0 -1
  508. package/commands/filemanager/__tests__/upload.test.js +0 -191
  509. package/commands/hubdb/__tests__/clear.test.d.ts +0 -1
  510. package/commands/hubdb/__tests__/clear.test.js +0 -28
  511. package/commands/hubdb/__tests__/create.test.d.ts +0 -1
  512. package/commands/hubdb/__tests__/create.test.js +0 -28
  513. package/commands/hubdb/__tests__/delete.test.d.ts +0 -1
  514. package/commands/hubdb/__tests__/delete.test.js +0 -28
  515. package/commands/hubdb/__tests__/fetch.test.d.ts +0 -1
  516. package/commands/hubdb/__tests__/fetch.test.js +0 -28
  517. package/commands/hubdb/__tests__/list.test.d.ts +0 -1
  518. package/commands/hubdb/__tests__/list.test.js +0 -88
  519. package/commands/mcp/__tests__/setup.test.d.ts +0 -1
  520. package/commands/mcp/__tests__/setup.test.js +0 -26
  521. package/commands/mcp/__tests__/start.test.d.ts +0 -1
  522. package/commands/mcp/__tests__/start.test.js +0 -144
  523. package/commands/project/__tests__/add.test.d.ts +0 -1
  524. package/commands/project/__tests__/add.test.js +0 -107
  525. package/commands/project/__tests__/create.test.d.ts +0 -1
  526. package/commands/project/__tests__/create.test.js +0 -97
  527. package/commands/project/__tests__/deploy.test.d.ts +0 -1
  528. package/commands/project/__tests__/deploy.test.js +0 -307
  529. package/commands/project/__tests__/dev.test.d.ts +0 -1
  530. package/commands/project/__tests__/dev.test.js +0 -273
  531. package/commands/project/__tests__/devUnifiedFlow.test.d.ts +0 -1
  532. package/commands/project/__tests__/devUnifiedFlow.test.js +0 -434
  533. package/commands/project/__tests__/download.test.d.ts +0 -1
  534. package/commands/project/__tests__/download.test.js +0 -39
  535. package/commands/project/__tests__/installDeps.test.d.ts +0 -1
  536. package/commands/project/__tests__/installDeps.test.js +0 -140
  537. package/commands/project/__tests__/lint.test.d.ts +0 -1
  538. package/commands/project/__tests__/lint.test.js +0 -704
  539. package/commands/project/__tests__/list.test.d.ts +0 -1
  540. package/commands/project/__tests__/list.test.js +0 -31
  541. package/commands/project/__tests__/listBuilds.test.d.ts +0 -1
  542. package/commands/project/__tests__/listBuilds.test.js +0 -38
  543. package/commands/project/__tests__/logs.test.d.ts +0 -1
  544. package/commands/project/__tests__/logs.test.js +0 -202
  545. package/commands/project/__tests__/migrate.test.d.ts +0 -1
  546. package/commands/project/__tests__/migrate.test.js +0 -106
  547. package/commands/project/__tests__/open.test.d.ts +0 -1
  548. package/commands/project/__tests__/open.test.js +0 -39
  549. package/commands/project/__tests__/profile.test.d.ts +0 -1
  550. package/commands/project/__tests__/profile.test.js +0 -42
  551. package/commands/project/__tests__/updateDeps.test.d.ts +0 -1
  552. package/commands/project/__tests__/updateDeps.test.js +0 -140
  553. package/commands/project/__tests__/upload.test.d.ts +0 -1
  554. package/commands/project/__tests__/upload.test.js +0 -234
  555. package/commands/project/__tests__/validate.test.d.ts +0 -1
  556. package/commands/project/__tests__/validate.test.js +0 -381
  557. package/commands/project/__tests__/watch.test.d.ts +0 -1
  558. package/commands/project/__tests__/watch.test.js +0 -35
  559. package/commands/project/dev/deprecatedFlow.d.ts +0 -11
  560. package/commands/project/dev/deprecatedFlow.js +0 -135
  561. package/commands/sandbox/__tests__/create.test.d.ts +0 -1
  562. package/commands/sandbox/__tests__/create.test.js +0 -245
  563. package/commands/sandbox/__tests__/delete.test.d.ts +0 -1
  564. package/commands/sandbox/__tests__/delete.test.js +0 -31
  565. package/commands/secret/__tests__/addSecret.test.d.ts +0 -1
  566. package/commands/secret/__tests__/addSecret.test.js +0 -162
  567. package/commands/secret/__tests__/deleteSecret.test.d.ts +0 -1
  568. package/commands/secret/__tests__/deleteSecret.test.js +0 -41
  569. package/commands/secret/__tests__/listSecret.test.d.ts +0 -1
  570. package/commands/secret/__tests__/listSecret.test.js +0 -29
  571. package/commands/secret/__tests__/updateSecret.test.d.ts +0 -1
  572. package/commands/secret/__tests__/updateSecret.test.js +0 -29
  573. package/commands/testAccount/__tests__/create.test.d.ts +0 -1
  574. package/commands/testAccount/__tests__/create.test.js +0 -106
  575. package/commands/testAccount/__tests__/createConfig.test.d.ts +0 -1
  576. package/commands/testAccount/__tests__/createConfig.test.js +0 -32
  577. package/commands/testAccount/__tests__/delete.test.d.ts +0 -1
  578. package/commands/testAccount/__tests__/delete.test.js +0 -29
  579. package/commands/testAccount/__tests__/importData.test.d.ts +0 -1
  580. package/commands/testAccount/__tests__/importData.test.js +0 -92
  581. package/lib/__tests__/CLIWebSocketServer.test.d.ts +0 -1
  582. package/lib/__tests__/CLIWebSocketServer.test.js +0 -252
  583. package/lib/__tests__/accountAuth.test.d.ts +0 -1
  584. package/lib/__tests__/accountAuth.test.js +0 -258
  585. package/lib/__tests__/accountTypes.test.d.ts +0 -1
  586. package/lib/__tests__/accountTypes.test.js +0 -98
  587. package/lib/__tests__/buildAccount.test.d.ts +0 -1
  588. package/lib/__tests__/buildAccount.test.js +0 -262
  589. package/lib/__tests__/cliUpgradeUtils.test.d.ts +0 -1
  590. package/lib/__tests__/cliUpgradeUtils.test.js +0 -131
  591. package/lib/__tests__/commandSuggestion.test.d.ts +0 -1
  592. package/lib/__tests__/commandSuggestion.test.js +0 -121
  593. package/lib/__tests__/commonOpts.test.d.ts +0 -1
  594. package/lib/__tests__/commonOpts.test.js +0 -80
  595. package/lib/__tests__/dependencyManagement.test.d.ts +0 -1
  596. package/lib/__tests__/dependencyManagement.test.js +0 -1067
  597. package/lib/__tests__/developerTestAccounts.test.d.ts +0 -1
  598. package/lib/__tests__/developerTestAccounts.test.js +0 -156
  599. package/lib/__tests__/hasFeature.test.d.ts +0 -1
  600. package/lib/__tests__/hasFeature.test.js +0 -167
  601. package/lib/__tests__/http.test.d.ts +0 -1
  602. package/lib/__tests__/http.test.js +0 -40
  603. package/lib/__tests__/importData.test.d.ts +0 -1
  604. package/lib/__tests__/importData.test.js +0 -98
  605. package/lib/__tests__/npmCli.test.d.ts +0 -1
  606. package/lib/__tests__/npmCli.test.js +0 -84
  607. package/lib/__tests__/oauth.test.d.ts +0 -1
  608. package/lib/__tests__/oauth.test.js +0 -109
  609. package/lib/__tests__/parsing.test.d.ts +0 -1
  610. package/lib/__tests__/parsing.test.js +0 -34
  611. package/lib/__tests__/polling.test.d.ts +0 -1
  612. package/lib/__tests__/polling.test.js +0 -76
  613. package/lib/__tests__/process.test.d.ts +0 -1
  614. package/lib/__tests__/process.test.js +0 -89
  615. package/lib/__tests__/sandboxSync.test.d.ts +0 -1
  616. package/lib/__tests__/sandboxSync.test.js +0 -147
  617. package/lib/__tests__/sandboxes.test.d.ts +0 -1
  618. package/lib/__tests__/sandboxes.test.js +0 -156
  619. package/lib/__tests__/serverlessLogs.test.d.ts +0 -1
  620. package/lib/__tests__/serverlessLogs.test.js +0 -163
  621. package/lib/__tests__/usageTracking.test.d.ts +0 -1
  622. package/lib/__tests__/usageTracking.test.js +0 -197
  623. package/lib/__tests__/validation.test.d.ts +0 -1
  624. package/lib/__tests__/validation.test.js +0 -143
  625. package/lib/__tests__/yargsUtils.test.d.ts +0 -1
  626. package/lib/__tests__/yargsUtils.test.js +0 -124
  627. package/lib/app/__tests__/migrate.test.d.ts +0 -1
  628. package/lib/app/__tests__/migrate.test.js +0 -638
  629. package/lib/doctor/__tests__/Diagnosis.test.d.ts +0 -1
  630. package/lib/doctor/__tests__/Diagnosis.test.js +0 -84
  631. package/lib/doctor/__tests__/DiagnosticInfoBuilder.test.d.ts +0 -1
  632. package/lib/doctor/__tests__/DiagnosticInfoBuilder.test.js +0 -177
  633. package/lib/doctor/__tests__/Doctor.test.d.ts +0 -1
  634. package/lib/doctor/__tests__/Doctor.test.js +0 -560
  635. package/lib/errorHandlers/__tests__/index.test.d.ts +0 -1
  636. package/lib/errorHandlers/__tests__/index.test.js +0 -278
  637. package/lib/mcp/__tests__/setup.test.d.ts +0 -1
  638. package/lib/mcp/__tests__/setup.test.js +0 -523
  639. package/lib/middleware/__tests__/commandTargetingUtils.test.d.ts +0 -1
  640. package/lib/middleware/__tests__/commandTargetingUtils.test.js +0 -99
  641. package/lib/middleware/__tests__/configMiddleware.test.d.ts +0 -1
  642. package/lib/middleware/__tests__/configMiddleware.test.js +0 -118
  643. package/lib/middleware/__tests__/gitMiddleware.test.d.ts +0 -1
  644. package/lib/middleware/__tests__/gitMiddleware.test.js +0 -43
  645. package/lib/middleware/__tests__/requestMiddleware.test.d.ts +0 -1
  646. package/lib/middleware/__tests__/requestMiddleware.test.js +0 -15
  647. package/lib/middleware/__tests__/usageTrackingMiddleware.test.d.ts +0 -1
  648. package/lib/middleware/__tests__/usageTrackingMiddleware.test.js +0 -44
  649. package/lib/middleware/__tests__/yargsChecksMiddleware.test.d.ts +0 -1
  650. package/lib/middleware/__tests__/yargsChecksMiddleware.test.js +0 -39
  651. package/lib/projects/__tests__/AppDevModeInterface.test.d.ts +0 -1
  652. package/lib/projects/__tests__/AppDevModeInterface.test.js +0 -541
  653. package/lib/projects/__tests__/DevServerManager.test.d.ts +0 -1
  654. package/lib/projects/__tests__/DevServerManager.test.js +0 -185
  655. package/lib/projects/__tests__/DevSessionManager.test.d.ts +0 -1
  656. package/lib/projects/__tests__/DevSessionManager.test.js +0 -250
  657. package/lib/projects/__tests__/LocalDevProcess.test.d.ts +0 -1
  658. package/lib/projects/__tests__/LocalDevProcess.test.js +0 -481
  659. package/lib/projects/__tests__/LocalDevWebsocketServer.test.d.ts +0 -1
  660. package/lib/projects/__tests__/LocalDevWebsocketServer.test.js +0 -231
  661. package/lib/projects/__tests__/ProjectLogsManager.test.d.ts +0 -1
  662. package/lib/projects/__tests__/ProjectLogsManager.test.js +0 -302
  663. package/lib/projects/__tests__/UIExtensionsDevModeInterface.test.d.ts +0 -1
  664. package/lib/projects/__tests__/UIExtensionsDevModeInterface.test.js +0 -160
  665. package/lib/projects/__tests__/components.test.d.ts +0 -1
  666. package/lib/projects/__tests__/components.test.js +0 -426
  667. package/lib/projects/__tests__/deploy.test.d.ts +0 -1
  668. package/lib/projects/__tests__/deploy.test.js +0 -231
  669. package/lib/projects/__tests__/localDevProjectHelpers.test.d.ts +0 -1
  670. package/lib/projects/__tests__/localDevProjectHelpers.test.js +0 -120
  671. package/lib/projects/__tests__/platformVersion.test.d.ts +0 -1
  672. package/lib/projects/__tests__/platformVersion.test.js +0 -63
  673. package/lib/projects/__tests__/pollProjectBuildAndDeploy.test.d.ts +0 -1
  674. package/lib/projects/__tests__/pollProjectBuildAndDeploy.test.js +0 -328
  675. package/lib/projects/__tests__/projectProfiles.test.d.ts +0 -1
  676. package/lib/projects/__tests__/projectProfiles.test.js +0 -441
  677. package/lib/projects/__tests__/projects.test.d.ts +0 -1
  678. package/lib/projects/__tests__/projects.test.js +0 -58
  679. package/lib/projects/__tests__/structure.test.d.ts +0 -1
  680. package/lib/projects/__tests__/structure.test.js +0 -210
  681. package/lib/projects/__tests__/uieLinting.test.d.ts +0 -1
  682. package/lib/projects/__tests__/uieLinting.test.js +0 -631
  683. package/lib/projects/__tests__/upload.test.d.ts +0 -1
  684. package/lib/projects/__tests__/upload.test.js +0 -183
  685. package/lib/projects/add/__tests__/legacyAddComponent.test.d.ts +0 -1
  686. package/lib/projects/add/__tests__/legacyAddComponent.test.js +0 -245
  687. package/lib/projects/add/__tests__/v2AddComponent.test.d.ts +0 -1
  688. package/lib/projects/add/__tests__/v2AddComponent.test.js +0 -343
  689. package/lib/projects/create/__tests__/legacy.test.d.ts +0 -1
  690. package/lib/projects/create/__tests__/legacy.test.js +0 -72
  691. package/lib/projects/create/__tests__/v2.test.d.ts +0 -1
  692. package/lib/projects/create/__tests__/v2.test.js +0 -257
  693. package/lib/projects/localDev/DevServerManager_DEPRECATED.d.ts +0 -40
  694. package/lib/projects/localDev/DevServerManager_DEPRECATED.js +0 -128
  695. package/lib/projects/localDev/LocalDevManager_DEPRECATED.d.ts +0 -59
  696. package/lib/projects/localDev/LocalDevManager_DEPRECATED.js +0 -383
  697. package/lib/projects/platformVersion.d.ts +0 -9
  698. package/lib/projects/platformVersion.js +0 -39
  699. package/lib/prompts/__tests__/createDeveloperTestAccountConfigPrompt.test.d.ts +0 -1
  700. package/lib/prompts/__tests__/createDeveloperTestAccountConfigPrompt.test.js +0 -157
  701. package/lib/prompts/__tests__/createFunctionPrompt.test.d.ts +0 -1
  702. package/lib/prompts/__tests__/createFunctionPrompt.test.js +0 -129
  703. package/lib/prompts/__tests__/createModulePrompt.test.d.ts +0 -1
  704. package/lib/prompts/__tests__/createModulePrompt.test.js +0 -187
  705. package/lib/prompts/__tests__/createTemplatePrompt.test.d.ts +0 -1
  706. package/lib/prompts/__tests__/createTemplatePrompt.test.js +0 -102
  707. package/lib/prompts/__tests__/downloadProjectPrompt.test.d.ts +0 -1
  708. package/lib/prompts/__tests__/downloadProjectPrompt.test.js +0 -31
  709. package/lib/prompts/__tests__/projectAddPrompt.test.d.ts +0 -1
  710. package/lib/prompts/__tests__/projectAddPrompt.test.js +0 -143
  711. package/lib/prompts/__tests__/projectsLogsPrompt.test.d.ts +0 -1
  712. package/lib/prompts/__tests__/projectsLogsPrompt.test.js +0 -37
  713. package/lib/prompts/__tests__/selectProjectTemplatePrompt.test.d.ts +0 -1
  714. package/lib/prompts/__tests__/selectProjectTemplatePrompt.test.js +0 -160
  715. package/lib/sandboxSync.d.ts +0 -4
  716. package/lib/sandboxSync.js +0 -102
  717. package/lib/theme/__tests__/migrate.test.d.ts +0 -1
  718. package/lib/theme/__tests__/migrate.test.js +0 -256
  719. package/lib/ui/__tests__/SpinniesManager.test.d.ts +0 -1
  720. package/lib/ui/__tests__/SpinniesManager.test.js +0 -488
  721. package/lib/ui/__tests__/removeAnsiCodes.test.d.ts +0 -1
  722. package/lib/ui/__tests__/removeAnsiCodes.test.js +0 -84
  723. package/mcp-server/tools/cms/__tests__/HsCreateFunctionTool.test.d.ts +0 -1
  724. package/mcp-server/tools/cms/__tests__/HsCreateFunctionTool.test.js +0 -254
  725. package/mcp-server/tools/cms/__tests__/HsCreateModuleTool.test.d.ts +0 -1
  726. package/mcp-server/tools/cms/__tests__/HsCreateModuleTool.test.js +0 -227
  727. package/mcp-server/tools/cms/__tests__/HsCreateTemplateTool.test.d.ts +0 -1
  728. package/mcp-server/tools/cms/__tests__/HsCreateTemplateTool.test.js +0 -208
  729. package/mcp-server/tools/cms/__tests__/HsFunctionLogsTool.test.d.ts +0 -1
  730. package/mcp-server/tools/cms/__tests__/HsFunctionLogsTool.test.js +0 -186
  731. package/mcp-server/tools/cms/__tests__/HsListFunctionsTool.test.d.ts +0 -1
  732. package/mcp-server/tools/cms/__tests__/HsListFunctionsTool.test.js +0 -124
  733. package/mcp-server/tools/cms/__tests__/HsListTool.test.d.ts +0 -1
  734. package/mcp-server/tools/cms/__tests__/HsListTool.test.js +0 -124
  735. package/mcp-server/tools/project/__tests__/AddFeatureToProjectTool.test.d.ts +0 -1
  736. package/mcp-server/tools/project/__tests__/AddFeatureToProjectTool.test.js +0 -157
  737. package/mcp-server/tools/project/__tests__/CreateProjectTool.test.d.ts +0 -1
  738. package/mcp-server/tools/project/__tests__/CreateProjectTool.test.js +0 -132
  739. package/mcp-server/tools/project/__tests__/CreateTestAccountTool.test.d.ts +0 -1
  740. package/mcp-server/tools/project/__tests__/CreateTestAccountTool.test.js +0 -461
  741. package/mcp-server/tools/project/__tests__/DeployProjectTool.test.d.ts +0 -1
  742. package/mcp-server/tools/project/__tests__/DeployProjectTool.test.js +0 -125
  743. package/mcp-server/tools/project/__tests__/DocFetchTool.test.d.ts +0 -1
  744. package/mcp-server/tools/project/__tests__/DocFetchTool.test.js +0 -125
  745. package/mcp-server/tools/project/__tests__/DocsSearchTool.test.d.ts +0 -1
  746. package/mcp-server/tools/project/__tests__/DocsSearchTool.test.js +0 -210
  747. package/mcp-server/tools/project/__tests__/GetApiUsagePatternsByAppIdTool.test.d.ts +0 -1
  748. package/mcp-server/tools/project/__tests__/GetApiUsagePatternsByAppIdTool.test.js +0 -146
  749. package/mcp-server/tools/project/__tests__/GetApplicationInfoTool.test.d.ts +0 -1
  750. package/mcp-server/tools/project/__tests__/GetApplicationInfoTool.test.js +0 -124
  751. package/mcp-server/tools/project/__tests__/GetBuildLogsTool.test.d.ts +0 -1
  752. package/mcp-server/tools/project/__tests__/GetBuildLogsTool.test.js +0 -307
  753. package/mcp-server/tools/project/__tests__/GetBuildStatusTool.test.d.ts +0 -1
  754. package/mcp-server/tools/project/__tests__/GetBuildStatusTool.test.js +0 -242
  755. package/mcp-server/tools/project/__tests__/GetConfigValuesTool.test.d.ts +0 -1
  756. package/mcp-server/tools/project/__tests__/GetConfigValuesTool.test.js +0 -209
  757. package/mcp-server/tools/project/__tests__/GuidedWalkthroughTool.test.d.ts +0 -1
  758. package/mcp-server/tools/project/__tests__/GuidedWalkthroughTool.test.js +0 -158
  759. package/mcp-server/tools/project/__tests__/UploadProjectTools.test.d.ts +0 -1
  760. package/mcp-server/tools/project/__tests__/UploadProjectTools.test.js +0 -187
  761. package/mcp-server/tools/project/__tests__/ValidateProjectTool.test.d.ts +0 -1
  762. package/mcp-server/tools/project/__tests__/ValidateProjectTool.test.js +0 -118
  763. package/mcp-server/utils/__tests__/command.test.d.ts +0 -1
  764. package/mcp-server/utils/__tests__/command.test.js +0 -275
  765. package/mcp-server/utils/__tests__/content.test.d.ts +0 -1
  766. package/mcp-server/utils/__tests__/content.test.js +0 -164
  767. package/mcp-server/utils/__tests__/feedbackTracking.test.d.ts +0 -1
  768. package/mcp-server/utils/__tests__/feedbackTracking.test.js +0 -69
@@ -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;
132
147
  try {
133
- fs.writeFileSync(configPath, ESLINT_CONFIG_TEMPLATE, 'utf-8');
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');
163
+ try {
164
+ fs.writeFileSync(configPath, fetchedContent, 'utf-8');
134
165
  return path.relative(process.cwd(), configPath);
135
166
  }
136
167
  catch (error) {
@@ -138,6 +169,35 @@ export function createEslintConfig(directory) {
138
169
  throw error;
139
170
  }
140
171
  }
172
+ export async function getUieLintablePackageJsonLocations(projectConfig) {
173
+ const srcDirAbsolute = path.resolve(projectConfig.projectDir, projectConfig.projectConfig.srcDir);
174
+ const uiePackageDirPrefixes = UIE_COMPONENTS.map(component => path.join(srcDirAbsolute, component.parentComponent
175
+ ? Components[component.parentComponent].dir
176
+ : '', component.dir));
177
+ const allLocations = await getProjectPackageJsonLocations(projectConfig.projectDir);
178
+ return allLocations.filter(location => {
179
+ const resolvedLocation = path.resolve(location);
180
+ return uiePackageDirPrefixes.some(prefix => resolvedLocation.startsWith(prefix));
181
+ });
182
+ }
183
+ export const HUBSPOT_UI_EXTENSIONS_RULE_PREFIX = '@hubspot/ui-extensions/';
184
+ function getEnvironmentWithoutNpmConfig() {
185
+ return Object.fromEntries(Object.entries(process.env).filter(([key]) => !key.toLowerCase().startsWith('npm_config_')));
186
+ }
187
+ export async function isHubSpotEslintConfigActive(directory) {
188
+ const exec = util.promisify(execAsync);
189
+ try {
190
+ const { stdout } = await exec('npx eslint --print-config ./Component.tsx', {
191
+ cwd: directory,
192
+ });
193
+ const config = JSON.parse(stdout);
194
+ const rules = config.rules ?? {};
195
+ return Object.keys(rules).some(rule => rule.startsWith(HUBSPOT_UI_EXTENSIONS_RULE_PREFIX));
196
+ }
197
+ catch {
198
+ return false;
199
+ }
200
+ }
141
201
  export async function lintPackagesInDirectory(directory, projectDir) {
142
202
  const displayPath = projectDir
143
203
  ? path.relative(projectDir, directory)
@@ -148,6 +208,7 @@ export async function lintPackagesInDirectory(directory, projectDir) {
148
208
  const { stdout, stderr } = await exec(lintCommand, {
149
209
  cwd: directory,
150
210
  maxBuffer: 10 * 1024 * 1024, // 10MB buffer for large outputs
211
+ env: getEnvironmentWithoutNpmConfig(),
151
212
  });
152
213
  let output = `\n${displayPath}:\n`;
153
214
  if (stdout && stdout.trim()) {
@@ -218,3 +279,43 @@ export function displayLintResults(results) {
218
279
  });
219
280
  }
220
281
  }
282
+ export function getMissingLintScripts(directory) {
283
+ const packageJsonPath = path.join(directory, 'package.json');
284
+ const packageJson = safeGetPackageJsonCached(packageJsonPath);
285
+ if (!packageJson) {
286
+ return [];
287
+ }
288
+ return Object.keys(LINT_SCRIPTS).filter(scriptName => !packageJson.scripts?.[scriptName]);
289
+ }
290
+ export function addLintScriptsToPackageJson(directory) {
291
+ const packageJsonPath = path.join(directory, 'package.json');
292
+ try {
293
+ const rawContent = fs.readFileSync(packageJsonPath, 'utf-8');
294
+ const packageJson = JSON.parse(rawContent);
295
+ if (!packageJson.scripts) {
296
+ packageJson.scripts = {};
297
+ }
298
+ const added = [];
299
+ for (const [scriptName, scriptValue] of Object.entries(LINT_SCRIPTS)) {
300
+ if (!packageJson.scripts[scriptName]) {
301
+ packageJson.scripts[scriptName] = scriptValue;
302
+ added.push(scriptName);
303
+ }
304
+ }
305
+ if (added.length > 0) {
306
+ fs.writeFileSync(packageJsonPath, JSON.stringify(packageJson, null, 2) + '\n', 'utf-8');
307
+ clearPackageJsonCache();
308
+ }
309
+ return {
310
+ added,
311
+ relativePath: path.relative(process.cwd(), packageJsonPath),
312
+ };
313
+ }
314
+ catch {
315
+ uiLogger.warn(commands.project.lint.failedToAddLintScripts(packageJsonPath));
316
+ return {
317
+ added: [],
318
+ relativePath: path.relative(process.cwd(), packageJsonPath),
319
+ };
320
+ }
321
+ }
@@ -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 {};
@@ -6,17 +6,22 @@ import { uploadProject } from '@hubspot/local-dev-lib/api/projects';
6
6
  import { shouldIgnoreFile } from '@hubspot/local-dev-lib/ignoreRules';
7
7
  import { isTranslationError, translate, } from '@hubspot/project-parsing-lib/translate';
8
8
  import { projectContainsHsMetaFiles } from '@hubspot/project-parsing-lib/projects';
9
+ import { findAndParsePackageJsonFiles, collectWorkspaceDirectories, collectFileDependencies, } from '@hubspot/project-parsing-lib/workspaces';
9
10
  import SpinniesManager from '../ui/SpinniesManager.js';
10
11
  import { uiAccountDescription } from '../ui/index.js';
12
+ import { warnAboutSkippedHsMetaFiles } from './ui.js';
11
13
  import util from 'node:util';
12
14
  import { lib } from '../../lang/en.js';
13
15
  import { ensureProjectExists } from './ensureProjectExists.js';
14
16
  import { uiLogger } from '../ui/logger.js';
15
- import { isV2Project } from './platformVersion.js';
16
17
  import ProjectValidationError from '../errors/ProjectValidationError.js';
17
18
  import { walk } from '@hubspot/local-dev-lib/fs';
18
19
  import { LEGACY_CONFIG_FILES } from '../constants.js';
19
- async function uploadProjectFiles(accountId, projectName, filePath, uploadMessage, platformVersion, intermediateRepresentation) {
20
+ import { archiveWorkspacesAndDependencies, getPackageJsonPathsToUpdate, getLockfilePathsToUpdate, } from './workspaces.js';
21
+ import { isLegacyProject } from '@hubspot/project-parsing-lib/projects';
22
+ import { validateLintConfigOnUpload } from './validateLintConfigOnUpload.js';
23
+ import { runNpmAuditsBeforeProjectUpload } from './npmAuditOnUpload.js';
24
+ async function uploadProjectFiles(accountId, projectName, filePath, uploadMessage, platformVersion, intermediateRepresentation, skipAutoDeploy) {
20
25
  const accountIdentifier = uiAccountDescription(accountId) || `${accountId}`;
21
26
  SpinniesManager.add('upload', {
22
27
  text: lib.projectUpload.uploadProjectFiles.add(projectName, accountIdentifier),
@@ -25,7 +30,7 @@ async function uploadProjectFiles(accountId, projectName, filePath, uploadMessag
25
30
  let buildId;
26
31
  let error;
27
32
  try {
28
- const { data: upload } = await uploadProject(accountId, projectName, filePath, uploadMessage, platformVersion, intermediateRepresentation);
33
+ const { data: upload } = await uploadProject(accountId, projectName, filePath, uploadMessage, platformVersion, intermediateRepresentation, skipAutoDeploy);
29
34
  buildId = upload.buildId;
30
35
  SpinniesManager.succeed('upload', {
31
36
  text: lib.projectUpload.uploadProjectFiles.succeed(projectName, accountIdentifier),
@@ -42,12 +47,38 @@ async function uploadProjectFiles(accountId, projectName, filePath, uploadMessag
42
47
  }
43
48
  return { buildId, error };
44
49
  }
45
- export async function handleProjectUpload({ accountId, projectConfig, projectDir, callbackFunc, profile, uploadMessage = '', forceCreate = false, isUploadCommand = false, sendIR = false, skipValidation = false, }) {
50
+ export async function handleProjectUpload({ accountId, projectConfig, projectDir, callbackFunc, profile, uploadMessage = '', forceCreate = false, isUploadCommand = false, sendIR = false, skipValidation = false, skipNpmAudit = false, skipAutoDeploy = false, force = false, }) {
46
51
  const srcDir = path.resolve(projectDir, projectConfig.srcDir);
47
52
  await validateSourceDirectory(srcDir, projectConfig, projectDir);
48
53
  await validateNoHSMetaMismatch(srcDir, projectConfig);
49
54
  const tempFile = tmp.fileSync({ postfix: '.zip' });
50
55
  uiLogger.debug(lib.projectUpload.handleProjectUpload.compressing(tempFile.name));
56
+ // Collect workspace directories and file: dependencies for v2+ projects only.
57
+ // Versions <= 2025.1 do not support the new npm workspaces bundling behavior.
58
+ let workspaceMappings = [];
59
+ let fileDependencyMappings = [];
60
+ let parsedPackageJsons = [];
61
+ if (!isLegacyProject(projectConfig.platformVersion)) {
62
+ parsedPackageJsons = await findAndParsePackageJsonFiles(srcDir);
63
+ workspaceMappings = await collectWorkspaceDirectories(parsedPackageJsons);
64
+ fileDependencyMappings = await collectFileDependencies(parsedPackageJsons);
65
+ }
66
+ if (isUploadCommand && !skipValidation) {
67
+ await validateLintConfigOnUpload({
68
+ srcDir,
69
+ projectDir,
70
+ parsedPackageJsons,
71
+ isLegacyPlatform: isLegacyProject(projectConfig.platformVersion),
72
+ });
73
+ }
74
+ if (isUploadCommand && !skipNpmAudit) {
75
+ await runNpmAuditsBeforeProjectUpload({
76
+ srcDir,
77
+ projectDir,
78
+ parsedPackageJsons,
79
+ isLegacyPlatform: isLegacyProject(projectConfig.platformVersion),
80
+ });
81
+ }
51
82
  const output = fs.createWriteStream(tempFile.name);
52
83
  const archive = archiver('zip');
53
84
  const result = new Promise((resolve, reject) => output.on('close', async function () {
@@ -56,19 +87,25 @@ export async function handleProjectUpload({ accountId, projectConfig, projectDir
56
87
  let intermediateRepresentation;
57
88
  if (sendIR) {
58
89
  try {
59
- intermediateRepresentation = await handleTranslate({
90
+ const translateResult = await handleTranslate({
60
91
  projectDir,
61
92
  projectConfig,
62
93
  accountId,
63
94
  skipValidation,
64
95
  profile,
65
96
  });
97
+ intermediateRepresentation =
98
+ translateResult.intermediateRepresentation;
99
+ const shouldContinue = await warnAboutSkippedHsMetaFiles(translateResult.skippedHsMetaFiles, force);
100
+ if (!shouldContinue) {
101
+ return resolve({ userDeclined: true });
102
+ }
66
103
  }
67
104
  catch (e) {
68
105
  return resolve({ uploadError: e });
69
106
  }
70
107
  }
71
- const { projectExists } = await ensureProjectExists(accountId, projectConfig.name, {
108
+ const { projectExists, project } = await ensureProjectExists(accountId, projectConfig.name, {
72
109
  forceCreate,
73
110
  uploadCommand: isUploadCommand,
74
111
  noLogs: true,
@@ -77,13 +114,14 @@ export async function handleProjectUpload({ accountId, projectConfig, projectDir
77
114
  uiLogger.log(lib.projectUpload.handleProjectUpload.projectDoesNotExist(accountId));
78
115
  return resolve({ projectNotFound: true });
79
116
  }
80
- const { buildId, error } = await uploadProjectFiles(accountId, projectConfig.name, tempFile.name, uploadMessage, projectConfig.platformVersion, intermediateRepresentation);
117
+ const projectId = project?.id;
118
+ const { buildId, error } = await uploadProjectFiles(accountId, projectConfig.name, tempFile.name, uploadMessage, projectConfig.platformVersion, intermediateRepresentation, skipAutoDeploy);
81
119
  if (error) {
82
- resolve({ uploadError: error });
120
+ resolve({ uploadError: error, projectId });
83
121
  }
84
122
  else if (callbackFunc) {
85
123
  const uploadResult = await callbackFunc(accountId, projectConfig, tempFile, buildId);
86
- resolve({ result: uploadResult });
124
+ resolve({ result: uploadResult, projectId });
87
125
  }
88
126
  }
89
127
  catch (e) {
@@ -91,8 +129,14 @@ export async function handleProjectUpload({ accountId, projectConfig, projectDir
91
129
  }
92
130
  }));
93
131
  archive.pipe(output);
132
+ const modifiedPackageJsonPaths = getPackageJsonPathsToUpdate(srcDir, workspaceMappings, fileDependencyMappings);
133
+ const lockfilePathsToUpdate = getLockfilePathsToUpdate(srcDir, workspaceMappings, fileDependencyMappings);
94
134
  let loggedIgnoredNodeModule = false;
95
135
  archive.directory(srcDir, false, file => {
136
+ if (modifiedPackageJsonPaths.has(file.name) ||
137
+ lockfilePathsToUpdate.has(file.name)) {
138
+ return false;
139
+ }
96
140
  const ignored = shouldIgnoreFile(file.name, true);
97
141
  if (ignored) {
98
142
  const isNodeModule = file.name.includes('node_modules');
@@ -105,6 +149,8 @@ export async function handleProjectUpload({ accountId, projectConfig, projectDir
105
149
  }
106
150
  return ignored ? false : file;
107
151
  });
152
+ // Archive workspaces and file: dependencies
153
+ await archiveWorkspacesAndDependencies(archive, srcDir, workspaceMappings, fileDependencyMappings);
108
154
  archive.finalize();
109
155
  return result;
110
156
  }
@@ -113,7 +159,7 @@ export async function validateSourceDirectory(srcDir, projectConfig, projectDir)
113
159
  if (!projectFilePaths || projectFilePaths.length === 0) {
114
160
  throw new ProjectValidationError(lib.projectUpload.handleProjectUpload.emptySource(projectConfig.srcDir));
115
161
  }
116
- if (isV2Project(projectConfig.platformVersion)) {
162
+ if (!isLegacyProject(projectConfig.platformVersion)) {
117
163
  projectFilePaths.forEach(filePath => {
118
164
  const filename = path.basename(filePath);
119
165
  if (LEGACY_CONFIG_FILES.includes(filename)) {
@@ -124,19 +170,19 @@ export async function validateSourceDirectory(srcDir, projectConfig, projectDir)
124
170
  }
125
171
  export async function validateNoHSMetaMismatch(srcDir, projectConfig) {
126
172
  const hasHsMetaFiles = await projectContainsHsMetaFiles(srcDir);
127
- if (!isV2Project(projectConfig.platformVersion) && hasHsMetaFiles) {
173
+ if (isLegacyProject(projectConfig.platformVersion) && hasHsMetaFiles) {
128
174
  throw new ProjectValidationError(lib.projectUpload.wrongPlatformVersionMetaFiles);
129
175
  }
130
176
  }
131
177
  export async function handleTranslate({ projectDir, projectConfig, accountId, skipValidation, profile, includeTranslationErrorMessage = true, }) {
132
178
  try {
133
- const intermediateRepresentation = await translate({
179
+ const { intermediateRepresentation, skippedHsMetaFiles } = await translate({
134
180
  projectSourceDir: path.join(projectDir, projectConfig.srcDir),
135
181
  platformVersion: projectConfig.platformVersion,
136
182
  accountId,
137
183
  }, { skipValidation, profile });
138
184
  uiLogger.debug(util.inspect(intermediateRepresentation, false, null, true));
139
- return intermediateRepresentation;
185
+ return { intermediateRepresentation, skippedHsMetaFiles };
140
186
  }
141
187
  catch (e) {
142
188
  if (isTranslationError(e)) {
@@ -1,4 +1,3 @@
1
- export declare function getBaseHubSpotUrlForAccount(accountId: number): string;
2
1
  export declare function getProjectComponentDistributionUrl(projectName: string, componentName: string, accountId: number): string;
3
2
  export declare function getDeveloperOverviewUrl(accountId: number): string;
4
3
  export declare function getProjectDetailUrl(projectName: string, accountId: number): string | undefined;
@@ -1,18 +1,12 @@
1
- import { getHubSpotWebsiteOrigin } from '@hubspot/local-dev-lib/urls';
2
- import { getConfigAccountEnvironment } from '@hubspot/local-dev-lib/config';
3
- export function getBaseHubSpotUrlForAccount(accountId) {
4
- return getHubSpotWebsiteOrigin(getConfigAccountEnvironment(accountId));
5
- }
1
+ import { getHubSpotWebsiteOriginByAccountId } from '@hubspot/local-dev-lib/urls';
6
2
  function getProjectHomeUrl(accountId) {
7
- return `${getBaseHubSpotUrlForAccount(accountId)}/developer-projects/${accountId}`;
3
+ return `${getHubSpotWebsiteOriginByAccountId(accountId)}/developer-projects/${accountId}`;
8
4
  }
9
5
  export function getProjectComponentDistributionUrl(projectName, componentName, accountId) {
10
- const baseUrl = getHubSpotWebsiteOrigin(getConfigAccountEnvironment(accountId));
11
- return `${baseUrl}/developer-projects/${accountId}/project/${projectName}/component/${componentName}/distribution`;
6
+ return `${getHubSpotWebsiteOriginByAccountId(accountId)}/developer-projects/${accountId}/project/${projectName}/component/${componentName}/distribution`;
12
7
  }
13
8
  export function getDeveloperOverviewUrl(accountId) {
14
- const baseUrl = getHubSpotWebsiteOrigin(getConfigAccountEnvironment(accountId));
15
- return `${baseUrl}/developer-overview/${accountId}`;
9
+ return `${getHubSpotWebsiteOriginByAccountId(accountId)}/developer-overview/${accountId}`;
16
10
  }
17
11
  export function getProjectDetailUrl(projectName, accountId) {
18
12
  if (!projectName)
@@ -34,9 +28,8 @@ export function getProjectDeployDetailUrl(projectName, deployId, accountId) {
34
28
  return `${getProjectActivityUrl(projectName, accountId)}/deploy/${deployId}`;
35
29
  }
36
30
  export function getLocalDevUiUrl(accountId, showWelcomeScreen) {
37
- return `${getBaseHubSpotUrlForAccount(accountId)}/developer-projects-local-dev/${accountId}${showWelcomeScreen ? '?welcome' : ''}`;
31
+ return `${getHubSpotWebsiteOriginByAccountId(accountId)}/developer-projects-local-dev/${accountId}${showWelcomeScreen ? '?welcome' : ''}`;
38
32
  }
39
33
  export function getAccountHomeUrl(accountId) {
40
- const baseUrl = getHubSpotWebsiteOrigin(getConfigAccountEnvironment(accountId));
41
- return `${baseUrl}/home?portalId=${accountId}`;
34
+ return `${getHubSpotWebsiteOriginByAccountId(accountId)}/home?portalId=${accountId}`;
42
35
  }
@@ -0,0 +1,9 @@
1
+ import { ProjectConfig } from '../../types/Projects.js';
2
+ type ValidateProjectArgs = {
3
+ projectConfig: ProjectConfig;
4
+ projectDir: string;
5
+ derivedAccountId: number;
6
+ profile?: string;
7
+ };
8
+ export declare function validateProject({ projectConfig, projectDir, derivedAccountId, profile, }: ValidateProjectArgs): Promise<boolean>;
9
+ export {};
@@ -0,0 +1,96 @@
1
+ import path from 'path';
2
+ import { getAllHsProfiles } from '@hubspot/project-parsing-lib/profiles';
3
+ import { uiLogger } from '../ui/logger.js';
4
+ import SpinniesManager from '../ui/SpinniesManager.js';
5
+ import { logError } from '../errorHandlers/index.js';
6
+ import { commands } from '../../lang/en.js';
7
+ import { validateProjectForProfile } from './projectProfiles.js';
8
+ import { handleTranslate, validateSourceDirectory } from './upload.js';
9
+ function logValidationErrors(validationErrors) {
10
+ uiLogger.log('');
11
+ validationErrors.forEach(error => {
12
+ if (error instanceof Error) {
13
+ logError(error);
14
+ }
15
+ else {
16
+ uiLogger.log(error);
17
+ }
18
+ });
19
+ }
20
+ export async function validateProject({ projectConfig, projectDir, derivedAccountId, profile, }) {
21
+ let valid = true;
22
+ const srcDir = path.resolve(projectDir, projectConfig.srcDir);
23
+ const profiles = await getAllHsProfiles(path.join(projectDir, projectConfig.srcDir));
24
+ // If a profile is specified, only validate that profile
25
+ if (profile) {
26
+ const validationErrors = await validateProjectForProfile({
27
+ projectConfig,
28
+ projectDir,
29
+ profileName: profile,
30
+ derivedAccountId,
31
+ });
32
+ if (validationErrors.length) {
33
+ logValidationErrors(validationErrors);
34
+ valid = false;
35
+ }
36
+ }
37
+ else if (profiles.length > 0) {
38
+ // If no profile was specified and the project has profiles, validate all of them
39
+ SpinniesManager.add('validatingAllProfiles', {
40
+ text: commands.project.validate.spinners.validatingAllProfiles,
41
+ });
42
+ const errors = [];
43
+ for (const profileName of profiles) {
44
+ const validationErrors = await validateProjectForProfile({
45
+ projectConfig,
46
+ projectDir,
47
+ profileName,
48
+ derivedAccountId,
49
+ indentSpinners: true,
50
+ });
51
+ if (validationErrors.length) {
52
+ errors.push(...validationErrors);
53
+ valid = false;
54
+ }
55
+ }
56
+ if (valid) {
57
+ SpinniesManager.succeed('validatingAllProfiles', {
58
+ text: commands.project.validate.spinners.allProfilesValidationSucceeded,
59
+ });
60
+ }
61
+ else {
62
+ SpinniesManager.fail('validatingAllProfiles', {
63
+ text: commands.project.validate.spinners.allProfilesValidationFailed,
64
+ });
65
+ }
66
+ logValidationErrors(errors);
67
+ }
68
+ else {
69
+ // If the project has no profiles, validate the project without a profile
70
+ try {
71
+ await handleTranslate({
72
+ projectDir,
73
+ projectConfig,
74
+ accountId: derivedAccountId,
75
+ skipValidation: false,
76
+ });
77
+ }
78
+ catch (e) {
79
+ uiLogger.error(commands.project.validate.failure(projectConfig.name));
80
+ logError(e);
81
+ valid = false;
82
+ uiLogger.log('');
83
+ }
84
+ }
85
+ if (!valid) {
86
+ return false;
87
+ }
88
+ try {
89
+ await validateSourceDirectory(srcDir, projectConfig, projectDir);
90
+ }
91
+ catch (e) {
92
+ logError(e);
93
+ return false;
94
+ }
95
+ return true;
96
+ }
@@ -0,0 +1,9 @@
1
+ import type { ParsedPackageJson } from '@hubspot/project-parsing-lib/workspaces';
2
+ type ValidateLintConfigOnUploadArgs = {
3
+ srcDir: string;
4
+ projectDir: string;
5
+ parsedPackageJsons: ParsedPackageJson[];
6
+ isLegacyPlatform: boolean;
7
+ };
8
+ export declare function validateLintConfigOnUpload({ srcDir, projectDir, parsedPackageJsons, isLegacyPlatform, }: ValidateLintConfigOnUploadArgs): Promise<void>;
9
+ export {};
@@ -0,0 +1,45 @@
1
+ import path from 'path';
2
+ import { lib } from '../../lang/en.js';
3
+ import { uiLogger } from '../ui/logger.js';
4
+ import { areAllLintPackagesInstalled, hasEslintConfig, isHubSpotEslintConfigActive, } from './uieLinting.js';
5
+ export async function validateLintConfigOnUpload({ srcDir, projectDir, parsedPackageJsons, isLegacyPlatform, }) {
6
+ const lintRoots = new Set();
7
+ if (isLegacyPlatform) {
8
+ lintRoots.add(srcDir);
9
+ }
10
+ else {
11
+ for (const { dir } of parsedPackageJsons) {
12
+ lintRoots.add(dir);
13
+ }
14
+ if (lintRoots.size === 0) {
15
+ lintRoots.add(srcDir);
16
+ }
17
+ }
18
+ let hasAnyOutput = false;
19
+ for (const lintRoot of lintRoots) {
20
+ const relativeRoot = path.relative(projectDir, lintRoot) || '.';
21
+ let warnMessage;
22
+ if (!areAllLintPackagesInstalled(lintRoot)) {
23
+ warnMessage =
24
+ lib.projectUpload.handleProjectUpload.lintPackagesNotConfigured(relativeRoot);
25
+ }
26
+ else if (!hasEslintConfig(lintRoot)) {
27
+ warnMessage =
28
+ lib.projectUpload.handleProjectUpload.lintConfigNotFound(relativeRoot);
29
+ }
30
+ else if (!(await isHubSpotEslintConfigActive(lintRoot))) {
31
+ warnMessage =
32
+ lib.projectUpload.handleProjectUpload.lintHubSpotRulesNotActive(relativeRoot);
33
+ }
34
+ if (warnMessage) {
35
+ if (!hasAnyOutput) {
36
+ uiLogger.log('');
37
+ hasAnyOutput = true;
38
+ }
39
+ uiLogger.warn(warnMessage);
40
+ }
41
+ }
42
+ if (hasAnyOutput) {
43
+ uiLogger.log('');
44
+ }
45
+ }