@hubspot/cli 8.1.0 → 8.1.2-experimental.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (681) hide show
  1. package/api/migrate.js +8 -4
  2. package/api/releases.d.ts +36 -0
  3. package/api/releases.js +41 -0
  4. package/bin/cli.js +12 -6
  5. package/commands/account/auth.js +7 -7
  6. package/commands/account/clean.js +7 -6
  7. package/commands/account/createOverride.js +10 -7
  8. package/commands/account/info.js +36 -17
  9. package/commands/account/link.d.ts +4 -0
  10. package/commands/account/link.js +89 -0
  11. package/commands/account/list.js +32 -76
  12. package/commands/account/remove.js +4 -3
  13. package/commands/account/removeOverride.js +11 -10
  14. package/commands/account/rename.js +5 -6
  15. package/commands/account/unlink.d.ts +4 -0
  16. package/commands/account/unlink.js +70 -0
  17. package/commands/account/use.js +75 -6
  18. package/commands/account.js +4 -0
  19. package/commands/api.d.ts +10 -0
  20. package/commands/api.js +164 -0
  21. package/commands/app/migrate.js +13 -13
  22. package/commands/app/secret/add.js +6 -7
  23. package/commands/app/secret/delete.js +9 -10
  24. package/commands/app/secret/list.js +6 -7
  25. package/commands/app/secret/update.js +8 -9
  26. package/commands/auth.js +19 -15
  27. package/commands/cms/app/create.js +9 -5
  28. package/commands/cms/convertFields.js +8 -8
  29. package/commands/cms/delete.js +2 -3
  30. package/commands/cms/fetch.js +7 -7
  31. package/commands/cms/function/create.js +9 -5
  32. package/commands/cms/function/deploy.js +2 -3
  33. package/commands/cms/function/list.js +11 -7
  34. package/commands/cms/function/logs.js +17 -22
  35. package/commands/cms/function/server.js +2 -3
  36. package/commands/cms/getReactModule.js +7 -8
  37. package/commands/cms/lighthouseScore.js +25 -24
  38. package/commands/cms/lint.js +4 -5
  39. package/commands/cms/list.js +5 -6
  40. package/commands/cms/module/create.js +14 -5
  41. package/commands/cms/module/marketplace-validate.js +7 -8
  42. package/commands/cms/mv.js +2 -3
  43. package/commands/cms/template/create.js +10 -6
  44. package/commands/cms/theme/create.js +5 -5
  45. package/commands/cms/theme/generate-selectors.js +5 -4
  46. package/commands/cms/theme/marketplace-validate.js +8 -9
  47. package/commands/cms/theme/preview.js +23 -70
  48. package/commands/cms/upload.js +15 -12
  49. package/commands/cms/watch.d.ts +0 -1
  50. package/commands/cms/watch.js +6 -12
  51. package/commands/cms/webpack/create.js +5 -5
  52. package/commands/completion.js +3 -5
  53. package/commands/config/migrate.js +6 -7
  54. package/commands/config/set.js +5 -6
  55. package/commands/customObject/create.js +4 -5
  56. package/commands/customObject/createSchema.js +4 -5
  57. package/commands/customObject/deleteSchema.js +4 -5
  58. package/commands/customObject/fetchAllSchemas.js +2 -3
  59. package/commands/customObject/fetchSchema.js +2 -3
  60. package/commands/customObject/listSchemas.js +2 -3
  61. package/commands/customObject/updateSchema.js +4 -5
  62. package/commands/doctor.js +8 -8
  63. package/commands/feedback.js +7 -5
  64. package/commands/filemanager/fetch.js +5 -6
  65. package/commands/filemanager/upload.js +5 -5
  66. package/commands/getStarted.js +17 -19
  67. package/commands/hubdb/clear.js +6 -3
  68. package/commands/hubdb/create.js +4 -5
  69. package/commands/hubdb/delete.js +9 -6
  70. package/commands/hubdb/fetch.js +6 -3
  71. package/commands/hubdb/list.js +16 -14
  72. package/commands/init.js +15 -14
  73. package/commands/mcp/setup.js +5 -14
  74. package/commands/mcp/start.js +2 -4
  75. package/commands/open.js +4 -5
  76. package/commands/project/add.js +13 -8
  77. package/commands/project/appInstallStatus.d.ts +4 -0
  78. package/commands/project/appInstallStatus.js +132 -0
  79. package/commands/project/create.js +28 -17
  80. package/commands/project/delete.d.ts +7 -0
  81. package/commands/project/delete.js +74 -0
  82. package/commands/project/deploy.js +39 -36
  83. package/commands/project/dev/deprecatedFlow.js +62 -17
  84. package/commands/project/dev/index.d.ts +3 -3
  85. package/commands/project/dev/index.js +59 -48
  86. package/commands/project/dev/unifiedFlow.js +70 -21
  87. package/commands/project/download.js +12 -9
  88. package/commands/project/info.d.ts +4 -0
  89. package/commands/project/info.js +67 -0
  90. package/commands/project/installDeps.js +9 -6
  91. package/commands/project/lint.js +33 -10
  92. package/commands/project/list.d.ts +2 -2
  93. package/commands/project/list.js +15 -14
  94. package/commands/project/listBuilds.js +8 -6
  95. package/commands/project/logs.js +5 -6
  96. package/commands/project/migrate.js +18 -18
  97. package/commands/project/open.js +5 -6
  98. package/commands/project/profile/add.js +12 -8
  99. package/commands/project/profile/delete.js +15 -11
  100. package/commands/project/updateDeps.js +9 -6
  101. package/commands/project/upload.d.ts +3 -0
  102. package/commands/project/upload.js +98 -25
  103. package/commands/project/validate.js +12 -12
  104. package/commands/project/watch.js +32 -19
  105. package/commands/project.js +12 -3
  106. package/commands/sandbox/create.js +18 -45
  107. package/commands/sandbox/delete.js +13 -14
  108. package/commands/secret/addSecret.js +6 -7
  109. package/commands/secret/deleteSecret.js +5 -6
  110. package/commands/secret/listSecret.js +2 -3
  111. package/commands/secret/updateSecret.js +4 -5
  112. package/commands/testAccount/create.d.ts +1 -1
  113. package/commands/testAccount/create.js +25 -17
  114. package/commands/testAccount/createConfig.js +7 -8
  115. package/commands/testAccount/delete.js +27 -18
  116. package/commands/testAccount/importData.js +6 -7
  117. package/commands/upgrade.js +9 -10
  118. package/lang/en.d.ts +276 -14
  119. package/lang/en.js +293 -28
  120. package/lib/accountAuth.js +4 -0
  121. package/lib/api/usageTracking.d.ts +29 -0
  122. package/lib/api/usageTracking.js +28 -0
  123. package/lib/app/migrate.js +18 -5
  124. package/lib/buildAccount.d.ts +1 -6
  125. package/lib/buildAccount.js +9 -42
  126. package/lib/commandSuggestion.js +1 -7
  127. package/lib/constants.d.ts +3 -4
  128. package/lib/constants.js +5 -4
  129. package/lib/doctor/Diagnosis.js +5 -5
  130. package/lib/doctor/Doctor.js +7 -7
  131. package/lib/errorHandlers/index.js +4 -3
  132. package/lib/errorHandlers/suppressError.js +4 -0
  133. package/lib/errors/PromptExitError.d.ts +6 -0
  134. package/lib/errors/PromptExitError.js +11 -0
  135. package/lib/generateSelectors.js +1 -2
  136. package/lib/getStartedV2Actions.d.ts +13 -0
  137. package/lib/getStartedV2Actions.js +56 -3
  138. package/lib/hasFeature.js +1 -2
  139. package/lib/link/accountTableUtils.d.ts +10 -0
  140. package/lib/link/accountTableUtils.js +39 -0
  141. package/lib/link/index.d.ts +18 -0
  142. package/lib/link/index.js +185 -0
  143. package/lib/link/linkUtils.d.ts +5 -0
  144. package/lib/link/linkUtils.js +49 -0
  145. package/lib/link/prompts.d.ts +7 -0
  146. package/lib/link/prompts.js +126 -0
  147. package/lib/link/renderLinkedAccountsTable.d.ts +2 -0
  148. package/lib/link/renderLinkedAccountsTable.js +14 -0
  149. package/lib/link/warnIfLinkedDirectory.d.ts +1 -0
  150. package/lib/link/warnIfLinkedDirectory.js +9 -0
  151. package/lib/mcp/setup.d.ts +1 -0
  152. package/lib/mcp/setup.js +77 -30
  153. package/lib/middleware/autoUpdateMiddleware.js +6 -3
  154. package/lib/process.d.ts +1 -1
  155. package/lib/process.js +10 -3
  156. package/lib/projects/ProjectLogsManager.js +6 -3
  157. package/lib/projects/components.js +15 -4
  158. package/lib/projects/create/index.js +3 -6
  159. package/lib/projects/create/legacy.js +5 -10
  160. package/lib/projects/create/v2.js +5 -14
  161. package/lib/projects/delete.d.ts +13 -0
  162. package/lib/projects/delete.js +193 -0
  163. package/lib/projects/deploy.d.ts +1 -1
  164. package/lib/projects/deploy.js +2 -2
  165. package/lib/projects/ensureProjectExists.js +1 -2
  166. package/lib/projects/localDev/AppDevModeInterface.js +13 -9
  167. package/lib/projects/localDev/DevServerManager_DEPRECATED.d.ts +4 -1
  168. package/lib/projects/localDev/DevServerManager_DEPRECATED.js +3 -3
  169. package/lib/projects/localDev/DevSessionManager.d.ts +6 -3
  170. package/lib/projects/localDev/DevSessionManager.js +31 -19
  171. package/lib/projects/localDev/LocalDevManager_DEPRECATED.d.ts +5 -0
  172. package/lib/projects/localDev/LocalDevManager_DEPRECATED.js +21 -10
  173. package/lib/projects/localDev/LocalDevProcess.js +6 -5
  174. package/lib/projects/localDev/LocalDevState.d.ts +3 -2
  175. package/lib/projects/localDev/LocalDevState.js +3 -1
  176. package/lib/projects/localDev/helpers/account.d.ts +4 -3
  177. package/lib/projects/localDev/helpers/account.js +21 -30
  178. package/lib/projects/localDev/helpers/process.d.ts +1 -1
  179. package/lib/projects/localDev/helpers/process.js +4 -10
  180. package/lib/projects/localDev/helpers/project.d.ts +4 -3
  181. package/lib/projects/localDev/helpers/project.js +32 -16
  182. package/lib/projects/npmAuditOnUpload.d.ts +10 -0
  183. package/lib/projects/npmAuditOnUpload.js +73 -0
  184. package/lib/projects/pollProjectBuildAndDeploy.d.ts +5 -1
  185. package/lib/projects/pollProjectBuildAndDeploy.js +93 -87
  186. package/lib/projects/preview.d.ts +7 -0
  187. package/lib/projects/preview.js +48 -0
  188. package/lib/projects/projectInfo.d.ts +5 -0
  189. package/lib/projects/projectInfo.js +82 -0
  190. package/lib/projects/projectProfiles.d.ts +1 -2
  191. package/lib/projects/projectProfiles.js +5 -17
  192. package/lib/projects/uieLinting.d.ts +17 -3
  193. package/lib/projects/uieLinting.js +93 -28
  194. package/lib/projects/upload.d.ts +4 -1
  195. package/lib/projects/upload.js +71 -50
  196. package/lib/projects/watch.d.ts +2 -1
  197. package/lib/projects/watch.js +32 -24
  198. package/lib/projects/workspaces.d.ts +52 -0
  199. package/lib/projects/workspaces.js +365 -0
  200. package/lib/prompts/createApiSamplePrompt.js +4 -0
  201. package/lib/prompts/downloadProjectPrompt.js +11 -10
  202. package/lib/prompts/installAppPrompt.js +3 -2
  203. package/lib/prompts/personalAccessKeyPrompt.js +3 -2
  204. package/lib/prompts/projectDevTargetAccountPrompt.d.ts +1 -0
  205. package/lib/prompts/projectDevTargetAccountPrompt.js +23 -16
  206. package/lib/prompts/projectProfilePrompt.d.ts +2 -0
  207. package/lib/prompts/projectProfilePrompt.js +46 -0
  208. package/lib/prompts/projectsLogsPrompt.js +3 -0
  209. package/lib/prompts/promptUtils.js +4 -2
  210. package/lib/prompts/selectHubDBTablePrompt.js +8 -4
  211. package/lib/prompts/selectPublicAppForMigrationPrompt.js +12 -6
  212. package/lib/sandboxes.d.ts +1 -9
  213. package/lib/sandboxes.js +0 -21
  214. package/lib/serverlessLogs.js +50 -44
  215. package/lib/theme/cmsDevServerProcess.d.ts +14 -0
  216. package/lib/theme/cmsDevServerProcess.js +149 -0
  217. package/lib/theme/cmsDevServerRunner.d.ts +14 -0
  218. package/lib/theme/cmsDevServerRunner.js +90 -0
  219. package/lib/theme/migrate.d.ts +1 -1
  220. package/lib/theme/migrate.js +1 -5
  221. package/lib/ui/SpinniesManager.d.ts +1 -0
  222. package/lib/ui/SpinniesManager.js +22 -6
  223. package/lib/ui/accountTable.d.ts +8 -0
  224. package/lib/ui/accountTable.js +67 -0
  225. package/lib/ui/spinniesUtils.d.ts +0 -1
  226. package/lib/ui/spinniesUtils.js +6 -16
  227. package/lib/usageTracking.d.ts +9 -20
  228. package/lib/usageTracking.js +51 -34
  229. package/lib/yargs/makeWrappedYargsHandler.d.ts +3 -0
  230. package/lib/yargs/makeWrappedYargsHandler.js +121 -0
  231. package/lib/yargs/makeYargsBuilder.d.ts +13 -0
  232. package/lib/yargs/makeYargsBuilder.js +33 -0
  233. package/lib/yargs/parseYargsOrExit.d.ts +4 -0
  234. package/lib/yargs/parseYargsOrExit.js +25 -0
  235. package/lib/yargs/strictEnforceBoolean.d.ts +1 -0
  236. package/lib/yargs/strictEnforceBoolean.js +13 -0
  237. package/lib/yargsUtils.d.ts +3 -16
  238. package/lib/yargsUtils.js +3 -48
  239. package/mcp-server/Tool.d.ts +15 -0
  240. package/mcp-server/Tool.js +53 -0
  241. package/mcp-server/server.js +43 -3
  242. package/mcp-server/tools/cms/HsCreateFunctionTool.d.ts +4 -2
  243. package/mcp-server/tools/cms/HsCreateFunctionTool.js +11 -9
  244. package/mcp-server/tools/cms/HsCreateModuleTool.d.ts +4 -2
  245. package/mcp-server/tools/cms/HsCreateModuleTool.js +12 -11
  246. package/mcp-server/tools/cms/HsCreateTemplateTool.d.ts +4 -2
  247. package/mcp-server/tools/cms/HsCreateTemplateTool.js +11 -9
  248. package/mcp-server/tools/cms/HsFunctionLogsTool.d.ts +4 -2
  249. package/mcp-server/tools/cms/HsFunctionLogsTool.js +10 -9
  250. package/mcp-server/tools/cms/HsListFunctionsTool.d.ts +4 -2
  251. package/mcp-server/tools/cms/HsListFunctionsTool.js +10 -9
  252. package/mcp-server/tools/cms/HsListTool.d.ts +4 -2
  253. package/mcp-server/tools/cms/HsListTool.js +11 -9
  254. package/mcp-server/tools/index.d.ts +3 -2
  255. package/mcp-server/tools/index.js +24 -22
  256. package/mcp-server/tools/project/AddFeatureToProjectTool.d.ts +25 -5
  257. package/mcp-server/tools/project/AddFeatureToProjectTool.js +16 -18
  258. package/mcp-server/tools/project/CreateProjectTool.d.ts +29 -6
  259. package/mcp-server/tools/project/CreateProjectTool.js +16 -18
  260. package/mcp-server/tools/project/CreateTestAccountTool.d.ts +4 -2
  261. package/mcp-server/tools/project/CreateTestAccountTool.js +22 -10
  262. package/mcp-server/tools/project/DeployProjectTool.d.ts +4 -2
  263. package/mcp-server/tools/project/DeployProjectTool.js +6 -8
  264. package/mcp-server/tools/project/DocFetchTool.d.ts +4 -2
  265. package/mcp-server/tools/project/DocFetchTool.js +8 -6
  266. package/mcp-server/tools/project/DocsSearchTool.d.ts +9 -3
  267. package/mcp-server/tools/project/DocsSearchTool.js +32 -9
  268. package/mcp-server/tools/project/FindProjectsTool.d.ts +15 -0
  269. package/mcp-server/tools/project/FindProjectsTool.js +60 -0
  270. package/mcp-server/tools/project/GetApiUsagePatternsByAppIdTool.d.ts +4 -2
  271. package/mcp-server/tools/project/GetApiUsagePatternsByAppIdTool.js +13 -14
  272. package/mcp-server/tools/project/GetApplicationInfoTool.d.ts +4 -2
  273. package/mcp-server/tools/project/GetApplicationInfoTool.js +8 -6
  274. package/mcp-server/tools/project/GetBuildLogsTool.d.ts +6 -4
  275. package/mcp-server/tools/project/GetBuildLogsTool.js +15 -14
  276. package/mcp-server/tools/project/GetBuildStatusTool.d.ts +5 -3
  277. package/mcp-server/tools/project/GetBuildStatusTool.js +12 -11
  278. package/mcp-server/tools/project/GetConfigValuesTool.d.ts +4 -2
  279. package/mcp-server/tools/project/GetConfigValuesTool.js +12 -7
  280. package/mcp-server/tools/project/GuidedWalkthroughTool.d.ts +10 -3
  281. package/mcp-server/tools/project/GuidedWalkthroughTool.js +5 -12
  282. package/mcp-server/tools/project/UploadProjectTools.d.ts +4 -2
  283. package/mcp-server/tools/project/UploadProjectTools.js +11 -9
  284. package/mcp-server/tools/project/ValidateProjectTool.d.ts +4 -2
  285. package/mcp-server/tools/project/ValidateProjectTool.js +10 -8
  286. package/mcp-server/tools/project/constants.d.ts +13 -1
  287. package/mcp-server/tools/project/constants.js +13 -16
  288. package/mcp-server/types.d.ts +0 -7
  289. package/mcp-server/types.js +1 -13
  290. package/mcp-server/utils/command.d.ts +5 -0
  291. package/mcp-server/utils/command.js +24 -0
  292. package/mcp-server/utils/feedbackTracking.js +2 -17
  293. package/mcp-server/utils/logger.d.ts +10 -0
  294. package/mcp-server/utils/logger.js +29 -0
  295. package/mcp-server/utils/toolUsageTracking.js +10 -8
  296. package/package.json +15 -11
  297. package/types/Link.d.ts +32 -0
  298. package/types/Link.js +5 -0
  299. package/types/LocalDev.d.ts +5 -0
  300. package/types/PackageJson.d.ts +1 -0
  301. package/types/Projects.d.ts +19 -0
  302. package/types/Prompts.d.ts +1 -0
  303. package/types/Yargs.d.ts +19 -1
  304. package/ui/components/getStarted/GetStartedFlow.js +79 -2
  305. package/ui/components/getStarted/reducer.d.ts +20 -0
  306. package/ui/components/getStarted/reducer.js +36 -0
  307. package/ui/components/getStarted/screens/InstallationScreen.d.ts +7 -0
  308. package/ui/components/getStarted/screens/InstallationScreen.js +16 -0
  309. package/ui/components/getStarted/screens/ProjectSetupScreen.js +2 -1
  310. package/ui/lib/constants.d.ts +1 -0
  311. package/ui/lib/constants.js +1 -0
  312. package/api/__tests__/migrate.test.d.ts +0 -1
  313. package/api/__tests__/migrate.test.js +0 -199
  314. package/commands/__tests__/account.test.d.ts +0 -1
  315. package/commands/__tests__/account.test.js +0 -69
  316. package/commands/__tests__/auth.test.d.ts +0 -1
  317. package/commands/__tests__/auth.test.js +0 -43
  318. package/commands/__tests__/cms.test.d.ts +0 -1
  319. package/commands/__tests__/cms.test.js +0 -87
  320. package/commands/__tests__/config.test.d.ts +0 -1
  321. package/commands/__tests__/config.test.js +0 -44
  322. package/commands/__tests__/customObject.test.d.ts +0 -1
  323. package/commands/__tests__/customObject.test.js +0 -68
  324. package/commands/__tests__/doctor.test.d.ts +0 -1
  325. package/commands/__tests__/doctor.test.js +0 -132
  326. package/commands/__tests__/feedback.test.d.ts +0 -1
  327. package/commands/__tests__/feedback.test.js +0 -24
  328. package/commands/__tests__/filemanager.test.d.ts +0 -1
  329. package/commands/__tests__/filemanager.test.js +0 -45
  330. package/commands/__tests__/getStarted.test.d.ts +0 -1
  331. package/commands/__tests__/getStarted.test.js +0 -173
  332. package/commands/__tests__/hubdb.test.d.ts +0 -1
  333. package/commands/__tests__/hubdb.test.js +0 -50
  334. package/commands/__tests__/init.test.d.ts +0 -1
  335. package/commands/__tests__/init.test.js +0 -42
  336. package/commands/__tests__/mcp.test.d.ts +0 -1
  337. package/commands/__tests__/mcp.test.js +0 -46
  338. package/commands/__tests__/open.test.d.ts +0 -1
  339. package/commands/__tests__/open.test.js +0 -58
  340. package/commands/__tests__/project.test.d.ts +0 -1
  341. package/commands/__tests__/project.test.js +0 -125
  342. package/commands/__tests__/sandbox.test.d.ts +0 -1
  343. package/commands/__tests__/sandbox.test.js +0 -44
  344. package/commands/__tests__/secret.test.d.ts +0 -1
  345. package/commands/__tests__/secret.test.js +0 -49
  346. package/commands/__tests__/testAccount.test.d.ts +0 -1
  347. package/commands/__tests__/testAccount.test.js +0 -57
  348. package/commands/__tests__/upgrade.test.d.ts +0 -1
  349. package/commands/__tests__/upgrade.test.js +0 -309
  350. package/commands/account/__tests__/auth.test.d.ts +0 -1
  351. package/commands/account/__tests__/auth.test.js +0 -206
  352. package/commands/account/__tests__/clean.test.d.ts +0 -1
  353. package/commands/account/__tests__/clean.test.js +0 -28
  354. package/commands/account/__tests__/createOverride.test.d.ts +0 -1
  355. package/commands/account/__tests__/createOverride.test.js +0 -32
  356. package/commands/account/__tests__/info.test.d.ts +0 -1
  357. package/commands/account/__tests__/info.test.js +0 -28
  358. package/commands/account/__tests__/list.test.d.ts +0 -1
  359. package/commands/account/__tests__/list.test.js +0 -153
  360. package/commands/account/__tests__/remove.test.d.ts +0 -1
  361. package/commands/account/__tests__/remove.test.js +0 -36
  362. package/commands/account/__tests__/removeOverride.d.ts +0 -1
  363. package/commands/account/__tests__/removeOverride.js +0 -25
  364. package/commands/account/__tests__/rename.test.d.ts +0 -1
  365. package/commands/account/__tests__/rename.test.js +0 -82
  366. package/commands/account/__tests__/use.test.d.ts +0 -1
  367. package/commands/account/__tests__/use.test.js +0 -170
  368. package/commands/app/__tests__/migrate.test.d.ts +0 -1
  369. package/commands/app/__tests__/migrate.test.js +0 -111
  370. package/commands/app/secret/__tests__/add.test.d.ts +0 -1
  371. package/commands/app/secret/__tests__/add.test.js +0 -140
  372. package/commands/app/secret/__tests__/delete.test.d.ts +0 -1
  373. package/commands/app/secret/__tests__/delete.test.js +0 -28
  374. package/commands/app/secret/__tests__/list.test.d.ts +0 -1
  375. package/commands/app/secret/__tests__/list.test.js +0 -25
  376. package/commands/app/secret/__tests__/update.test.d.ts +0 -1
  377. package/commands/app/secret/__tests__/update.test.js +0 -28
  378. package/commands/cms/__tests__/delete.test.d.ts +0 -1
  379. package/commands/cms/__tests__/delete.test.js +0 -39
  380. package/commands/cms/__tests__/fetch.test.d.ts +0 -1
  381. package/commands/cms/__tests__/fetch.test.js +0 -156
  382. package/commands/cms/__tests__/function.test.d.ts +0 -1
  383. package/commands/cms/__tests__/function.test.js +0 -50
  384. package/commands/cms/__tests__/lint.test.d.ts +0 -1
  385. package/commands/cms/__tests__/lint.test.js +0 -33
  386. package/commands/cms/__tests__/list.test.d.ts +0 -1
  387. package/commands/cms/__tests__/list.test.js +0 -42
  388. package/commands/cms/__tests__/module.test.d.ts +0 -1
  389. package/commands/cms/__tests__/module.test.js +0 -45
  390. package/commands/cms/__tests__/mv.test.d.ts +0 -1
  391. package/commands/cms/__tests__/mv.test.js +0 -46
  392. package/commands/cms/__tests__/theme.test.d.ts +0 -1
  393. package/commands/cms/__tests__/theme.test.js +0 -54
  394. package/commands/cms/__tests__/upload.test.d.ts +0 -1
  395. package/commands/cms/__tests__/upload.test.js +0 -308
  396. package/commands/cms/__tests__/watch.test.d.ts +0 -1
  397. package/commands/cms/__tests__/watch.test.js +0 -212
  398. package/commands/cms/function/__tests__/logs.test.d.ts +0 -1
  399. package/commands/cms/function/__tests__/logs.test.js +0 -70
  400. package/commands/cms/theme/__tests__/generate-selectors.test.d.ts +0 -1
  401. package/commands/cms/theme/__tests__/generate-selectors.test.js +0 -28
  402. package/commands/cms/theme/__tests__/marketplace-validate.test.d.ts +0 -1
  403. package/commands/cms/theme/__tests__/marketplace-validate.test.js +0 -36
  404. package/commands/cms/theme/__tests__/preview.test.d.ts +0 -1
  405. package/commands/cms/theme/__tests__/preview.test.js +0 -54
  406. package/commands/customObject/__tests__/create.test.d.ts +0 -1
  407. package/commands/customObject/__tests__/create.test.js +0 -40
  408. package/commands/customObject/__tests__/createSchema.test.d.ts +0 -1
  409. package/commands/customObject/__tests__/createSchema.test.js +0 -28
  410. package/commands/customObject/__tests__/deleteSchema.test.d.ts +0 -1
  411. package/commands/customObject/__tests__/deleteSchema.test.js +0 -42
  412. package/commands/customObject/__tests__/fetch-all-schemas.test.d.ts +0 -1
  413. package/commands/customObject/__tests__/fetch-all-schemas.test.js +0 -41
  414. package/commands/customObject/__tests__/fetchSchema.test.d.ts +0 -1
  415. package/commands/customObject/__tests__/fetchSchema.test.js +0 -45
  416. package/commands/customObject/__tests__/listSchemas.test.d.ts +0 -1
  417. package/commands/customObject/__tests__/listSchemas.test.js +0 -29
  418. package/commands/customObject/__tests__/updateSchema.test.d.ts +0 -1
  419. package/commands/customObject/__tests__/updateSchema.test.js +0 -40
  420. package/commands/filemanager/__tests__/fetch.test.d.ts +0 -1
  421. package/commands/filemanager/__tests__/fetch.test.js +0 -32
  422. package/commands/filemanager/__tests__/upload.test.d.ts +0 -1
  423. package/commands/filemanager/__tests__/upload.test.js +0 -191
  424. package/commands/hubdb/__tests__/clear.test.d.ts +0 -1
  425. package/commands/hubdb/__tests__/clear.test.js +0 -28
  426. package/commands/hubdb/__tests__/create.test.d.ts +0 -1
  427. package/commands/hubdb/__tests__/create.test.js +0 -28
  428. package/commands/hubdb/__tests__/delete.test.d.ts +0 -1
  429. package/commands/hubdb/__tests__/delete.test.js +0 -28
  430. package/commands/hubdb/__tests__/fetch.test.d.ts +0 -1
  431. package/commands/hubdb/__tests__/fetch.test.js +0 -28
  432. package/commands/hubdb/__tests__/list.test.d.ts +0 -1
  433. package/commands/hubdb/__tests__/list.test.js +0 -88
  434. package/commands/mcp/__tests__/setup.test.d.ts +0 -1
  435. package/commands/mcp/__tests__/setup.test.js +0 -26
  436. package/commands/mcp/__tests__/start.test.d.ts +0 -1
  437. package/commands/mcp/__tests__/start.test.js +0 -137
  438. package/commands/project/__tests__/add.test.d.ts +0 -1
  439. package/commands/project/__tests__/add.test.js +0 -107
  440. package/commands/project/__tests__/create.test.d.ts +0 -1
  441. package/commands/project/__tests__/create.test.js +0 -97
  442. package/commands/project/__tests__/deploy.test.d.ts +0 -1
  443. package/commands/project/__tests__/deploy.test.js +0 -307
  444. package/commands/project/__tests__/dev.test.d.ts +0 -1
  445. package/commands/project/__tests__/dev.test.js +0 -273
  446. package/commands/project/__tests__/devUnifiedFlow.test.d.ts +0 -1
  447. package/commands/project/__tests__/devUnifiedFlow.test.js +0 -434
  448. package/commands/project/__tests__/download.test.d.ts +0 -1
  449. package/commands/project/__tests__/download.test.js +0 -39
  450. package/commands/project/__tests__/installDeps.test.d.ts +0 -1
  451. package/commands/project/__tests__/installDeps.test.js +0 -140
  452. package/commands/project/__tests__/lint.test.d.ts +0 -1
  453. package/commands/project/__tests__/lint.test.js +0 -704
  454. package/commands/project/__tests__/list.test.d.ts +0 -1
  455. package/commands/project/__tests__/list.test.js +0 -31
  456. package/commands/project/__tests__/listBuilds.test.d.ts +0 -1
  457. package/commands/project/__tests__/listBuilds.test.js +0 -38
  458. package/commands/project/__tests__/logs.test.d.ts +0 -1
  459. package/commands/project/__tests__/logs.test.js +0 -202
  460. package/commands/project/__tests__/migrate.test.d.ts +0 -1
  461. package/commands/project/__tests__/migrate.test.js +0 -106
  462. package/commands/project/__tests__/open.test.d.ts +0 -1
  463. package/commands/project/__tests__/open.test.js +0 -39
  464. package/commands/project/__tests__/profile.test.d.ts +0 -1
  465. package/commands/project/__tests__/profile.test.js +0 -42
  466. package/commands/project/__tests__/updateDeps.test.d.ts +0 -1
  467. package/commands/project/__tests__/updateDeps.test.js +0 -140
  468. package/commands/project/__tests__/upload.test.d.ts +0 -1
  469. package/commands/project/__tests__/upload.test.js +0 -234
  470. package/commands/project/__tests__/validate.test.d.ts +0 -1
  471. package/commands/project/__tests__/validate.test.js +0 -381
  472. package/commands/project/__tests__/watch.test.d.ts +0 -1
  473. package/commands/project/__tests__/watch.test.js +0 -35
  474. package/commands/sandbox/__tests__/create.test.d.ts +0 -1
  475. package/commands/sandbox/__tests__/create.test.js +0 -245
  476. package/commands/sandbox/__tests__/delete.test.d.ts +0 -1
  477. package/commands/sandbox/__tests__/delete.test.js +0 -31
  478. package/commands/secret/__tests__/addSecret.test.d.ts +0 -1
  479. package/commands/secret/__tests__/addSecret.test.js +0 -162
  480. package/commands/secret/__tests__/deleteSecret.test.d.ts +0 -1
  481. package/commands/secret/__tests__/deleteSecret.test.js +0 -41
  482. package/commands/secret/__tests__/listSecret.test.d.ts +0 -1
  483. package/commands/secret/__tests__/listSecret.test.js +0 -29
  484. package/commands/secret/__tests__/updateSecret.test.d.ts +0 -1
  485. package/commands/secret/__tests__/updateSecret.test.js +0 -29
  486. package/commands/testAccount/__tests__/create.test.d.ts +0 -1
  487. package/commands/testAccount/__tests__/create.test.js +0 -106
  488. package/commands/testAccount/__tests__/createConfig.test.d.ts +0 -1
  489. package/commands/testAccount/__tests__/createConfig.test.js +0 -32
  490. package/commands/testAccount/__tests__/delete.test.d.ts +0 -1
  491. package/commands/testAccount/__tests__/delete.test.js +0 -29
  492. package/commands/testAccount/__tests__/importData.test.d.ts +0 -1
  493. package/commands/testAccount/__tests__/importData.test.js +0 -92
  494. package/lib/__tests__/CLIWebSocketServer.test.d.ts +0 -1
  495. package/lib/__tests__/CLIWebSocketServer.test.js +0 -252
  496. package/lib/__tests__/accountAuth.test.d.ts +0 -1
  497. package/lib/__tests__/accountAuth.test.js +0 -258
  498. package/lib/__tests__/accountTypes.test.d.ts +0 -1
  499. package/lib/__tests__/accountTypes.test.js +0 -98
  500. package/lib/__tests__/buildAccount.test.d.ts +0 -1
  501. package/lib/__tests__/buildAccount.test.js +0 -262
  502. package/lib/__tests__/cliUpgradeUtils.test.d.ts +0 -1
  503. package/lib/__tests__/cliUpgradeUtils.test.js +0 -131
  504. package/lib/__tests__/commandSuggestion.test.d.ts +0 -1
  505. package/lib/__tests__/commandSuggestion.test.js +0 -119
  506. package/lib/__tests__/commonOpts.test.d.ts +0 -1
  507. package/lib/__tests__/commonOpts.test.js +0 -80
  508. package/lib/__tests__/dependencyManagement.test.d.ts +0 -1
  509. package/lib/__tests__/dependencyManagement.test.js +0 -1067
  510. package/lib/__tests__/developerTestAccounts.test.d.ts +0 -1
  511. package/lib/__tests__/developerTestAccounts.test.js +0 -156
  512. package/lib/__tests__/hasFeature.test.d.ts +0 -1
  513. package/lib/__tests__/hasFeature.test.js +0 -167
  514. package/lib/__tests__/http.test.d.ts +0 -1
  515. package/lib/__tests__/http.test.js +0 -40
  516. package/lib/__tests__/importData.test.d.ts +0 -1
  517. package/lib/__tests__/importData.test.js +0 -98
  518. package/lib/__tests__/npmCli.test.d.ts +0 -1
  519. package/lib/__tests__/npmCli.test.js +0 -84
  520. package/lib/__tests__/oauth.test.d.ts +0 -1
  521. package/lib/__tests__/oauth.test.js +0 -109
  522. package/lib/__tests__/parsing.test.d.ts +0 -1
  523. package/lib/__tests__/parsing.test.js +0 -34
  524. package/lib/__tests__/polling.test.d.ts +0 -1
  525. package/lib/__tests__/polling.test.js +0 -76
  526. package/lib/__tests__/process.test.d.ts +0 -1
  527. package/lib/__tests__/process.test.js +0 -89
  528. package/lib/__tests__/sandboxSync.test.d.ts +0 -1
  529. package/lib/__tests__/sandboxSync.test.js +0 -147
  530. package/lib/__tests__/sandboxes.test.d.ts +0 -1
  531. package/lib/__tests__/sandboxes.test.js +0 -156
  532. package/lib/__tests__/serverlessLogs.test.d.ts +0 -1
  533. package/lib/__tests__/serverlessLogs.test.js +0 -148
  534. package/lib/__tests__/usageTracking.test.d.ts +0 -1
  535. package/lib/__tests__/usageTracking.test.js +0 -197
  536. package/lib/__tests__/validation.test.d.ts +0 -1
  537. package/lib/__tests__/validation.test.js +0 -143
  538. package/lib/__tests__/yargsUtils.test.d.ts +0 -1
  539. package/lib/__tests__/yargsUtils.test.js +0 -124
  540. package/lib/app/__tests__/migrate.test.d.ts +0 -1
  541. package/lib/app/__tests__/migrate.test.js +0 -638
  542. package/lib/doctor/__tests__/Diagnosis.test.d.ts +0 -1
  543. package/lib/doctor/__tests__/Diagnosis.test.js +0 -84
  544. package/lib/doctor/__tests__/DiagnosticInfoBuilder.test.d.ts +0 -1
  545. package/lib/doctor/__tests__/DiagnosticInfoBuilder.test.js +0 -177
  546. package/lib/doctor/__tests__/Doctor.test.d.ts +0 -1
  547. package/lib/doctor/__tests__/Doctor.test.js +0 -560
  548. package/lib/errorHandlers/__tests__/index.test.d.ts +0 -1
  549. package/lib/errorHandlers/__tests__/index.test.js +0 -278
  550. package/lib/mcp/__tests__/setup.test.d.ts +0 -1
  551. package/lib/mcp/__tests__/setup.test.js +0 -194
  552. package/lib/middleware/__tests__/commandTargetingUtils.test.d.ts +0 -1
  553. package/lib/middleware/__tests__/commandTargetingUtils.test.js +0 -99
  554. package/lib/middleware/__tests__/configMiddleware.test.d.ts +0 -1
  555. package/lib/middleware/__tests__/configMiddleware.test.js +0 -118
  556. package/lib/middleware/__tests__/gitMiddleware.test.d.ts +0 -1
  557. package/lib/middleware/__tests__/gitMiddleware.test.js +0 -43
  558. package/lib/middleware/__tests__/requestMiddleware.test.d.ts +0 -1
  559. package/lib/middleware/__tests__/requestMiddleware.test.js +0 -15
  560. package/lib/middleware/__tests__/usageTrackingMiddleware.test.d.ts +0 -1
  561. package/lib/middleware/__tests__/usageTrackingMiddleware.test.js +0 -44
  562. package/lib/middleware/__tests__/yargsChecksMiddleware.test.d.ts +0 -1
  563. package/lib/middleware/__tests__/yargsChecksMiddleware.test.js +0 -39
  564. package/lib/projects/__tests__/AppDevModeInterface.test.d.ts +0 -1
  565. package/lib/projects/__tests__/AppDevModeInterface.test.js +0 -541
  566. package/lib/projects/__tests__/DevServerManager.test.d.ts +0 -1
  567. package/lib/projects/__tests__/DevServerManager.test.js +0 -185
  568. package/lib/projects/__tests__/DevSessionManager.test.d.ts +0 -1
  569. package/lib/projects/__tests__/DevSessionManager.test.js +0 -250
  570. package/lib/projects/__tests__/LocalDevProcess.test.d.ts +0 -1
  571. package/lib/projects/__tests__/LocalDevProcess.test.js +0 -481
  572. package/lib/projects/__tests__/LocalDevWebsocketServer.test.d.ts +0 -1
  573. package/lib/projects/__tests__/LocalDevWebsocketServer.test.js +0 -231
  574. package/lib/projects/__tests__/ProjectLogsManager.test.d.ts +0 -1
  575. package/lib/projects/__tests__/ProjectLogsManager.test.js +0 -302
  576. package/lib/projects/__tests__/UIExtensionsDevModeInterface.test.d.ts +0 -1
  577. package/lib/projects/__tests__/UIExtensionsDevModeInterface.test.js +0 -160
  578. package/lib/projects/__tests__/components.test.d.ts +0 -1
  579. package/lib/projects/__tests__/components.test.js +0 -426
  580. package/lib/projects/__tests__/deploy.test.d.ts +0 -1
  581. package/lib/projects/__tests__/deploy.test.js +0 -231
  582. package/lib/projects/__tests__/localDevProjectHelpers.test.d.ts +0 -1
  583. package/lib/projects/__tests__/localDevProjectHelpers.test.js +0 -120
  584. package/lib/projects/__tests__/platformVersion.test.d.ts +0 -1
  585. package/lib/projects/__tests__/platformVersion.test.js +0 -63
  586. package/lib/projects/__tests__/pollProjectBuildAndDeploy.test.d.ts +0 -1
  587. package/lib/projects/__tests__/pollProjectBuildAndDeploy.test.js +0 -328
  588. package/lib/projects/__tests__/projectProfiles.test.d.ts +0 -1
  589. package/lib/projects/__tests__/projectProfiles.test.js +0 -441
  590. package/lib/projects/__tests__/projects.test.d.ts +0 -1
  591. package/lib/projects/__tests__/projects.test.js +0 -58
  592. package/lib/projects/__tests__/structure.test.d.ts +0 -1
  593. package/lib/projects/__tests__/structure.test.js +0 -210
  594. package/lib/projects/__tests__/uieLinting.test.d.ts +0 -1
  595. package/lib/projects/__tests__/uieLinting.test.js +0 -631
  596. package/lib/projects/__tests__/upload.test.d.ts +0 -1
  597. package/lib/projects/__tests__/upload.test.js +0 -183
  598. package/lib/projects/add/__tests__/legacyAddComponent.test.d.ts +0 -1
  599. package/lib/projects/add/__tests__/legacyAddComponent.test.js +0 -245
  600. package/lib/projects/add/__tests__/v2AddComponent.test.d.ts +0 -1
  601. package/lib/projects/add/__tests__/v2AddComponent.test.js +0 -343
  602. package/lib/projects/create/__tests__/legacy.test.d.ts +0 -1
  603. package/lib/projects/create/__tests__/legacy.test.js +0 -90
  604. package/lib/projects/create/__tests__/v2.test.d.ts +0 -1
  605. package/lib/projects/create/__tests__/v2.test.js +0 -257
  606. package/lib/projects/platformVersion.d.ts +0 -9
  607. package/lib/projects/platformVersion.js +0 -39
  608. package/lib/prompts/__tests__/createDeveloperTestAccountConfigPrompt.test.d.ts +0 -1
  609. package/lib/prompts/__tests__/createDeveloperTestAccountConfigPrompt.test.js +0 -157
  610. package/lib/prompts/__tests__/createFunctionPrompt.test.d.ts +0 -1
  611. package/lib/prompts/__tests__/createFunctionPrompt.test.js +0 -129
  612. package/lib/prompts/__tests__/createModulePrompt.test.d.ts +0 -1
  613. package/lib/prompts/__tests__/createModulePrompt.test.js +0 -187
  614. package/lib/prompts/__tests__/createTemplatePrompt.test.d.ts +0 -1
  615. package/lib/prompts/__tests__/createTemplatePrompt.test.js +0 -102
  616. package/lib/prompts/__tests__/downloadProjectPrompt.test.d.ts +0 -1
  617. package/lib/prompts/__tests__/downloadProjectPrompt.test.js +0 -31
  618. package/lib/prompts/__tests__/projectAddPrompt.test.d.ts +0 -1
  619. package/lib/prompts/__tests__/projectAddPrompt.test.js +0 -143
  620. package/lib/prompts/__tests__/projectsLogsPrompt.test.d.ts +0 -1
  621. package/lib/prompts/__tests__/projectsLogsPrompt.test.js +0 -37
  622. package/lib/prompts/__tests__/selectProjectTemplatePrompt.test.d.ts +0 -1
  623. package/lib/prompts/__tests__/selectProjectTemplatePrompt.test.js +0 -160
  624. package/lib/sandboxSync.d.ts +0 -4
  625. package/lib/sandboxSync.js +0 -102
  626. package/lib/theme/__tests__/migrate.test.d.ts +0 -1
  627. package/lib/theme/__tests__/migrate.test.js +0 -256
  628. package/lib/ui/__tests__/SpinniesManager.test.d.ts +0 -1
  629. package/lib/ui/__tests__/SpinniesManager.test.js +0 -488
  630. package/lib/ui/__tests__/removeAnsiCodes.test.d.ts +0 -1
  631. package/lib/ui/__tests__/removeAnsiCodes.test.js +0 -84
  632. package/mcp-server/tools/cms/__tests__/HsCreateFunctionTool.test.d.ts +0 -1
  633. package/mcp-server/tools/cms/__tests__/HsCreateFunctionTool.test.js +0 -255
  634. package/mcp-server/tools/cms/__tests__/HsCreateModuleTool.test.d.ts +0 -1
  635. package/mcp-server/tools/cms/__tests__/HsCreateModuleTool.test.js +0 -228
  636. package/mcp-server/tools/cms/__tests__/HsCreateTemplateTool.test.d.ts +0 -1
  637. package/mcp-server/tools/cms/__tests__/HsCreateTemplateTool.test.js +0 -209
  638. package/mcp-server/tools/cms/__tests__/HsFunctionLogsTool.test.d.ts +0 -1
  639. package/mcp-server/tools/cms/__tests__/HsFunctionLogsTool.test.js +0 -187
  640. package/mcp-server/tools/cms/__tests__/HsListFunctionsTool.test.d.ts +0 -1
  641. package/mcp-server/tools/cms/__tests__/HsListFunctionsTool.test.js +0 -125
  642. package/mcp-server/tools/cms/__tests__/HsListTool.test.d.ts +0 -1
  643. package/mcp-server/tools/cms/__tests__/HsListTool.test.js +0 -125
  644. package/mcp-server/tools/project/__tests__/AddFeatureToProjectTool.test.d.ts +0 -1
  645. package/mcp-server/tools/project/__tests__/AddFeatureToProjectTool.test.js +0 -158
  646. package/mcp-server/tools/project/__tests__/CreateProjectTool.test.d.ts +0 -1
  647. package/mcp-server/tools/project/__tests__/CreateProjectTool.test.js +0 -133
  648. package/mcp-server/tools/project/__tests__/CreateTestAccountTool.test.d.ts +0 -1
  649. package/mcp-server/tools/project/__tests__/CreateTestAccountTool.test.js +0 -462
  650. package/mcp-server/tools/project/__tests__/DeployProjectTool.test.d.ts +0 -1
  651. package/mcp-server/tools/project/__tests__/DeployProjectTool.test.js +0 -126
  652. package/mcp-server/tools/project/__tests__/DocFetchTool.test.d.ts +0 -1
  653. package/mcp-server/tools/project/__tests__/DocFetchTool.test.js +0 -125
  654. package/mcp-server/tools/project/__tests__/DocsSearchTool.test.d.ts +0 -1
  655. package/mcp-server/tools/project/__tests__/DocsSearchTool.test.js +0 -210
  656. package/mcp-server/tools/project/__tests__/GetApiUsagePatternsByAppIdTool.test.d.ts +0 -1
  657. package/mcp-server/tools/project/__tests__/GetApiUsagePatternsByAppIdTool.test.js +0 -178
  658. package/mcp-server/tools/project/__tests__/GetApplicationInfoTool.test.d.ts +0 -1
  659. package/mcp-server/tools/project/__tests__/GetApplicationInfoTool.test.js +0 -124
  660. package/mcp-server/tools/project/__tests__/GetBuildLogsTool.test.d.ts +0 -1
  661. package/mcp-server/tools/project/__tests__/GetBuildLogsTool.test.js +0 -307
  662. package/mcp-server/tools/project/__tests__/GetBuildStatusTool.test.d.ts +0 -1
  663. package/mcp-server/tools/project/__tests__/GetBuildStatusTool.test.js +0 -242
  664. package/mcp-server/tools/project/__tests__/GetConfigValuesTool.test.d.ts +0 -1
  665. package/mcp-server/tools/project/__tests__/GetConfigValuesTool.test.js +0 -209
  666. package/mcp-server/tools/project/__tests__/GuidedWalkthroughTool.test.d.ts +0 -1
  667. package/mcp-server/tools/project/__tests__/GuidedWalkthroughTool.test.js +0 -158
  668. package/mcp-server/tools/project/__tests__/UploadProjectTools.test.d.ts +0 -1
  669. package/mcp-server/tools/project/__tests__/UploadProjectTools.test.js +0 -179
  670. package/mcp-server/tools/project/__tests__/ValidateProjectTool.test.d.ts +0 -1
  671. package/mcp-server/tools/project/__tests__/ValidateProjectTool.test.js +0 -118
  672. package/mcp-server/utils/__tests__/command.test.d.ts +0 -1
  673. package/mcp-server/utils/__tests__/command.test.js +0 -45
  674. package/mcp-server/utils/__tests__/content.test.d.ts +0 -1
  675. package/mcp-server/utils/__tests__/content.test.js +0 -164
  676. package/mcp-server/utils/__tests__/feedbackTracking.test.d.ts +0 -1
  677. package/mcp-server/utils/__tests__/feedbackTracking.test.js +0 -124
  678. package/mcp-server/utils/__tests__/project.test.d.ts +0 -1
  679. package/mcp-server/utils/__tests__/project.test.js +0 -140
  680. package/mcp-server/utils/project.d.ts +0 -5
  681. package/mcp-server/utils/project.js +0 -18
