@hubspot/cli 8.0.10-experimental.6 → 8.0.10-experimental.7

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 (657) hide show
  1. package/api/migrate.d.ts +77 -0
  2. package/api/migrate.js +55 -0
  3. package/bin/cli.d.ts +2 -0
  4. package/bin/cli.js +136 -0
  5. package/bin/hs.d.ts +2 -0
  6. package/bin/hscms.d.ts +2 -0
  7. package/bin/silenceErrors.d.ts +2 -0
  8. package/bin/silenceErrors.js +11 -0
  9. package/commands/account/auth.d.ts +8 -0
  10. package/commands/account/auth.js +102 -0
  11. package/commands/account/clean.d.ts +6 -0
  12. package/commands/account/clean.js +125 -0
  13. package/commands/account/createOverride.d.ts +6 -0
  14. package/commands/account/createOverride.js +93 -0
  15. package/commands/account/info.d.ts +4 -0
  16. package/commands/account/info.js +75 -0
  17. package/commands/account/list.d.ts +4 -0
  18. package/commands/account/list.js +107 -0
  19. package/commands/account/remove.d.ts +6 -0
  20. package/commands/account/remove.js +87 -0
  21. package/commands/account/removeOverride.d.ts +6 -0
  22. package/commands/account/removeOverride.js +71 -0
  23. package/commands/account/rename.d.ts +7 -0
  24. package/commands/account/rename.js +51 -0
  25. package/commands/account/use.d.ts +6 -0
  26. package/commands/account/use.js +93 -0
  27. package/commands/account.d.ts +3 -0
  28. package/commands/account.js +35 -0
  29. package/commands/app/migrate.d.ts +6 -0
  30. package/commands/app/migrate.js +96 -0
  31. package/commands/app/secret/add.d.ts +7 -0
  32. package/commands/app/secret/add.js +63 -0
  33. package/commands/app/secret/delete.d.ts +8 -0
  34. package/commands/app/secret/delete.js +86 -0
  35. package/commands/app/secret/list.d.ts +6 -0
  36. package/commands/app/secret/list.js +63 -0
  37. package/commands/app/secret/update.d.ts +7 -0
  38. package/commands/app/secret/update.js +76 -0
  39. package/commands/app/secret.d.ts +3 -0
  40. package/commands/app/secret.js +26 -0
  41. package/commands/app.d.ts +3 -0
  42. package/commands/app.js +18 -0
  43. package/commands/auth.d.ts +9 -0
  44. package/commands/auth.js +190 -0
  45. package/commands/cms/app/create.d.ts +9 -0
  46. package/commands/cms/app/create.js +81 -0
  47. package/commands/cms/app.d.ts +3 -0
  48. package/commands/cms/app.js +17 -0
  49. package/commands/cms/convertFields.d.ts +7 -0
  50. package/commands/cms/convertFields.js +97 -0
  51. package/commands/cms/delete.d.ts +6 -0
  52. package/commands/cms/delete.js +43 -0
  53. package/commands/cms/fetch.d.ts +12 -0
  54. package/commands/cms/fetch.js +80 -0
  55. package/commands/cms/function/create.d.ts +12 -0
  56. package/commands/cms/function/create.js +84 -0
  57. package/commands/cms/function/deploy.d.ts +6 -0
  58. package/commands/cms/function/deploy.js +89 -0
  59. package/commands/cms/function/list.d.ts +6 -0
  60. package/commands/cms/function/list.js +59 -0
  61. package/commands/cms/function/logs.d.ts +10 -0
  62. package/commands/cms/function/logs.js +136 -0
  63. package/commands/cms/function/server.d.ts +10 -0
  64. package/commands/cms/function/server.js +69 -0
  65. package/commands/cms/function.d.ts +3 -0
  66. package/commands/cms/function.js +27 -0
  67. package/commands/cms/getReactModule.d.ts +7 -0
  68. package/commands/cms/getReactModule.js +77 -0
  69. package/commands/cms/lighthouseScore.d.ts +8 -0
  70. package/commands/cms/lighthouseScore.js +281 -0
  71. package/commands/cms/lint.d.ts +6 -0
  72. package/commands/cms/lint.js +83 -0
  73. package/commands/cms/list.d.ts +6 -0
  74. package/commands/cms/list.js +96 -0
  75. package/commands/cms/module/create.d.ts +11 -0
  76. package/commands/cms/module/create.js +84 -0
  77. package/commands/cms/module/marketplace-validate.d.ts +6 -0
  78. package/commands/cms/module/marketplace-validate.js +62 -0
  79. package/commands/cms/module.d.ts +3 -0
  80. package/commands/cms/module.js +21 -0
  81. package/commands/cms/mv.d.ts +7 -0
  82. package/commands/cms/mv.js +60 -0
  83. package/commands/cms/template/create.d.ts +9 -0
  84. package/commands/cms/template/create.js +72 -0
  85. package/commands/cms/template.d.ts +3 -0
  86. package/commands/cms/template.js +17 -0
  87. package/commands/cms/theme/create.d.ts +6 -0
  88. package/commands/cms/theme/create.js +58 -0
  89. package/commands/cms/theme/generate-selectors.d.ts +6 -0
  90. package/commands/cms/theme/generate-selectors.js +171 -0
  91. package/commands/cms/theme/marketplace-validate.d.ts +6 -0
  92. package/commands/cms/theme/marketplace-validate.js +64 -0
  93. package/commands/cms/theme/preview.d.ts +11 -0
  94. package/commands/cms/theme/preview.js +126 -0
  95. package/commands/cms/theme.d.ts +3 -0
  96. package/commands/cms/theme.js +25 -0
  97. package/commands/cms/upload.d.ts +12 -0
  98. package/commands/cms/upload.js +212 -0
  99. package/commands/cms/watch.d.ts +13 -0
  100. package/commands/cms/watch.js +132 -0
  101. package/commands/cms/webpack/create.d.ts +6 -0
  102. package/commands/cms/webpack/create.js +58 -0
  103. package/commands/cms/webpack.d.ts +3 -0
  104. package/commands/cms/webpack.js +17 -0
  105. package/commands/cms.d.ts +3 -0
  106. package/commands/cms.js +49 -0
  107. package/commands/completion.d.ts +3 -0
  108. package/commands/completion.js +27 -0
  109. package/commands/config/migrate.d.ts +6 -0
  110. package/commands/config/migrate.js +70 -0
  111. package/commands/config/set.d.ts +11 -0
  112. package/commands/config/set.js +141 -0
  113. package/commands/config.d.ts +3 -0
  114. package/commands/config.js +18 -0
  115. package/commands/customObject/create.d.ts +7 -0
  116. package/commands/customObject/create.js +64 -0
  117. package/commands/customObject/createSchema.d.ts +6 -0
  118. package/commands/customObject/createSchema.js +55 -0
  119. package/commands/customObject/deleteSchema.d.ts +7 -0
  120. package/commands/customObject/deleteSchema.js +69 -0
  121. package/commands/customObject/fetchAllSchemas.d.ts +6 -0
  122. package/commands/customObject/fetchAllSchemas.js +57 -0
  123. package/commands/customObject/fetchSchema.d.ts +7 -0
  124. package/commands/customObject/fetchSchema.js +67 -0
  125. package/commands/customObject/listSchemas.d.ts +4 -0
  126. package/commands/customObject/listSchemas.js +35 -0
  127. package/commands/customObject/updateSchema.d.ts +7 -0
  128. package/commands/customObject/updateSchema.js +70 -0
  129. package/commands/customObject.d.ts +3 -0
  130. package/commands/customObject.js +38 -0
  131. package/commands/doctor.d.ts +6 -0
  132. package/commands/doctor.js +70 -0
  133. package/commands/feedback.d.ts +4 -0
  134. package/commands/feedback.js +32 -0
  135. package/commands/filemanager/fetch.d.ts +8 -0
  136. package/commands/filemanager/fetch.js +58 -0
  137. package/commands/filemanager/upload.d.ts +7 -0
  138. package/commands/filemanager/upload.js +97 -0
  139. package/commands/filemanager.d.ts +3 -0
  140. package/commands/filemanager.js +18 -0
  141. package/commands/getStarted.d.ts +8 -0
  142. package/commands/getStarted.js +322 -0
  143. package/commands/hubdb/clear.d.ts +7 -0
  144. package/commands/hubdb/clear.js +58 -0
  145. package/commands/hubdb/create.d.ts +6 -0
  146. package/commands/hubdb/create.js +74 -0
  147. package/commands/hubdb/delete.d.ts +6 -0
  148. package/commands/hubdb/delete.js +68 -0
  149. package/commands/hubdb/fetch.d.ts +7 -0
  150. package/commands/hubdb/fetch.js +55 -0
  151. package/commands/hubdb/list.d.ts +4 -0
  152. package/commands/hubdb/list.js +79 -0
  153. package/commands/hubdb.d.ts +5 -0
  154. package/commands/hubdb.js +27 -0
  155. package/commands/init.d.ts +8 -0
  156. package/commands/init.js +200 -0
  157. package/commands/mcp/setup.d.ts +6 -0
  158. package/commands/mcp/setup.js +36 -0
  159. package/commands/mcp/start.d.ts +6 -0
  160. package/commands/mcp/start.js +72 -0
  161. package/commands/mcp.d.ts +3 -0
  162. package/commands/mcp.js +20 -0
  163. package/commands/open.d.ts +7 -0
  164. package/commands/open.js +70 -0
  165. package/commands/project/add.d.ts +10 -0
  166. package/commands/project/add.js +79 -0
  167. package/commands/project/cloneApp.d.ts +1 -0
  168. package/commands/project/cloneApp.js +1 -0
  169. package/commands/project/create.d.ts +4 -0
  170. package/commands/project/create.js +175 -0
  171. package/commands/project/deploy.d.ts +11 -0
  172. package/commands/project/deploy.js +196 -0
  173. package/commands/project/dev/deprecatedFlow.d.ts +11 -0
  174. package/commands/project/dev/deprecatedFlow.js +135 -0
  175. package/commands/project/dev/index.d.ts +5 -0
  176. package/commands/project/dev/index.js +174 -0
  177. package/commands/project/dev/unifiedFlow.d.ts +14 -0
  178. package/commands/project/dev/unifiedFlow.js +162 -0
  179. package/commands/project/download.d.ts +8 -0
  180. package/commands/project/download.js +95 -0
  181. package/commands/project/installDeps.d.ts +6 -0
  182. package/commands/project/installDeps.js +80 -0
  183. package/commands/project/lint.d.ts +6 -0
  184. package/commands/project/lint.js +178 -0
  185. package/commands/project/list.d.ts +4 -0
  186. package/commands/project/list.js +62 -0
  187. package/commands/project/listBuilds.d.ts +7 -0
  188. package/commands/project/listBuilds.js +120 -0
  189. package/commands/project/logs.d.ts +10 -0
  190. package/commands/project/logs.js +119 -0
  191. package/commands/project/migrate.d.ts +7 -0
  192. package/commands/project/migrate.js +91 -0
  193. package/commands/project/open.d.ts +6 -0
  194. package/commands/project/open.js +61 -0
  195. package/commands/project/profile/add.d.ts +7 -0
  196. package/commands/project/profile/add.js +203 -0
  197. package/commands/project/profile/delete.d.ts +6 -0
  198. package/commands/project/profile/delete.js +129 -0
  199. package/commands/project/profile.d.ts +3 -0
  200. package/commands/project/profile.js +19 -0
  201. package/commands/project/updateDeps.d.ts +6 -0
  202. package/commands/project/updateDeps.js +80 -0
  203. package/commands/project/upload.d.ts +10 -0
  204. package/commands/project/upload.js +145 -0
  205. package/commands/project/validate.d.ts +6 -0
  206. package/commands/project/validate.js +156 -0
  207. package/commands/project/watch.d.ts +6 -0
  208. package/commands/project/watch.js +152 -0
  209. package/commands/project.d.ts +3 -0
  210. package/commands/project.js +72 -0
  211. package/commands/sandbox/create.d.ts +8 -0
  212. package/commands/sandbox/create.js +156 -0
  213. package/commands/sandbox/delete.d.ts +7 -0
  214. package/commands/sandbox/delete.js +189 -0
  215. package/commands/sandbox.d.ts +3 -0
  216. package/commands/sandbox.js +19 -0
  217. package/commands/secret/addSecret.d.ts +6 -0
  218. package/commands/secret/addSecret.js +58 -0
  219. package/commands/secret/deleteSecret.d.ts +7 -0
  220. package/commands/secret/deleteSecret.js +71 -0
  221. package/commands/secret/listSecret.d.ts +4 -0
  222. package/commands/secret/listSecret.js +43 -0
  223. package/commands/secret/updateSecret.d.ts +6 -0
  224. package/commands/secret/updateSecret.js +57 -0
  225. package/commands/secret.d.ts +3 -0
  226. package/commands/secret.js +25 -0
  227. package/commands/testAccount/create.d.ts +15 -0
  228. package/commands/testAccount/create.js +232 -0
  229. package/commands/testAccount/createConfig.d.ts +8 -0
  230. package/commands/testAccount/createConfig.js +92 -0
  231. package/commands/testAccount/delete.d.ts +7 -0
  232. package/commands/testAccount/delete.js +188 -0
  233. package/commands/testAccount/importData.d.ts +9 -0
  234. package/commands/testAccount/importData.js +61 -0
  235. package/commands/testAccount.d.ts +3 -0
  236. package/commands/testAccount.js +25 -0
  237. package/commands/upgrade.d.ts +8 -0
  238. package/commands/upgrade.js +119 -0
  239. package/lang/en.d.ts +3990 -0
  240. package/lang/en.js +4013 -0
  241. package/lib/CLIWebSocketServer.d.ts +28 -0
  242. package/lib/CLIWebSocketServer.js +91 -0
  243. package/lib/accountAuth.d.ts +10 -0
  244. package/lib/accountAuth.js +109 -0
  245. package/lib/accountTypes.d.ts +9 -0
  246. package/lib/accountTypes.js +41 -0
  247. package/lib/app/migrate.d.ts +44 -0
  248. package/lib/app/migrate.js +389 -0
  249. package/lib/app/urls.d.ts +17 -0
  250. package/lib/app/urls.js +16 -0
  251. package/lib/buildAccount.d.ts +15 -0
  252. package/lib/buildAccount.js +184 -0
  253. package/lib/cliUpgradeUtils.d.ts +22 -0
  254. package/lib/cliUpgradeUtils.js +62 -0
  255. package/lib/cmsAssets/api-sample.d.ts +3 -0
  256. package/lib/cmsAssets/api-sample.js +60 -0
  257. package/lib/cmsAssets/app.d.ts +3 -0
  258. package/lib/cmsAssets/app.js +12 -0
  259. package/lib/cmsAssets/function.d.ts +3 -0
  260. package/lib/cmsAssets/function.js +11 -0
  261. package/lib/cmsAssets/index.d.ts +5 -0
  262. package/lib/cmsAssets/index.js +21 -0
  263. package/lib/cmsAssets/module.d.ts +3 -0
  264. package/lib/cmsAssets/module.js +20 -0
  265. package/lib/cmsAssets/react-app.d.ts +3 -0
  266. package/lib/cmsAssets/react-app.js +12 -0
  267. package/lib/cmsAssets/template.d.ts +3 -0
  268. package/lib/cmsAssets/template.js +20 -0
  269. package/lib/cmsAssets/vue-app.d.ts +3 -0
  270. package/lib/cmsAssets/vue-app.js +12 -0
  271. package/lib/cmsAssets/webpack-serverless.d.ts +3 -0
  272. package/lib/cmsAssets/webpack-serverless.js +12 -0
  273. package/lib/cmsAssets/website-theme.d.ts +3 -0
  274. package/lib/cmsAssets/website-theme.js +19 -0
  275. package/lib/commandSuggestion.d.ts +3 -0
  276. package/lib/commandSuggestion.js +39 -0
  277. package/lib/commonOpts.d.ts +25 -0
  278. package/lib/commonOpts.js +181 -0
  279. package/lib/configMigrate.d.ts +2 -0
  280. package/lib/configMigrate.js +182 -0
  281. package/lib/configOptions.d.ts +21 -0
  282. package/lib/configOptions.js +111 -0
  283. package/lib/constants.d.ts +145 -0
  284. package/lib/constants.js +146 -0
  285. package/lib/customObject.d.ts +3 -0
  286. package/lib/customObject.js +11 -0
  287. package/lib/dependencyManagement.d.ts +21 -0
  288. package/lib/dependencyManagement.js +243 -0
  289. package/lib/developerTestAccounts.d.ts +6 -0
  290. package/lib/developerTestAccounts.js +66 -0
  291. package/lib/doctor/Diagnosis.d.ts +27 -0
  292. package/lib/doctor/Diagnosis.js +113 -0
  293. package/lib/doctor/DiagnosticInfoBuilder.d.ts +69 -0
  294. package/lib/doctor/DiagnosticInfoBuilder.js +169 -0
  295. package/lib/doctor/Doctor.d.ts +35 -0
  296. package/lib/doctor/Doctor.js +566 -0
  297. package/lib/enums/exitCodes.d.ts +5 -0
  298. package/lib/enums/exitCodes.js +10 -0
  299. package/lib/errorHandlers/index.d.ts +19 -0
  300. package/lib/errorHandlers/index.js +99 -0
  301. package/lib/errorHandlers/suppressError.d.ts +2 -0
  302. package/lib/errorHandlers/suppressError.js +53 -0
  303. package/lib/errors/ProjectErrors.d.ts +15 -0
  304. package/lib/errors/ProjectErrors.js +30 -0
  305. package/lib/errors/ProjectValidationError.d.ts +4 -0
  306. package/lib/errors/ProjectValidationError.js +9 -0
  307. package/lib/errors/PromptExitError.d.ts +4 -0
  308. package/lib/errors/PromptExitError.js +8 -0
  309. package/lib/filesystem.d.ts +2 -0
  310. package/lib/filesystem.js +19 -0
  311. package/lib/generateSelectors.d.ts +20 -0
  312. package/lib/generateSelectors.js +110 -0
  313. package/lib/getStarted/getStartedV2.d.ts +7 -0
  314. package/lib/getStarted/getStartedV2.js +18 -0
  315. package/lib/getStartedV2Actions.d.ts +50 -0
  316. package/lib/getStartedV2Actions.js +199 -0
  317. package/lib/hasFeature.d.ts +4 -0
  318. package/lib/hasFeature.js +18 -0
  319. package/lib/http.d.ts +1 -0
  320. package/lib/http.js +28 -0
  321. package/lib/importData.d.ts +3 -0
  322. package/lib/importData.js +51 -0
  323. package/lib/interpolation.d.ts +7 -0
  324. package/lib/interpolation.js +84 -0
  325. package/lib/jsonLoader.d.ts +14 -0
  326. package/lib/jsonLoader.js +60 -0
  327. package/lib/links.d.ts +11 -0
  328. package/lib/links.js +107 -0
  329. package/lib/marketplaceValidate.d.ts +16 -0
  330. package/lib/marketplaceValidate.js +88 -0
  331. package/lib/mcp/setup.d.ts +17 -0
  332. package/lib/mcp/setup.js +345 -0
  333. package/lib/middleware/autoUpdateMiddleware.d.ts +4 -0
  334. package/lib/middleware/autoUpdateMiddleware.js +105 -0
  335. package/lib/middleware/commandTargetingUtils.d.ts +8 -0
  336. package/lib/middleware/commandTargetingUtils.js +76 -0
  337. package/lib/middleware/configMiddleware.d.ts +15 -0
  338. package/lib/middleware/configMiddleware.js +93 -0
  339. package/lib/middleware/fireAlarmMiddleware.d.ts +4 -0
  340. package/lib/middleware/fireAlarmMiddleware.js +118 -0
  341. package/lib/middleware/gitMiddleware.d.ts +2 -0
  342. package/lib/middleware/gitMiddleware.js +21 -0
  343. package/lib/middleware/requestMiddleware.d.ts +1 -0
  344. package/lib/middleware/requestMiddleware.js +5 -0
  345. package/lib/middleware/spinniesMiddleware.d.ts +1 -0
  346. package/lib/middleware/spinniesMiddleware.js +4 -0
  347. package/lib/middleware/usageTrackingMiddleware.d.ts +13 -0
  348. package/lib/middleware/usageTrackingMiddleware.js +16 -0
  349. package/lib/middleware/yargsChecksMiddleware.d.ts +4 -0
  350. package/lib/middleware/yargsChecksMiddleware.js +18 -0
  351. package/lib/npm/npmCli.d.ts +17 -0
  352. package/lib/npm/npmCli.js +59 -0
  353. package/lib/npm/packageJson.d.ts +24 -0
  354. package/lib/npm/packageJson.js +102 -0
  355. package/lib/npm/workspaces.d.ts +12 -0
  356. package/lib/npm/workspaces.js +48 -0
  357. package/lib/oauth.d.ts +2 -0
  358. package/lib/oauth.js +93 -0
  359. package/lib/parsing.d.ts +1 -0
  360. package/lib/parsing.js +8 -0
  361. package/lib/polling.d.ts +21 -0
  362. package/lib/polling.js +48 -0
  363. package/lib/process.d.ts +13 -0
  364. package/lib/process.js +56 -0
  365. package/lib/projects/ProjectLogsManager.d.ts +29 -0
  366. package/lib/projects/ProjectLogsManager.js +155 -0
  367. package/lib/projects/add/legacyAddComponent.d.ts +5 -0
  368. package/lib/projects/add/legacyAddComponent.js +46 -0
  369. package/lib/projects/add/v2AddComponent.d.ts +9 -0
  370. package/lib/projects/add/v2AddComponent.js +111 -0
  371. package/lib/projects/components.d.ts +16 -0
  372. package/lib/projects/components.js +252 -0
  373. package/lib/projects/config.d.ts +9 -0
  374. package/lib/projects/config.js +73 -0
  375. package/lib/projects/create/index.d.ts +24 -0
  376. package/lib/projects/create/index.js +33 -0
  377. package/lib/projects/create/legacy.d.ts +6 -0
  378. package/lib/projects/create/legacy.js +48 -0
  379. package/lib/projects/create/v2.d.ts +26 -0
  380. package/lib/projects/create/v2.js +158 -0
  381. package/lib/projects/deploy.d.ts +13 -0
  382. package/lib/projects/deploy.js +76 -0
  383. package/lib/projects/ensureProjectExists.d.ts +11 -0
  384. package/lib/projects/ensureProjectExists.js +89 -0
  385. package/lib/projects/localDev/AppDevModeInterface.d.ts +41 -0
  386. package/lib/projects/localDev/AppDevModeInterface.js +337 -0
  387. package/lib/projects/localDev/DevServerManager.d.ts +21 -0
  388. package/lib/projects/localDev/DevServerManager.js +64 -0
  389. package/lib/projects/localDev/DevServerManager_DEPRECATED.d.ts +40 -0
  390. package/lib/projects/localDev/DevServerManager_DEPRECATED.js +128 -0
  391. package/lib/projects/localDev/DevSessionManager.d.ts +18 -0
  392. package/lib/projects/localDev/DevSessionManager.js +95 -0
  393. package/lib/projects/localDev/LocalDevLogger.d.ts +34 -0
  394. package/lib/projects/localDev/LocalDevLogger.js +178 -0
  395. package/lib/projects/localDev/LocalDevManager_DEPRECATED.d.ts +59 -0
  396. package/lib/projects/localDev/LocalDevManager_DEPRECATED.js +387 -0
  397. package/lib/projects/localDev/LocalDevProcess.d.ts +39 -0
  398. package/lib/projects/localDev/LocalDevProcess.js +277 -0
  399. package/lib/projects/localDev/LocalDevState.d.ts +63 -0
  400. package/lib/projects/localDev/LocalDevState.js +139 -0
  401. package/lib/projects/localDev/LocalDevWatcher.d.ts +10 -0
  402. package/lib/projects/localDev/LocalDevWatcher.js +48 -0
  403. package/lib/projects/localDev/LocalDevWebsocketServer.d.ts +21 -0
  404. package/lib/projects/localDev/LocalDevWebsocketServer.js +169 -0
  405. package/lib/projects/localDev/UIExtensionsDevModeInterface.d.ts +13 -0
  406. package/lib/projects/localDev/UIExtensionsDevModeInterface.js +37 -0
  407. package/lib/projects/localDev/helpers/account.d.ts +14 -0
  408. package/lib/projects/localDev/helpers/account.js +222 -0
  409. package/lib/projects/localDev/helpers/devSessionsApi.d.ts +9 -0
  410. package/lib/projects/localDev/helpers/devSessionsApi.js +19 -0
  411. package/lib/projects/localDev/helpers/process.d.ts +1 -0
  412. package/lib/projects/localDev/helpers/process.js +17 -0
  413. package/lib/projects/localDev/helpers/project.d.ts +16 -0
  414. package/lib/projects/localDev/helpers/project.js +216 -0
  415. package/lib/projects/localDev/localDevWebsocketServerUtils.d.ts +8 -0
  416. package/lib/projects/localDev/localDevWebsocketServerUtils.js +19 -0
  417. package/lib/projects/platformVersion.d.ts +9 -0
  418. package/lib/projects/platformVersion.js +39 -0
  419. package/lib/projects/pollProjectBuildAndDeploy.d.ts +10 -0
  420. package/lib/projects/pollProjectBuildAndDeploy.js +344 -0
  421. package/lib/projects/projectProfiles.d.ts +17 -0
  422. package/lib/projects/projectProfiles.js +140 -0
  423. package/lib/projects/structure.d.ts +18 -0
  424. package/lib/projects/structure.js +130 -0
  425. package/lib/projects/ui.d.ts +1 -0
  426. package/lib/projects/ui.js +12 -0
  427. package/lib/projects/uieLinting.d.ts +33 -0
  428. package/lib/projects/uieLinting.js +220 -0
  429. package/lib/projects/upload.d.ts +33 -0
  430. package/lib/projects/upload.js +147 -0
  431. package/lib/projects/urls.d.ts +10 -0
  432. package/lib/projects/urls.js +42 -0
  433. package/lib/projects/watch.d.ts +5 -0
  434. package/lib/projects/watch.js +168 -0
  435. package/lib/prompts/accountNamePrompt.d.ts +11 -0
  436. package/lib/prompts/accountNamePrompt.js +64 -0
  437. package/lib/prompts/accountsPrompt.d.ts +2 -0
  438. package/lib/prompts/accountsPrompt.js +33 -0
  439. package/lib/prompts/cmsFieldPrompt.d.ts +1 -0
  440. package/lib/prompts/cmsFieldPrompt.js +40 -0
  441. package/lib/prompts/confirmImportDataPrompt.d.ts +1 -0
  442. package/lib/prompts/confirmImportDataPrompt.js +12 -0
  443. package/lib/prompts/createApiSamplePrompt.d.ts +10 -0
  444. package/lib/prompts/createApiSamplePrompt.js +58 -0
  445. package/lib/prompts/createDeveloperTestAccountConfigPrompt.d.ts +25 -0
  446. package/lib/prompts/createDeveloperTestAccountConfigPrompt.js +162 -0
  447. package/lib/prompts/createFunctionPrompt.d.ts +9 -0
  448. package/lib/prompts/createFunctionPrompt.js +94 -0
  449. package/lib/prompts/createModulePrompt.d.ts +10 -0
  450. package/lib/prompts/createModulePrompt.js +116 -0
  451. package/lib/prompts/createTemplatePrompt.d.ts +6 -0
  452. package/lib/prompts/createTemplatePrompt.js +29 -0
  453. package/lib/prompts/downloadProjectPrompt.d.ts +10 -0
  454. package/lib/prompts/downloadProjectPrompt.js +53 -0
  455. package/lib/prompts/importDataFilePathPrompt.d.ts +1 -0
  456. package/lib/prompts/importDataFilePathPrompt.js +26 -0
  457. package/lib/prompts/importDataTestAccountSelectPrompt.d.ts +3 -0
  458. package/lib/prompts/importDataTestAccountSelectPrompt.js +28 -0
  459. package/lib/prompts/installAppPrompt.d.ts +2 -0
  460. package/lib/prompts/installAppPrompt.js +39 -0
  461. package/lib/prompts/personalAccessKeyPrompt.d.ts +29 -0
  462. package/lib/prompts/personalAccessKeyPrompt.js +135 -0
  463. package/lib/prompts/previewPrompt.d.ts +15 -0
  464. package/lib/prompts/previewPrompt.js +48 -0
  465. package/lib/prompts/projectAddPrompt.d.ts +15 -0
  466. package/lib/prompts/projectAddPrompt.js +82 -0
  467. package/lib/prompts/projectDevTargetAccountPrompt.d.ts +12 -0
  468. package/lib/prompts/projectDevTargetAccountPrompt.js +166 -0
  469. package/lib/prompts/projectNameAndDestPrompt.d.ts +3 -0
  470. package/lib/prompts/projectNameAndDestPrompt.js +53 -0
  471. package/lib/prompts/projectNamePrompt.d.ts +6 -0
  472. package/lib/prompts/projectNamePrompt.js +27 -0
  473. package/lib/prompts/projectsLogsPrompt.d.ts +12 -0
  474. package/lib/prompts/projectsLogsPrompt.js +20 -0
  475. package/lib/prompts/promptUtils.d.ts +32 -0
  476. package/lib/prompts/promptUtils.js +222 -0
  477. package/lib/prompts/sandboxesPrompt.d.ts +10 -0
  478. package/lib/prompts/sandboxesPrompt.js +63 -0
  479. package/lib/prompts/secretPrompt.d.ts +13 -0
  480. package/lib/prompts/secretPrompt.js +31 -0
  481. package/lib/prompts/selectAppPrompt.d.ts +2 -0
  482. package/lib/prompts/selectAppPrompt.js +37 -0
  483. package/lib/prompts/selectHubDBTablePrompt.d.ts +12 -0
  484. package/lib/prompts/selectHubDBTablePrompt.js +66 -0
  485. package/lib/prompts/selectProjectTemplatePrompt.d.ts +27 -0
  486. package/lib/prompts/selectProjectTemplatePrompt.js +75 -0
  487. package/lib/prompts/selectPublicAppForMigrationPrompt.d.ts +9 -0
  488. package/lib/prompts/selectPublicAppForMigrationPrompt.js +68 -0
  489. package/lib/prompts/setAsDefaultAccountPrompt.d.ts +1 -0
  490. package/lib/prompts/setAsDefaultAccountPrompt.js +26 -0
  491. package/lib/prompts/uploadPrompt.d.ts +9 -0
  492. package/lib/prompts/uploadPrompt.js +32 -0
  493. package/lib/sandboxes.d.ts +14 -0
  494. package/lib/sandboxes.js +105 -0
  495. package/lib/schema.d.ts +3 -0
  496. package/lib/schema.js +27 -0
  497. package/lib/serverlessLogs.d.ts +4 -0
  498. package/lib/serverlessLogs.js +154 -0
  499. package/lib/testUtils.d.ts +14 -0
  500. package/lib/testUtils.js +18 -0
  501. package/lib/theme/cmsDevServerProcess.d.ts +12 -0
  502. package/lib/theme/cmsDevServerProcess.js +148 -0
  503. package/lib/theme/cmsDevServerRunner.d.ts +14 -0
  504. package/lib/theme/cmsDevServerRunner.js +90 -0
  505. package/lib/theme/migrate.d.ts +13 -0
  506. package/lib/theme/migrate.js +85 -0
  507. package/lib/ui/SpinniesManager.d.ts +39 -0
  508. package/lib/ui/SpinniesManager.js +259 -0
  509. package/lib/ui/git.d.ts +1 -0
  510. package/lib/ui/git.js +25 -0
  511. package/lib/ui/index.d.ts +31 -0
  512. package/lib/ui/index.js +150 -0
  513. package/lib/ui/logger.d.ts +11 -0
  514. package/lib/ui/logger.js +13 -0
  515. package/lib/ui/removeAnsiCodes.d.ts +1 -0
  516. package/lib/ui/removeAnsiCodes.js +4 -0
  517. package/lib/ui/serverlessFunctionLogs.d.ts +9 -0
  518. package/lib/ui/serverlessFunctionLogs.js +88 -0
  519. package/lib/ui/spinniesUtils.d.ts +32 -0
  520. package/lib/ui/spinniesUtils.js +151 -0
  521. package/lib/ui/supportHyperlinks.d.ts +7 -0
  522. package/lib/ui/supportHyperlinks.js +59 -0
  523. package/lib/ui/supportsColor.d.ts +17 -0
  524. package/lib/ui/supportsColor.js +97 -0
  525. package/lib/ui/uiMessages.d.ts +73 -0
  526. package/lib/ui/uiMessages.js +76 -0
  527. package/lib/upload.d.ts +1 -0
  528. package/lib/upload.js +49 -0
  529. package/lib/usageTracking.d.ts +32 -0
  530. package/lib/usageTracking.js +174 -0
  531. package/lib/utils/hasFlag.d.ts +1 -0
  532. package/lib/utils/hasFlag.js +9 -0
  533. package/lib/validation.d.ts +13 -0
  534. package/lib/validation.js +142 -0
  535. package/lib/yargsUtils.d.ts +16 -0
  536. package/lib/yargsUtils.js +49 -0
  537. package/mcp-server/server.d.ts +1 -0
  538. package/mcp-server/server.js +13 -0
  539. package/mcp-server/tools/cms/HsCreateFunctionTool.d.ts +24 -0
  540. package/mcp-server/tools/cms/HsCreateFunctionTool.js +105 -0
  541. package/mcp-server/tools/cms/HsCreateModuleTool.d.ts +20 -0
  542. package/mcp-server/tools/cms/HsCreateModuleTool.js +127 -0
  543. package/mcp-server/tools/cms/HsCreateTemplateTool.d.ts +25 -0
  544. package/mcp-server/tools/cms/HsCreateTemplateTool.js +84 -0
  545. package/mcp-server/tools/cms/HsFunctionLogsTool.d.ts +18 -0
  546. package/mcp-server/tools/cms/HsFunctionLogsTool.js +75 -0
  547. package/mcp-server/tools/cms/HsListFunctionsTool.d.ts +15 -0
  548. package/mcp-server/tools/cms/HsListFunctionsTool.js +64 -0
  549. package/mcp-server/tools/cms/HsListTool.d.ts +15 -0
  550. package/mcp-server/tools/cms/HsListTool.js +64 -0
  551. package/mcp-server/tools/index.d.ts +3 -0
  552. package/mcp-server/tools/index.js +48 -0
  553. package/mcp-server/tools/project/AddFeatureToProjectTool.d.ts +36 -0
  554. package/mcp-server/tools/project/AddFeatureToProjectTool.js +82 -0
  555. package/mcp-server/tools/project/CreateProjectTool.d.ts +40 -0
  556. package/mcp-server/tools/project/CreateProjectTool.js +98 -0
  557. package/mcp-server/tools/project/CreateTestAccountTool.d.ts +51 -0
  558. package/mcp-server/tools/project/CreateTestAccountTool.js +170 -0
  559. package/mcp-server/tools/project/DeployProjectTool.d.ts +15 -0
  560. package/mcp-server/tools/project/DeployProjectTool.js +58 -0
  561. package/mcp-server/tools/project/DocFetchTool.d.ts +14 -0
  562. package/mcp-server/tools/project/DocFetchTool.js +57 -0
  563. package/mcp-server/tools/project/DocsSearchTool.d.ts +23 -0
  564. package/mcp-server/tools/project/DocsSearchTool.js +69 -0
  565. package/mcp-server/tools/project/GetApiUsagePatternsByAppIdTool.d.ts +16 -0
  566. package/mcp-server/tools/project/GetApiUsagePatternsByAppIdTool.js +73 -0
  567. package/mcp-server/tools/project/GetApplicationInfoTool.d.ts +13 -0
  568. package/mcp-server/tools/project/GetApplicationInfoTool.js +56 -0
  569. package/mcp-server/tools/project/GetBuildLogsTool.d.ts +21 -0
  570. package/mcp-server/tools/project/GetBuildLogsTool.js +124 -0
  571. package/mcp-server/tools/project/GetBuildStatusTool.d.ts +16 -0
  572. package/mcp-server/tools/project/GetBuildStatusTool.js +165 -0
  573. package/mcp-server/tools/project/GetConfigValuesTool.d.ts +15 -0
  574. package/mcp-server/tools/project/GetConfigValuesTool.js +65 -0
  575. package/mcp-server/tools/project/GuidedWalkthroughTool.d.ts +19 -0
  576. package/mcp-server/tools/project/GuidedWalkthroughTool.js +50 -0
  577. package/mcp-server/tools/project/UploadProjectTools.d.ts +16 -0
  578. package/mcp-server/tools/project/UploadProjectTools.js +83 -0
  579. package/mcp-server/tools/project/ValidateProjectTool.d.ts +14 -0
  580. package/mcp-server/tools/project/ValidateProjectTool.js +42 -0
  581. package/mcp-server/tools/project/constants.d.ts +18 -0
  582. package/mcp-server/tools/project/constants.js +29 -0
  583. package/mcp-server/types.d.ts +14 -0
  584. package/mcp-server/types.js +13 -0
  585. package/mcp-server/utils/command.d.ts +8 -0
  586. package/mcp-server/utils/command.js +33 -0
  587. package/mcp-server/utils/config.d.ts +1 -0
  588. package/mcp-server/utils/config.js +10 -0
  589. package/mcp-server/utils/content.d.ts +3 -0
  590. package/mcp-server/utils/content.js +24 -0
  591. package/mcp-server/utils/feedbackTracking.d.ts +1 -0
  592. package/mcp-server/utils/feedbackTracking.js +26 -0
  593. package/mcp-server/utils/toolUsageTracking.d.ts +3 -0
  594. package/mcp-server/utils/toolUsageTracking.js +24 -0
  595. package/package.json +2 -1
  596. package/types/Cms.d.ts +46 -0
  597. package/types/Cms.js +27 -0
  598. package/types/LocalDev.d.ts +47 -0
  599. package/types/LocalDev.js +1 -0
  600. package/types/PackageJson.d.ts +10 -0
  601. package/types/PackageJson.js +1 -0
  602. package/types/ProjectComponents.d.ts +23 -0
  603. package/types/ProjectComponents.js +2 -0
  604. package/types/Projects.d.ts +130 -0
  605. package/types/Projects.js +6 -0
  606. package/types/Prompts.d.ts +28 -0
  607. package/types/Prompts.js +1 -0
  608. package/types/Sandboxes.d.ts +5 -0
  609. package/types/Sandboxes.js +1 -0
  610. package/types/Yargs.d.ts +46 -0
  611. package/types/Yargs.js +1 -0
  612. package/ui/components/ActionSection.d.ts +12 -0
  613. package/ui/components/ActionSection.js +25 -0
  614. package/ui/components/BoxWithTitle.d.ts +11 -0
  615. package/ui/components/BoxWithTitle.js +9 -0
  616. package/ui/components/FullScreen.d.ts +6 -0
  617. package/ui/components/FullScreen.js +13 -0
  618. package/ui/components/HorizontalSelectPrompt.d.ts +8 -0
  619. package/ui/components/HorizontalSelectPrompt.js +30 -0
  620. package/ui/components/InputField.d.ts +10 -0
  621. package/ui/components/InputField.js +10 -0
  622. package/ui/components/SelectInput.d.ts +11 -0
  623. package/ui/components/SelectInput.js +59 -0
  624. package/ui/components/StatusIcon.d.ts +9 -0
  625. package/ui/components/StatusIcon.js +17 -0
  626. package/ui/components/StatusMessageBoxes.d.ts +13 -0
  627. package/ui/components/StatusMessageBoxes.js +31 -0
  628. package/ui/components/Table.d.ts +89 -0
  629. package/ui/components/Table.js +246 -0
  630. package/ui/components/getStarted/GetStartedFlow.d.ts +8 -0
  631. package/ui/components/getStarted/GetStartedFlow.js +213 -0
  632. package/ui/components/getStarted/reducer.d.ts +79 -0
  633. package/ui/components/getStarted/reducer.js +108 -0
  634. package/ui/components/getStarted/screens/InstallationScreen.d.ts +7 -0
  635. package/ui/components/getStarted/screens/InstallationScreen.js +16 -0
  636. package/ui/components/getStarted/screens/ProjectSetupScreen.d.ts +16 -0
  637. package/ui/components/getStarted/screens/ProjectSetupScreen.js +40 -0
  638. package/ui/components/getStarted/screens/UploadScreen.d.ts +7 -0
  639. package/ui/components/getStarted/screens/UploadScreen.js +43 -0
  640. package/ui/components/getStarted/selectors.d.ts +2 -0
  641. package/ui/components/getStarted/selectors.js +1 -0
  642. package/ui/constants.d.ts +6 -0
  643. package/ui/constants.js +6 -0
  644. package/ui/lib/constants.d.ts +17 -0
  645. package/ui/lib/constants.js +17 -0
  646. package/ui/lib/table.d.ts +2 -0
  647. package/ui/lib/table.js +11 -0
  648. package/ui/lib/useTerminalSize.d.ts +13 -0
  649. package/ui/lib/useTerminalSize.js +31 -0
  650. package/ui/playground/Playground.d.ts +5 -0
  651. package/ui/playground/Playground.js +25 -0
  652. package/ui/playground/fixtures.d.ts +9 -0
  653. package/ui/playground/fixtures.js +126 -0
  654. package/ui/render.d.ts +23 -0
  655. package/ui/render.js +75 -0
  656. package/ui/styles.d.ts +21 -0
  657. package/ui/styles.js +21 -0
