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

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 (1019) hide show
  1. package/package.json +5 -2
  2. package/api/__tests__/migrate.test.d.ts +0 -1
  3. package/api/__tests__/migrate.test.js +0 -199
  4. package/api/migrate.d.ts +0 -77
  5. package/api/migrate.js +0 -55
  6. package/bin/cli.d.ts +0 -2
  7. package/bin/cli.js +0 -136
  8. package/bin/hs.d.ts +0 -2
  9. package/bin/hscms.d.ts +0 -2
  10. package/bin/silenceErrors.d.ts +0 -2
  11. package/bin/silenceErrors.js +0 -11
  12. package/commands/__tests__/account.test.d.ts +0 -1
  13. package/commands/__tests__/account.test.js +0 -69
  14. package/commands/__tests__/auth.test.d.ts +0 -1
  15. package/commands/__tests__/auth.test.js +0 -43
  16. package/commands/__tests__/cms.test.d.ts +0 -1
  17. package/commands/__tests__/cms.test.js +0 -87
  18. package/commands/__tests__/config.test.d.ts +0 -1
  19. package/commands/__tests__/config.test.js +0 -44
  20. package/commands/__tests__/customObject.test.d.ts +0 -1
  21. package/commands/__tests__/customObject.test.js +0 -68
  22. package/commands/__tests__/doctor.test.d.ts +0 -1
  23. package/commands/__tests__/doctor.test.js +0 -132
  24. package/commands/__tests__/feedback.test.d.ts +0 -1
  25. package/commands/__tests__/feedback.test.js +0 -24
  26. package/commands/__tests__/filemanager.test.d.ts +0 -1
  27. package/commands/__tests__/filemanager.test.js +0 -45
  28. package/commands/__tests__/getStarted.test.d.ts +0 -1
  29. package/commands/__tests__/getStarted.test.js +0 -173
  30. package/commands/__tests__/hubdb.test.d.ts +0 -1
  31. package/commands/__tests__/hubdb.test.js +0 -50
  32. package/commands/__tests__/init.test.d.ts +0 -1
  33. package/commands/__tests__/init.test.js +0 -42
  34. package/commands/__tests__/mcp.test.d.ts +0 -1
  35. package/commands/__tests__/mcp.test.js +0 -46
  36. package/commands/__tests__/open.test.d.ts +0 -1
  37. package/commands/__tests__/open.test.js +0 -58
  38. package/commands/__tests__/project.test.d.ts +0 -1
  39. package/commands/__tests__/project.test.js +0 -125
  40. package/commands/__tests__/sandbox.test.d.ts +0 -1
  41. package/commands/__tests__/sandbox.test.js +0 -44
  42. package/commands/__tests__/secret.test.d.ts +0 -1
  43. package/commands/__tests__/secret.test.js +0 -49
  44. package/commands/__tests__/testAccount.test.d.ts +0 -1
  45. package/commands/__tests__/testAccount.test.js +0 -57
  46. package/commands/__tests__/upgrade.test.d.ts +0 -1
  47. package/commands/__tests__/upgrade.test.js +0 -309
  48. package/commands/account/__tests__/auth.test.d.ts +0 -1
  49. package/commands/account/__tests__/auth.test.js +0 -206
  50. package/commands/account/__tests__/clean.test.d.ts +0 -1
  51. package/commands/account/__tests__/clean.test.js +0 -28
  52. package/commands/account/__tests__/createOverride.test.d.ts +0 -1
  53. package/commands/account/__tests__/createOverride.test.js +0 -32
  54. package/commands/account/__tests__/info.test.d.ts +0 -1
  55. package/commands/account/__tests__/info.test.js +0 -28
  56. package/commands/account/__tests__/list.test.d.ts +0 -1
  57. package/commands/account/__tests__/list.test.js +0 -153
  58. package/commands/account/__tests__/remove.test.d.ts +0 -1
  59. package/commands/account/__tests__/remove.test.js +0 -36
  60. package/commands/account/__tests__/removeOverride.d.ts +0 -1
  61. package/commands/account/__tests__/removeOverride.js +0 -25
  62. package/commands/account/__tests__/rename.test.d.ts +0 -1
  63. package/commands/account/__tests__/rename.test.js +0 -82
  64. package/commands/account/__tests__/use.test.d.ts +0 -1
  65. package/commands/account/__tests__/use.test.js +0 -170
  66. package/commands/account/auth.d.ts +0 -8
  67. package/commands/account/auth.js +0 -92
  68. package/commands/account/clean.d.ts +0 -6
  69. package/commands/account/clean.js +0 -125
  70. package/commands/account/createOverride.d.ts +0 -6
  71. package/commands/account/createOverride.js +0 -93
  72. package/commands/account/info.d.ts +0 -4
  73. package/commands/account/info.js +0 -75
  74. package/commands/account/list.d.ts +0 -4
  75. package/commands/account/list.js +0 -107
  76. package/commands/account/remove.d.ts +0 -6
  77. package/commands/account/remove.js +0 -87
  78. package/commands/account/removeOverride.d.ts +0 -6
  79. package/commands/account/removeOverride.js +0 -71
  80. package/commands/account/rename.d.ts +0 -7
  81. package/commands/account/rename.js +0 -51
  82. package/commands/account/use.d.ts +0 -6
  83. package/commands/account/use.js +0 -83
  84. package/commands/account.d.ts +0 -3
  85. package/commands/account.js +0 -35
  86. package/commands/app/__tests__/migrate.test.d.ts +0 -1
  87. package/commands/app/__tests__/migrate.test.js +0 -111
  88. package/commands/app/migrate.d.ts +0 -6
  89. package/commands/app/migrate.js +0 -96
  90. package/commands/app/secret/__tests__/add.test.d.ts +0 -1
  91. package/commands/app/secret/__tests__/add.test.js +0 -140
  92. package/commands/app/secret/__tests__/delete.test.d.ts +0 -1
  93. package/commands/app/secret/__tests__/delete.test.js +0 -28
  94. package/commands/app/secret/__tests__/list.test.d.ts +0 -1
  95. package/commands/app/secret/__tests__/list.test.js +0 -25
  96. package/commands/app/secret/__tests__/update.test.d.ts +0 -1
  97. package/commands/app/secret/__tests__/update.test.js +0 -28
  98. package/commands/app/secret/add.d.ts +0 -7
  99. package/commands/app/secret/add.js +0 -63
  100. package/commands/app/secret/delete.d.ts +0 -8
  101. package/commands/app/secret/delete.js +0 -86
  102. package/commands/app/secret/list.d.ts +0 -6
  103. package/commands/app/secret/list.js +0 -63
  104. package/commands/app/secret/update.d.ts +0 -7
  105. package/commands/app/secret/update.js +0 -76
  106. package/commands/app/secret.d.ts +0 -3
  107. package/commands/app/secret.js +0 -26
  108. package/commands/app.d.ts +0 -3
  109. package/commands/app.js +0 -18
  110. package/commands/auth.d.ts +0 -9
  111. package/commands/auth.js +0 -186
  112. package/commands/cms/__tests__/delete.test.d.ts +0 -1
  113. package/commands/cms/__tests__/delete.test.js +0 -39
  114. package/commands/cms/__tests__/fetch.test.d.ts +0 -1
  115. package/commands/cms/__tests__/fetch.test.js +0 -156
  116. package/commands/cms/__tests__/function.test.d.ts +0 -1
  117. package/commands/cms/__tests__/function.test.js +0 -50
  118. package/commands/cms/__tests__/lint.test.d.ts +0 -1
  119. package/commands/cms/__tests__/lint.test.js +0 -33
  120. package/commands/cms/__tests__/list.test.d.ts +0 -1
  121. package/commands/cms/__tests__/list.test.js +0 -42
  122. package/commands/cms/__tests__/module.test.d.ts +0 -1
  123. package/commands/cms/__tests__/module.test.js +0 -45
  124. package/commands/cms/__tests__/mv.test.d.ts +0 -1
  125. package/commands/cms/__tests__/mv.test.js +0 -46
  126. package/commands/cms/__tests__/theme.test.d.ts +0 -1
  127. package/commands/cms/__tests__/theme.test.js +0 -54
  128. package/commands/cms/__tests__/upload.test.d.ts +0 -1
  129. package/commands/cms/__tests__/upload.test.js +0 -312
  130. package/commands/cms/__tests__/watch.test.d.ts +0 -1
  131. package/commands/cms/__tests__/watch.test.js +0 -204
  132. package/commands/cms/app/create.d.ts +0 -9
  133. package/commands/cms/app/create.js +0 -81
  134. package/commands/cms/app.d.ts +0 -3
  135. package/commands/cms/app.js +0 -17
  136. package/commands/cms/convertFields.d.ts +0 -7
  137. package/commands/cms/convertFields.js +0 -97
  138. package/commands/cms/delete.d.ts +0 -6
  139. package/commands/cms/delete.js +0 -43
  140. package/commands/cms/fetch.d.ts +0 -12
  141. package/commands/cms/fetch.js +0 -80
  142. package/commands/cms/function/__tests__/logs.test.d.ts +0 -1
  143. package/commands/cms/function/__tests__/logs.test.js +0 -70
  144. package/commands/cms/function/create.d.ts +0 -12
  145. package/commands/cms/function/create.js +0 -84
  146. package/commands/cms/function/deploy.d.ts +0 -6
  147. package/commands/cms/function/deploy.js +0 -89
  148. package/commands/cms/function/list.d.ts +0 -6
  149. package/commands/cms/function/list.js +0 -59
  150. package/commands/cms/function/logs.d.ts +0 -10
  151. package/commands/cms/function/logs.js +0 -136
  152. package/commands/cms/function/server.d.ts +0 -10
  153. package/commands/cms/function/server.js +0 -69
  154. package/commands/cms/function.d.ts +0 -3
  155. package/commands/cms/function.js +0 -27
  156. package/commands/cms/getReactModule.d.ts +0 -7
  157. package/commands/cms/getReactModule.js +0 -77
  158. package/commands/cms/lighthouseScore.d.ts +0 -8
  159. package/commands/cms/lighthouseScore.js +0 -281
  160. package/commands/cms/lint.d.ts +0 -6
  161. package/commands/cms/lint.js +0 -83
  162. package/commands/cms/list.d.ts +0 -6
  163. package/commands/cms/list.js +0 -96
  164. package/commands/cms/module/create.d.ts +0 -11
  165. package/commands/cms/module/create.js +0 -84
  166. package/commands/cms/module/marketplace-validate.d.ts +0 -6
  167. package/commands/cms/module/marketplace-validate.js +0 -62
  168. package/commands/cms/module.d.ts +0 -3
  169. package/commands/cms/module.js +0 -21
  170. package/commands/cms/mv.d.ts +0 -7
  171. package/commands/cms/mv.js +0 -60
  172. package/commands/cms/template/create.d.ts +0 -9
  173. package/commands/cms/template/create.js +0 -72
  174. package/commands/cms/template.d.ts +0 -3
  175. package/commands/cms/template.js +0 -17
  176. package/commands/cms/theme/__tests__/generate-selectors.test.d.ts +0 -1
  177. package/commands/cms/theme/__tests__/generate-selectors.test.js +0 -28
  178. package/commands/cms/theme/__tests__/marketplace-validate.test.d.ts +0 -1
  179. package/commands/cms/theme/__tests__/marketplace-validate.test.js +0 -36
  180. package/commands/cms/theme/__tests__/preview.test.d.ts +0 -1
  181. package/commands/cms/theme/__tests__/preview.test.js +0 -54
  182. package/commands/cms/theme/create.d.ts +0 -6
  183. package/commands/cms/theme/create.js +0 -58
  184. package/commands/cms/theme/generate-selectors.d.ts +0 -6
  185. package/commands/cms/theme/generate-selectors.js +0 -171
  186. package/commands/cms/theme/marketplace-validate.d.ts +0 -6
  187. package/commands/cms/theme/marketplace-validate.js +0 -64
  188. package/commands/cms/theme/preview.d.ts +0 -11
  189. package/commands/cms/theme/preview.js +0 -126
  190. package/commands/cms/theme.d.ts +0 -3
  191. package/commands/cms/theme.js +0 -25
  192. package/commands/cms/upload.d.ts +0 -12
  193. package/commands/cms/upload.js +0 -212
  194. package/commands/cms/watch.d.ts +0 -13
  195. package/commands/cms/watch.js +0 -132
  196. package/commands/cms/webpack/create.d.ts +0 -6
  197. package/commands/cms/webpack/create.js +0 -58
  198. package/commands/cms/webpack.d.ts +0 -3
  199. package/commands/cms/webpack.js +0 -17
  200. package/commands/cms.d.ts +0 -3
  201. package/commands/cms.js +0 -49
  202. package/commands/completion.d.ts +0 -3
  203. package/commands/completion.js +0 -27
  204. package/commands/config/migrate.d.ts +0 -6
  205. package/commands/config/migrate.js +0 -70
  206. package/commands/config/set.d.ts +0 -11
  207. package/commands/config/set.js +0 -141
  208. package/commands/config.d.ts +0 -3
  209. package/commands/config.js +0 -18
  210. package/commands/customObject/__tests__/create.test.d.ts +0 -1
  211. package/commands/customObject/__tests__/create.test.js +0 -40
  212. package/commands/customObject/__tests__/createSchema.test.d.ts +0 -1
  213. package/commands/customObject/__tests__/createSchema.test.js +0 -28
  214. package/commands/customObject/__tests__/deleteSchema.test.d.ts +0 -1
  215. package/commands/customObject/__tests__/deleteSchema.test.js +0 -42
  216. package/commands/customObject/__tests__/fetch-all-schemas.test.d.ts +0 -1
  217. package/commands/customObject/__tests__/fetch-all-schemas.test.js +0 -41
  218. package/commands/customObject/__tests__/fetchSchema.test.d.ts +0 -1
  219. package/commands/customObject/__tests__/fetchSchema.test.js +0 -45
  220. package/commands/customObject/__tests__/listSchemas.test.d.ts +0 -1
  221. package/commands/customObject/__tests__/listSchemas.test.js +0 -29
  222. package/commands/customObject/__tests__/updateSchema.test.d.ts +0 -1
  223. package/commands/customObject/__tests__/updateSchema.test.js +0 -40
  224. package/commands/customObject/create.d.ts +0 -7
  225. package/commands/customObject/create.js +0 -64
  226. package/commands/customObject/createSchema.d.ts +0 -6
  227. package/commands/customObject/createSchema.js +0 -55
  228. package/commands/customObject/deleteSchema.d.ts +0 -7
  229. package/commands/customObject/deleteSchema.js +0 -69
  230. package/commands/customObject/fetchAllSchemas.d.ts +0 -6
  231. package/commands/customObject/fetchAllSchemas.js +0 -57
  232. package/commands/customObject/fetchSchema.d.ts +0 -7
  233. package/commands/customObject/fetchSchema.js +0 -67
  234. package/commands/customObject/listSchemas.d.ts +0 -4
  235. package/commands/customObject/listSchemas.js +0 -35
  236. package/commands/customObject/updateSchema.d.ts +0 -7
  237. package/commands/customObject/updateSchema.js +0 -70
  238. package/commands/customObject.d.ts +0 -3
  239. package/commands/customObject.js +0 -38
  240. package/commands/doctor.d.ts +0 -6
  241. package/commands/doctor.js +0 -70
  242. package/commands/feedback.d.ts +0 -4
  243. package/commands/feedback.js +0 -32
  244. package/commands/filemanager/__tests__/fetch.test.d.ts +0 -1
  245. package/commands/filemanager/__tests__/fetch.test.js +0 -32
  246. package/commands/filemanager/__tests__/upload.test.d.ts +0 -1
  247. package/commands/filemanager/__tests__/upload.test.js +0 -191
  248. package/commands/filemanager/fetch.d.ts +0 -8
  249. package/commands/filemanager/fetch.js +0 -58
  250. package/commands/filemanager/upload.d.ts +0 -7
  251. package/commands/filemanager/upload.js +0 -97
  252. package/commands/filemanager.d.ts +0 -3
  253. package/commands/filemanager.js +0 -18
  254. package/commands/getStarted.d.ts +0 -8
  255. package/commands/getStarted.js +0 -322
  256. package/commands/hubdb/__tests__/clear.test.d.ts +0 -1
  257. package/commands/hubdb/__tests__/clear.test.js +0 -28
  258. package/commands/hubdb/__tests__/create.test.d.ts +0 -1
  259. package/commands/hubdb/__tests__/create.test.js +0 -28
  260. package/commands/hubdb/__tests__/delete.test.d.ts +0 -1
  261. package/commands/hubdb/__tests__/delete.test.js +0 -28
  262. package/commands/hubdb/__tests__/fetch.test.d.ts +0 -1
  263. package/commands/hubdb/__tests__/fetch.test.js +0 -28
  264. package/commands/hubdb/__tests__/list.test.d.ts +0 -1
  265. package/commands/hubdb/__tests__/list.test.js +0 -88
  266. package/commands/hubdb/clear.d.ts +0 -7
  267. package/commands/hubdb/clear.js +0 -54
  268. package/commands/hubdb/create.d.ts +0 -6
  269. package/commands/hubdb/create.js +0 -74
  270. package/commands/hubdb/delete.d.ts +0 -6
  271. package/commands/hubdb/delete.js +0 -64
  272. package/commands/hubdb/fetch.d.ts +0 -7
  273. package/commands/hubdb/fetch.js +0 -51
  274. package/commands/hubdb/list.d.ts +0 -4
  275. package/commands/hubdb/list.js +0 -79
  276. package/commands/hubdb.d.ts +0 -5
  277. package/commands/hubdb.js +0 -27
  278. package/commands/init.d.ts +0 -8
  279. package/commands/init.js +0 -196
  280. package/commands/mcp/__tests__/setup.test.d.ts +0 -1
  281. package/commands/mcp/__tests__/setup.test.js +0 -26
  282. package/commands/mcp/__tests__/start.test.d.ts +0 -1
  283. package/commands/mcp/__tests__/start.test.js +0 -144
  284. package/commands/mcp/setup.d.ts +0 -6
  285. package/commands/mcp/setup.js +0 -36
  286. package/commands/mcp/start.d.ts +0 -6
  287. package/commands/mcp/start.js +0 -72
  288. package/commands/mcp.d.ts +0 -3
  289. package/commands/mcp.js +0 -20
  290. package/commands/open.d.ts +0 -7
  291. package/commands/open.js +0 -70
  292. package/commands/project/__tests__/add.test.d.ts +0 -1
  293. package/commands/project/__tests__/add.test.js +0 -107
  294. package/commands/project/__tests__/create.test.d.ts +0 -1
  295. package/commands/project/__tests__/create.test.js +0 -97
  296. package/commands/project/__tests__/deploy.test.d.ts +0 -1
  297. package/commands/project/__tests__/deploy.test.js +0 -307
  298. package/commands/project/__tests__/dev.test.d.ts +0 -1
  299. package/commands/project/__tests__/dev.test.js +0 -273
  300. package/commands/project/__tests__/devUnifiedFlow.test.d.ts +0 -1
  301. package/commands/project/__tests__/devUnifiedFlow.test.js +0 -434
  302. package/commands/project/__tests__/download.test.d.ts +0 -1
  303. package/commands/project/__tests__/download.test.js +0 -39
  304. package/commands/project/__tests__/installDeps.test.d.ts +0 -1
  305. package/commands/project/__tests__/installDeps.test.js +0 -140
  306. package/commands/project/__tests__/lint.test.d.ts +0 -1
  307. package/commands/project/__tests__/lint.test.js +0 -704
  308. package/commands/project/__tests__/list.test.d.ts +0 -1
  309. package/commands/project/__tests__/list.test.js +0 -31
  310. package/commands/project/__tests__/listBuilds.test.d.ts +0 -1
  311. package/commands/project/__tests__/listBuilds.test.js +0 -38
  312. package/commands/project/__tests__/logs.test.d.ts +0 -1
  313. package/commands/project/__tests__/logs.test.js +0 -202
  314. package/commands/project/__tests__/migrate.test.d.ts +0 -1
  315. package/commands/project/__tests__/migrate.test.js +0 -106
  316. package/commands/project/__tests__/open.test.d.ts +0 -1
  317. package/commands/project/__tests__/open.test.js +0 -39
  318. package/commands/project/__tests__/profile.test.d.ts +0 -1
  319. package/commands/project/__tests__/profile.test.js +0 -42
  320. package/commands/project/__tests__/updateDeps.test.d.ts +0 -1
  321. package/commands/project/__tests__/updateDeps.test.js +0 -140
  322. package/commands/project/__tests__/upload.test.d.ts +0 -1
  323. package/commands/project/__tests__/upload.test.js +0 -234
  324. package/commands/project/__tests__/validate.test.d.ts +0 -1
  325. package/commands/project/__tests__/validate.test.js +0 -381
  326. package/commands/project/__tests__/watch.test.d.ts +0 -1
  327. package/commands/project/__tests__/watch.test.js +0 -35
  328. package/commands/project/add.d.ts +0 -10
  329. package/commands/project/add.js +0 -79
  330. package/commands/project/cloneApp.d.ts +0 -1
  331. package/commands/project/cloneApp.js +0 -1
  332. package/commands/project/create.d.ts +0 -4
  333. package/commands/project/create.js +0 -175
  334. package/commands/project/deploy.d.ts +0 -11
  335. package/commands/project/deploy.js +0 -196
  336. package/commands/project/dev/deprecatedFlow.d.ts +0 -11
  337. package/commands/project/dev/deprecatedFlow.js +0 -135
  338. package/commands/project/dev/index.d.ts +0 -5
  339. package/commands/project/dev/index.js +0 -164
  340. package/commands/project/dev/unifiedFlow.d.ts +0 -14
  341. package/commands/project/dev/unifiedFlow.js +0 -162
  342. package/commands/project/download.d.ts +0 -8
  343. package/commands/project/download.js +0 -91
  344. package/commands/project/installDeps.d.ts +0 -6
  345. package/commands/project/installDeps.js +0 -80
  346. package/commands/project/lint.d.ts +0 -6
  347. package/commands/project/lint.js +0 -178
  348. package/commands/project/list.d.ts +0 -4
  349. package/commands/project/list.js +0 -62
  350. package/commands/project/listBuilds.d.ts +0 -7
  351. package/commands/project/listBuilds.js +0 -120
  352. package/commands/project/logs.d.ts +0 -10
  353. package/commands/project/logs.js +0 -119
  354. package/commands/project/migrate.d.ts +0 -7
  355. package/commands/project/migrate.js +0 -91
  356. package/commands/project/open.d.ts +0 -6
  357. package/commands/project/open.js +0 -61
  358. package/commands/project/profile/add.d.ts +0 -7
  359. package/commands/project/profile/add.js +0 -203
  360. package/commands/project/profile/delete.d.ts +0 -6
  361. package/commands/project/profile/delete.js +0 -129
  362. package/commands/project/profile.d.ts +0 -3
  363. package/commands/project/profile.js +0 -19
  364. package/commands/project/updateDeps.d.ts +0 -6
  365. package/commands/project/updateDeps.js +0 -80
  366. package/commands/project/upload.d.ts +0 -10
  367. package/commands/project/upload.js +0 -145
  368. package/commands/project/validate.d.ts +0 -6
  369. package/commands/project/validate.js +0 -156
  370. package/commands/project/watch.d.ts +0 -6
  371. package/commands/project/watch.js +0 -152
  372. package/commands/project.d.ts +0 -3
  373. package/commands/project.js +0 -72
  374. package/commands/sandbox/__tests__/create.test.d.ts +0 -1
  375. package/commands/sandbox/__tests__/create.test.js +0 -245
  376. package/commands/sandbox/__tests__/delete.test.d.ts +0 -1
  377. package/commands/sandbox/__tests__/delete.test.js +0 -31
  378. package/commands/sandbox/create.d.ts +0 -8
  379. package/commands/sandbox/create.js +0 -183
  380. package/commands/sandbox/delete.d.ts +0 -7
  381. package/commands/sandbox/delete.js +0 -189
  382. package/commands/sandbox.d.ts +0 -3
  383. package/commands/sandbox.js +0 -19
  384. package/commands/secret/__tests__/addSecret.test.d.ts +0 -1
  385. package/commands/secret/__tests__/addSecret.test.js +0 -162
  386. package/commands/secret/__tests__/deleteSecret.test.d.ts +0 -1
  387. package/commands/secret/__tests__/deleteSecret.test.js +0 -41
  388. package/commands/secret/__tests__/listSecret.test.d.ts +0 -1
  389. package/commands/secret/__tests__/listSecret.test.js +0 -29
  390. package/commands/secret/__tests__/updateSecret.test.d.ts +0 -1
  391. package/commands/secret/__tests__/updateSecret.test.js +0 -29
  392. package/commands/secret/addSecret.d.ts +0 -6
  393. package/commands/secret/addSecret.js +0 -58
  394. package/commands/secret/deleteSecret.d.ts +0 -7
  395. package/commands/secret/deleteSecret.js +0 -71
  396. package/commands/secret/listSecret.d.ts +0 -4
  397. package/commands/secret/listSecret.js +0 -43
  398. package/commands/secret/updateSecret.d.ts +0 -6
  399. package/commands/secret/updateSecret.js +0 -57
  400. package/commands/secret.d.ts +0 -3
  401. package/commands/secret.js +0 -25
  402. package/commands/testAccount/__tests__/create.test.d.ts +0 -1
  403. package/commands/testAccount/__tests__/create.test.js +0 -106
  404. package/commands/testAccount/__tests__/createConfig.test.d.ts +0 -1
  405. package/commands/testAccount/__tests__/createConfig.test.js +0 -32
  406. package/commands/testAccount/__tests__/delete.test.d.ts +0 -1
  407. package/commands/testAccount/__tests__/delete.test.js +0 -29
  408. package/commands/testAccount/__tests__/importData.test.d.ts +0 -1
  409. package/commands/testAccount/__tests__/importData.test.js +0 -92
  410. package/commands/testAccount/create.d.ts +0 -15
  411. package/commands/testAccount/create.js +0 -228
  412. package/commands/testAccount/createConfig.d.ts +0 -8
  413. package/commands/testAccount/createConfig.js +0 -92
  414. package/commands/testAccount/delete.d.ts +0 -7
  415. package/commands/testAccount/delete.js +0 -188
  416. package/commands/testAccount/importData.d.ts +0 -9
  417. package/commands/testAccount/importData.js +0 -61
  418. package/commands/testAccount.d.ts +0 -3
  419. package/commands/testAccount.js +0 -25
  420. package/commands/upgrade.d.ts +0 -8
  421. package/commands/upgrade.js +0 -119
  422. package/lang/en.d.ts +0 -3990
  423. package/lang/en.js +0 -4013
  424. package/lib/CLIWebSocketServer.d.ts +0 -28
  425. package/lib/CLIWebSocketServer.js +0 -91
  426. package/lib/__tests__/CLIWebSocketServer.test.d.ts +0 -1
  427. package/lib/__tests__/CLIWebSocketServer.test.js +0 -252
  428. package/lib/__tests__/accountAuth.test.d.ts +0 -1
  429. package/lib/__tests__/accountAuth.test.js +0 -258
  430. package/lib/__tests__/accountTypes.test.d.ts +0 -1
  431. package/lib/__tests__/accountTypes.test.js +0 -98
  432. package/lib/__tests__/buildAccount.test.d.ts +0 -1
  433. package/lib/__tests__/buildAccount.test.js +0 -262
  434. package/lib/__tests__/cliUpgradeUtils.test.d.ts +0 -1
  435. package/lib/__tests__/cliUpgradeUtils.test.js +0 -131
  436. package/lib/__tests__/commandSuggestion.test.d.ts +0 -1
  437. package/lib/__tests__/commandSuggestion.test.js +0 -121
  438. package/lib/__tests__/commonOpts.test.d.ts +0 -1
  439. package/lib/__tests__/commonOpts.test.js +0 -80
  440. package/lib/__tests__/dependencyManagement.test.d.ts +0 -1
  441. package/lib/__tests__/dependencyManagement.test.js +0 -1067
  442. package/lib/__tests__/developerTestAccounts.test.d.ts +0 -1
  443. package/lib/__tests__/developerTestAccounts.test.js +0 -156
  444. package/lib/__tests__/hasFeature.test.d.ts +0 -1
  445. package/lib/__tests__/hasFeature.test.js +0 -167
  446. package/lib/__tests__/http.test.d.ts +0 -1
  447. package/lib/__tests__/http.test.js +0 -40
  448. package/lib/__tests__/importData.test.d.ts +0 -1
  449. package/lib/__tests__/importData.test.js +0 -98
  450. package/lib/__tests__/npmCli.test.d.ts +0 -1
  451. package/lib/__tests__/npmCli.test.js +0 -84
  452. package/lib/__tests__/oauth.test.d.ts +0 -1
  453. package/lib/__tests__/oauth.test.js +0 -109
  454. package/lib/__tests__/parsing.test.d.ts +0 -1
  455. package/lib/__tests__/parsing.test.js +0 -34
  456. package/lib/__tests__/polling.test.d.ts +0 -1
  457. package/lib/__tests__/polling.test.js +0 -76
  458. package/lib/__tests__/process.test.d.ts +0 -1
  459. package/lib/__tests__/process.test.js +0 -89
  460. package/lib/__tests__/sandboxSync.test.d.ts +0 -1
  461. package/lib/__tests__/sandboxSync.test.js +0 -147
  462. package/lib/__tests__/sandboxes.test.d.ts +0 -1
  463. package/lib/__tests__/sandboxes.test.js +0 -156
  464. package/lib/__tests__/serverlessLogs.test.d.ts +0 -1
  465. package/lib/__tests__/serverlessLogs.test.js +0 -163
  466. package/lib/__tests__/usageTracking.test.d.ts +0 -1
  467. package/lib/__tests__/usageTracking.test.js +0 -197
  468. package/lib/__tests__/validation.test.d.ts +0 -1
  469. package/lib/__tests__/validation.test.js +0 -143
  470. package/lib/__tests__/yargsUtils.test.d.ts +0 -1
  471. package/lib/__tests__/yargsUtils.test.js +0 -124
  472. package/lib/accountAuth.d.ts +0 -10
  473. package/lib/accountAuth.js +0 -105
  474. package/lib/accountTypes.d.ts +0 -9
  475. package/lib/accountTypes.js +0 -41
  476. package/lib/app/__tests__/migrate.test.d.ts +0 -1
  477. package/lib/app/__tests__/migrate.test.js +0 -638
  478. package/lib/app/migrate.d.ts +0 -44
  479. package/lib/app/migrate.js +0 -384
  480. package/lib/app/urls.d.ts +0 -17
  481. package/lib/app/urls.js +0 -16
  482. package/lib/buildAccount.d.ts +0 -20
  483. package/lib/buildAccount.js +0 -217
  484. package/lib/cliUpgradeUtils.d.ts +0 -22
  485. package/lib/cliUpgradeUtils.js +0 -62
  486. package/lib/cmsAssets/api-sample.d.ts +0 -3
  487. package/lib/cmsAssets/api-sample.js +0 -60
  488. package/lib/cmsAssets/app.d.ts +0 -3
  489. package/lib/cmsAssets/app.js +0 -12
  490. package/lib/cmsAssets/function.d.ts +0 -3
  491. package/lib/cmsAssets/function.js +0 -11
  492. package/lib/cmsAssets/index.d.ts +0 -5
  493. package/lib/cmsAssets/index.js +0 -21
  494. package/lib/cmsAssets/module.d.ts +0 -3
  495. package/lib/cmsAssets/module.js +0 -20
  496. package/lib/cmsAssets/react-app.d.ts +0 -3
  497. package/lib/cmsAssets/react-app.js +0 -12
  498. package/lib/cmsAssets/template.d.ts +0 -3
  499. package/lib/cmsAssets/template.js +0 -20
  500. package/lib/cmsAssets/vue-app.d.ts +0 -3
  501. package/lib/cmsAssets/vue-app.js +0 -12
  502. package/lib/cmsAssets/webpack-serverless.d.ts +0 -3
  503. package/lib/cmsAssets/webpack-serverless.js +0 -12
  504. package/lib/cmsAssets/website-theme.d.ts +0 -3
  505. package/lib/cmsAssets/website-theme.js +0 -19
  506. package/lib/commandSuggestion.d.ts +0 -3
  507. package/lib/commandSuggestion.js +0 -39
  508. package/lib/commonOpts.d.ts +0 -25
  509. package/lib/commonOpts.js +0 -181
  510. package/lib/configMigrate.d.ts +0 -2
  511. package/lib/configMigrate.js +0 -182
  512. package/lib/configOptions.d.ts +0 -21
  513. package/lib/configOptions.js +0 -111
  514. package/lib/constants.d.ts +0 -147
  515. package/lib/constants.js +0 -148
  516. package/lib/customObject.d.ts +0 -3
  517. package/lib/customObject.js +0 -11
  518. package/lib/dependencyManagement.d.ts +0 -21
  519. package/lib/dependencyManagement.js +0 -243
  520. package/lib/developerTestAccounts.d.ts +0 -6
  521. package/lib/developerTestAccounts.js +0 -66
  522. package/lib/doctor/Diagnosis.d.ts +0 -27
  523. package/lib/doctor/Diagnosis.js +0 -113
  524. package/lib/doctor/DiagnosticInfoBuilder.d.ts +0 -69
  525. package/lib/doctor/DiagnosticInfoBuilder.js +0 -169
  526. package/lib/doctor/Doctor.d.ts +0 -35
  527. package/lib/doctor/Doctor.js +0 -566
  528. package/lib/doctor/__tests__/Diagnosis.test.d.ts +0 -1
  529. package/lib/doctor/__tests__/Diagnosis.test.js +0 -84
  530. package/lib/doctor/__tests__/DiagnosticInfoBuilder.test.d.ts +0 -1
  531. package/lib/doctor/__tests__/DiagnosticInfoBuilder.test.js +0 -177
  532. package/lib/doctor/__tests__/Doctor.test.d.ts +0 -1
  533. package/lib/doctor/__tests__/Doctor.test.js +0 -560
  534. package/lib/enums/exitCodes.d.ts +0 -5
  535. package/lib/enums/exitCodes.js +0 -10
  536. package/lib/errorHandlers/__tests__/index.test.d.ts +0 -1
  537. package/lib/errorHandlers/__tests__/index.test.js +0 -278
  538. package/lib/errorHandlers/index.d.ts +0 -19
  539. package/lib/errorHandlers/index.js +0 -99
  540. package/lib/errorHandlers/suppressError.d.ts +0 -2
  541. package/lib/errorHandlers/suppressError.js +0 -53
  542. package/lib/errors/ProjectErrors.d.ts +0 -15
  543. package/lib/errors/ProjectErrors.js +0 -30
  544. package/lib/errors/ProjectValidationError.d.ts +0 -4
  545. package/lib/errors/ProjectValidationError.js +0 -9
  546. package/lib/filesystem.d.ts +0 -2
  547. package/lib/filesystem.js +0 -19
  548. package/lib/generateSelectors.d.ts +0 -20
  549. package/lib/generateSelectors.js +0 -110
  550. package/lib/getStarted/getStartedV2.d.ts +0 -7
  551. package/lib/getStarted/getStartedV2.js +0 -18
  552. package/lib/getStartedV2Actions.d.ts +0 -50
  553. package/lib/getStartedV2Actions.js +0 -199
  554. package/lib/hasFeature.d.ts +0 -4
  555. package/lib/hasFeature.js +0 -18
  556. package/lib/http.d.ts +0 -1
  557. package/lib/http.js +0 -28
  558. package/lib/importData.d.ts +0 -3
  559. package/lib/importData.js +0 -51
  560. package/lib/interpolation.d.ts +0 -7
  561. package/lib/interpolation.js +0 -84
  562. package/lib/jsonLoader.d.ts +0 -14
  563. package/lib/jsonLoader.js +0 -60
  564. package/lib/links.d.ts +0 -11
  565. package/lib/links.js +0 -107
  566. package/lib/marketplaceValidate.d.ts +0 -16
  567. package/lib/marketplaceValidate.js +0 -88
  568. package/lib/mcp/__tests__/setup.test.d.ts +0 -1
  569. package/lib/mcp/__tests__/setup.test.js +0 -523
  570. package/lib/mcp/setup.d.ts +0 -17
  571. package/lib/mcp/setup.js +0 -345
  572. package/lib/middleware/__tests__/commandTargetingUtils.test.d.ts +0 -1
  573. package/lib/middleware/__tests__/commandTargetingUtils.test.js +0 -99
  574. package/lib/middleware/__tests__/configMiddleware.test.d.ts +0 -1
  575. package/lib/middleware/__tests__/configMiddleware.test.js +0 -118
  576. package/lib/middleware/__tests__/gitMiddleware.test.d.ts +0 -1
  577. package/lib/middleware/__tests__/gitMiddleware.test.js +0 -43
  578. package/lib/middleware/__tests__/requestMiddleware.test.d.ts +0 -1
  579. package/lib/middleware/__tests__/requestMiddleware.test.js +0 -15
  580. package/lib/middleware/__tests__/usageTrackingMiddleware.test.d.ts +0 -1
  581. package/lib/middleware/__tests__/usageTrackingMiddleware.test.js +0 -44
  582. package/lib/middleware/__tests__/yargsChecksMiddleware.test.d.ts +0 -1
  583. package/lib/middleware/__tests__/yargsChecksMiddleware.test.js +0 -39
  584. package/lib/middleware/autoUpdateMiddleware.d.ts +0 -4
  585. package/lib/middleware/autoUpdateMiddleware.js +0 -105
  586. package/lib/middleware/commandTargetingUtils.d.ts +0 -8
  587. package/lib/middleware/commandTargetingUtils.js +0 -76
  588. package/lib/middleware/configMiddleware.d.ts +0 -15
  589. package/lib/middleware/configMiddleware.js +0 -93
  590. package/lib/middleware/fireAlarmMiddleware.d.ts +0 -4
  591. package/lib/middleware/fireAlarmMiddleware.js +0 -118
  592. package/lib/middleware/gitMiddleware.d.ts +0 -2
  593. package/lib/middleware/gitMiddleware.js +0 -21
  594. package/lib/middleware/requestMiddleware.d.ts +0 -1
  595. package/lib/middleware/requestMiddleware.js +0 -5
  596. package/lib/middleware/spinniesMiddleware.d.ts +0 -1
  597. package/lib/middleware/spinniesMiddleware.js +0 -4
  598. package/lib/middleware/usageTrackingMiddleware.d.ts +0 -13
  599. package/lib/middleware/usageTrackingMiddleware.js +0 -16
  600. package/lib/middleware/yargsChecksMiddleware.d.ts +0 -4
  601. package/lib/middleware/yargsChecksMiddleware.js +0 -18
  602. package/lib/npm/npmCli.d.ts +0 -17
  603. package/lib/npm/npmCli.js +0 -59
  604. package/lib/npm/packageJson.d.ts +0 -24
  605. package/lib/npm/packageJson.js +0 -102
  606. package/lib/npm/workspaces.d.ts +0 -12
  607. package/lib/npm/workspaces.js +0 -48
  608. package/lib/oauth.d.ts +0 -2
  609. package/lib/oauth.js +0 -93
  610. package/lib/parsing.d.ts +0 -1
  611. package/lib/parsing.js +0 -8
  612. package/lib/polling.d.ts +0 -21
  613. package/lib/polling.js +0 -48
  614. package/lib/process.d.ts +0 -13
  615. package/lib/process.js +0 -56
  616. package/lib/projects/ProjectLogsManager.d.ts +0 -29
  617. package/lib/projects/ProjectLogsManager.js +0 -155
  618. package/lib/projects/__tests__/AppDevModeInterface.test.d.ts +0 -1
  619. package/lib/projects/__tests__/AppDevModeInterface.test.js +0 -541
  620. package/lib/projects/__tests__/DevServerManager.test.d.ts +0 -1
  621. package/lib/projects/__tests__/DevServerManager.test.js +0 -185
  622. package/lib/projects/__tests__/DevSessionManager.test.d.ts +0 -1
  623. package/lib/projects/__tests__/DevSessionManager.test.js +0 -250
  624. package/lib/projects/__tests__/LocalDevProcess.test.d.ts +0 -1
  625. package/lib/projects/__tests__/LocalDevProcess.test.js +0 -481
  626. package/lib/projects/__tests__/LocalDevWebsocketServer.test.d.ts +0 -1
  627. package/lib/projects/__tests__/LocalDevWebsocketServer.test.js +0 -231
  628. package/lib/projects/__tests__/ProjectLogsManager.test.d.ts +0 -1
  629. package/lib/projects/__tests__/ProjectLogsManager.test.js +0 -302
  630. package/lib/projects/__tests__/UIExtensionsDevModeInterface.test.d.ts +0 -1
  631. package/lib/projects/__tests__/UIExtensionsDevModeInterface.test.js +0 -160
  632. package/lib/projects/__tests__/components.test.d.ts +0 -1
  633. package/lib/projects/__tests__/components.test.js +0 -426
  634. package/lib/projects/__tests__/deploy.test.d.ts +0 -1
  635. package/lib/projects/__tests__/deploy.test.js +0 -231
  636. package/lib/projects/__tests__/localDevProjectHelpers.test.d.ts +0 -1
  637. package/lib/projects/__tests__/localDevProjectHelpers.test.js +0 -120
  638. package/lib/projects/__tests__/platformVersion.test.d.ts +0 -1
  639. package/lib/projects/__tests__/platformVersion.test.js +0 -63
  640. package/lib/projects/__tests__/pollProjectBuildAndDeploy.test.d.ts +0 -1
  641. package/lib/projects/__tests__/pollProjectBuildAndDeploy.test.js +0 -328
  642. package/lib/projects/__tests__/projectProfiles.test.d.ts +0 -1
  643. package/lib/projects/__tests__/projectProfiles.test.js +0 -441
  644. package/lib/projects/__tests__/projects.test.d.ts +0 -1
  645. package/lib/projects/__tests__/projects.test.js +0 -58
  646. package/lib/projects/__tests__/structure.test.d.ts +0 -1
  647. package/lib/projects/__tests__/structure.test.js +0 -210
  648. package/lib/projects/__tests__/uieLinting.test.d.ts +0 -1
  649. package/lib/projects/__tests__/uieLinting.test.js +0 -631
  650. package/lib/projects/__tests__/upload.test.d.ts +0 -1
  651. package/lib/projects/__tests__/upload.test.js +0 -183
  652. package/lib/projects/add/__tests__/legacyAddComponent.test.d.ts +0 -1
  653. package/lib/projects/add/__tests__/legacyAddComponent.test.js +0 -245
  654. package/lib/projects/add/__tests__/v2AddComponent.test.d.ts +0 -1
  655. package/lib/projects/add/__tests__/v2AddComponent.test.js +0 -343
  656. package/lib/projects/add/legacyAddComponent.d.ts +0 -5
  657. package/lib/projects/add/legacyAddComponent.js +0 -46
  658. package/lib/projects/add/v2AddComponent.d.ts +0 -9
  659. package/lib/projects/add/v2AddComponent.js +0 -111
  660. package/lib/projects/components.d.ts +0 -16
  661. package/lib/projects/components.js +0 -241
  662. package/lib/projects/config.d.ts +0 -9
  663. package/lib/projects/config.js +0 -73
  664. package/lib/projects/create/__tests__/legacy.test.d.ts +0 -1
  665. package/lib/projects/create/__tests__/legacy.test.js +0 -72
  666. package/lib/projects/create/__tests__/v2.test.d.ts +0 -1
  667. package/lib/projects/create/__tests__/v2.test.js +0 -257
  668. package/lib/projects/create/index.d.ts +0 -24
  669. package/lib/projects/create/index.js +0 -33
  670. package/lib/projects/create/legacy.d.ts +0 -6
  671. package/lib/projects/create/legacy.js +0 -48
  672. package/lib/projects/create/v2.d.ts +0 -26
  673. package/lib/projects/create/v2.js +0 -158
  674. package/lib/projects/deploy.d.ts +0 -13
  675. package/lib/projects/deploy.js +0 -76
  676. package/lib/projects/ensureProjectExists.d.ts +0 -11
  677. package/lib/projects/ensureProjectExists.js +0 -89
  678. package/lib/projects/localDev/AppDevModeInterface.d.ts +0 -41
  679. package/lib/projects/localDev/AppDevModeInterface.js +0 -333
  680. package/lib/projects/localDev/DevServerManager.d.ts +0 -21
  681. package/lib/projects/localDev/DevServerManager.js +0 -64
  682. package/lib/projects/localDev/DevServerManager_DEPRECATED.d.ts +0 -40
  683. package/lib/projects/localDev/DevServerManager_DEPRECATED.js +0 -128
  684. package/lib/projects/localDev/DevSessionManager.d.ts +0 -18
  685. package/lib/projects/localDev/DevSessionManager.js +0 -95
  686. package/lib/projects/localDev/LocalDevLogger.d.ts +0 -34
  687. package/lib/projects/localDev/LocalDevLogger.js +0 -178
  688. package/lib/projects/localDev/LocalDevManager_DEPRECATED.d.ts +0 -59
  689. package/lib/projects/localDev/LocalDevManager_DEPRECATED.js +0 -383
  690. package/lib/projects/localDev/LocalDevProcess.d.ts +0 -39
  691. package/lib/projects/localDev/LocalDevProcess.js +0 -277
  692. package/lib/projects/localDev/LocalDevState.d.ts +0 -63
  693. package/lib/projects/localDev/LocalDevState.js +0 -139
  694. package/lib/projects/localDev/LocalDevWatcher.d.ts +0 -10
  695. package/lib/projects/localDev/LocalDevWatcher.js +0 -48
  696. package/lib/projects/localDev/LocalDevWebsocketServer.d.ts +0 -21
  697. package/lib/projects/localDev/LocalDevWebsocketServer.js +0 -169
  698. package/lib/projects/localDev/UIExtensionsDevModeInterface.d.ts +0 -13
  699. package/lib/projects/localDev/UIExtensionsDevModeInterface.js +0 -37
  700. package/lib/projects/localDev/helpers/account.d.ts +0 -14
  701. package/lib/projects/localDev/helpers/account.js +0 -228
  702. package/lib/projects/localDev/helpers/devSessionsApi.d.ts +0 -9
  703. package/lib/projects/localDev/helpers/devSessionsApi.js +0 -19
  704. package/lib/projects/localDev/helpers/process.d.ts +0 -1
  705. package/lib/projects/localDev/helpers/process.js +0 -17
  706. package/lib/projects/localDev/helpers/project.d.ts +0 -16
  707. package/lib/projects/localDev/helpers/project.js +0 -216
  708. package/lib/projects/localDev/localDevWebsocketServerUtils.d.ts +0 -8
  709. package/lib/projects/localDev/localDevWebsocketServerUtils.js +0 -19
  710. package/lib/projects/platformVersion.d.ts +0 -9
  711. package/lib/projects/platformVersion.js +0 -39
  712. package/lib/projects/pollProjectBuildAndDeploy.d.ts +0 -10
  713. package/lib/projects/pollProjectBuildAndDeploy.js +0 -344
  714. package/lib/projects/projectProfiles.d.ts +0 -17
  715. package/lib/projects/projectProfiles.js +0 -140
  716. package/lib/projects/structure.d.ts +0 -18
  717. package/lib/projects/structure.js +0 -130
  718. package/lib/projects/ui.d.ts +0 -1
  719. package/lib/projects/ui.js +0 -12
  720. package/lib/projects/uieLinting.d.ts +0 -33
  721. package/lib/projects/uieLinting.js +0 -220
  722. package/lib/projects/upload.d.ts +0 -33
  723. package/lib/projects/upload.js +0 -147
  724. package/lib/projects/urls.d.ts +0 -10
  725. package/lib/projects/urls.js +0 -42
  726. package/lib/projects/watch.d.ts +0 -5
  727. package/lib/projects/watch.js +0 -168
  728. package/lib/prompts/__tests__/createDeveloperTestAccountConfigPrompt.test.d.ts +0 -1
  729. package/lib/prompts/__tests__/createDeveloperTestAccountConfigPrompt.test.js +0 -157
  730. package/lib/prompts/__tests__/createFunctionPrompt.test.d.ts +0 -1
  731. package/lib/prompts/__tests__/createFunctionPrompt.test.js +0 -129
  732. package/lib/prompts/__tests__/createModulePrompt.test.d.ts +0 -1
  733. package/lib/prompts/__tests__/createModulePrompt.test.js +0 -187
  734. package/lib/prompts/__tests__/createTemplatePrompt.test.d.ts +0 -1
  735. package/lib/prompts/__tests__/createTemplatePrompt.test.js +0 -102
  736. package/lib/prompts/__tests__/downloadProjectPrompt.test.d.ts +0 -1
  737. package/lib/prompts/__tests__/downloadProjectPrompt.test.js +0 -31
  738. package/lib/prompts/__tests__/projectAddPrompt.test.d.ts +0 -1
  739. package/lib/prompts/__tests__/projectAddPrompt.test.js +0 -143
  740. package/lib/prompts/__tests__/projectsLogsPrompt.test.d.ts +0 -1
  741. package/lib/prompts/__tests__/projectsLogsPrompt.test.js +0 -37
  742. package/lib/prompts/__tests__/selectProjectTemplatePrompt.test.d.ts +0 -1
  743. package/lib/prompts/__tests__/selectProjectTemplatePrompt.test.js +0 -160
  744. package/lib/prompts/accountNamePrompt.d.ts +0 -11
  745. package/lib/prompts/accountNamePrompt.js +0 -64
  746. package/lib/prompts/accountsPrompt.d.ts +0 -2
  747. package/lib/prompts/accountsPrompt.js +0 -33
  748. package/lib/prompts/cmsFieldPrompt.d.ts +0 -1
  749. package/lib/prompts/cmsFieldPrompt.js +0 -40
  750. package/lib/prompts/confirmImportDataPrompt.d.ts +0 -1
  751. package/lib/prompts/confirmImportDataPrompt.js +0 -12
  752. package/lib/prompts/createApiSamplePrompt.d.ts +0 -10
  753. package/lib/prompts/createApiSamplePrompt.js +0 -58
  754. package/lib/prompts/createDeveloperTestAccountConfigPrompt.d.ts +0 -25
  755. package/lib/prompts/createDeveloperTestAccountConfigPrompt.js +0 -162
  756. package/lib/prompts/createFunctionPrompt.d.ts +0 -9
  757. package/lib/prompts/createFunctionPrompt.js +0 -94
  758. package/lib/prompts/createModulePrompt.d.ts +0 -10
  759. package/lib/prompts/createModulePrompt.js +0 -116
  760. package/lib/prompts/createTemplatePrompt.d.ts +0 -6
  761. package/lib/prompts/createTemplatePrompt.js +0 -29
  762. package/lib/prompts/downloadProjectPrompt.d.ts +0 -10
  763. package/lib/prompts/downloadProjectPrompt.js +0 -52
  764. package/lib/prompts/importDataFilePathPrompt.d.ts +0 -1
  765. package/lib/prompts/importDataFilePathPrompt.js +0 -26
  766. package/lib/prompts/importDataTestAccountSelectPrompt.d.ts +0 -3
  767. package/lib/prompts/importDataTestAccountSelectPrompt.js +0 -28
  768. package/lib/prompts/installAppPrompt.d.ts +0 -2
  769. package/lib/prompts/installAppPrompt.js +0 -38
  770. package/lib/prompts/personalAccessKeyPrompt.d.ts +0 -29
  771. package/lib/prompts/personalAccessKeyPrompt.js +0 -134
  772. package/lib/prompts/previewPrompt.d.ts +0 -15
  773. package/lib/prompts/previewPrompt.js +0 -48
  774. package/lib/prompts/projectAddPrompt.d.ts +0 -15
  775. package/lib/prompts/projectAddPrompt.js +0 -82
  776. package/lib/prompts/projectDevTargetAccountPrompt.d.ts +0 -12
  777. package/lib/prompts/projectDevTargetAccountPrompt.js +0 -169
  778. package/lib/prompts/projectNameAndDestPrompt.d.ts +0 -3
  779. package/lib/prompts/projectNameAndDestPrompt.js +0 -53
  780. package/lib/prompts/projectNamePrompt.d.ts +0 -6
  781. package/lib/prompts/projectNamePrompt.js +0 -27
  782. package/lib/prompts/projectsLogsPrompt.d.ts +0 -12
  783. package/lib/prompts/projectsLogsPrompt.js +0 -20
  784. package/lib/prompts/promptUtils.d.ts +0 -32
  785. package/lib/prompts/promptUtils.js +0 -222
  786. package/lib/prompts/sandboxesPrompt.d.ts +0 -10
  787. package/lib/prompts/sandboxesPrompt.js +0 -63
  788. package/lib/prompts/secretPrompt.d.ts +0 -13
  789. package/lib/prompts/secretPrompt.js +0 -31
  790. package/lib/prompts/selectAppPrompt.d.ts +0 -2
  791. package/lib/prompts/selectAppPrompt.js +0 -37
  792. package/lib/prompts/selectHubDBTablePrompt.d.ts +0 -12
  793. package/lib/prompts/selectHubDBTablePrompt.js +0 -62
  794. package/lib/prompts/selectProjectTemplatePrompt.d.ts +0 -27
  795. package/lib/prompts/selectProjectTemplatePrompt.js +0 -75
  796. package/lib/prompts/selectPublicAppForMigrationPrompt.d.ts +0 -9
  797. package/lib/prompts/selectPublicAppForMigrationPrompt.js +0 -62
  798. package/lib/prompts/setAsDefaultAccountPrompt.d.ts +0 -1
  799. package/lib/prompts/setAsDefaultAccountPrompt.js +0 -26
  800. package/lib/prompts/uploadPrompt.d.ts +0 -9
  801. package/lib/prompts/uploadPrompt.js +0 -32
  802. package/lib/sandboxSync.d.ts +0 -4
  803. package/lib/sandboxSync.js +0 -102
  804. package/lib/sandboxes.d.ts +0 -22
  805. package/lib/sandboxes.js +0 -126
  806. package/lib/schema.d.ts +0 -3
  807. package/lib/schema.js +0 -27
  808. package/lib/serverlessLogs.d.ts +0 -4
  809. package/lib/serverlessLogs.js +0 -154
  810. package/lib/testUtils.d.ts +0 -14
  811. package/lib/testUtils.js +0 -18
  812. package/lib/theme/__tests__/migrate.test.d.ts +0 -1
  813. package/lib/theme/__tests__/migrate.test.js +0 -251
  814. package/lib/theme/cmsDevServerProcess.d.ts +0 -12
  815. package/lib/theme/cmsDevServerProcess.js +0 -148
  816. package/lib/theme/cmsDevServerRunner.d.ts +0 -14
  817. package/lib/theme/cmsDevServerRunner.js +0 -90
  818. package/lib/theme/migrate.d.ts +0 -13
  819. package/lib/theme/migrate.js +0 -85
  820. package/lib/ui/SpinniesManager.d.ts +0 -39
  821. package/lib/ui/SpinniesManager.js +0 -257
  822. package/lib/ui/__tests__/SpinniesManager.test.d.ts +0 -1
  823. package/lib/ui/__tests__/SpinniesManager.test.js +0 -488
  824. package/lib/ui/__tests__/removeAnsiCodes.test.d.ts +0 -1
  825. package/lib/ui/__tests__/removeAnsiCodes.test.js +0 -84
  826. package/lib/ui/git.d.ts +0 -1
  827. package/lib/ui/git.js +0 -25
  828. package/lib/ui/index.d.ts +0 -31
  829. package/lib/ui/index.js +0 -150
  830. package/lib/ui/logger.d.ts +0 -11
  831. package/lib/ui/logger.js +0 -13
  832. package/lib/ui/removeAnsiCodes.d.ts +0 -1
  833. package/lib/ui/removeAnsiCodes.js +0 -4
  834. package/lib/ui/serverlessFunctionLogs.d.ts +0 -9
  835. package/lib/ui/serverlessFunctionLogs.js +0 -88
  836. package/lib/ui/spinniesUtils.d.ts +0 -32
  837. package/lib/ui/spinniesUtils.js +0 -151
  838. package/lib/ui/supportHyperlinks.d.ts +0 -7
  839. package/lib/ui/supportHyperlinks.js +0 -59
  840. package/lib/ui/supportsColor.d.ts +0 -17
  841. package/lib/ui/supportsColor.js +0 -97
  842. package/lib/ui/uiMessages.d.ts +0 -73
  843. package/lib/ui/uiMessages.js +0 -76
  844. package/lib/upload.d.ts +0 -1
  845. package/lib/upload.js +0 -49
  846. package/lib/usageTracking.d.ts +0 -32
  847. package/lib/usageTracking.js +0 -174
  848. package/lib/utils/hasFlag.d.ts +0 -1
  849. package/lib/utils/hasFlag.js +0 -9
  850. package/lib/validation.d.ts +0 -13
  851. package/lib/validation.js +0 -142
  852. package/lib/yargsUtils.d.ts +0 -16
  853. package/lib/yargsUtils.js +0 -49
  854. package/mcp-server/server.d.ts +0 -1
  855. package/mcp-server/server.js +0 -13
  856. package/mcp-server/tools/cms/HsCreateFunctionTool.d.ts +0 -24
  857. package/mcp-server/tools/cms/HsCreateFunctionTool.js +0 -105
  858. package/mcp-server/tools/cms/HsCreateModuleTool.d.ts +0 -20
  859. package/mcp-server/tools/cms/HsCreateModuleTool.js +0 -127
  860. package/mcp-server/tools/cms/HsCreateTemplateTool.d.ts +0 -25
  861. package/mcp-server/tools/cms/HsCreateTemplateTool.js +0 -84
  862. package/mcp-server/tools/cms/HsFunctionLogsTool.d.ts +0 -18
  863. package/mcp-server/tools/cms/HsFunctionLogsTool.js +0 -75
  864. package/mcp-server/tools/cms/HsListFunctionsTool.d.ts +0 -15
  865. package/mcp-server/tools/cms/HsListFunctionsTool.js +0 -64
  866. package/mcp-server/tools/cms/HsListTool.d.ts +0 -15
  867. package/mcp-server/tools/cms/HsListTool.js +0 -64
  868. package/mcp-server/tools/cms/__tests__/HsCreateFunctionTool.test.d.ts +0 -1
  869. package/mcp-server/tools/cms/__tests__/HsCreateFunctionTool.test.js +0 -254
  870. package/mcp-server/tools/cms/__tests__/HsCreateModuleTool.test.d.ts +0 -1
  871. package/mcp-server/tools/cms/__tests__/HsCreateModuleTool.test.js +0 -227
  872. package/mcp-server/tools/cms/__tests__/HsCreateTemplateTool.test.d.ts +0 -1
  873. package/mcp-server/tools/cms/__tests__/HsCreateTemplateTool.test.js +0 -208
  874. package/mcp-server/tools/cms/__tests__/HsFunctionLogsTool.test.d.ts +0 -1
  875. package/mcp-server/tools/cms/__tests__/HsFunctionLogsTool.test.js +0 -186
  876. package/mcp-server/tools/cms/__tests__/HsListFunctionsTool.test.d.ts +0 -1
  877. package/mcp-server/tools/cms/__tests__/HsListFunctionsTool.test.js +0 -124
  878. package/mcp-server/tools/cms/__tests__/HsListTool.test.d.ts +0 -1
  879. package/mcp-server/tools/cms/__tests__/HsListTool.test.js +0 -124
  880. package/mcp-server/tools/index.d.ts +0 -3
  881. package/mcp-server/tools/index.js +0 -48
  882. package/mcp-server/tools/project/AddFeatureToProjectTool.d.ts +0 -35
  883. package/mcp-server/tools/project/AddFeatureToProjectTool.js +0 -82
  884. package/mcp-server/tools/project/CreateProjectTool.d.ts +0 -39
  885. package/mcp-server/tools/project/CreateProjectTool.js +0 -97
  886. package/mcp-server/tools/project/CreateTestAccountTool.d.ts +0 -51
  887. package/mcp-server/tools/project/CreateTestAccountTool.js +0 -170
  888. package/mcp-server/tools/project/DeployProjectTool.d.ts +0 -15
  889. package/mcp-server/tools/project/DeployProjectTool.js +0 -58
  890. package/mcp-server/tools/project/DocFetchTool.d.ts +0 -14
  891. package/mcp-server/tools/project/DocFetchTool.js +0 -57
  892. package/mcp-server/tools/project/DocsSearchTool.d.ts +0 -23
  893. package/mcp-server/tools/project/DocsSearchTool.js +0 -69
  894. package/mcp-server/tools/project/GetApiUsagePatternsByAppIdTool.d.ts +0 -16
  895. package/mcp-server/tools/project/GetApiUsagePatternsByAppIdTool.js +0 -73
  896. package/mcp-server/tools/project/GetApplicationInfoTool.d.ts +0 -13
  897. package/mcp-server/tools/project/GetApplicationInfoTool.js +0 -56
  898. package/mcp-server/tools/project/GetBuildLogsTool.d.ts +0 -21
  899. package/mcp-server/tools/project/GetBuildLogsTool.js +0 -124
  900. package/mcp-server/tools/project/GetBuildStatusTool.d.ts +0 -16
  901. package/mcp-server/tools/project/GetBuildStatusTool.js +0 -165
  902. package/mcp-server/tools/project/GetConfigValuesTool.d.ts +0 -15
  903. package/mcp-server/tools/project/GetConfigValuesTool.js +0 -65
  904. package/mcp-server/tools/project/GuidedWalkthroughTool.d.ts +0 -19
  905. package/mcp-server/tools/project/GuidedWalkthroughTool.js +0 -50
  906. package/mcp-server/tools/project/UploadProjectTools.d.ts +0 -16
  907. package/mcp-server/tools/project/UploadProjectTools.js +0 -83
  908. package/mcp-server/tools/project/ValidateProjectTool.d.ts +0 -14
  909. package/mcp-server/tools/project/ValidateProjectTool.js +0 -42
  910. package/mcp-server/tools/project/__tests__/AddFeatureToProjectTool.test.d.ts +0 -1
  911. package/mcp-server/tools/project/__tests__/AddFeatureToProjectTool.test.js +0 -157
  912. package/mcp-server/tools/project/__tests__/CreateProjectTool.test.d.ts +0 -1
  913. package/mcp-server/tools/project/__tests__/CreateProjectTool.test.js +0 -132
  914. package/mcp-server/tools/project/__tests__/CreateTestAccountTool.test.d.ts +0 -1
  915. package/mcp-server/tools/project/__tests__/CreateTestAccountTool.test.js +0 -461
  916. package/mcp-server/tools/project/__tests__/DeployProjectTool.test.d.ts +0 -1
  917. package/mcp-server/tools/project/__tests__/DeployProjectTool.test.js +0 -125
  918. package/mcp-server/tools/project/__tests__/DocFetchTool.test.d.ts +0 -1
  919. package/mcp-server/tools/project/__tests__/DocFetchTool.test.js +0 -125
  920. package/mcp-server/tools/project/__tests__/DocsSearchTool.test.d.ts +0 -1
  921. package/mcp-server/tools/project/__tests__/DocsSearchTool.test.js +0 -210
  922. package/mcp-server/tools/project/__tests__/GetApiUsagePatternsByAppIdTool.test.d.ts +0 -1
  923. package/mcp-server/tools/project/__tests__/GetApiUsagePatternsByAppIdTool.test.js +0 -146
  924. package/mcp-server/tools/project/__tests__/GetApplicationInfoTool.test.d.ts +0 -1
  925. package/mcp-server/tools/project/__tests__/GetApplicationInfoTool.test.js +0 -124
  926. package/mcp-server/tools/project/__tests__/GetBuildLogsTool.test.d.ts +0 -1
  927. package/mcp-server/tools/project/__tests__/GetBuildLogsTool.test.js +0 -307
  928. package/mcp-server/tools/project/__tests__/GetBuildStatusTool.test.d.ts +0 -1
  929. package/mcp-server/tools/project/__tests__/GetBuildStatusTool.test.js +0 -242
  930. package/mcp-server/tools/project/__tests__/GetConfigValuesTool.test.d.ts +0 -1
  931. package/mcp-server/tools/project/__tests__/GetConfigValuesTool.test.js +0 -209
  932. package/mcp-server/tools/project/__tests__/GuidedWalkthroughTool.test.d.ts +0 -1
  933. package/mcp-server/tools/project/__tests__/GuidedWalkthroughTool.test.js +0 -158
  934. package/mcp-server/tools/project/__tests__/UploadProjectTools.test.d.ts +0 -1
  935. package/mcp-server/tools/project/__tests__/UploadProjectTools.test.js +0 -187
  936. package/mcp-server/tools/project/__tests__/ValidateProjectTool.test.d.ts +0 -1
  937. package/mcp-server/tools/project/__tests__/ValidateProjectTool.test.js +0 -118
  938. package/mcp-server/tools/project/constants.d.ts +0 -17
  939. package/mcp-server/tools/project/constants.js +0 -28
  940. package/mcp-server/types.d.ts +0 -14
  941. package/mcp-server/types.js +0 -13
  942. package/mcp-server/utils/__tests__/command.test.d.ts +0 -1
  943. package/mcp-server/utils/__tests__/command.test.js +0 -275
  944. package/mcp-server/utils/__tests__/content.test.d.ts +0 -1
  945. package/mcp-server/utils/__tests__/content.test.js +0 -164
  946. package/mcp-server/utils/__tests__/feedbackTracking.test.d.ts +0 -1
  947. package/mcp-server/utils/__tests__/feedbackTracking.test.js +0 -69
  948. package/mcp-server/utils/command.d.ts +0 -8
  949. package/mcp-server/utils/command.js +0 -33
  950. package/mcp-server/utils/config.d.ts +0 -1
  951. package/mcp-server/utils/config.js +0 -10
  952. package/mcp-server/utils/content.d.ts +0 -3
  953. package/mcp-server/utils/content.js +0 -24
  954. package/mcp-server/utils/feedbackTracking.d.ts +0 -1
  955. package/mcp-server/utils/feedbackTracking.js +0 -26
  956. package/mcp-server/utils/toolUsageTracking.d.ts +0 -3
  957. package/mcp-server/utils/toolUsageTracking.js +0 -24
  958. package/types/Cms.d.ts +0 -46
  959. package/types/Cms.js +0 -27
  960. package/types/LocalDev.d.ts +0 -47
  961. package/types/LocalDev.js +0 -1
  962. package/types/PackageJson.d.ts +0 -10
  963. package/types/PackageJson.js +0 -1
  964. package/types/ProjectComponents.d.ts +0 -23
  965. package/types/ProjectComponents.js +0 -2
  966. package/types/Projects.d.ts +0 -130
  967. package/types/Projects.js +0 -6
  968. package/types/Prompts.d.ts +0 -28
  969. package/types/Prompts.js +0 -1
  970. package/types/Sandboxes.d.ts +0 -5
  971. package/types/Sandboxes.js +0 -1
  972. package/types/Yargs.d.ts +0 -46
  973. package/types/Yargs.js +0 -1
  974. package/ui/components/ActionSection.d.ts +0 -12
  975. package/ui/components/ActionSection.js +0 -25
  976. package/ui/components/BoxWithTitle.d.ts +0 -11
  977. package/ui/components/BoxWithTitle.js +0 -9
  978. package/ui/components/FullScreen.d.ts +0 -6
  979. package/ui/components/FullScreen.js +0 -13
  980. package/ui/components/HorizontalSelectPrompt.d.ts +0 -8
  981. package/ui/components/HorizontalSelectPrompt.js +0 -30
  982. package/ui/components/InputField.d.ts +0 -10
  983. package/ui/components/InputField.js +0 -10
  984. package/ui/components/SelectInput.d.ts +0 -11
  985. package/ui/components/SelectInput.js +0 -59
  986. package/ui/components/StatusIcon.d.ts +0 -9
  987. package/ui/components/StatusIcon.js +0 -17
  988. package/ui/components/StatusMessageBoxes.d.ts +0 -13
  989. package/ui/components/StatusMessageBoxes.js +0 -31
  990. package/ui/components/Table.d.ts +0 -89
  991. package/ui/components/Table.js +0 -246
  992. package/ui/components/getStarted/GetStartedFlow.d.ts +0 -8
  993. package/ui/components/getStarted/GetStartedFlow.js +0 -213
  994. package/ui/components/getStarted/reducer.d.ts +0 -79
  995. package/ui/components/getStarted/reducer.js +0 -108
  996. package/ui/components/getStarted/screens/InstallationScreen.d.ts +0 -7
  997. package/ui/components/getStarted/screens/InstallationScreen.js +0 -16
  998. package/ui/components/getStarted/screens/ProjectSetupScreen.d.ts +0 -16
  999. package/ui/components/getStarted/screens/ProjectSetupScreen.js +0 -40
  1000. package/ui/components/getStarted/screens/UploadScreen.d.ts +0 -7
  1001. package/ui/components/getStarted/screens/UploadScreen.js +0 -43
  1002. package/ui/components/getStarted/selectors.d.ts +0 -2
  1003. package/ui/components/getStarted/selectors.js +0 -1
  1004. package/ui/constants.d.ts +0 -6
  1005. package/ui/constants.js +0 -6
  1006. package/ui/lib/constants.d.ts +0 -17
  1007. package/ui/lib/constants.js +0 -17
  1008. package/ui/lib/table.d.ts +0 -2
  1009. package/ui/lib/table.js +0 -11
  1010. package/ui/lib/useTerminalSize.d.ts +0 -13
  1011. package/ui/lib/useTerminalSize.js +0 -31
  1012. package/ui/playground/Playground.d.ts +0 -5
  1013. package/ui/playground/Playground.js +0 -25
  1014. package/ui/playground/fixtures.d.ts +0 -9
  1015. package/ui/playground/fixtures.js +0 -126
  1016. package/ui/render.d.ts +0 -23
  1017. package/ui/render.js +0 -75
  1018. package/ui/styles.d.ts +0 -21
  1019. package/ui/styles.js +0 -21