@@ -0,0 +1,29 @@
1
+ export type ConfigType = 'local' | 'global';
2
+ export type ExecutionSource = 'ci' | 'mcp' | 'user';
3
+ export type UsageTrackingMeta = {
4
+ action?: string;
5
+ os?: string;
6
+ nodeVersion?: string;
7
+ nodeMajorVersion?: string;
8
+ version?: string;
9
+ command?: string;
10
+ authType?: string;
11
+ step?: string;
12
+ assetType?: string;
13
+ mode?: string;
14
+ type?: string | number;
15
+ file?: boolean;
16
+ successful?: boolean;
17
+ configType?: ConfigType;
18
+ executionSource?: ExecutionSource;
19
+ platformVersion?: string;
20
+ executionTime?: number;
21
+ };
22
+ export type UsageTrackingRequest = {
23
+ portalId?: number;
24
+ accountId?: number;
25
+ eventName: string;
26
+ eventClass: string;
27
+ meta: UsageTrackingMeta;
28
+ };
29
+ export declare function sendUsageEvent(request: UsageTrackingRequest): Promise<void>;
@@ -0,0 +1,28 @@
1
+ import { http } from '@hubspot/local-dev-lib/http';
2
+ import { http as unauthedHttp } from '@hubspot/local-dev-lib/http/unauthed';
3
+ import { getConfigAccountById } from '@hubspot/local-dev-lib/config';
4
+ const USAGE_PATH = 'local/dev/tools/proxy/v1/usage';
5
+ const USAGE_AUTHENTICATED_PATH = `${USAGE_PATH}/authenticated`;
6
+ export async function sendUsageEvent(request) {
7
+ const { accountId } = request;
8
+ if (accountId) {
9
+ try {
10
+ const account = getConfigAccountById(accountId);
11
+ if (account?.authType === 'personalaccesskey') {
12
+ await http.post(accountId, {
13
+ url: USAGE_AUTHENTICATED_PATH,
14
+ data: request,
15
+ });
16
+ return;
17
+ }
18
+ }
19
+ catch (_e) { }
20
+ }
21
+ try {
22
+ await unauthedHttp.post({
23
+ url: USAGE_PATH,
24
+ data: request,
25
+ });
26
+ }
27
+ catch (_e) { }
28
+ }
@@ -5,6 +5,7 @@ import chalk from 'chalk';
5
5
  import { validateUid } from '@hubspot/project-parsing-lib/uid';