@@ -0,0 +1,243 @@
1
+ import fs from 'fs';
2
+ import util from 'util';
3
+ import path from 'path';
4
+ import { exec as execAsync } from 'node:child_process';
5
+ import { getProjectConfig } from './projects/config.js';
6
+ import { commands } from '../lang/en.js';
7
+ import SpinniesManager from './ui/SpinniesManager.js';
8
+ import { isGloballyInstalled, executeInstall, executeUpdate, DEFAULT_PACKAGE_MANAGER, } from './npm/npmCli.js';
9
+ import { findAllPackageJsonFilesInProjectCached, safeGetPackageJsonCached, } from './npm/packageJson.js';
10
+ import { getNpmWorkspaceDirectoryForPackageAtLocationCached } from './npm/workspaces.js';
11
+ class NoPackageJsonFilesError extends Error {
12
+ constructor(projectName, isUpdate = false) {
13
+ super(isUpdate
14
+ ? commands.project.updateDeps.noPackageJsonInProject(projectName)
15
+ : commands.project.installDeps.noPackageJsonInProject(projectName));
16
+ }
17
+ }
18
+ /**
19
+ * Installs dependencies in multiple package directories, handling npm workspace configuration.
20
+ * Also supports adding new packages as dependencies in specific package directories.
21
+ * Shows progress spinners and manages npm install execution with appropriate flags.
22
+ *
23
+ * @param packages - Optional array of package names to install
24
+ * @param installLocations - Optional array of installation locations (defaults to all package locations in the project)
25
+ * @param dev - Whether to add --save-dev flag (only when packages are specified)
26
+ */
27
+ export async function installPackages({ packages, installLocations, dev = false, }) {
28
+ const installDirs = installLocations || (await getProjectPackageJsonLocations());
29
+ const hasPackages = packages && packages.length > 0;
30
+ // Used to collect all of the npm install locations with de-duplication.
31
+ const npmInstallLocationsSet = new Set();
32
+ // Used to collect all of the package install tasks.
33
+ const packageInstallTasks = [];
34
+ for (const dir of installDirs) {
35
+ const npmWorkspaceDirectory = await getNpmWorkspaceDirectoryForPackageAtLocationCached(dir);
36
+ if (hasPackages) {
37
+ // Package installation tasks (installing specific packages). No de-duplication needed here.
38
+ packageInstallTasks.push({
39
+ directory: dir,
40
+ packages,
41
+ dev,
42
+ npmWorkspaceDirectory,
43
+ });
44
+ }
45
+ else {
46
+ if (npmWorkspaceDirectory) {
47
+ // If we are not installing specific packages and we are in an npm workspace then we only need to run
48
+ // `npm install` in the workspace root directory to install the package dependencies for a package that
49
+ // is part of the workspace. Therefore, we add the workspace root for installation instead of the package.
50
+ npmInstallLocationsSet.add(npmWorkspaceDirectory);
51
+ }
52
+ else {
53
+ npmInstallLocationsSet.add(dir);
54
+ }
55
+ }
56
+ }
57
+ const npmInstallLocations = Array.from(npmInstallLocationsSet).sort();
58
+ // Create tasks for each of the npm install locations to run `npm install` (no specific packages)
59
+ const npmInstallTasks = npmInstallLocations.map(npmInstallLocation => ({
60
+ directory: npmInstallLocation,
61
+ packages: undefined,
62
+ dev: false,
63
+ npmWorkspaceDirectory: null,
64
+ }));
65
+ // Run all tasks in parallel
66
+ await Promise.all([...npmInstallTasks, ...packageInstallTasks].map(task => installPackagesInDirectory(task)));
67
+ }
68
+ /**
69
+ * Installs packages in a specific directory, handling npm workspace configuration.
70
+ * Shows progress spinners and manages npm install execution with appropriate flags.
71
+ *
72
+ * @param directory - The target directory for package installation
73
+ * @param packages - Optional array of package names to install
74
+ * @param dev - Whether to add --save-dev flag (only when packages are specified)
75
+ * @param npmWorkspaceDirectory - The workspace root directory if this is a workspace package, null otherwise
76
+ */
77
+ async function installPackagesInDirectory({ directory, packages, dev = false, npmWorkspaceDirectory, }) {
78
+ const spinner = `installingDependencies-${directory}`;
79
+ const relativeDir = path.relative(process.cwd(), directory) || '.';
80
+ const hasPackages = packages && packages.length > 0;
81
+ SpinniesManager.add(spinner, {
82
+ text: packages && packages.length
83
+ ? commands.project.installDeps.addingDependenciesToLocation(`[${packages.join(', ')}]`, relativeDir)
84
+ : commands.project.installDeps.installingDependencies(relativeDir),
85
+ });
86
+ try {
87
+ const flags = [];
88
+ if (hasPackages && dev) {
89
+ flags.push('--save-dev');
90
+ }
91
+ if (hasPackages && npmWorkspaceDirectory) {
92
+ // If we are installing packages in an npm workspace, we will run `npm install` in the workspace root directory
93
+ // and we will use the --workspace flag to install the packages in the target package directory.
94
+ flags.push(`--workspace=${path.relative(npmWorkspaceDirectory, directory)}`);
95
+ }
96
+ await executeInstall(packages, flags.length > 0 ? flags.join(' ') : null, {
97
+ // Execute the install in the workspace root directory if this package is part of an npm workspace, otherwise
98
+ // in the package directory.
99
+ cwd: npmWorkspaceDirectory || directory,
100
+ });
101
+ SpinniesManager.succeed(spinner, {
102
+ text: commands.project.installDeps.installationSuccessful(relativeDir),
103
+ });
104
+ }
105
+ catch (e) {
106
+ SpinniesManager.fail(spinner, {
107
+ text: commands.project.installDeps.installingDependenciesFailed(relativeDir),
108
+ });
109
+ throw new Error(commands.project.installDeps.installingDependenciesFailed(relativeDir), {
110
+ cause: e,
111
+ });
112
+ }
113
+ }
114
+ export async function updatePackages({ packages, installLocations, }) {
115
+ const updateDirs = installLocations || (await getProjectPackageJsonLocations(undefined, true));
116
+ const hasPackages = packages && packages.length > 0;
117
+ // Used to collect all of the npm update locations with de-duplication.
118
+ const npmUpdateLocationsSet = new Set();
119
+ // Used to collect all of the package update tasks.
120
+ const packageUpdateTasks = [];
121
+ for (const dir of updateDirs) {
122
+ const npmWorkspaceDirectory = await getNpmWorkspaceDirectoryForPackageAtLocationCached(dir);
123
+ if (hasPackages) {
124
+ packageUpdateTasks.push({
125
+ directory: dir,
126
+ packages,
127
+ npmWorkspaceDirectory,
128
+ });
129
+ }
130
+ else {
131
+ if (npmWorkspaceDirectory) {
132
+ // If we are not updating specific packages and we are in an npm workspace then we only need to run
133
+ // `npm update` in the workspace root directory to update the package dependencies for a package that
134
+ // is part of the workspace. Therefore, we add the workspace root for update instead of the package.
135
+ npmUpdateLocationsSet.add(npmWorkspaceDirectory);
136
+ }
137
+ else {
138
+ npmUpdateLocationsSet.add(dir);
139
+ }
140
+ }
141
+ }
142
+ const npmUpdateLocations = Array.from(npmUpdateLocationsSet).sort();
143
+ // Create tasks for each of the npm update locations to run `npm update` (no specific packages)
144
+ const npmUpdateTasks = npmUpdateLocations.map(npmUpdateLocation => ({
145
+ directory: npmUpdateLocation,
146
+ packages: undefined,
147
+ npmWorkspaceDirectory: null,
148
+ }));
149
+ // Run all tasks in parallel
150
+ await Promise.all([...npmUpdateTasks, ...packageUpdateTasks].map(task => updatePackagesInDirectory(task)));
151
+ }
152
+ async function updatePackagesInDirectory({ directory, packages, npmWorkspaceDirectory, }) {
153
+ const spinner = `updatingDependencies-${directory}`;
154
+ const relativeDir = path.relative(process.cwd(), directory) || '.';
155
+ const hasPackages = packages && packages.length > 0;
156
+ SpinniesManager.add(spinner, {
157
+ text: packages && packages.length
158
+ ? commands.project.updateDeps.updatingDependenciesToLocation(`[${packages.join(', ')}]`, relativeDir)
159
+ : commands.project.updateDeps.updatingDependencies(relativeDir),
160
+ });
161
+ try {
162
+ const flags = [];
163
+ if (hasPackages && npmWorkspaceDirectory) {
164
+ // If we are updating packages in an npm workspace, we will run `npm update` in the workspace root directory
165
+ // and we will use the --workspace flag to update the packages in the target package directory.
166
+ flags.push(`--workspace=${path.relative(npmWorkspaceDirectory, directory)}`);
167
+ }
168
+ await executeUpdate(packages, flags.length > 0 ? flags.join(' ') : null, {
169
+ cwd: npmWorkspaceDirectory || directory,
170
+ });
171
+ SpinniesManager.succeed(spinner, {
172
+ text: commands.project.updateDeps.updateSuccessful(relativeDir),
173
+ });
174
+ }
175
+ catch (e) {
176
+ SpinniesManager.fail(spinner, {
177
+ text: commands.project.updateDeps.updatingDependenciesFailed(relativeDir),
178
+ });
179
+ throw new Error(commands.project.updateDeps.updatingDependenciesFailed(relativeDir), {
180
+ cause: e,
181
+ });
182
+ }
183
+ }
184
+ export async function getProjectPackageJsonLocations(dir, isUpdate = false) {
185
+ const projectConfig = await getProjectConfig(dir);
186
+ if (!projectConfig ||
187
+ !projectConfig.projectDir ||
188
+ !projectConfig.projectConfig) {
189
+ throw new Error(isUpdate
190
+ ? commands.project.updateDeps.noProjectConfig
191
+ : commands.project.installDeps.noProjectConfig);
192
+ }
193
+ const { projectDir, projectConfig: { srcDir, name }, } = projectConfig;
194
+ if (!(await isGloballyInstalled(DEFAULT_PACKAGE_MANAGER))) {
195
+ throw new Error(isUpdate
196
+ ? commands.project.updateDeps.packageManagerNotInstalled(DEFAULT_PACKAGE_MANAGER)
197
+ : commands.project.installDeps.packageManagerNotInstalled(DEFAULT_PACKAGE_MANAGER));
198
+ }
199
+ if (!fs.existsSync(projectConfig.projectDir) ||
200
+ !fs.existsSync(path.join(projectDir, srcDir))) {
201
+ throw new NoPackageJsonFilesError(name, isUpdate);
202
+ }
203
+ const packageJsonFiles = await findAllPackageJsonFilesInProjectCached();
204
+ if (packageJsonFiles.length === 0) {
205
+ throw new NoPackageJsonFilesError(name, isUpdate);
206
+ }
207
+ const packageParentDirs = [];
208
+ packageJsonFiles.forEach(packageJsonFile => {
209
+ const parentDir = path.dirname(packageJsonFile);
210
+ packageParentDirs.push(parentDir);
211
+ });
212
+ return packageParentDirs;
213
+ }
214
+ function isPackageInPackageJson(directory, packageName) {
215
+ const packageJsonPath = path.join(directory, 'package.json');
216
+ const packageJson = safeGetPackageJsonCached(packageJsonPath);
217
+ if (!packageJson) {
218
+ return false;
219
+ }
220
+ return !!((packageJson.dependencies && packageJson.dependencies[packageName]) ||
221
+ (packageJson.devDependencies && packageJson.devDependencies[packageName]));
222
+ }
223
+ function isPackageInNodeModules(directory, packageName) {
224
+ const packagePath = path.join(directory, 'node_modules', packageName);
225
+ try {
226
+ return fs.existsSync(packagePath);
227
+ }
228
+ catch (error) {
229
+ return false;
230
+ }
231
+ }
232
+ export function isPackageInstalled(directory, packageName) {
233
+ const inPackageJson = isPackageInPackageJson(directory, packageName);
234
+ const actuallyInstalled = isPackageInNodeModules(directory, packageName);
235
+ return inPackageJson && actuallyInstalled;
236
+ }
237
+ export async function hasMissingPackages(directory) {
238
+ const exec = util.promisify(execAsync);
239
+ const { stdout } = await exec(`npm install --ignore-scripts --dry-run`, {
240
+ cwd: directory,
241
+ });
242
+ return !stdout?.includes('up to date in');
243
+ }
@@ -0,0 +1,6 @@
1
+ import { HubSpotConfigAccount } from '@hubspot/local-dev-lib/types/Accounts';
2
+ import { FetchDeveloperTestAccountsResponse } from '@hubspot/local-dev-lib/types/developerTestAccounts.js';
3
+ import { Environment } from '@hubspot/local-dev-lib/types/Accounts';
4
+ export declare function getHasDevTestAccounts(appDeveloperAccountConfig: HubSpotConfigAccount): boolean;
5
+ export declare function validateDevTestAccountUsageLimits(accountConfig: HubSpotConfigAccount): Promise<FetchDeveloperTestAccountsResponse | null>;
6
+ export declare function handleDeveloperTestAccountCreateError(err: unknown, accountId: number, env: Environment, portalLimit: number): never;
@@ -0,0 +1,66 @@
1
+ import { HUBSPOT_ACCOUNT_TYPES } from '@hubspot/local-dev-lib/constants/config';
2
+ import { getAllConfigAccounts } from '@hubspot/local-dev-lib/config';
3
+ import { fetchDeveloperTestAccounts } from '@hubspot/local-dev-lib/api/developerTestAccounts';
4
+ import { isMissingScopeError, isSpecifiedError, } from '@hubspot/local-dev-lib/errors/index';
5
+ import { uiLogger } from './ui/logger.js';
6
+ import { getHubSpotWebsiteOrigin } from '@hubspot/local-dev-lib/urls';
7
+ import { lib } from '../lang/en.js';
8
+ import { uiAccountDescription } from './ui/index.js';
9
+ import { logError } from './errorHandlers/index.js';
10
+ export function getHasDevTestAccounts(appDeveloperAccountConfig) {
11
+ const parentPortalId = appDeveloperAccountConfig.accountId;
12
+ const accountsList = getAllConfigAccounts();
13
+ if (!accountsList) {
14
+ return false;
15
+ }
16
+ for (const portal of accountsList) {
17
+ if (Boolean(portal.parentAccountId) &&
18
+ portal.parentAccountId === parentPortalId &&
19
+ portal.accountType === HUBSPOT_ACCOUNT_TYPES.DEVELOPER_TEST) {
20
+ return true;
21
+ }
22
+ }
23
+ return false;
24
+ }
25
+ export async function validateDevTestAccountUsageLimits(accountConfig) {
26
+ const accountId = accountConfig.accountId;
27
+ if (!accountId) {
28
+ return null;
29
+ }
30
+ const { data } = await fetchDeveloperTestAccounts(accountId);
31
+ if (!data) {
32
+ return null;
33
+ }
34
+ const limit = data.maxTestPortals;
35
+ const count = data.results.length;
36
+ if (count >= limit) {
37
+ const hasDevTestAccounts = getHasDevTestAccounts(accountConfig);
38
+ if (hasDevTestAccounts) {
39
+ throw new Error(lib.developerTestAccount.create.failure.alreadyInConfig(accountConfig.name || accountId, limit));
40
+ }
41
+ else {
42
+ throw new Error(lib.developerTestAccount.create.failure.limit(accountConfig.name || accountId, limit));
43
+ }
44
+ }
45
+ return data;
46
+ }
47
+ export function handleDeveloperTestAccountCreateError(err, accountId, env, portalLimit) {
48
+ if (isMissingScopeError(err)) {
49
+ uiLogger.error(lib.developerTestAccount.create.failure.scopes.message);
50
+ const websiteOrigin = getHubSpotWebsiteOrigin(env);
51
+ const url = `${websiteOrigin}/personal-access-key/${accountId}`;
52
+ uiLogger.info(lib.developerTestAccount.create.failure.scopes.instructions(uiAccountDescription(accountId), url));
53
+ }
54
+ else if (isSpecifiedError(err, {
55
+ statusCode: 400,
56
+ errorType: 'TEST_PORTAL_LIMIT_REACHED',
57
+ })) {
58
+ uiLogger.log('');
59
+ uiLogger.error(lib.developerTestAccount.create.failure.limit(uiAccountDescription(accountId), portalLimit));
60
+ uiLogger.log('');
61
+ }
62
+ else {
63
+ logError(err);
64
+ }
65
+ throw err;
66
+ }
@@ -0,0 +1,27 @@
1
+ import { DiagnosticInfo } from './DiagnosticInfoBuilder.js';
2
+ interface DiagnosisOptions {
3
+ diagnosticInfo: DiagnosticInfo;
4
+ accountId: number | null;
5
+ }
6
+ interface Section {
7
+ type: 'error' | 'warning' | 'success';
8
+ message: string;
9
+ secondaryMessaging?: string;
10
+ }
11
+ export declare class Diagnosis {
12
+ private readonly prefixes;
13
+ private readonly diagnosis;
14
+ private errorCount;
15
+ private warningCount;
16
+ constructor({ diagnosticInfo, accountId }: DiagnosisOptions);
17
+ getErrorCount(): number;
18
+ getWarningCount(): number;
19
+ addCliSection(section: Section): void;
20
+ addProjectSection(section: Section): void;
21
+ addCLIConfigSection(section: Section): void;
22
+ addNetworkingSection(section: Section): void;
23
+ addDefaultAccountOverrideFileSection(section: Section): void;
24
+ toString(): string;
25
+ private generateSections;
26
+ }
27
+ export {};
@@ -0,0 +1,113 @@
1
+ import { prefixOptions } from '../ui/spinniesUtils.js';
2
+ import chalk from 'chalk';
3
+ import { helpers } from '../interpolation.js';
4
+ import { uiAccountDescription } from '../ui/index.js';
5
+ import { indent } from '../ui/index.js';
6
+ import { lib } from '../../lang/en.js';
7
+ export class Diagnosis {
8
+ prefixes;
9
+ diagnosis;
10
+ errorCount = 0;
11
+ warningCount = 0;
12
+ constructor({ diagnosticInfo, accountId }) {
13
+ const { succeedPrefix, failPrefix } = prefixOptions({});
14
+ this.prefixes = {
15
+ success: chalk.green(succeedPrefix),
16
+ error: chalk.red(failPrefix),
17
+ warning: helpers.orange('!'),
18
+ };
19
+ this.diagnosis = {
20
+ cli: {
21
+ header: lib.doctor.diagnosis.cli.header,
22
+ sections: [],
23
+ },
24
+ cliConfig: {
25
+ header: lib.doctor.diagnosis.cliConfig.header,
26
+ sections: [],
27
+ },
28
+ networking: {
29
+ header: lib.doctor.networkChecks.header,
30
+ sections: [],
31
+ },
32
+ defaultAccountOverrideFile: {
33
+ header: lib.doctor.diagnosis.defaultAccountOverrideFile.header,
34
+ sections: [],
35
+ },
36
+ project: {
37
+ header: lib.doctor.diagnosis.projectConfig.header,
38
+ subheaders: [
39
+ lib.doctor.diagnosis.projectConfig.projectDirSubHeader(diagnosticInfo.project?.config?.projectDir || ''),
40
+ lib.doctor.diagnosis.projectConfig.projectNameSubHeader(diagnosticInfo.project?.config?.projectConfig?.name || ''),
41
+ ],
42
+ sections: [],
43
+ },
44
+ };
45
+ if (diagnosticInfo.config) {
46
+ this.diagnosis.cliConfig.subheaders = [
47
+ lib.doctor.diagnosis.cliConfig.configFileSubHeader(diagnosticInfo.config),
48
+ lib.doctor.diagnosis.cliConfig.defaultAccountSubHeader(uiAccountDescription(accountId)),
49
+ ];
50
+ }
51
+ }
52
+ getErrorCount() {
53
+ return this.errorCount;
54
+ }
55
+ getWarningCount() {
56
+ return this.warningCount;
57
+ }
58
+ addCliSection(section) {
59
+ this.diagnosis.cli.sections.push(section);
60
+ }
61
+ addProjectSection(section) {
62
+ this.diagnosis.project.sections.push(section);
63
+ }
64
+ addCLIConfigSection(section) {
65
+ this.diagnosis.cliConfig.sections.push(section);
66
+ }
67
+ addNetworkingSection(section) {
68
+ this.diagnosis.networking.sections.push(section);
69
+ }
70
+ addDefaultAccountOverrideFileSection(section) {
71
+ this.diagnosis.defaultAccountOverrideFile.sections.push(section);
72
+ }
73
+ toString() {
74
+ const output = [];
75
+ for (const value of Object.values(this.diagnosis)) {
76
+ const section = this.generateSections(value);
77
+ if (section) {
78
+ output.push(section);
79
+ }
80
+ }
81
+ if (output.length === 0) {
82
+ return '';
83
+ }
84
+ output.push('');
85
+ output.push(lib.doctor.diagnosis.counts.errors(this.errorCount));
86
+ output.push(lib.doctor.diagnosis.counts.warnings(this.warningCount));
87
+ output.push('');
88
+ return output.join('\n');
89
+ }
90
+ generateSections(category) {
91
+ const output = [];
92
+ if (category.sections && category.sections.length === 0) {
93
+ return '';
94
+ }
95
+ output.push(`\n${chalk.bold(category.header)}`);
96
+ (category.subheaders || []).forEach(subheader => {
97
+ output.push(`${subheader}`);
98
+ });
99
+ category.sections.forEach(section => {
100
+ if (section.type === 'error') {
101
+ this.errorCount++;
102
+ }
103
+ else if (section.type === 'warning') {
104
+ this.warningCount++;
105
+ }
106
+ output.push(`${indent(1)}${this.prefixes[section.type]} ${section.message}`);
107
+ if (section.secondaryMessaging) {
108
+ output.push(`${indent(2)}- ${section.secondaryMessaging}`);
109
+ }
110
+ });
111
+ return output.join('\n');
112
+ }
113
+ }
@@ -0,0 +1,69 @@
1
+ import { getProjectConfig } from '../projects/config.js';
2
+ import { Environment } from '@hubspot/local-dev-lib/types/Accounts';
3
+ import { AccessToken, AccountType, AuthType } from '@hubspot/local-dev-lib/types/Accounts';
4
+ import { Project } from '@hubspot/local-dev-lib/types/Project';
5
+ import process from 'process';
6
+ export type ProjectConfig = Awaited<ReturnType<typeof getProjectConfig>>;
7
+ declare const hubspotCli = "@hubspot/cli";
8
+ interface FilesInfo {
9
+ files: string[];
10
+ configFiles: string[];
11
+ hsMetaFiles: string[];
12
+ packageFiles: string[];
13
+ packageLockFiles: string[];
14
+ envFiles: string[];
15
+ jsonFiles: string[];
16
+ }
17
+ export interface DiagnosticInfo extends FilesInfo {
18
+ path?: string;
19
+ versions: {
20
+ [hubspotCli]: string;
21
+ node: string;
22
+ npm: string | null;
23
+ };
24
+ config: string | null;
25
+ defaultAccountOverrideFile: string | null | undefined;
26
+ configSettings: {
27
+ [key: string]: unknown;
28
+ };
29
+ project: {
30
+ details?: Project;
31
+ config?: ProjectConfig;
32
+ };
33
+ arch: typeof process.arch;
34
+ platform: typeof process.platform;
35
+ account: {
36
+ name?: string;
37
+ accountId?: number | null;
38
+ scopeGroups?: AccessToken['scopeGroups'];
39
+ enabledFeatures?: AccessToken['enabledFeatures'];
40
+ accountType?: AccessToken['accountType'];
41
+ authType?: AuthType;
42
+ };
43
+ diagnosis?: string;
44
+ errorCount?: number;
45
+ warningCount?: number;
46
+ }
47
+ export declare class DiagnosticInfoBuilder {
48
+ accountId: number | undefined;
49
+ readonly configSettings: {
50
+ [key: string]: unknown;
51
+ };
52
+ readonly env?: Environment;
53
+ readonly authType?: AuthType;
54
+ readonly accountType?: AccountType;
55
+ readonly personalAccessKey?: string;
56
+ private _projectConfig?;
57
+ private accessToken?;
58
+ private projectDetails?;
59
+ private files?;
60
+ readonly processInfo: NodeJS.Process;
61
+ constructor(processInfo: NodeJS.Process);
62
+ generateDiagnosticInfo(): Promise<DiagnosticInfo>;
63
+ private fetchProjectDetails;
64
+ fetchAccessToken(): Promise<AccessToken | undefined>;
65
+ private fetchProjectFilenames;
66
+ private getNpmVersion;
67
+ private generateFilesArrays;
68
+ }
69
+ export {};