@@ -1,1067 +0,0 @@
1
- import util from 'util';
2
- import { installPackages, updatePackages, getProjectPackageJsonLocations, isPackageInstalled, } from '../dependencyManagement.js';
3
- import { walk } from '@hubspot/local-dev-lib/fs';
4
- import path from 'path';
5
- import { getProjectConfig } from '../projects/config.js';
6
- import SpinniesManager from '../ui/SpinniesManager.js';
7
- import fs from 'fs';
8
- import { clearPackageJsonCache } from '../npm/packageJson.js';
9
- vi.mock('../projects/config');
10
- vi.mock('@hubspot/local-dev-lib/fs');
11
- vi.mock('fs');
12
- vi.mock('../ui/SpinniesManager', () => ({
13
- default: {
14
- init: vi.fn(),
15
- add: vi.fn(),
16
- succeed: vi.fn(),
17
- fail: vi.fn(),
18
- },
19
- }));
20
- const mockedFs = vi.mocked(fs);
21
- describe('lib/dependencyManagement', () => {
22
- let execMock;
23
- const projectDir = path.join('path', 'to', 'project');
24
- const srcDir = 'src';
25
- const appDir = path.join(projectDir, srcDir, 'app');
26
- const appFunctionsDir = path.join(appDir, 'app.functions');
27
- const extensionsDir = path.join(appDir, 'exensions');
28
- const projectName = 'super cool test project';
29
- const installLocations = [appFunctionsDir, extensionsDir];
30
- function mockedPromisify(execMock) {
31
- return vi
32
- .fn()
33
- .mockReturnValue(execMock);
34
- }
35
- const mockedWalk = walk;
36
- const mockedGetProjectConfig = getProjectConfig;
37
- beforeEach(() => {
38
- execMock = vi.fn();
39
- util.promisify = mockedPromisify(execMock);
40
- mockedGetProjectConfig.mockResolvedValue({
41
- projectDir,
42
- projectConfig: {
43
- srcDir,
44
- name: projectName,
45
- },
46
- });
47
- mockedFs.existsSync.mockReturnValue(true); // Default to true, override in specific tests
48
- clearPackageJsonCache();
49
- });
50
- describe('installPackages()', () => {
51
- it('should setup a loading spinner', async () => {
52
- const packages = ['package1', 'package2'];
53
- mockedWalk.mockResolvedValue(installLocations);
54
- await installPackages({ packages, installLocations });
55
- expect(SpinniesManager.add).toHaveBeenCalledTimes(installLocations.length);
56
- expect(SpinniesManager.succeed).toHaveBeenCalledTimes(installLocations.length);
57
- });
58
- it('should install the provided packages in all the provided install locations', async () => {
59
- mockedWalk.mockResolvedValue(installLocations);
60
- const packages = ['package1', 'package2'];
61
- await installPackages({ packages, installLocations });
62
- expect(execMock).toHaveBeenCalledTimes(installLocations.length);
63
- expect(SpinniesManager.add).toHaveBeenCalledTimes(installLocations.length);
64
- expect(SpinniesManager.succeed).toHaveBeenCalledTimes(installLocations.length);
65
- for (const location of installLocations) {
66
- expect(execMock).toHaveBeenCalledWith(`npm install package1 package2`, {
67
- cwd: location,
68
- });
69
- expect(SpinniesManager.add).toHaveBeenCalledWith(`installingDependencies-${location}`, {
70
- text: `Installing [package1, package2] in ${location}`,
71
- });
72
- expect(SpinniesManager.succeed).toHaveBeenCalledWith(`installingDependencies-${location}`, {
73
- text: `Installed dependencies in ${location}`,
74
- });
75
- }
76
- });
77
- it('should use the provided install locations', async () => {
78
- mockedWalk.mockResolvedValue(installLocations);
79
- await installPackages({ installLocations });
80
- expect(execMock).toHaveBeenCalledTimes(installLocations.length);
81
- expect(execMock).toHaveBeenCalledWith(`npm install `, {
82
- cwd: appFunctionsDir,
83
- });
84
- expect(execMock).toHaveBeenCalledWith(`npm install `, {
85
- cwd: extensionsDir,
86
- });
87
- });
88
- it('should locate the projects package.json files when install locations is not provided', async () => {
89
- const installLocations = [
90
- path.join(appFunctionsDir, 'package.json'),
91
- path.join(extensionsDir, 'package.json'),
92
- ];
93
- mockedWalk.mockResolvedValue(installLocations);
94
- mockedGetProjectConfig.mockResolvedValue({
95
- projectDir,
96
- projectConfig: {
97
- srcDir,
98
- },
99
- });
100
- await installPackages({});
101
- // It's called once per each install location, plus once to check if npm installed
102
- expect(execMock).toHaveBeenCalledTimes(installLocations.length + 1);
103
- expect(execMock).toHaveBeenCalledWith(`npm install `, {
104
- cwd: appFunctionsDir,
105
- });
106
- expect(execMock).toHaveBeenCalledWith(`npm install `, {
107
- cwd: extensionsDir,
108
- });
109
- });
110
- it('should install packages as dev dependencies when dev flag is true', async () => {
111
- const packages = ['eslint', 'prettier'];
112
- await installPackages({ packages, installLocations, dev: true });
113
- expect(execMock).toHaveBeenCalledTimes(installLocations.length);
114
- for (const location of installLocations) {
115
- expect(execMock).toHaveBeenCalledWith(`npm install --save-dev eslint prettier`, {
116
- cwd: location,
117
- });
118
- }
119
- });
120
- it('should install packages as regular dependencies when dev flag is false', async () => {
121
- const packages = ['react', 'react-dom'];
122
- await installPackages({ packages, installLocations, dev: false });
123
- expect(execMock).toHaveBeenCalledTimes(installLocations.length);
124
- for (const location of installLocations) {
125
- expect(execMock).toHaveBeenCalledWith(`npm install react react-dom`, {
126
- cwd: location,
127
- });
128
- }
129
- });
130
- it('should install packages as regular dependencies when dev flag is not provided', async () => {
131
- const packages = ['axios'];
132
- await installPackages({ packages, installLocations });
133
- expect(execMock).toHaveBeenCalledTimes(installLocations.length);
134
- for (const location of installLocations) {
135
- expect(execMock).toHaveBeenCalledWith(`npm install axios`, {
136
- cwd: location,
137
- });
138
- }
139
- });
140
- it('should not use --save-dev flag when dev is true but no packages are provided', async () => {
141
- mockedWalk.mockResolvedValue(installLocations);
142
- await installPackages({ installLocations, dev: true });
143
- expect(execMock).toHaveBeenCalledTimes(installLocations.length);
144
- for (let i = 0; i < installLocations.length; i++) {
145
- const installLocation = installLocations[i];
146
- expect(execMock.mock.calls[i]).toEqual([
147
- `npm install `,
148
- {
149
- cwd: installLocation,
150
- },
151
- ]);
152
- }
153
- });
154
- it('should not use --save-dev flag when dev is true but packages array is empty', async () => {
155
- await installPackages({ packages: [], installLocations, dev: true });
156
- expect(execMock).toHaveBeenCalledTimes(installLocations.length);
157
- for (let i = 0; i < installLocations.length; i++) {
158
- const installLocation = installLocations[i];
159
- expect(execMock.mock.calls[i]).toEqual([
160
- `npm install `,
161
- {
162
- cwd: installLocation,
163
- },
164
- ]);
165
- }
166
- });
167
- it('should throw an error when installing the dependencies fails', async () => {
168
- execMock = vi.fn().mockImplementation(command => {
169
- if (command === 'npm --version') {
170
- return;
171
- }
172
- throw new Error('OH NO');
173
- });
174
- util.promisify = mockedPromisify(execMock);
175
- // Mock walk to return the directory paths instead of package.json paths
176
- mockedWalk.mockResolvedValue([appFunctionsDir, extensionsDir]);
177
- mockedFs.existsSync.mockImplementation(filePath => {
178
- const pathStr = filePath.toString();
179
- if (pathStr === projectDir ||
180
- pathStr === path.join(projectDir, srcDir)) {
181
- return true;
182
- }
183
- return false;
184
- });
185
- await expect(() => installPackages({ installLocations: [appFunctionsDir, extensionsDir] })).rejects.toThrowError(`Installing dependencies for ${appFunctionsDir} failed`);
186
- expect(SpinniesManager.fail).toHaveBeenCalledTimes(installLocations.length);
187
- expect(SpinniesManager.fail).toHaveBeenCalledWith(`installingDependencies-${appFunctionsDir}`, {
188
- text: `Installing dependencies for ${appFunctionsDir} failed`,
189
- });
190
- expect(SpinniesManager.fail).toHaveBeenCalledWith(`installingDependencies-${extensionsDir}`, {
191
- text: `Installing dependencies for ${extensionsDir} failed`,
192
- });
193
- });
194
- });
195
- describe('updatePackages()', () => {
196
- it('should setup a loading spinner', async () => {
197
- mockedWalk.mockResolvedValue(installLocations);
198
- const packages = ['package1', 'package2'];
199
- await updatePackages({ packages, installLocations });
200
- expect(SpinniesManager.add).toHaveBeenCalledTimes(installLocations.length);
201
- expect(SpinniesManager.succeed).toHaveBeenCalledTimes(installLocations.length);
202
- });
203
- it('should update the provided packages in all the provided install locations', async () => {
204
- mockedWalk.mockResolvedValue(installLocations);
205
- const packages = ['package1', 'package2'];
206
- await updatePackages({ packages, installLocations });
207
- expect(execMock).toHaveBeenCalledTimes(installLocations.length);
208
- expect(SpinniesManager.add).toHaveBeenCalledTimes(installLocations.length);
209
- expect(SpinniesManager.succeed).toHaveBeenCalledTimes(installLocations.length);
210
- for (const location of installLocations) {
211
- expect(execMock).toHaveBeenCalledWith(`npm update package1 package2`, {
212
- cwd: location,
213
- });
214
- expect(SpinniesManager.add).toHaveBeenCalledWith(`updatingDependencies-${location}`, {
215
- text: `Updating [package1, package2] in ${location}`,
216
- });
217
- expect(SpinniesManager.succeed).toHaveBeenCalledWith(`updatingDependencies-${location}`, {
218
- text: `Updated dependencies in ${location}`,
219
- });
220
- }
221
- });
222
- it('should use the provided install locations', async () => {
223
- await updatePackages({ installLocations });
224
- expect(execMock).toHaveBeenCalledTimes(installLocations.length);
225
- expect(execMock).toHaveBeenCalledWith(`npm update `, {
226
- cwd: appFunctionsDir,
227
- });
228
- expect(execMock).toHaveBeenCalledWith(`npm update `, {
229
- cwd: extensionsDir,
230
- });
231
- });
232
- it('should locate the projects package.json files when install locations is not provided', async () => {
233
- const installLocations = [
234
- path.join(appFunctionsDir, 'package.json'),
235
- path.join(extensionsDir, 'package.json'),
236
- ];
237
- mockedWalk.mockResolvedValue(installLocations);
238
- mockedGetProjectConfig.mockResolvedValue({
239
- projectDir,
240
- projectConfig: {
241
- srcDir,
242
- },
243
- });
244
- await updatePackages({});
245
- // It's called once per each install location, plus once to check if npm installed
246
- expect(execMock).toHaveBeenCalledTimes(installLocations.length + 1);
247
- expect(execMock).toHaveBeenCalledWith(`npm update `, {
248
- cwd: appFunctionsDir,
249
- });
250
- expect(execMock).toHaveBeenCalledWith(`npm update `, {
251
- cwd: extensionsDir,
252
- });
253
- });
254
- it('should throw an error when updating the dependencies fails', async () => {
255
- execMock = vi.fn().mockImplementation(command => {
256
- if (command === 'npm --version') {
257
- return;
258
- }
259
- throw new Error('OH NO');
260
- });
261
- util.promisify = mockedPromisify(execMock);
262
- // Mock walk to return the directory paths instead of package.json paths
263
- mockedWalk.mockResolvedValue([appFunctionsDir, extensionsDir]);
264
- mockedFs.existsSync.mockImplementation(filePath => {
265
- const pathStr = filePath.toString();
266
- if (pathStr === projectDir ||
267
- pathStr === path.join(projectDir, srcDir)) {
268
- return true;
269
- }
270
- return false;
271
- });
272
- await expect(() => updatePackages({ installLocations: [appFunctionsDir, extensionsDir] })).rejects.toThrowError(`Updating dependencies for ${appFunctionsDir} failed`);
273
- expect(SpinniesManager.fail).toHaveBeenCalledTimes(installLocations.length);
274
- expect(SpinniesManager.fail).toHaveBeenCalledWith(`updatingDependencies-${appFunctionsDir}`, {
275
- text: `Updating dependencies for ${appFunctionsDir} failed`,
276
- });
277
- expect(SpinniesManager.fail).toHaveBeenCalledWith(`updatingDependencies-${extensionsDir}`, {
278
- text: `Updating dependencies for ${extensionsDir} failed`,
279
- });
280
- });
281
- });
282
- describe('getProjectPackageJsonFiles()', () => {
283
- it('should throw an error when ran outside the boundary of a project', async () => {
284
- mockedGetProjectConfig.mockResolvedValue({});
285
- await expect(() => getProjectPackageJsonLocations()).rejects.toThrowError('No project detected. Run this command from a project directory.');
286
- });
287
- it('should throw an error if npm is not globally installed', async () => {
288
- execMock = vi.fn().mockImplementation(() => {
289
- throw new Error('OH NO');
290
- });
291
- util.promisify = mockedPromisify(execMock);
292
- await expect(() => getProjectPackageJsonLocations()).rejects.toThrowError(/This command depends on npm, install/);
293
- });
294
- it('should throw an error if the project directory does not exist', async () => {
295
- mockedFs.existsSync.mockReturnValueOnce(false);
296
- await expect(() => getProjectPackageJsonLocations()).rejects.toThrowError(new RegExp(`No dependencies to install. The project ${projectName} folder might be missing component or subcomponent files.`));
297
- });
298
- it('should throw "install" error message when isUpdate=false and no package.json files found', async () => {
299
- mockedWalk.mockResolvedValue([]);
300
- mockedFs.existsSync.mockImplementation(filePath => {
301
- const pathStr = filePath.toString();
302
- if (pathStr === projectDir ||
303
- pathStr === path.join(projectDir, srcDir)) {
304
- return true;
305
- }
306
- return false;
307
- });
308
- await expect(() => getProjectPackageJsonLocations(undefined, false)).rejects.toThrowError(new RegExp(`No dependencies to install. The project ${projectName} folder might be missing component or subcomponent files.`));
309
- });
310
- it('should throw "update" error message when isUpdate=true and no package.json files found', async () => {
311
- mockedWalk.mockResolvedValue([]);
312
- mockedFs.existsSync.mockImplementation(filePath => {
313
- const pathStr = filePath.toString();
314
- if (pathStr === projectDir ||
315
- pathStr === path.join(projectDir, srcDir)) {
316
- return true;
317
- }
318
- return false;
319
- });
320
- await expect(() => getProjectPackageJsonLocations(undefined, true)).rejects.toThrowError(new RegExp(`No dependencies to update. The project ${projectName} folder might be missing component or subcomponent files.`));
321
- });
322
- it('should ignore package.json files in certain directories', async () => {
323
- const nodeModulesDir = path.join(appDir, 'node_modules');
324
- const viteDir = path.join(appDir, '.vite');
325
- const installLocations = [
326
- path.join(appFunctionsDir, 'package.json'),
327
- path.join(extensionsDir, 'package.json'),
328
- path.join(viteDir, 'package.json'),
329
- path.join(nodeModulesDir, 'package.json'),
330
- ];
331
- mockedWalk.mockResolvedValue(installLocations);
332
- mockedFs.existsSync.mockImplementation(filePath => {
333
- // Return true for project directory and src directory
334
- const pathStr = filePath.toString();
335
- if (pathStr === projectDir ||
336
- pathStr === path.join(projectDir, srcDir)) {
337
- return true;
338
- }
339
- return false;
340
- });
341
- const actual = await getProjectPackageJsonLocations();
342
- expect(actual).toEqual([appFunctionsDir, extensionsDir]);
343
- });
344
- });
345
- describe('isPackageInstalled()', () => {
346
- const testDir = '/test/directory';
347
- const readFileSyncSpy = vi.spyOn(fs, 'readFileSync');
348
- const existsSyncSpy = vi.spyOn(fs, 'existsSync');
349
- function mockNodeModulesExists(packageName, exists = true) {
350
- existsSyncSpy.mockImplementation(filePath => {
351
- const pathStr = filePath.toString();
352
- return (exists && pathStr === path.join(testDir, 'node_modules', packageName));
353
- });
354
- }
355
- beforeEach(() => {
356
- readFileSyncSpy.mockReset();
357
- existsSyncSpy.mockReset();
358
- });
359
- it('should return true if package is in dependencies and in node_modules', () => {
360
- readFileSyncSpy.mockReturnValueOnce(JSON.stringify({
361
- dependencies: {
362
- eslint: '^9.0.0',
363
- },
364
- }));
365
- mockNodeModulesExists('eslint', true);
366
- const result = isPackageInstalled(testDir, 'eslint');
367
- expect(result).toBe(true);
368
- expect(readFileSyncSpy).toHaveBeenCalledWith(path.join(testDir, 'package.json'), 'utf-8');
369
- expect(existsSyncSpy).toHaveBeenCalledWith(path.join(testDir, 'node_modules', 'eslint'));
370
- });
371
- it('should return true if package is in devDependencies and in node_modules', () => {
372
- readFileSyncSpy.mockReturnValueOnce(JSON.stringify({
373
- devDependencies: {
374
- prettier: '^3.0.0',
375
- },
376
- }));
377
- mockNodeModulesExists('prettier', true);
378
- const result = isPackageInstalled(testDir, 'prettier');
379
- expect(result).toBe(true);
380
- });
381
- it('should return false if package is in package.json but not in node_modules', () => {
382
- readFileSyncSpy.mockReturnValueOnce(JSON.stringify({
383
- dependencies: {
384
- react: '^18.0.0',
385
- },
386
- }));
387
- mockNodeModulesExists('react', false);
388
- const result = isPackageInstalled(testDir, 'react');
389
- expect(result).toBe(false);
390
- });
391
- it('should return false if package is not in package.json but is in node_modules', () => {
392
- readFileSyncSpy.mockReturnValueOnce(JSON.stringify({
393
- dependencies: {
394
- typescript: '^5.0.0',
395
- },
396
- }));
397
- mockNodeModulesExists('lodash', true);
398
- const result = isPackageInstalled(testDir, 'lodash');
399
- expect(result).toBe(false);
400
- });
401
- it('should return false if package is not in package.json and not in node_modules', () => {
402
- readFileSyncSpy.mockReturnValueOnce(JSON.stringify({
403
- dependencies: {},
404
- }));
405
- mockNodeModulesExists('nonexistent-package', false);
406
- const result = isPackageInstalled(testDir, 'nonexistent-package');
407
- expect(result).toBe(false);
408
- });
409
- it('should return false if package.json cannot be read', () => {
410
- readFileSyncSpy.mockImplementationOnce(() => {
411
- throw new Error('File not found');
412
- });
413
- const result = isPackageInstalled(testDir, 'eslint');
414
- expect(result).toBe(false);
415
- });
416
- it('should return false if package.json has invalid JSON', () => {
417
- readFileSyncSpy.mockReturnValueOnce('invalid json{');
418
- const result = isPackageInstalled(testDir, 'eslint');
419
- expect(result).toBe(false);
420
- });
421
- it('should return false if checking node_modules throws an error', () => {
422
- readFileSyncSpy.mockReturnValueOnce(JSON.stringify({
423
- dependencies: {
424
- eslint: '^9.0.0',
425
- },
426
- }));
427
- existsSyncSpy.mockImplementation(() => {
428
- throw new Error('Permission denied');
429
- });
430
- const result = isPackageInstalled(testDir, 'eslint');
431
- expect(result).toBe(false);
432
- });
433
- it('should handle scoped packages correctly', () => {
434
- readFileSyncSpy.mockReturnValueOnce(JSON.stringify({
435
- dependencies: {
436
- '@typescript-eslint/parser': '^8.0.0',
437
- },
438
- }));
439
- mockNodeModulesExists('@typescript-eslint/parser', true);
440
- const result = isPackageInstalled(testDir, '@typescript-eslint/parser');
441
- expect(result).toBe(true);
442
- expect(existsSyncSpy).toHaveBeenCalledWith(path.join(testDir, 'node_modules', '@typescript-eslint/parser'));
443
- });
444
- it('should check both dependencies and devDependencies', () => {
445
- readFileSyncSpy.mockReturnValueOnce(JSON.stringify({
446
- dependencies: {
447
- react: '^18.0.0',
448
- },
449
- devDependencies: {
450
- eslint: '^9.0.0',
451
- },
452
- }));
453
- mockNodeModulesExists('eslint', true);
454
- const result = isPackageInstalled(testDir, 'eslint');
455
- expect(result).toBe(true);
456
- });
457
- });
458
- describe('npm workspaces support', () => {
459
- const workspaceRoot = path.join(projectDir, 'workspace');
460
- const pkg1Dir = path.join(workspaceRoot, 'packages', 'pkg-a');
461
- const pkg2Dir = path.join(workspaceRoot, 'packages', 'pkg-b');
462
- const standaloneDir = path.join(projectDir, 'standalone');
463
- function mockWorkspaceSetup(workspaceRootPath, workspacePatterns, packageDirs) {
464
- const allPackageJsons = [
465
- path.join(workspaceRootPath, 'package.json'),
466
- ...packageDirs.map(d => path.join(d, 'package.json')),
467
- ];
468
- mockedWalk.mockResolvedValue(allPackageJsons);
469
- mockedFs.readFileSync.mockImplementation(filePath => {
470
- const pathStr = filePath.toString();
471
- if (pathStr === path.join(workspaceRootPath, 'package.json')) {
472
- return JSON.stringify({
473
- name: 'workspace-root',
474
- workspaces: workspacePatterns,
475
- });
476
- }
477
- // Default package.json for workspace members
478
- return JSON.stringify({
479
- name: path.basename(path.dirname(pathStr)),
480
- });
481
- });
482
- }
483
- describe('installPackages()', () => {
484
- describe('workspace detection', () => {
485
- it('should return workspace root when directory matches workspace pattern', async () => {
486
- mockWorkspaceSetup(workspaceRoot, ['packages/*'], [pkg1Dir]);
487
- await installPackages({
488
- packages: ['lodash'],
489
- installLocations: [pkg1Dir],
490
- });
491
- expect(execMock).toHaveBeenCalledTimes(1);
492
- expect(execMock).toHaveBeenCalledWith(`npm install --workspace=packages/pkg-a lodash`, { cwd: workspaceRoot });
493
- });
494
- it('should handle packages without workspaces field as non-workspace', async () => {
495
- mockedWalk.mockResolvedValue([
496
- path.join(standaloneDir, 'package.json'),
497
- ]);
498
- mockedFs.readFileSync.mockReturnValue(JSON.stringify({ name: 'standalone' }));
499
- await installPackages({
500
- packages: ['react'],
501
- installLocations: [standaloneDir],
502
- });
503
- expect(execMock).toHaveBeenCalledTimes(1);
504
- expect(execMock).toHaveBeenCalledWith('npm install react', {
505
- cwd: standaloneDir,
506
- });
507
- });
508
- it('should handle empty workspaces array as non-workspace', async () => {
509
- mockedWalk.mockResolvedValue([
510
- path.join(workspaceRoot, 'package.json'),
511
- ]);
512
- mockedFs.readFileSync.mockReturnValue(JSON.stringify({
513
- name: 'workspace-root',
514
- workspaces: [],
515
- }));
516
- await installPackages({
517
- packages: ['test'],
518
- installLocations: [workspaceRoot],
519
- });
520
- expect(execMock).toHaveBeenCalledTimes(1);
521
- expect(execMock).toHaveBeenCalledWith('npm install test', {
522
- cwd: workspaceRoot,
523
- });
524
- });
525
- it('should match nested glob patterns like packages/**/*', async () => {
526
- const nestedDir = path.join(workspaceRoot, 'packages', 'frontend', 'ui');
527
- mockWorkspaceSetup(workspaceRoot, ['packages/**/*'], [nestedDir]);
528
- await installPackages({
529
- packages: ['axios'],
530
- installLocations: [nestedDir],
531
- });
532
- expect(execMock).toHaveBeenCalledTimes(1);
533
- expect(execMock).toHaveBeenCalledWith(`npm install --workspace=packages/frontend/ui axios`, { cwd: workspaceRoot });
534
- });
535
- it('should match against multiple workspace patterns', async () => {
536
- const appsDir = path.join(workspaceRoot, 'apps', 'web');
537
- mockWorkspaceSetup(workspaceRoot, ['packages/*', 'apps/*'], [pkg1Dir, appsDir]);
538
- await installPackages({
539
- packages: ['typescript'],
540
- installLocations: [pkg1Dir, appsDir],
541
- });
542
- expect(execMock).toHaveBeenCalledTimes(2);
543
- expect(execMock).toHaveBeenCalledWith(`npm install --workspace=packages/pkg-a typescript`, { cwd: workspaceRoot });
544
- expect(execMock).toHaveBeenCalledWith(`npm install --workspace=apps/web typescript`, { cwd: workspaceRoot });
545
- });
546
- it('should return null when directory does not match workspace patterns', async () => {
547
- mockWorkspaceSetup(workspaceRoot, ['packages/*'], []);
548
- mockedWalk.mockResolvedValue([
549
- path.join(workspaceRoot, 'package.json'),
550
- path.join(standaloneDir, 'package.json'),
551
- ]);
552
- mockedFs.readFileSync.mockImplementation(filePath => {
553
- const pathStr = filePath.toString();
554
- if (pathStr === path.join(workspaceRoot, 'package.json')) {
555
- return JSON.stringify({
556
- name: 'workspace',
557
- workspaces: ['packages/*'],
558
- });
559
- }
560
- return JSON.stringify({ name: 'standalone' });
561
- });
562
- await installPackages({
563
- packages: ['test'],
564
- installLocations: [standaloneDir],
565
- });
566
- expect(execMock).toHaveBeenCalledTimes(1);
567
- expect(execMock).toHaveBeenCalledWith('npm install test', {
568
- cwd: standaloneDir,
569
- });
570
- });
571
- });
572
- describe('installation behavior without specific packages', () => {
573
- it('should install at workspace root when no packages and directory is in workspace', async () => {
574
- mockWorkspaceSetup(workspaceRoot, ['packages/*'], [pkg1Dir, pkg2Dir]);
575
- await installPackages({
576
- installLocations: [pkg1Dir, pkg2Dir],
577
- });
578
- // Should install once at workspace root
579
- expect(execMock).toHaveBeenCalledTimes(1);
580
- expect(execMock).toHaveBeenCalledWith('npm install ', {
581
- cwd: workspaceRoot,
582
- });
583
- });
584
- it('should install in each directory when not in workspace', async () => {
585
- const dir1 = path.join(projectDir, 'dir1');
586
- const dir2 = path.join(projectDir, 'dir2');
587
- mockedWalk.mockResolvedValue([
588
- path.join(dir1, 'package.json'),
589
- path.join(dir2, 'package.json'),
590
- ]);
591
- mockedFs.readFileSync.mockReturnValue(JSON.stringify({ name: 'standalone' }));
592
- await installPackages({
593
- installLocations: [dir1, dir2],
594
- });
595
- expect(execMock).toHaveBeenCalledTimes(2);
596
- expect(execMock).toHaveBeenCalledWith('npm install ', { cwd: dir1 });
597
- expect(execMock).toHaveBeenCalledWith('npm install ', { cwd: dir2 });
598
- });
599
- it('should install at workspace roots and non-workspace directories', async () => {
600
- mockWorkspaceSetup(workspaceRoot, ['packages/*'], [pkg1Dir]);
601
- mockedWalk.mockResolvedValue([
602
- path.join(workspaceRoot, 'package.json'),
603
- path.join(pkg1Dir, 'package.json'),
604
- path.join(standaloneDir, 'package.json'),
605
- ]);
606
- mockedFs.readFileSync.mockImplementation(filePath => {
607
- const pathStr = filePath.toString();
608
- if (pathStr === path.join(workspaceRoot, 'package.json')) {
609
- return JSON.stringify({
610
- name: 'workspace',
611
- workspaces: ['packages/*'],
612
- });
613
- }
614
- return JSON.stringify({ name: 'pkg' });
615
- });
616
- await installPackages({
617
- installLocations: [pkg1Dir, standaloneDir],
618
- });
619
- expect(execMock).toHaveBeenCalledTimes(2);
620
- expect(execMock).toHaveBeenCalledWith('npm install ', {
621
- cwd: workspaceRoot,
622
- });
623
- expect(execMock).toHaveBeenCalledWith('npm install ', {
624
- cwd: standaloneDir,
625
- });
626
- });
627
- });
628
- describe('installation behavior with specific packages', () => {
629
- it('should use --workspace flag when installing packages in workspace', async () => {
630
- mockWorkspaceSetup(workspaceRoot, ['packages/*'], [pkg1Dir]);
631
- await installPackages({
632
- packages: ['lodash', 'axios'],
633
- installLocations: [pkg1Dir],
634
- });
635
- expect(execMock).toHaveBeenCalledTimes(1);
636
- expect(execMock).toHaveBeenCalledWith(`npm install --workspace=packages/pkg-a lodash axios`, { cwd: workspaceRoot });
637
- });
638
- it('should install packages normally in non-workspace directories', async () => {
639
- mockedWalk.mockResolvedValue([
640
- path.join(standaloneDir, 'package.json'),
641
- ]);
642
- mockedFs.readFileSync.mockReturnValue(JSON.stringify({ name: 'standalone' }));
643
- await installPackages({
644
- packages: ['react', 'react-dom'],
645
- installLocations: [standaloneDir],
646
- });
647
- expect(execMock).toHaveBeenCalledTimes(1);
648
- expect(execMock).toHaveBeenCalledWith('npm install react react-dom', {
649
- cwd: standaloneDir,
650
- });
651
- });
652
- it('should handle multiple workspace packages with separate commands', async () => {
653
- mockWorkspaceSetup(workspaceRoot, ['packages/*'], [pkg1Dir, pkg2Dir]);
654
- await installPackages({
655
- packages: ['typescript'],
656
- installLocations: [pkg1Dir, pkg2Dir],
657
- });
658
- expect(execMock).toHaveBeenCalledTimes(2);
659
- expect(execMock).toHaveBeenCalledWith(`npm install --workspace=packages/pkg-a typescript`, { cwd: workspaceRoot });
660
- expect(execMock).toHaveBeenCalledWith(`npm install --workspace=packages/pkg-b typescript`, { cwd: workspaceRoot });
661
- });
662
- it('should handle mixed workspace and non-workspace installations', async () => {
663
- mockWorkspaceSetup(workspaceRoot, ['packages/*'], [pkg1Dir]);
664
- mockedWalk.mockResolvedValue([
665
- path.join(workspaceRoot, 'package.json'),
666
- path.join(pkg1Dir, 'package.json'),
667
- path.join(standaloneDir, 'package.json'),
668
- ]);
669
- mockedFs.readFileSync.mockImplementation(filePath => {
670
- const pathStr = filePath.toString();
671
- if (pathStr === path.join(workspaceRoot, 'package.json')) {
672
- return JSON.stringify({
673
- name: 'workspace',
674
- workspaces: ['packages/*'],
675
- });
676
- }
677
- return JSON.stringify({ name: 'pkg' });
678
- });
679
- await installPackages({
680
- packages: ['lodash'],
681
- installLocations: [pkg1Dir, standaloneDir],
682
- });
683
- expect(execMock).toHaveBeenCalledTimes(2);
684
- expect(execMock).toHaveBeenCalledWith(`npm install --workspace=packages/pkg-a lodash`, { cwd: workspaceRoot });
685
- expect(execMock).toHaveBeenCalledWith('npm install lodash', {
686
- cwd: standaloneDir,
687
- });
688
- });
689
- });
690
- describe('command construction', () => {
691
- it('should combine --save-dev and --workspace flags correctly', async () => {
692
- mockWorkspaceSetup(workspaceRoot, ['packages/*'], [pkg1Dir]);
693
- await installPackages({
694
- packages: ['eslint', 'prettier'],
695
- installLocations: [pkg1Dir],
696
- dev: true,
697
- });
698
- expect(execMock).toHaveBeenCalledTimes(1);
699
- expect(execMock).toHaveBeenCalledWith(`npm install --save-dev --workspace=packages/pkg-a eslint prettier`, { cwd: workspaceRoot });
700
- });
701
- it('should not use --save-dev flag when dev is true but no packages provided', async () => {
702
- mockWorkspaceSetup(workspaceRoot, ['packages/*'], [pkg1Dir]);
703
- await installPackages({
704
- installLocations: [pkg1Dir],
705
- dev: true,
706
- });
707
- expect(execMock).toHaveBeenCalledTimes(1);
708
- expect(execMock).toHaveBeenCalledWith('npm install ', {
709
- cwd: workspaceRoot,
710
- });
711
- });
712
- it('should execute npm commands in workspace root directory for workspace packages', async () => {
713
- mockWorkspaceSetup(workspaceRoot, ['packages/*'], [pkg1Dir]);
714
- await installPackages({
715
- packages: ['test'],
716
- installLocations: [pkg1Dir],
717
- });
718
- expect(execMock).toHaveBeenCalledWith(expect.any(String), {
719
- cwd: workspaceRoot,
720
- });
721
- });
722
- it('should execute npm commands in package directory for non-workspace packages', async () => {
723
- mockedWalk.mockResolvedValue([
724
- path.join(standaloneDir, 'package.json'),
725
- ]);
726
- mockedFs.readFileSync.mockReturnValue(JSON.stringify({ name: 'standalone' }));
727
- await installPackages({
728
- packages: ['test'],
729
- installLocations: [standaloneDir],
730
- });
731
- expect(execMock).toHaveBeenCalledWith(expect.any(String), {
732
- cwd: standaloneDir,
733
- });
734
- });
735
- });
736
- describe('edge cases', () => {
737
- it('should correctly calculate relative paths for deeply nested packages', async () => {
738
- const deeplyNestedDir = path.join(workspaceRoot, 'packages', 'frontend', 'components', 'ui');
739
- mockWorkspaceSetup(workspaceRoot, ['packages/**/*'], [deeplyNestedDir]);
740
- await installPackages({
741
- packages: ['test'],
742
- installLocations: [deeplyNestedDir],
743
- });
744
- expect(execMock).toHaveBeenCalledWith(`npm install --workspace=packages/frontend/components/ui test`, { cwd: workspaceRoot });
745
- });
746
- it('should handle invalid package.json gracefully', async () => {
747
- mockedWalk.mockResolvedValue([
748
- path.join(workspaceRoot, 'package.json'),
749
- ]);
750
- mockedFs.readFileSync.mockReturnValue('invalid json{');
751
- await installPackages({
752
- packages: ['test'],
753
- installLocations: [workspaceRoot],
754
- });
755
- // Should treat as non-workspace since parsing fails
756
- expect(execMock).toHaveBeenCalledWith('npm install test', {
757
- cwd: workspaceRoot,
758
- });
759
- });
760
- it('should show spinner for package directory not workspace root', async () => {
761
- mockWorkspaceSetup(workspaceRoot, ['packages/*'], [pkg1Dir]);
762
- await installPackages({
763
- packages: ['lodash'],
764
- installLocations: [pkg1Dir],
765
- });
766
- expect(SpinniesManager.add).toHaveBeenCalledWith(`installingDependencies-${pkg1Dir}`, expect.objectContaining({
767
- text: expect.stringContaining(path.relative(process.cwd(), pkg1Dir)),
768
- }));
769
- expect(SpinniesManager.succeed).toHaveBeenCalledWith(`installingDependencies-${pkg1Dir}`, expect.any(Object));
770
- });
771
- it('should report errors with correct directory even when using workspace root', async () => {
772
- execMock = vi.fn().mockImplementation(() => {
773
- throw new Error('Installation failed');
774
- });
775
- util.promisify = mockedPromisify(execMock);
776
- mockWorkspaceSetup(workspaceRoot, ['packages/*'], [pkg1Dir]);
777
- mockedFs.existsSync.mockReturnValue(true);
778
- await expect(installPackages({
779
- packages: ['test'],
780
- installLocations: [pkg1Dir],
781
- })).rejects.toThrowError();
782
- expect(SpinniesManager.fail).toHaveBeenCalledWith(`installingDependencies-${pkg1Dir}`, expect.any(Object));
783
- });
784
- });
785
- });
786
- describe('updatePackages()', () => {
787
- describe('workspace detection', () => {
788
- it('should return workspace root when directory matches workspace pattern', async () => {
789
- mockWorkspaceSetup(workspaceRoot, ['packages/*'], [pkg1Dir]);
790
- await updatePackages({
791
- packages: ['lodash'],
792
- installLocations: [pkg1Dir],
793
- });
794
- expect(execMock).toHaveBeenCalledTimes(1);
795
- expect(execMock).toHaveBeenCalledWith(`npm update --workspace=packages/pkg-a lodash`, { cwd: workspaceRoot });
796
- });
797
- it('should handle packages without workspaces field as non-workspace', async () => {
798
- mockedWalk.mockResolvedValue([
799
- path.join(standaloneDir, 'package.json'),
800
- ]);
801
- mockedFs.readFileSync.mockReturnValue(JSON.stringify({ name: 'standalone' }));
802
- await updatePackages({
803
- packages: ['react'],
804
- installLocations: [standaloneDir],
805
- });
806
- expect(execMock).toHaveBeenCalledTimes(1);
807
- expect(execMock).toHaveBeenCalledWith('npm update react', {
808
- cwd: standaloneDir,
809
- });
810
- });
811
- it('should handle empty workspaces array as non-workspace', async () => {
812
- mockedWalk.mockResolvedValue([
813
- path.join(workspaceRoot, 'package.json'),
814
- ]);
815
- mockedFs.readFileSync.mockReturnValue(JSON.stringify({
816
- name: 'workspace-root',
817
- workspaces: [],
818
- }));
819
- await updatePackages({
820
- packages: ['test'],
821
- installLocations: [workspaceRoot],
822
- });
823
- expect(execMock).toHaveBeenCalledTimes(1);
824
- expect(execMock).toHaveBeenCalledWith('npm update test', {
825
- cwd: workspaceRoot,
826
- });
827
- });
828
- it('should match nested glob patterns like packages/**/*', async () => {
829
- const nestedDir = path.join(workspaceRoot, 'packages', 'frontend', 'ui');
830
- mockWorkspaceSetup(workspaceRoot, ['packages/**/*'], [nestedDir]);
831
- await updatePackages({
832
- packages: ['axios'],
833
- installLocations: [nestedDir],
834
- });
835
- expect(execMock).toHaveBeenCalledTimes(1);
836
- expect(execMock).toHaveBeenCalledWith(`npm update --workspace=packages/frontend/ui axios`, { cwd: workspaceRoot });
837
- });
838
- it('should match against multiple workspace patterns', async () => {
839
- const appsDir = path.join(workspaceRoot, 'apps', 'web');
840
- mockWorkspaceSetup(workspaceRoot, ['packages/*', 'apps/*'], [pkg1Dir, appsDir]);
841
- await updatePackages({
842
- packages: ['typescript'],
843
- installLocations: [pkg1Dir, appsDir],
844
- });
845
- expect(execMock).toHaveBeenCalledTimes(2);
846
- expect(execMock).toHaveBeenCalledWith(`npm update --workspace=packages/pkg-a typescript`, { cwd: workspaceRoot });
847
- expect(execMock).toHaveBeenCalledWith(`npm update --workspace=apps/web typescript`, { cwd: workspaceRoot });
848
- });
849
- it('should return null when directory does not match workspace patterns', async () => {
850
- mockWorkspaceSetup(workspaceRoot, ['packages/*'], []);
851
- mockedWalk.mockResolvedValue([
852
- path.join(workspaceRoot, 'package.json'),
853
- path.join(standaloneDir, 'package.json'),
854
- ]);
855
- mockedFs.readFileSync.mockImplementation(filePath => {
856
- const pathStr = filePath.toString();
857
- if (pathStr === path.join(workspaceRoot, 'package.json')) {
858
- return JSON.stringify({
859
- name: 'workspace',
860
- workspaces: ['packages/*'],
861
- });
862
- }
863
- return JSON.stringify({ name: 'standalone' });
864
- });
865
- await updatePackages({
866
- packages: ['test'],
867
- installLocations: [standaloneDir],
868
- });
869
- expect(execMock).toHaveBeenCalledTimes(1);
870
- expect(execMock).toHaveBeenCalledWith('npm update test', {
871
- cwd: standaloneDir,
872
- });
873
- });
874
- });
875
- describe('update behavior without specific packages', () => {
876
- it('should update at workspace root when no packages and directory is in workspace', async () => {
877
- mockWorkspaceSetup(workspaceRoot, ['packages/*'], [pkg1Dir, pkg2Dir]);
878
- await updatePackages({
879
- installLocations: [pkg1Dir, pkg2Dir],
880
- });
881
- expect(execMock).toHaveBeenCalledTimes(1);
882
- expect(execMock).toHaveBeenCalledWith('npm update ', {
883
- cwd: workspaceRoot,
884
- });
885
- });
886
- it('should update in each directory when not in workspace', async () => {
887
- const dir1 = path.join(projectDir, 'dir1');
888
- const dir2 = path.join(projectDir, 'dir2');
889
- mockedWalk.mockResolvedValue([
890
- path.join(dir1, 'package.json'),
891
- path.join(dir2, 'package.json'),
892
- ]);
893
- mockedFs.readFileSync.mockReturnValue(JSON.stringify({ name: 'standalone' }));
894
- await updatePackages({
895
- installLocations: [dir1, dir2],
896
- });
897
- expect(execMock).toHaveBeenCalledTimes(2);
898
- expect(execMock).toHaveBeenCalledWith('npm update ', { cwd: dir1 });
899
- expect(execMock).toHaveBeenCalledWith('npm update ', { cwd: dir2 });
900
- });
901
- it('should update at workspace roots and non-workspace directories', async () => {
902
- mockWorkspaceSetup(workspaceRoot, ['packages/*'], [pkg1Dir]);
903
- mockedWalk.mockResolvedValue([
904
- path.join(workspaceRoot, 'package.json'),
905
- path.join(pkg1Dir, 'package.json'),
906
- path.join(standaloneDir, 'package.json'),
907
- ]);
908
- mockedFs.readFileSync.mockImplementation(filePath => {
909
- const pathStr = filePath.toString();
910
- if (pathStr === path.join(workspaceRoot, 'package.json')) {
911
- return JSON.stringify({
912
- name: 'workspace',
913
- workspaces: ['packages/*'],
914
- });
915
- }
916
- return JSON.stringify({ name: 'pkg' });
917
- });
918
- await updatePackages({
919
- installLocations: [pkg1Dir, standaloneDir],
920
- });
921
- expect(execMock).toHaveBeenCalledTimes(2);
922
- expect(execMock).toHaveBeenCalledWith('npm update ', {
923
- cwd: workspaceRoot,
924
- });
925
- expect(execMock).toHaveBeenCalledWith('npm update ', {
926
- cwd: standaloneDir,
927
- });
928
- });
929
- });
930
- describe('update behavior with specific packages', () => {
931
- it('should use --workspace flag when updating packages in workspace', async () => {
932
- mockWorkspaceSetup(workspaceRoot, ['packages/*'], [pkg1Dir]);
933
- await updatePackages({
934
- packages: ['lodash', 'axios'],
935
- installLocations: [pkg1Dir],
936
- });
937
- expect(execMock).toHaveBeenCalledTimes(1);
938
- expect(execMock).toHaveBeenCalledWith(`npm update --workspace=packages/pkg-a lodash axios`, { cwd: workspaceRoot });
939
- });
940
- it('should update packages normally in non-workspace directories', async () => {
941
- mockedWalk.mockResolvedValue([
942
- path.join(standaloneDir, 'package.json'),
943
- ]);
944
- mockedFs.readFileSync.mockReturnValue(JSON.stringify({ name: 'standalone' }));
945
- await updatePackages({
946
- packages: ['react', 'react-dom'],
947
- installLocations: [standaloneDir],
948
- });
949
- expect(execMock).toHaveBeenCalledTimes(1);
950
- expect(execMock).toHaveBeenCalledWith('npm update react react-dom', {
951
- cwd: standaloneDir,
952
- });
953
- });
954
- it('should handle multiple workspace packages with separate commands', async () => {
955
- mockWorkspaceSetup(workspaceRoot, ['packages/*'], [pkg1Dir, pkg2Dir]);
956
- await updatePackages({
957
- packages: ['typescript'],
958
- installLocations: [pkg1Dir, pkg2Dir],
959
- });
960
- expect(execMock).toHaveBeenCalledTimes(2);
961
- expect(execMock).toHaveBeenCalledWith(`npm update --workspace=packages/pkg-a typescript`, { cwd: workspaceRoot });
962
- expect(execMock).toHaveBeenCalledWith(`npm update --workspace=packages/pkg-b typescript`, { cwd: workspaceRoot });
963
- });
964
- it('should handle mixed workspace and non-workspace updates', async () => {
965
- mockWorkspaceSetup(workspaceRoot, ['packages/*'], [pkg1Dir]);
966
- mockedWalk.mockResolvedValue([
967
- path.join(workspaceRoot, 'package.json'),
968
- path.join(pkg1Dir, 'package.json'),
969
- path.join(standaloneDir, 'package.json'),
970
- ]);
971
- mockedFs.readFileSync.mockImplementation(filePath => {
972
- const pathStr = filePath.toString();
973
- if (pathStr === path.join(workspaceRoot, 'package.json')) {
974
- return JSON.stringify({
975
- name: 'workspace',
976
- workspaces: ['packages/*'],
977
- });
978
- }
979
- return JSON.stringify({ name: 'pkg' });
980
- });
981
- await updatePackages({
982
- packages: ['lodash'],
983
- installLocations: [pkg1Dir, standaloneDir],
984
- });
985
- expect(execMock).toHaveBeenCalledTimes(2);
986
- expect(execMock).toHaveBeenCalledWith(`npm update --workspace=packages/pkg-a lodash`, { cwd: workspaceRoot });
987
- expect(execMock).toHaveBeenCalledWith('npm update lodash', {
988
- cwd: standaloneDir,
989
- });
990
- });
991
- });
992
- describe('command construction', () => {
993
- it('should execute npm commands in workspace root directory for workspace packages', async () => {
994
- mockWorkspaceSetup(workspaceRoot, ['packages/*'], [pkg1Dir]);
995
- await updatePackages({
996
- packages: ['test'],
997
- installLocations: [pkg1Dir],
998
- });
999
- expect(execMock).toHaveBeenCalledWith(expect.any(String), {
1000
- cwd: workspaceRoot,
1001
- });
1002
- });
1003
- it('should execute npm commands in package directory for non-workspace packages', async () => {
1004
- mockedWalk.mockResolvedValue([
1005
- path.join(standaloneDir, 'package.json'),
1006
- ]);
1007
- mockedFs.readFileSync.mockReturnValue(JSON.stringify({ name: 'standalone' }));
1008
- await updatePackages({
1009
- packages: ['test'],
1010
- installLocations: [standaloneDir],
1011
- });
1012
- expect(execMock).toHaveBeenCalledWith(expect.any(String), {
1013
- cwd: standaloneDir,
1014
- });
1015
- });
1016
- });
1017
- describe('edge cases', () => {
1018
- it('should correctly calculate relative paths for deeply nested packages', async () => {
1019
- const deeplyNestedDir = path.join(workspaceRoot, 'packages', 'frontend', 'components', 'ui');
1020
- mockWorkspaceSetup(workspaceRoot, ['packages/**/*'], [deeplyNestedDir]);
1021
- await updatePackages({
1022
- packages: ['test'],
1023
- installLocations: [deeplyNestedDir],
1024
- });
1025
- expect(execMock).toHaveBeenCalledWith(`npm update --workspace=packages/frontend/components/ui test`, { cwd: workspaceRoot });
1026
- });
1027
- it('should handle invalid package.json gracefully', async () => {
1028
- mockedWalk.mockResolvedValue([
1029
- path.join(workspaceRoot, 'package.json'),
1030
- ]);
1031
- mockedFs.readFileSync.mockReturnValue('invalid json{');
1032
- await updatePackages({
1033
- packages: ['test'],
1034
- installLocations: [workspaceRoot],
1035
- });
1036
- expect(execMock).toHaveBeenCalledWith('npm update test', {
1037
- cwd: workspaceRoot,
1038
- });
1039
- });
1040
- it('should show spinner for package directory not workspace root', async () => {
1041
- mockWorkspaceSetup(workspaceRoot, ['packages/*'], [pkg1Dir]);
1042
- await updatePackages({
1043
- packages: ['lodash'],
1044
- installLocations: [pkg1Dir],
1045
- });
1046
- expect(SpinniesManager.add).toHaveBeenCalledWith(`updatingDependencies-${pkg1Dir}`, expect.objectContaining({
1047
- text: expect.stringContaining(path.relative(process.cwd(), pkg1Dir)),
1048
- }));
1049
- expect(SpinniesManager.succeed).toHaveBeenCalledWith(`updatingDependencies-${pkg1Dir}`, expect.any(Object));
1050
- });
1051
- it('should report errors with correct directory even when using workspace root', async () => {
1052
- execMock = vi.fn().mockImplementation(() => {
1053
- throw new Error('Update failed');
1054
- });
1055
- util.promisify = mockedPromisify(execMock);
1056
- mockWorkspaceSetup(workspaceRoot, ['packages/*'], [pkg1Dir]);
1057
- mockedFs.existsSync.mockReturnValue(true);
1058
- await expect(updatePackages({
1059
- packages: ['test'],
1060
- installLocations: [pkg1Dir],
1061
- })).rejects.toThrowError();
1062
- expect(SpinniesManager.fail).toHaveBeenCalledWith(`updatingDependencies-${pkg1Dir}`, expect.any(Object));
1063
- });
1064
- });
1065
- });
1066
- });
1067
- });