6
6
  import { UNMIGRATABLE_REASONS } from '@hubspot/local-dev-lib/constants/projects';
7
7
  import { mapToUserFacingType } from '@hubspot/project-parsing-lib/transform';
8
+ import { AUTO_GENERATED_COMPONENT_TYPES } from '@hubspot/project-parsing-lib/constants';
8
9
  import { MIGRATION_STATUS } from '@hubspot/local-dev-lib/types/Migration';
9
10
  import { downloadProject, fetchProjectComponentsMetadata, } from '@hubspot/local-dev-lib/api/projects';
10
11
  import { Separator } from '@inquirer/prompts';
@@ -123,12 +124,21 @@ export async function selectAppToMigrate(allApps, derivedAccountId, appId) {
123
124
  const selectedApp = allApps.find(app => app.appId === appIdToMigrate);
124
125
  const migratableComponents = new Set();
125
126
  const unmigratableComponents = new Set();
127
+ let hasLegacyCrmCards = false;
126
128
  selectedApp?.migrationComponents.forEach(component => {
127
- if (component.isSupported) {
128
- migratableComponents.add(mapToUserFacingType(component.componentType));
129
+ const userFacingComponentType = mapToUserFacingType(component.componentType);
130
+ if (component.componentType === 'LEGACY_CRM_CARD' &&
131
+ !component.isSupported) {
132
+ hasLegacyCrmCards = true;
129
133
  }
130
- else {
131
- unmigratableComponents.add(mapToUserFacingType(component.componentType));
134
+ const shouldDisplayComponent = !AUTO_GENERATED_COMPONENT_TYPES.includes(userFacingComponentType);
135
+ if (shouldDisplayComponent) {
136
+ if (component.isSupported) {
137
+ migratableComponents.add(userFacingComponentType);
138
+ }
139
+ else {
140
+ unmigratableComponents.add(userFacingComponentType);
141
+ }
132
142
  }
133
143
  });
134
144
  if (migratableComponents.size !== 0) {
@@ -137,6 +147,9 @@ export async function selectAppToMigrate(allApps, derivedAccountId, appId) {
137
147
  if (unmigratableComponents.size !== 0) {
138
148
  uiLogger.log(lib.migrate.componentsThatWillNotBeMigrated(`\n - ${[...unmigratableComponents].join('\n - ')}`));
139
149
  }
150
+ if (hasLegacyCrmCards) {
151
+ uiLogger.info(lib.migrate.legacyCrmCardMigrationDocs());
152
+ }
140
153
  uiLogger.log('');
141
154
  const proceed = await confirmPrompt(lib.migrate.prompt.proceed, {
142
155
  defaultAnswer: false,
@@ -255,7 +268,7 @@ export async function pollMigrationStatus(derivedAccountId, migrationId, success
255
268
  return poll(() => checkMigrationStatusV2(derivedAccountId, migrationId), {
256
269
  successStates: [...successStates],
257
270
  errorStates: [...DEFAULT_POLLING_STATUS_LOOKUP.errorStates],
258
- });
271
+ }, 300_000);
259
272
  }
260
273
  export async function finalizeAppMigration(derivedAccountId, migrationId, uidMap, projectName) {
261
274
  let pollResponse;
@@ -1,7 +1,7 @@
1
1
  import { DeveloperTestAccountConfig } from '@hubspot/local-dev-lib/types/developerTestAccounts';
2
2
  import { Environment } from '@hubspot/local-dev-lib/types/Accounts';
3
3
  import { HubSpotConfigAccount } from '@hubspot/local-dev-lib/types/Accounts';
4
- import { SandboxResponse, V2Sandbox } from '@hubspot/local-dev-lib/types/Sandbox';
4
+ import { V2Sandbox } from '@hubspot/local-dev-lib/types/Sandbox';
5
5
  import { SandboxAccountType } from '../types/Sandboxes.js';
6
6
  export declare function saveAccountToConfig(accountId: number | undefined, accountName: string, env: Environment, personalAccessKey?: string, force?: boolean): Promise<string>;
7
7
  export declare function createDeveloperTestAccountV2(parentAccountId: number, testAccountConfig: DeveloperTestAccountConfig): Promise<{
@@ -10,11 +10,6 @@ export declare function createDeveloperTestAccountV2(parentAccountId: number, te
10
10
  personalAccessKey?: string;
11
11
  }>;
12
12
  export declare function buildDeveloperTestAccount(testAccountName: string, parentAccountConfig: HubSpotConfigAccount, env: Environment, portalLimit: number, useV2?: boolean): Promise<number>;
13
- type SandboxAccount = SandboxResponse & {
14
- name: string;
15
- };
16
- export declare function buildSandbox(sandboxName: string, parentAccountConfig: HubSpotConfigAccount, sandboxType: SandboxAccountType, env: Environment, force?: boolean): Promise<SandboxAccount>;
17
13
  export declare function buildV2Sandbox(sandboxName: string, parentAccountConfig: HubSpotConfigAccount, sandboxType: SandboxAccountType, syncObjectRecords: boolean, env: Environment, force?: boolean): Promise<{
18
14
  sandbox: V2Sandbox;
19
15
  }>;
20
- export {};
@@ -3,13 +3,14 @@ import { getConfigAccountIfExists, updateConfigAccount, } from '@hubspot/local-d
3
3
  import { uiLogger } from './ui/logger.js';
4
4
  import { createDeveloperTestAccount, fetchDeveloperTestAccountGateSyncStatus, generateDeveloperTestAccountPersonalAccessKey, } from '@hubspot/local-dev-lib/api/developerTestAccounts';
5
5
  import { HUBSPOT_ACCOUNT_TYPES } from '@hubspot/local-dev-lib/constants/config';
6
- import { createSandbox, createV2Sandbox, getSandboxPersonalAccessKey, } from '@hubspot/local-dev-lib/api/sandboxHubs';
6
+ import { createV2Sandbox, getSandboxPersonalAccessKey, } from '@hubspot/local-dev-lib/api/sandboxHubs';
7
+ import { isPromptExitError } from './errors/PromptExitError.js';
7
8
  import { personalAccessKeyPrompt } from './prompts/personalAccessKeyPrompt.js';
8
9
  import { createDeveloperTestAccountConfigPrompt } from './prompts/createDeveloperTestAccountConfigPrompt.js';
9
10
  import { cliAccountNamePrompt } from './prompts/accountNamePrompt.js';
10
11
  import SpinniesManager from './ui/SpinniesManager.js';
11
12
  import { debugError, logError } from './errorHandlers/index.js';
12
- import { SANDBOX_API_TYPE_MAP, SANDBOX_TYPE_MAP_V2, handleSandboxCreateError, } from './sandboxes.js';
13
+ import { SANDBOX_TYPE_MAP_V2, handleSandboxCreateError } from './sandboxes.js';
13
14
  import { handleDeveloperTestAccountCreateError } from './developerTestAccounts.js';
14
15
  import { lib } from '../lang/en.js';
15
16
  import { poll } from './polling.js';
@@ -127,51 +128,14 @@ export async function buildDeveloperTestAccount(testAccountName, parentAccountCo
127
128
  await saveAccountToConfig(developerTestAccountId, testAccountName, env, developerTestAccountPersonalAccessKey);
128
129
  }
129
130
  catch (err) {
131
+ if (isPromptExitError(err)) {
132
+ throw err;
133
+ }
130
134
  logError(err);
131
135
  throw err;
132
136
  }
133
137
  return developerTestAccountId;
134
138
  }
135
- export async function buildSandbox(sandboxName, parentAccountConfig, sandboxType, env, force = false) {
136
- const sandboxTypeKey = sandboxType === HUBSPOT_ACCOUNT_TYPES.STANDARD_SANDBOX
137
- ? 'standard'
138
- : 'developer';
139
- const parentAccountId = parentAccountConfig.accountId;
140
- if (!parentAccountId) {
141
- throw new Error(lib.sandbox.create[sandboxTypeKey].loading.fail(''));
142
- }
143
- SpinniesManager.init({
144
- succeedColor: 'white',
145
- });
146
- uiLogger.log('');
147
- SpinniesManager.add('buildSandbox', {
148
- text: lib.sandbox.create[sandboxTypeKey].loading.add(sandboxName),
149
- });
150
- let sandbox;
151
- try {
152
- const sandboxApiType = SANDBOX_API_TYPE_MAP[sandboxType];
153
- const { data } = await createSandbox(parentAccountId, sandboxName, sandboxApiType);
154
- sandbox = { name: sandboxName, ...data };
155
- SpinniesManager.succeed('buildSandbox', {
156
- text: lib.sandbox.create[sandboxTypeKey].loading.succeed(sandboxName, sandbox.sandbox.sandboxHubId.toString()),
157
- });
158
- }
159
- catch (e) {
160
- debugError(e);
161
- SpinniesManager.fail('buildSandbox', {
162
- text: lib.sandbox.create[sandboxTypeKey].loading.fail(sandboxName),
163
- });
164
- handleSandboxCreateError(e, env, sandboxName, parentAccountId);
165
- }
166
- try {
167
- await saveAccountToConfig(sandbox.sandbox.sandboxHubId, sandboxName, env, sandbox.personalAccessKey, force);
168
- }
169
- catch (err) {
170
- logError(err);
171
- throw err;
172
- }
173
- return sandbox;
174
- }
175
139
  export async function buildV2Sandbox(sandboxName, parentAccountConfig, sandboxType, syncObjectRecords, env, force = false) {
176
140
  const sandboxTypeKey = sandboxType === HUBSPOT_ACCOUNT_TYPES.STANDARD_SANDBOX
177
141
  ? 'standard'
@@ -210,6 +174,9 @@ export async function buildV2Sandbox(sandboxName, parentAccountConfig, sandboxTy
210
174
  await saveAccountToConfig(sandbox.sandboxHubId, sandboxName, env, pak, force);
211
175
  }
212
176
  catch (err) {
177
+ if (isPromptExitError(err)) {
178
+ throw err;
179
+ }
213
180
  logError(err);
214
181
  throw err;
215
182
  }
@@ -18,12 +18,6 @@ export const commandSuggestionMappings = {
18
18
  'theme generate-selectors': 'hs cms theme generate-selectors',
19
19
  'theme marketplace-validate': 'hs cms theme marketplace-validate',
20
20
  'theme preview': 'hs cms theme preview',
21
- 'custom-object schema create': 'hs custom-object create-schema',
22
- 'custom-object schema delete': 'hs custom-object delete-schema',
23
- 'custom-object schema fetch-all': 'hs custom-object fetch-all-schemas',
24
- 'custom-object schema fetch': 'hs custom-object fetch-schema',
25
- 'custom-object schema list': 'hs custom-object list-schemas',
26
- 'custom-object schema update': 'hs custom-object update-schema',
27
21
  };
28
22
  function createCommandSuggestionHandler(newCommand) {
29
23
  return () => {
@@ -35,7 +29,7 @@ function createCommandSuggestion(oldCommand, newCommand) {
35
29
  return {
36
30
  command: oldCommand,
37
31
  builder: async (yargs) => {
38
- return yargs.strict(false);
32
+ return yargs.strict(false).help(false).version(false);
39
33
  },
40
34
  handler: createCommandSuggestionHandler(newCommand),
41
35
  };
@@ -4,6 +4,7 @@ export declare const FEEDBACK_INTERVAL: 10;
4
4
  export declare const HUBSPOT_FOLDER: "@hubspot";
5
5
  export declare const MARKETPLACE_FOLDER: "@marketplace";
6
6
  export declare const DEFAULT_POLLING_DELAY = 2000;
7
+ export declare const PREVIEW_POLL_TIMEOUT: number;
7
8
  export declare const PROJECT_CONFIG_FILE: "hsproject.json";
8
9
  export declare const PROJECT_BUILD_STATES: {
9
10
  readonly BUILDING: "BUILDING";
@@ -77,11 +78,7 @@ export declare const APP_AUTH_TYPES: {
77
78
  };
78
79
  export declare const FEATURES: {
79
80
  readonly UNIFIED_APPS: "Developers:UnifiedApps:PrivateBeta";
80
- readonly SANDBOXES_V2: "sandboxes:v2:enabled";
81
- readonly SANDBOXES_V2_CLI: "sandboxes:v2:cliEnabled";
82
81
  readonly APP_EVENTS: "Developers:UnifiedApps:AppEventsAccess";
83
- readonly APPS_HOME: "UIE:AppHome";
84
- readonly MCP_ACCESS: "Developers:CLIMCPAccess";
85
82
  readonly THEME_MIGRATION_2025_2: "Developers:ProjectThemeMigrations:2025.2";
86
83
  readonly AGENT_TOOLS: "ThirdPartyAgentTools";
87
84
  };
@@ -145,3 +142,5 @@ export declare const ACCOUNT_LEVELS: {
145
142
  readonly ENTERPRISE: "ENTERPRISE";
146
143
  };
147
144
  export declare const ACCOUNT_LEVEL_CHOICES: readonly ["FREE", "STARTER", "PROFESSIONAL", "ENTERPRISE"];
145
+ export declare const FEEDBACK_URL = "https://developers.hubspot.com/feedback";
146
+ export declare const LOCAL_DEV_DEFAULT_PORT = 4828;
package/lib/constants.js CHANGED
@@ -4,6 +4,7 @@ export const FEEDBACK_INTERVAL = 10;
4
4
  export const HUBSPOT_FOLDER = '@hubspot';
5
5
  export const MARKETPLACE_FOLDER = '@marketplace';
6
6
  export const DEFAULT_POLLING_DELAY = 2000;
7
+ export const PREVIEW_POLL_TIMEOUT = 5 * 60 * 1000;
7
8
  export const PROJECT_CONFIG_FILE = 'hsproject.json';
8
9
  export const PROJECT_BUILD_STATES = {
9
10
  BUILDING: 'BUILDING',
@@ -69,11 +70,7 @@ export const APP_AUTH_TYPES = {
69
70
  };
70
71
  export const FEATURES = {
71
72
  UNIFIED_APPS: 'Developers:UnifiedApps:PrivateBeta',
72
- SANDBOXES_V2: 'sandboxes:v2:enabled',
73
- SANDBOXES_V2_CLI: 'sandboxes:v2:cliEnabled',
74
73
  APP_EVENTS: 'Developers:UnifiedApps:AppEventsAccess',
75
- APPS_HOME: 'UIE:AppHome',
76
- MCP_ACCESS: 'Developers:CLIMCPAccess',
77
74
  THEME_MIGRATION_2025_2: 'Developers:ProjectThemeMigrations:2025.2',
78
75
  AGENT_TOOLS: 'ThirdPartyAgentTools',
79
76
  };
@@ -146,3 +143,7 @@ export const ACCOUNT_LEVEL_CHOICES = [
146
143
  ACCOUNT_LEVELS.PROFESSIONAL,
147
144
  ACCOUNT_LEVELS.ENTERPRISE,
148
145
  ];
146
+ export const FEEDBACK_URL = 'https://developers.hubspot.com/feedback';
147
+ // TODO: remove this constant and use PORT_MANAGER_SERVER_PORT from
148
+ // @hubspot/local-dev-lib once LDL changes its default to 4828.
149
+ export const LOCAL_DEV_DEFAULT_PORT = 4828;
@@ -1,4 +1,4 @@
1
- import { prefixOptions } from '../ui/spinniesUtils.js';
1
+ import { getLabels } from '@hubspot/local-dev-lib/logger';
2
2
  import chalk from 'chalk';
3
3
  import { helpers } from '../interpolation.js';
4
4
  import { uiAccountDescription } from '../ui/index.js';
@@ -10,11 +10,11 @@ export class Diagnosis {
10
10
  errorCount = 0;
11
11
  warningCount = 0;
12
12
  constructor({ diagnosticInfo, accountId }) {
13
- const { succeedPrefix, failPrefix } = prefixOptions({});
13
+ const labels = getLabels();
14
14
  this.prefixes = {
15
- success: chalk.green(succeedPrefix),
16
- error: chalk.red(failPrefix),
17
- warning: helpers.orange('!'),
15
+ success: chalk.green(labels.success),
16
+ error: chalk.red(labels.error),
17
+ warning: helpers.orange(labels.warning),
18
18
  };
19
19
  this.diagnosis = {
20
20
  cli: {
@@ -10,8 +10,8 @@ import fs from 'fs';
10
10
  import path from 'path';
11
11
  import { Diagnosis } from './Diagnosis.js';
12
12
  import { DiagnosticInfoBuilder, } from './DiagnosticInfoBuilder.js';
13
- import { isPortManagerPortAvailable } from '@hubspot/local-dev-lib/portManager';
14
- import { PORT_MANAGER_SERVER_PORT } from '@hubspot/local-dev-lib/constants/ports';
13
+ import { isPortAvailable } from '@hubspot/local-dev-lib/portManager';
14
+ import { LOCAL_DEV_DEFAULT_PORT } from '../constants.js';
15
15
  import { accessTokenForPersonalAccessKey,
16
16
  // scopesOnAccessToken,
17
17
  } from '@hubspot/local-dev-lib/personalAccessKey';
@@ -26,7 +26,7 @@ import { isServerRunningAtUrl } from '../http.js';
26
26
  import { WEBHOOKS_KEY, APP_KEY } from '@hubspot/project-parsing-lib/constants';
27
27
  import { validateProjectConfig } from '../projects/config.js';
28
28
  import { validateSourceDirectory, handleTranslate, } from '../projects/upload.js';
29
- import { isV2Project } from '../projects/platformVersion.js';
29
+ import { isLegacyProject } from '@hubspot/project-parsing-lib/projects';
30
30
  import { validateProjectForProfile } from '../projects/projectProfiles.js';
31
31
  import { getAllHsProfiles } from '@hubspot/project-parsing-lib/profiles';
32
32
  const minMajorNodeVersion = 20;
@@ -322,16 +322,16 @@ export class Doctor {
322
322
  }
323
323
  }
324
324
  async checkIfPortsAreAvailable() {
325
- if (await isPortManagerPortAvailable()) {
325
+ if (await isPortAvailable(LOCAL_DEV_DEFAULT_PORT)) {
326
326
  this.diagnosis?.addProjectSection({
327
327
  type: 'success',
328
- message: lib.doctor.port.available(PORT_MANAGER_SERVER_PORT),
328
+ message: lib.doctor.port.available(LOCAL_DEV_DEFAULT_PORT),
329
329
  });
330
330
  return;
331
331
  }
332
332
  this.diagnosis?.addProjectSection({
333
333
  type: 'warning',
334
- message: lib.doctor.port.inUse(PORT_MANAGER_SERVER_PORT),
334
+ message: lib.doctor.port.inUse(LOCAL_DEV_DEFAULT_PORT),
335
335
  secondaryMessaging: lib.doctor.port.inUseSecondary,
336
336
  });
337
337
  }
@@ -534,7 +534,7 @@ export class Doctor {
534
534
  if (!this.validateProjectConfigWrapper(projectConfig, projectDir)) {
535
535
  return;
536
536
  }
537
- if (!isV2Project(projectConfig.platformVersion)) {
537
+ if (isLegacyProject(projectConfig.platformVersion)) {
538
538
  this.diagnosis?.addProjectSection({
539
539
  type: 'success',
540
540
  message: lib.doctor.projectValidation.valid,
@@ -7,11 +7,12 @@ import util from 'util';
7
7
  import { isProjectValidationError } from '../errors/ProjectValidationError.js';
8
8
  export function logError(error, context) {
9
9
  debugError(error, context);
10
- if (isProjectValidationError(error)) {
11
- uiLogger.error(error.message);
10
+ // This should be right after debugError. Add anything else below it
11
+ if (shouldSuppressError(error, context)) {
12
12
  return;
13
13
  }
14
- if (shouldSuppressError(error, context)) {
14
+ if (isProjectValidationError(error)) {
15
+ uiLogger.error(error.message);
15
16
  return;
16
17
  }
17
18
  if (isHubSpotHttpError(error)) {
@@ -3,6 +3,7 @@ import { uiLogger } from '../ui/logger.js';
3
3
  import { PLATFORM_VERSION_ERROR_TYPES } from '../constants.js';
4
4
  import { lib } from '../../lang/en.js';
5
5
  import { uiAccountDescription, uiLine, uiLink } from '../ui/index.js';
6
+ import { isPromptExitError } from '../errors/PromptExitError.js';
6
7
  function createPlatformVersionError(err, subCategory) {
7
8
  let translationKey = 'unspecifiedPlatformVersion';
8
9
  let platformVersion = 'unspecified platformVersion';
@@ -27,6 +28,9 @@ function createPlatformVersionError(err, subCategory) {
27
28
  uiLine();
28
29
  }
29
30
  export function shouldSuppressError(err, context) {
31
+ if (isPromptExitError(err)) {
32
+ return true;
33
+ }
30
34
  if (isMissingScopeError(err)) {
31
35
  uiLogger.error(lib.errorHandlers.suppressErrors.missingScopeError(context?.request || 'request', context?.accountId ? uiAccountDescription(context.accountId) : ''));
32
36
  return true;
@@ -0,0 +1,6 @@
1
+ import { ExitCode } from '../../types/Yargs.js';
2
+ export declare class PromptExitError extends Error {
3
+ exitCode: ExitCode;
4
+ constructor(message: string, exitCode: ExitCode);
5
+ }
6
+ export declare function isPromptExitError(e: unknown): e is PromptExitError;
@@ -0,0 +1,11 @@
1
+ export class PromptExitError extends Error {
2
+ exitCode;
3
+ constructor(message, exitCode) {
4
+ super(message);
5
+ this.name = 'PromptExitError';
6
+ this.exitCode = exitCode;
7
+ }
8
+ }
9
+ export function isPromptExitError(e) {
10
+ return e instanceof PromptExitError;
11
+ }
@@ -1,5 +1,4 @@
1
1
  import fs from 'fs';
2
- import { EXIT_CODES } from './enums/exitCodes.js';
3
2
  import { commands } from '../lang/en.js';
4
3
  import { uiLogger } from './ui/logger.js';
5
4
  const CSS_COMMENTS_REGEX = new RegExp(/\/\*.*\*\//, 'g');
@@ -12,7 +11,7 @@ export function findFieldsJsonPath(basePath) {
12
11
  const _path = basePath.endsWith('/') ? basePath.slice(0, -1) : basePath;
13
12
  if (!fs.existsSync(_path)) {
14
13
  uiLogger.error(commands.cms.subcommands.theme.subcommands.generateSelectors.errors.invalidPath(basePath));
15
- process.exit(EXIT_CODES.ERROR);
14
+ return null;
16
15
  }
17
16
  const files = fs.readdirSync(_path);
18
17
  if (files.includes('fields.json')) {
@@ -35,3 +35,16 @@ export declare function uploadAndDeployAction({ accountId, projectDest, }: {
35
35
  projectDest: string;
36
36
  }): Promise<UploadAndDeployResult>;
37
37
  export declare function trackGetStartedUsage(params: Record<string, unknown>, accountId: number): Promise<void>;
38
+ export type PollAppInstallationOptions = {
39
+ accountId: number;
40
+ projectId: number;
41
+ appUid: string;
42
+ requiredScopes?: string[];
43
+ optionalScopes?: string[];
44
+ timeoutMs?: number;
45
+ intervalMs?: number;
46
+ onTimeout?: () => void;
47
+ };
48
+ export declare function pollAppInstallation({ accountId, projectId, appUid, requiredScopes, optionalScopes, timeoutMs, // 2 minutes
49
+ intervalMs, // 2 seconds
50
+ onTimeout, }: PollAppInstallationOptions): Promise<void>;
@@ -1,6 +1,7 @@
1
1
  import fs from 'fs-extra';
2
2
  import path from 'path';
3
3
  import { fetchPublicAppsForPortal } from '@hubspot/local-dev-lib/api/appsDev';
4
+ import { fetchAppInstallationData } from '@hubspot/local-dev-lib/api/localDevAuth';
4
5
  import { fetchProject } from '@hubspot/local-dev-lib/api/projects';
5
6
  import { getConfigAccountEnvironment } from '@hubspot/local-dev-lib/config';
6
7
  import { cloneGithubRepo } from '@hubspot/local-dev-lib/github';
@@ -12,7 +13,7 @@ import { getStaticAuthAppInstallUrl } from '../lib/app/urls.js';
12
13
  import { HUBSPOT_PROJECT_COMPONENTS_GITHUB_PATH, PROJECT_CONFIG_FILE, } from '../lib/constants.js';
13
14
  import { ProjectNestingError, ProjectConfigNotFoundError, ProjectValidationError, ProjectUploadError, ProjectBuildDeployError, } from './errors/ProjectErrors.js';
14
15
  import { getProjectConfig, validateProjectConfig, writeProjectConfig, } from '../lib/projects/config.js';
15
- import { isV2Project } from '../lib/projects/platformVersion.js';
16
+ import { isLegacyProject } from '@hubspot/project-parsing-lib/projects';
16
17
  import { pollProjectBuildAndDeploy } from '../lib/projects/pollProjectBuildAndDeploy.js';
17
18
  import { handleProjectUpload } from '../lib/projects/upload.js';
18
19
  import { validateProjectDirectory } from '../lib/prompts/projectNameAndDestPrompt.js';
@@ -36,7 +37,7 @@ export async function createProjectAction({ projectName, projectDest, }) {
36
37
  }
37
38
  try {
38
39
  await cloneGithubRepo(HUBSPOT_PROJECT_COMPONENTS_GITHUB_PATH, projectDestAbsolute, {
39
- sourceDir: '2025.2/private-app-get-started-template',
40
+ sourceDir: '2026.03/private-app-get-started-template',
40
41
  hideLogs: true,
41
42
  });
42
43
  const projectConfigPath = path.join(projectDestAbsolute, PROJECT_CONFIG_FILE);
@@ -108,7 +109,7 @@ export async function uploadAndDeployAction({ accountId, projectDest, }) {
108
109
  uploadMessage: commands.getStarted.logs.initialUploadMessage,
109
110
  forceCreate: true,
110
111
  isUploadCommand: false,
111
- sendIR: isV2Project(projectConfig.platformVersion),
112
+ sendIR: !isLegacyProject(projectConfig.platformVersion),
112
113
  skipValidation: false,
113
114
  });
114
115
  if (uploadError) {
@@ -144,3 +145,55 @@ export async function uploadAndDeployAction({ accountId, projectDest, }) {
144
145
  export function trackGetStartedUsage(params, accountId) {
145
146
  return trackCommandMetadataUsage('get-started', params, accountId);
146
147
  }
148
+ export async function pollAppInstallation({ accountId, projectId, appUid, requiredScopes = [], optionalScopes = [], timeoutMs = 2 * 60 * 1000, // 2 minutes
149
+ intervalMs = 2000, // 2 seconds
150
+ onTimeout, }) {
151
+ return new Promise((resolve, reject) => {
152
+ let consecutiveErrors = 0;
153
+ const MAX_CONSECUTIVE_ERRORS = 5;
154
+ let pollInterval = null;
155
+ let pollTimeout = null;
156
+ const cleanup = () => {
157
+ if (pollInterval) {
158
+ clearTimeout(pollInterval);
159
+ pollInterval = null;
160
+ }
161
+ if (pollTimeout) {
162
+ clearTimeout(pollTimeout);
163
+ pollTimeout = null;
164
+ }
165
+ };
166
+ pollTimeout = setTimeout(() => {
167
+ cleanup();
168
+ if (onTimeout) {
169
+ onTimeout();
170
+ }
171
+ resolve(); // Resolve instead of reject to allow continuing with timeout state
172
+ }, timeoutMs);
173
+ const poll = async () => {
174
+ try {
175
+ const { data } = await fetchAppInstallationData(accountId, projectId, appUid, requiredScopes, optionalScopes);
176
+ // Reset error counter on successful fetch
177
+ consecutiveErrors = 0;
178
+ if (data.isInstalledWithScopeGroups) {
179
+ cleanup();
180
+ resolve();
181
+ }
182
+ else if (pollInterval) {
183
+ pollInterval = setTimeout(poll, intervalMs);
184
+ }
185
+ }
186
+ catch (error) {
187
+ consecutiveErrors++;
188
+ if (consecutiveErrors >= MAX_CONSECUTIVE_ERRORS) {
189
+ cleanup();
190
+ reject(new Error(`Failed to check app installation status after ${MAX_CONSECUTIVE_ERRORS} consecutive errors`, { cause: error }));
191
+ }
192
+ else if (pollInterval !== null) {
193
+ pollInterval = setTimeout(poll, intervalMs);
194
+ }
195
+ }
196
+ };
197
+ pollInterval = setTimeout(poll, 0);
198
+ });
199
+ }
package/lib/hasFeature.js CHANGED
@@ -1,7 +1,6 @@
1
1
  import { http } from '@hubspot/local-dev-lib/http';
2
2
  import { fetchEnabledFeatures } from '@hubspot/local-dev-lib/api/localDevAuth';
3
- import { FEATURES } from './constants.js';
4
- const FEATURES_THAT_DEFAULT_ON = [FEATURES.APPS_HOME];
3
+ const FEATURES_THAT_DEFAULT_ON = [];
5
4
  export async function hasFeature(accountId, feature) {
6
5
  const { data: { enabledFeatures }, } = await fetchEnabledFeatures(accountId);
7
6
  if (enabledFeatures[feature] === undefined &&
@@ -0,0 +1,10 @@
1
+ export interface AccountRow {
2
+ name: string;
3
+ accountId: string;
4
+ }
5
+ export declare function buildAccountRow(accountId: number, isDefault: boolean): AccountRow;
6
+ export declare function buildAccountHeader(nameColumnWidth: number): string;
7
+ export declare function getNameColumnWidth(rows: AccountRow[]): number;
8
+ export declare function sortDefaultFirst<T extends number | {
9
+ accountId: number;
10
+ }>(items: T[], defaultAccount: number | undefined): T[];
@@ -0,0 +1,39 @@
1
+ import { HUBSPOT_ACCOUNT_TYPE_STRINGS } from '@hubspot/local-dev-lib/constants/config';
2
+ import { getConfigAccountIfExists } from '@hubspot/local-dev-lib/config';
3
+ import chalk from 'chalk';
4
+ import { commands } from '../../lang/en.js';
5
+ import { indent } from '../ui/index.js';
6
+ import { INK_COLORS } from '../../ui/styles.js';
7
+ export function buildAccountRow(accountId, isDefault) {
8
+ const account = getConfigAccountIfExists(accountId);
9
+ let name = String(accountId);
10
+ if (account && account.accountType) {
11
+ const typeStr = HUBSPOT_ACCOUNT_TYPE_STRINGS[account.accountType];
12
+ name = `${account.name} [${typeStr}]`;
13
+ }
14
+ if (isDefault) {
15
+ name = `${name} (default)`;
16
+ }
17
+ return { name, accountId: String(accountId) };
18
+ }
19
+ export function buildAccountHeader(nameColumnWidth) {
20
+ const labels = commands.account.subcommands.list.labels;
21
+ const paddedName = chalk.bold(chalk.hex(INK_COLORS.INFO_BLUE)(labels.name.padEnd(nameColumnWidth)));
22
+ const accountId = chalk.bold(chalk.hex(INK_COLORS.INFO_BLUE)(labels.accountId));
23
+ return `${indent(1)}${paddedName} ${accountId}`;
24
+ }
25
+ export function getNameColumnWidth(rows) {
26
+ const labels = commands.account.subcommands.list.labels;
27
+ return Math.max(labels.name.length, ...rows.map(r => r.name.length));
28
+ }
29
+ export function sortDefaultFirst(items, defaultAccount) {
30
+ return [...items].sort((a, b) => {
31
+ const aId = typeof a === 'number' ? a : a.accountId;
32
+ const bId = typeof b === 'number' ? b : b.accountId;
33
+ if (aId === defaultAccount)
34
+ return -1;
35
+ if (bId === defaultAccount)
36
+ return 1;
37
+ return 0;
38
+ });
39
+ }
@@ -0,0 +1,18 @@
1
+ import { HsSettingsFile } from '@hubspot/local-dev-lib/types/HsSettings';
2
+ import { ActionHandlerParams, ActionResult, LinkArgs } from '../../types/Link.js';
3
+ import { ArgumentsCamelCase } from 'yargs';
4
+ export declare class ActionHandlers {
5
+ static link({ state, context, }: ActionHandlerParams): Promise<ActionResult>;
6
+ static unlink({ state }: ActionHandlerParams): Promise<ActionResult>;
7
+ static authenticate({ state, context, args, }: ActionHandlerParams): Promise<ActionResult>;
8
+ static cancel(): Promise<ActionResult>;
9
+ }
10
+ export declare function handleLinkFlow({ settings, accountOverrideId, args, }: {
11
+ settings: HsSettingsFile;
12
+ accountOverrideId: number | null;
13
+ args: ArgumentsCamelCase<LinkArgs>;
14
+ }): Promise<ActionResult>;
15
+ export declare function handleLinkedUseAction({ state, targetAccountId, }: {
16
+ state: HsSettingsFile;
17
+ targetAccountId?: number;
18
+ }): Promise<ActionResult>;