@strapi/cloud-cli 5.12.1 → 5.12.2

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 (323) hide show
  1. package/dist/bin.d.ts.map +1 -0
  2. package/dist/bin.js +5 -18
  3. package/dist/bin.js.map +1 -1
  4. package/dist/bin.mjs +3 -16
  5. package/dist/bin.mjs.map +1 -1
  6. package/dist/cloud/command.d.ts.map +1 -0
  7. package/dist/cloud/command.js +14 -0
  8. package/dist/cloud/command.js.map +1 -0
  9. package/dist/cloud/command.mjs +12 -0
  10. package/dist/cloud/command.mjs.map +1 -0
  11. package/dist/config/api.d.ts.map +1 -0
  12. package/dist/config/api.js +11 -0
  13. package/dist/config/api.js.map +1 -0
  14. package/dist/config/api.mjs +9 -0
  15. package/dist/config/api.mjs.map +1 -0
  16. package/dist/config/local.d.ts.map +1 -0
  17. package/dist/config/local.js +60 -0
  18. package/dist/config/local.js.map +1 -0
  19. package/dist/config/local.mjs +55 -0
  20. package/dist/config/local.mjs.map +1 -0
  21. package/dist/create-project/action.d.ts.map +1 -0
  22. package/dist/create-project/action.js +95 -0
  23. package/dist/create-project/action.js.map +1 -0
  24. package/dist/create-project/action.mjs +93 -0
  25. package/dist/create-project/action.mjs.map +1 -0
  26. package/dist/create-project/command.d.ts.map +1 -0
  27. package/dist/create-project/command.js +14 -0
  28. package/dist/create-project/command.js.map +1 -0
  29. package/dist/create-project/command.mjs +12 -0
  30. package/dist/create-project/command.mjs.map +1 -0
  31. package/dist/create-project/index.d.ts.map +1 -0
  32. package/dist/create-project/index.js +18 -0
  33. package/dist/create-project/index.js.map +1 -0
  34. package/dist/create-project/index.mjs +12 -0
  35. package/dist/create-project/index.mjs.map +1 -0
  36. package/dist/create-project/utils/get-project-name-from-pkg.d.ts.map +1 -0
  37. package/dist/create-project/utils/get-project-name-from-pkg.js +15 -0
  38. package/dist/create-project/utils/get-project-name-from-pkg.js.map +1 -0
  39. package/dist/create-project/utils/get-project-name-from-pkg.mjs +13 -0
  40. package/dist/create-project/utils/get-project-name-from-pkg.mjs.map +1 -0
  41. package/dist/create-project/utils/project-questions.utils.d.ts.map +1 -0
  42. package/dist/create-project/utils/project-questions.utils.js +63 -0
  43. package/dist/create-project/utils/project-questions.utils.js.map +1 -0
  44. package/dist/create-project/utils/project-questions.utils.mjs +59 -0
  45. package/dist/create-project/utils/project-questions.utils.mjs.map +1 -0
  46. package/dist/deploy-project/action.d.ts.map +1 -0
  47. package/dist/deploy-project/action.js +287 -0
  48. package/dist/deploy-project/action.js.map +1 -0
  49. package/dist/deploy-project/action.mjs +266 -0
  50. package/dist/deploy-project/action.mjs.map +1 -0
  51. package/dist/deploy-project/command.d.ts.map +1 -0
  52. package/dist/deploy-project/command.js +14 -0
  53. package/dist/deploy-project/command.js.map +1 -0
  54. package/dist/deploy-project/command.mjs +12 -0
  55. package/dist/deploy-project/command.mjs.map +1 -0
  56. package/dist/deploy-project/index.d.ts.map +1 -0
  57. package/dist/deploy-project/index.js +18 -0
  58. package/dist/deploy-project/index.js.map +1 -0
  59. package/dist/deploy-project/index.mjs +12 -0
  60. package/dist/deploy-project/index.mjs.map +1 -0
  61. package/dist/environment/command.d.ts.map +1 -0
  62. package/dist/environment/command.js +15 -0
  63. package/dist/environment/command.js.map +1 -0
  64. package/dist/environment/command.mjs +13 -0
  65. package/dist/environment/command.mjs.map +1 -0
  66. package/dist/environment/link/action.d.ts.map +1 -0
  67. package/dist/environment/link/action.js +117 -0
  68. package/dist/environment/link/action.js.map +1 -0
  69. package/dist/environment/link/action.mjs +115 -0
  70. package/dist/environment/link/action.mjs.map +1 -0
  71. package/dist/environment/link/command.d.ts.map +1 -0
  72. package/dist/environment/link/command.js +13 -0
  73. package/dist/environment/link/command.js.map +1 -0
  74. package/dist/environment/link/command.mjs +11 -0
  75. package/dist/environment/link/command.mjs.map +1 -0
  76. package/dist/environment/link/index.d.ts.map +1 -0
  77. package/dist/environment/link/index.js +18 -0
  78. package/dist/environment/link/index.js.map +1 -0
  79. package/dist/environment/link/index.mjs +12 -0
  80. package/dist/environment/link/index.mjs.map +1 -0
  81. package/dist/environment/list/action.d.ts.map +1 -0
  82. package/dist/environment/list/action.js +57 -0
  83. package/dist/environment/list/action.js.map +1 -0
  84. package/dist/environment/list/action.mjs +55 -0
  85. package/dist/environment/list/action.mjs.map +1 -0
  86. package/dist/environment/list/command.d.ts.map +1 -0
  87. package/dist/environment/list/command.js +13 -0
  88. package/dist/environment/list/command.js.map +1 -0
  89. package/dist/environment/list/command.mjs +11 -0
  90. package/dist/environment/list/command.mjs.map +1 -0
  91. package/dist/environment/list/index.d.ts.map +1 -0
  92. package/dist/environment/list/index.js +18 -0
  93. package/dist/environment/list/index.js.map +1 -0
  94. package/dist/environment/list/index.mjs +12 -0
  95. package/dist/environment/list/index.mjs.map +1 -0
  96. package/dist/index.d.ts.map +1 -0
  97. package/dist/index.js +59 -29
  98. package/dist/index.js.map +1 -1
  99. package/dist/index.mjs +60 -25
  100. package/dist/index.mjs.map +1 -1
  101. package/dist/link/action.d.ts.map +1 -0
  102. package/dist/link/action.js +146 -0
  103. package/dist/link/action.js.map +1 -0
  104. package/dist/link/action.mjs +144 -0
  105. package/dist/link/action.mjs.map +1 -0
  106. package/dist/link/command.d.ts.map +1 -0
  107. package/dist/link/command.js +13 -0
  108. package/dist/link/command.js.map +1 -0
  109. package/dist/link/command.mjs +11 -0
  110. package/dist/link/command.mjs.map +1 -0
  111. package/dist/link/index.d.ts.map +1 -0
  112. package/dist/link/index.js +18 -0
  113. package/dist/link/index.js.map +1 -0
  114. package/dist/link/index.mjs +12 -0
  115. package/dist/link/index.mjs.map +1 -0
  116. package/dist/list-projects/action.d.ts.map +1 -0
  117. package/dist/list-projects/action.js +34 -0
  118. package/dist/list-projects/action.js.map +1 -0
  119. package/dist/list-projects/action.mjs +32 -0
  120. package/dist/list-projects/action.mjs.map +1 -0
  121. package/dist/list-projects/command.d.ts.map +1 -0
  122. package/dist/list-projects/command.js +13 -0
  123. package/dist/list-projects/command.js.map +1 -0
  124. package/dist/list-projects/command.mjs +11 -0
  125. package/dist/list-projects/command.mjs.map +1 -0
  126. package/dist/list-projects/index.d.ts.map +1 -0
  127. package/dist/list-projects/index.js +18 -0
  128. package/dist/list-projects/index.js.map +1 -0
  129. package/dist/list-projects/index.mjs +12 -0
  130. package/dist/list-projects/index.mjs.map +1 -0
  131. package/dist/login/action.d.ts.map +1 -0
  132. package/dist/login/action.js +177 -0
  133. package/dist/login/action.js.map +1 -0
  134. package/dist/login/action.mjs +172 -0
  135. package/dist/login/action.mjs.map +1 -0
  136. package/dist/login/command.d.ts.map +1 -0
  137. package/dist/login/command.js +14 -0
  138. package/dist/login/command.js.map +1 -0
  139. package/dist/login/command.mjs +12 -0
  140. package/dist/login/command.mjs.map +1 -0
  141. package/dist/login/index.d.ts.map +1 -0
  142. package/dist/login/index.js +18 -0
  143. package/dist/login/index.js.map +1 -0
  144. package/dist/login/index.mjs +12 -0
  145. package/dist/login/index.mjs.map +1 -0
  146. package/dist/logout/action.d.ts.map +1 -0
  147. package/dist/logout/action.js +46 -0
  148. package/dist/logout/action.js.map +1 -0
  149. package/dist/logout/action.mjs +44 -0
  150. package/dist/logout/action.mjs.map +1 -0
  151. package/dist/logout/command.d.ts.map +1 -0
  152. package/dist/logout/command.js +14 -0
  153. package/dist/logout/command.js.map +1 -0
  154. package/dist/logout/command.mjs +12 -0
  155. package/dist/logout/command.mjs.map +1 -0
  156. package/dist/logout/index.d.ts.map +1 -0
  157. package/dist/logout/index.js +18 -0
  158. package/dist/logout/index.js.map +1 -0
  159. package/dist/logout/index.mjs +12 -0
  160. package/dist/logout/index.mjs.map +1 -0
  161. package/dist/package.json.js +129 -0
  162. package/dist/package.json.js.map +1 -0
  163. package/dist/package.json.mjs +105 -0
  164. package/dist/package.json.mjs.map +1 -0
  165. package/dist/services/build-logs.d.ts.map +1 -0
  166. package/dist/services/build-logs.js +67 -0
  167. package/dist/services/build-logs.js.map +1 -0
  168. package/dist/services/build-logs.mjs +65 -0
  169. package/dist/services/build-logs.mjs.map +1 -0
  170. package/dist/services/cli-api.d.ts.map +1 -0
  171. package/dist/services/cli-api.js +146 -0
  172. package/dist/services/cli-api.js.map +1 -0
  173. package/dist/services/cli-api.mjs +143 -0
  174. package/dist/services/cli-api.mjs.map +1 -0
  175. package/dist/services/index.d.ts.map +1 -0
  176. package/dist/services/index.js +14 -0
  177. package/dist/services/index.js.map +1 -0
  178. package/dist/services/index.mjs +6 -0
  179. package/dist/services/index.mjs.map +1 -0
  180. package/dist/services/logger.d.ts.map +1 -0
  181. package/dist/services/logger.js +128 -0
  182. package/dist/services/logger.js.map +1 -0
  183. package/dist/services/logger.mjs +107 -0
  184. package/dist/services/logger.mjs.map +1 -0
  185. package/dist/services/notification.d.ts.map +1 -0
  186. package/dist/services/notification.js +37 -0
  187. package/dist/services/notification.js.map +1 -0
  188. package/dist/services/notification.mjs +35 -0
  189. package/dist/services/notification.mjs.map +1 -0
  190. package/dist/services/strapi-info-save.d.ts.map +1 -0
  191. package/dist/services/strapi-info-save.js +53 -0
  192. package/dist/services/strapi-info-save.js.map +1 -0
  193. package/dist/services/strapi-info-save.mjs +47 -0
  194. package/dist/services/strapi-info-save.mjs.map +1 -0
  195. package/dist/services/token.d.ts.map +1 -0
  196. package/dist/services/token.js +126 -0
  197. package/dist/services/token.js.map +1 -0
  198. package/dist/services/token.mjs +124 -0
  199. package/dist/services/token.mjs.map +1 -0
  200. package/dist/types.d.ts.map +1 -0
  201. package/dist/utils/analytics.d.ts.map +1 -0
  202. package/dist/utils/analytics.js +12 -0
  203. package/dist/utils/analytics.js.map +1 -0
  204. package/dist/utils/analytics.mjs +10 -0
  205. package/dist/utils/analytics.mjs.map +1 -0
  206. package/dist/utils/compress-files.d.ts.map +1 -0
  207. package/dist/utils/compress-files.js +102 -0
  208. package/dist/utils/compress-files.js.map +1 -0
  209. package/dist/utils/compress-files.mjs +78 -0
  210. package/dist/utils/compress-files.mjs.map +1 -0
  211. package/dist/utils/get-local-config.d.ts.map +1 -0
  212. package/dist/utils/get-local-config.js +37 -0
  213. package/dist/utils/get-local-config.js.map +1 -0
  214. package/dist/utils/get-local-config.mjs +34 -0
  215. package/dist/utils/get-local-config.mjs.map +1 -0
  216. package/dist/utils/helpers.d.ts.map +1 -0
  217. package/dist/utils/helpers.js +33 -0
  218. package/dist/utils/helpers.js.map +1 -0
  219. package/dist/utils/helpers.mjs +31 -0
  220. package/dist/utils/helpers.mjs.map +1 -0
  221. package/dist/utils/pkg.d.ts.map +1 -0
  222. package/dist/utils/pkg.js +65 -0
  223. package/dist/utils/pkg.js.map +1 -0
  224. package/dist/utils/pkg.mjs +43 -0
  225. package/dist/utils/pkg.mjs.map +1 -0
  226. package/dist/utils/tests/compress-files.test.d.ts.map +1 -0
  227. package/package.json +5 -5
  228. package/dist/chunks/index-Cs4iEXVp.mjs +0 -1869
  229. package/dist/chunks/index-Cs4iEXVp.mjs.map +0 -1
  230. package/dist/chunks/index-DuvtFoFz.js +0 -1896
  231. package/dist/chunks/index-DuvtFoFz.js.map +0 -1
  232. package/dist/src/bin.d.ts.map +0 -1
  233. package/dist/src/cloud/command.d.ts.map +0 -1
  234. package/dist/src/config/api.d.ts.map +0 -1
  235. package/dist/src/config/local.d.ts.map +0 -1
  236. package/dist/src/create-project/action.d.ts.map +0 -1
  237. package/dist/src/create-project/command.d.ts.map +0 -1
  238. package/dist/src/create-project/index.d.ts.map +0 -1
  239. package/dist/src/create-project/utils/get-project-name-from-pkg.d.ts.map +0 -1
  240. package/dist/src/create-project/utils/project-questions.utils.d.ts.map +0 -1
  241. package/dist/src/deploy-project/action.d.ts.map +0 -1
  242. package/dist/src/deploy-project/command.d.ts.map +0 -1
  243. package/dist/src/deploy-project/index.d.ts.map +0 -1
  244. package/dist/src/environment/command.d.ts.map +0 -1
  245. package/dist/src/environment/link/action.d.ts.map +0 -1
  246. package/dist/src/environment/link/command.d.ts.map +0 -1
  247. package/dist/src/environment/link/index.d.ts.map +0 -1
  248. package/dist/src/environment/list/action.d.ts.map +0 -1
  249. package/dist/src/environment/list/command.d.ts.map +0 -1
  250. package/dist/src/environment/list/index.d.ts.map +0 -1
  251. package/dist/src/index.d.ts.map +0 -1
  252. package/dist/src/link/action.d.ts.map +0 -1
  253. package/dist/src/link/command.d.ts.map +0 -1
  254. package/dist/src/link/index.d.ts.map +0 -1
  255. package/dist/src/list-projects/action.d.ts.map +0 -1
  256. package/dist/src/list-projects/command.d.ts.map +0 -1
  257. package/dist/src/list-projects/index.d.ts.map +0 -1
  258. package/dist/src/login/action.d.ts.map +0 -1
  259. package/dist/src/login/command.d.ts.map +0 -1
  260. package/dist/src/login/index.d.ts.map +0 -1
  261. package/dist/src/logout/action.d.ts.map +0 -1
  262. package/dist/src/logout/command.d.ts.map +0 -1
  263. package/dist/src/logout/index.d.ts.map +0 -1
  264. package/dist/src/services/build-logs.d.ts.map +0 -1
  265. package/dist/src/services/cli-api.d.ts.map +0 -1
  266. package/dist/src/services/index.d.ts.map +0 -1
  267. package/dist/src/services/logger.d.ts.map +0 -1
  268. package/dist/src/services/notification.d.ts.map +0 -1
  269. package/dist/src/services/strapi-info-save.d.ts.map +0 -1
  270. package/dist/src/services/token.d.ts.map +0 -1
  271. package/dist/src/types.d.ts.map +0 -1
  272. package/dist/src/utils/analytics.d.ts.map +0 -1
  273. package/dist/src/utils/compress-files.d.ts.map +0 -1
  274. package/dist/src/utils/get-local-config.d.ts.map +0 -1
  275. package/dist/src/utils/helpers.d.ts.map +0 -1
  276. package/dist/src/utils/pkg.d.ts.map +0 -1
  277. package/dist/src/utils/tests/compress-files.test.d.ts.map +0 -1
  278. /package/dist/{src/bin.d.ts → bin.d.ts} +0 -0
  279. /package/dist/{src/cloud → cloud}/command.d.ts +0 -0
  280. /package/dist/{src/config → config}/api.d.ts +0 -0
  281. /package/dist/{src/config → config}/local.d.ts +0 -0
  282. /package/dist/{src/create-project → create-project}/action.d.ts +0 -0
  283. /package/dist/{src/create-project → create-project}/command.d.ts +0 -0
  284. /package/dist/{src/create-project → create-project}/index.d.ts +0 -0
  285. /package/dist/{src/create-project → create-project}/utils/get-project-name-from-pkg.d.ts +0 -0
  286. /package/dist/{src/create-project → create-project}/utils/project-questions.utils.d.ts +0 -0
  287. /package/dist/{src/deploy-project → deploy-project}/action.d.ts +0 -0
  288. /package/dist/{src/deploy-project → deploy-project}/command.d.ts +0 -0
  289. /package/dist/{src/deploy-project → deploy-project}/index.d.ts +0 -0
  290. /package/dist/{src/environment → environment}/command.d.ts +0 -0
  291. /package/dist/{src/environment → environment}/link/action.d.ts +0 -0
  292. /package/dist/{src/environment → environment}/link/command.d.ts +0 -0
  293. /package/dist/{src/environment → environment}/link/index.d.ts +0 -0
  294. /package/dist/{src/environment → environment}/list/action.d.ts +0 -0
  295. /package/dist/{src/environment → environment}/list/command.d.ts +0 -0
  296. /package/dist/{src/environment → environment}/list/index.d.ts +0 -0
  297. /package/dist/{src/index.d.ts → index.d.ts} +0 -0
  298. /package/dist/{src/link → link}/action.d.ts +0 -0
  299. /package/dist/{src/link → link}/command.d.ts +0 -0
  300. /package/dist/{src/link → link}/index.d.ts +0 -0
  301. /package/dist/{src/list-projects → list-projects}/action.d.ts +0 -0
  302. /package/dist/{src/list-projects → list-projects}/command.d.ts +0 -0
  303. /package/dist/{src/list-projects → list-projects}/index.d.ts +0 -0
  304. /package/dist/{src/login → login}/action.d.ts +0 -0
  305. /package/dist/{src/login → login}/command.d.ts +0 -0
  306. /package/dist/{src/login → login}/index.d.ts +0 -0
  307. /package/dist/{src/logout → logout}/action.d.ts +0 -0
  308. /package/dist/{src/logout → logout}/command.d.ts +0 -0
  309. /package/dist/{src/logout → logout}/index.d.ts +0 -0
  310. /package/dist/{src/services → services}/build-logs.d.ts +0 -0
  311. /package/dist/{src/services → services}/cli-api.d.ts +0 -0
  312. /package/dist/{src/services → services}/index.d.ts +0 -0
  313. /package/dist/{src/services → services}/logger.d.ts +0 -0
  314. /package/dist/{src/services → services}/notification.d.ts +0 -0
  315. /package/dist/{src/services → services}/strapi-info-save.d.ts +0 -0
  316. /package/dist/{src/services → services}/token.d.ts +0 -0
  317. /package/dist/{src/types.d.ts → types.d.ts} +0 -0
  318. /package/dist/{src/utils → utils}/analytics.d.ts +0 -0
  319. /package/dist/{src/utils → utils}/compress-files.d.ts +0 -0
  320. /package/dist/{src/utils → utils}/get-local-config.d.ts +0 -0
  321. /package/dist/{src/utils → utils}/helpers.d.ts +0 -0
  322. /package/dist/{src/utils → utils}/pkg.d.ts +0 -0
  323. /package/dist/{src/utils → utils}/tests/compress-files.test.d.ts +0 -0
package/dist/index.mjs CHANGED
@@ -1,26 +1,61 @@
1
- import 'crypto';
2
- export { b as buildStrapiCloudCommands, a as cli, i as services } from './chunks/index-Cs4iEXVp.mjs';
3
- import 'fs-extra';
4
- import 'inquirer';
5
- import 'boxen';
6
- import 'path';
7
- import 'chalk';
8
- import 'axios';
9
- import 'node:crypto';
10
- import '@strapi/utils';
11
- import 'tar';
12
- import 'minimatch';
13
- import 'lodash/fp';
14
- import 'os';
15
- import 'xdg-app-paths';
16
- import 'lodash';
17
- import 'jwks-rsa';
18
- import 'jsonwebtoken';
19
- import 'fast-safe-stringify';
20
- import 'ora';
21
- import 'cli-progress';
22
- import 'pkg-up';
23
- import 'yup';
24
- import 'eventsource';
25
- import 'commander';
1
+ import crypto from 'crypto';
2
+ import deployProject from './deploy-project/index.mjs';
3
+ import link from './link/index.mjs';
4
+ import login from './login/index.mjs';
5
+ import logout from './logout/index.mjs';
6
+ import createProject from './create-project/index.mjs';
7
+ import listProjects from './list-projects/index.mjs';
8
+ import listEnvironments from './environment/list/index.mjs';
9
+ import linkEnvironment from './environment/link/index.mjs';
10
+ import { getLocalConfig, saveLocalConfig } from './config/local.mjs';
11
+ import * as index from './services/index.mjs';
12
+ export { index as services };
13
+
14
+ const cli = {
15
+ deployProject,
16
+ link,
17
+ login,
18
+ logout,
19
+ createProject,
20
+ linkEnvironment,
21
+ listProjects,
22
+ listEnvironments
23
+ };
24
+ const cloudCommands = [
25
+ deployProject,
26
+ link,
27
+ login,
28
+ logout,
29
+ linkEnvironment,
30
+ listProjects,
31
+ listEnvironments
32
+ ];
33
+ async function initCloudCLIConfig() {
34
+ const localConfig = await getLocalConfig();
35
+ if (!localConfig.deviceId) {
36
+ localConfig.deviceId = crypto.randomUUID();
37
+ }
38
+ await saveLocalConfig(localConfig);
39
+ }
40
+ async function buildStrapiCloudCommands({ command, ctx, argv }) {
41
+ await initCloudCLIConfig();
42
+ // Load all commands
43
+ for (const cloudCommand of cloudCommands){
44
+ try {
45
+ // Add this command to the Commander command object
46
+ const subCommand = await cloudCommand.command({
47
+ command,
48
+ ctx,
49
+ argv
50
+ });
51
+ if (subCommand) {
52
+ command.addCommand(subCommand);
53
+ }
54
+ } catch (e) {
55
+ console.error(`Failed to load command ${cloudCommand.name}`, e);
56
+ }
57
+ }
58
+ }
59
+
60
+ export { buildStrapiCloudCommands, cli };
26
61
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":["../src/index.ts"],"sourcesContent":["import { Command } from 'commander';\nimport crypto from 'crypto';\nimport deployProject from './deploy-project';\nimport link from './link';\nimport login from './login';\nimport logout from './logout';\nimport createProject from './create-project';\nimport listProjects from './list-projects';\nimport listEnvironments from './environment/list';\nimport linkEnvironment from './environment/link';\nimport { CLIContext } from './types';\nimport { getLocalConfig, saveLocalConfig } from './config/local';\n\nexport const cli = {\n deployProject,\n link,\n login,\n logout,\n createProject,\n linkEnvironment,\n listProjects,\n listEnvironments,\n};\n\nconst cloudCommands = [\n deployProject,\n link,\n login,\n logout,\n linkEnvironment,\n listProjects,\n listEnvironments,\n];\n\nasync function initCloudCLIConfig() {\n const localConfig = await getLocalConfig();\n\n if (!localConfig.deviceId) {\n localConfig.deviceId = crypto.randomUUID();\n }\n\n await saveLocalConfig(localConfig);\n}\n\nexport async function buildStrapiCloudCommands({\n command,\n ctx,\n argv,\n}: {\n command: Command;\n ctx: CLIContext;\n argv: string[];\n}) {\n await initCloudCLIConfig();\n // Load all commands\n for (const cloudCommand of cloudCommands) {\n try {\n // Add this command to the Commander command object\n const subCommand = await cloudCommand.command({ command, ctx, argv });\n\n if (subCommand) {\n command.addCommand(subCommand);\n }\n } catch (e) {\n console.error(`Failed to load command ${cloudCommand.name}`, e);\n }\n }\n}\n\nexport * as services from './services';\n\nexport * from './types';\n"],"names":["cli","deployProject","link","login","logout","createProject","linkEnvironment","listProjects","listEnvironments","cloudCommands","initCloudCLIConfig","localConfig","getLocalConfig","deviceId","crypto","randomUUID","saveLocalConfig","buildStrapiCloudCommands","command","ctx","argv","cloudCommand","subCommand","addCommand","e","console","error","name"],"mappings":";;;;;;;;;;;;;MAaaA,GAAM,GAAA;AACjBC,IAAAA,aAAAA;AACAC,IAAAA,IAAAA;AACAC,IAAAA,KAAAA;AACAC,IAAAA,MAAAA;AACAC,IAAAA,aAAAA;AACAC,IAAAA,eAAAA;AACAC,IAAAA,YAAAA;AACAC,IAAAA;AACF;AAEA,MAAMC,aAAgB,GAAA;AACpBR,IAAAA,aAAAA;AACAC,IAAAA,IAAAA;AACAC,IAAAA,KAAAA;AACAC,IAAAA,MAAAA;AACAE,IAAAA,eAAAA;AACAC,IAAAA,YAAAA;AACAC,IAAAA;AACD,CAAA;AAED,eAAeE,kBAAAA,GAAAA;AACb,IAAA,MAAMC,cAAc,MAAMC,cAAAA,EAAAA;IAE1B,IAAI,CAACD,WAAYE,CAAAA,QAAQ,EAAE;QACzBF,WAAYE,CAAAA,QAAQ,GAAGC,MAAAA,CAAOC,UAAU,EAAA;AAC1C;AAEA,IAAA,MAAMC,eAAgBL,CAAAA,WAAAA,CAAAA;AACxB;AAEO,eAAeM,yBAAyB,EAC7CC,OAAO,EACPC,GAAG,EACHC,IAAI,EAKL,EAAA;IACC,MAAMV,kBAAAA,EAAAA;;IAEN,KAAK,MAAMW,gBAAgBZ,aAAe,CAAA;QACxC,IAAI;;AAEF,YAAA,MAAMa,UAAa,GAAA,MAAMD,YAAaH,CAAAA,OAAO,CAAC;AAAEA,gBAAAA,OAAAA;AAASC,gBAAAA,GAAAA;AAAKC,gBAAAA;AAAK,aAAA,CAAA;AAEnE,YAAA,IAAIE,UAAY,EAAA;AACdJ,gBAAAA,OAAAA,CAAQK,UAAU,CAACD,UAAAA,CAAAA;AACrB;AACF,SAAA,CAAE,OAAOE,CAAG,EAAA;YACVC,OAAQC,CAAAA,KAAK,CAAC,CAAC,uBAAuB,EAAEL,YAAaM,CAAAA,IAAI,CAAC,CAAC,EAAEH,CAAAA,CAAAA;AAC/D;AACF;AACF;;;;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"action.d.ts","sourceRoot":"","sources":["../../src/link/action.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;8BAuIhB,UAAU;AAArC,wBAoEE"}
@@ -0,0 +1,146 @@
1
+ 'use strict';
2
+
3
+ var inquirer = require('inquirer');
4
+ var chalk = require('chalk');
5
+ var cliApi = require('../services/cli-api.js');
6
+ var strapiInfoSave = require('../services/strapi-info-save.js');
7
+ var token = require('../services/token.js');
8
+ require('fast-safe-stringify');
9
+ require('ora');
10
+ require('cli-progress');
11
+ var action$1 = require('../login/action.js');
12
+ var analytics = require('../utils/analytics.js');
13
+ var getLocalConfig = require('../utils/get-local-config.js');
14
+
15
+ const QUIT_OPTION = 'Quit';
16
+ async function promptForRelink(ctx, cloudApiService, existingConfig) {
17
+ if (existingConfig && existingConfig.project) {
18
+ const { shouldRelink } = await inquirer.prompt([
19
+ {
20
+ type: 'confirm',
21
+ name: 'shouldRelink',
22
+ message: `A project named ${chalk.cyan(existingConfig.project.displayName ? existingConfig.project.displayName : existingConfig.project.name)} is already linked to this local folder. Do you want to update the link?`,
23
+ default: false
24
+ }
25
+ ]);
26
+ if (!shouldRelink) {
27
+ await analytics.trackEvent(ctx, cloudApiService, 'didNotLinkProject', {
28
+ currentProjectName: existingConfig.project?.name
29
+ });
30
+ return false;
31
+ }
32
+ }
33
+ return true;
34
+ }
35
+ async function getProjectsList(ctx, cloudApiService, existingConfig) {
36
+ const spinner = ctx.logger.spinner('Fetching your projects...\n').start();
37
+ try {
38
+ const { data: { data: projectList } } = await cloudApiService.listLinkProjects();
39
+ spinner.succeed();
40
+ if (!Array.isArray(projectList)) {
41
+ ctx.logger.log("We couldn't find any projects available for linking in Strapi Cloud.");
42
+ return null;
43
+ }
44
+ const projects = projectList.filter((project)=>!(project.isMaintainer || project.name === existingConfig?.project?.name)).map((project)=>{
45
+ return {
46
+ name: project.displayName,
47
+ value: {
48
+ name: project.name,
49
+ displayName: project.displayName
50
+ }
51
+ };
52
+ });
53
+ if (projects.length === 0) {
54
+ ctx.logger.log("We couldn't find any projects available for linking in Strapi Cloud.");
55
+ return null;
56
+ }
57
+ return projects;
58
+ } catch (e) {
59
+ spinner.fail('An error occurred while fetching your projects from Strapi Cloud.');
60
+ ctx.logger.debug('Failed to list projects', e);
61
+ return null;
62
+ }
63
+ }
64
+ async function getUserSelection(ctx, projects) {
65
+ const { logger } = ctx;
66
+ try {
67
+ const answer = await inquirer.prompt([
68
+ {
69
+ type: 'list',
70
+ name: 'linkProject',
71
+ message: 'Which project do you want to link?',
72
+ choices: [
73
+ ...projects,
74
+ {
75
+ name: chalk.grey(`(${QUIT_OPTION})`),
76
+ value: null
77
+ }
78
+ ]
79
+ }
80
+ ]);
81
+ if (!answer.linkProject) {
82
+ return null;
83
+ }
84
+ return answer;
85
+ } catch (e) {
86
+ logger.debug('Failed to get user input', e);
87
+ logger.error('An error occurred while trying to get your input.');
88
+ return null;
89
+ }
90
+ }
91
+ var action = (async (ctx)=>{
92
+ const { getValidToken } = await token.tokenServiceFactory(ctx);
93
+ const token$1 = await getValidToken(ctx, action$1.promptLogin);
94
+ const { logger } = ctx;
95
+ if (!token$1) {
96
+ return;
97
+ }
98
+ const cloudApiService = await cliApi.cloudApiFactory(ctx, token$1);
99
+ const existingConfig = await getLocalConfig.getLocalConfig(ctx);
100
+ const shouldRelink = await promptForRelink(ctx, cloudApiService, existingConfig);
101
+ if (!shouldRelink) {
102
+ return;
103
+ }
104
+ await analytics.trackEvent(ctx, cloudApiService, 'willLinkProject', {});
105
+ const projects = await getProjectsList(ctx, cloudApiService, existingConfig);
106
+ if (!projects) {
107
+ return;
108
+ }
109
+ const answer = await getUserSelection(ctx, projects);
110
+ if (!answer) {
111
+ return;
112
+ }
113
+ try {
114
+ const { confirmAction } = await inquirer.prompt([
115
+ {
116
+ type: 'confirm',
117
+ name: 'confirmAction',
118
+ message: 'Warning: Once linked, deploying from CLI will replace the existing project and its data. Confirm to proceed:',
119
+ default: false
120
+ }
121
+ ]);
122
+ if (!confirmAction) {
123
+ await analytics.trackEvent(ctx, cloudApiService, 'didNotLinkProject', {
124
+ cancelledProjectName: answer.linkProject.name,
125
+ currentProjectName: existingConfig ? existingConfig.project?.name : null
126
+ });
127
+ return;
128
+ }
129
+ await strapiInfoSave.save({
130
+ project: answer.linkProject
131
+ });
132
+ logger.log(` You have successfully linked your project to ${chalk.cyan(answer.linkProject.displayName)}. You are now able to deploy your project.`);
133
+ await analytics.trackEvent(ctx, cloudApiService, 'didLinkProject', {
134
+ projectInternalName: answer.linkProject
135
+ });
136
+ } catch (e) {
137
+ logger.debug('Failed to link project', e);
138
+ logger.error('An error occurred while linking the project.');
139
+ await analytics.trackEvent(ctx, cloudApiService, 'didNotLinkProject', {
140
+ projectInternalName: answer.linkProject
141
+ });
142
+ }
143
+ });
144
+
145
+ module.exports = action;
146
+ //# sourceMappingURL=action.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"action.js","sources":["../../src/link/action.ts"],"sourcesContent":["import inquirer from 'inquirer';\nimport chalk from 'chalk';\n\nimport type { Answers } from 'inquirer';\nimport type { CLIContext } from '../types';\nimport type { CloudApiService } from '../services/cli-api';\n\nimport { LocalSave } from '../services/strapi-info-save';\nimport { cloudApiFactory, tokenServiceFactory, local } from '../services';\nimport { promptLogin } from '../login/action';\nimport { trackEvent } from '../utils/analytics';\nimport { getLocalConfig } from '../utils/get-local-config';\n\nconst QUIT_OPTION = 'Quit';\n\ninterface LinkProjectValue {\n name: string;\n displayName: string;\n}\n\ninterface LinkProjectAnswer extends Answers {\n linkProject: LinkProjectValue;\n}\n\ninterface LinkProjectInput extends Answers {\n linkProject: LinkProjectValue | string;\n}\n\ntype ProjectsList = {\n name: string;\n value: {\n name: string;\n displayName: string;\n };\n}[];\n\ntype Project = {\n name: string;\n displayName: string;\n isMaintainer: boolean;\n};\n\nasync function promptForRelink(\n ctx: CLIContext,\n cloudApiService: CloudApiService,\n existingConfig: LocalSave | null\n) {\n if (existingConfig && existingConfig.project) {\n const { shouldRelink } = await inquirer.prompt([\n {\n type: 'confirm',\n name: 'shouldRelink',\n message: `A project named ${chalk.cyan(\n existingConfig.project.displayName\n ? existingConfig.project.displayName\n : existingConfig.project.name\n )} is already linked to this local folder. Do you want to update the link?`,\n default: false,\n },\n ]);\n\n if (!shouldRelink) {\n await trackEvent(ctx, cloudApiService, 'didNotLinkProject', {\n currentProjectName: existingConfig.project?.name,\n });\n return false;\n }\n }\n\n return true;\n}\n\nasync function getProjectsList(\n ctx: CLIContext,\n cloudApiService: CloudApiService,\n existingConfig: LocalSave | null\n) {\n const spinner = ctx.logger.spinner('Fetching your projects...\\n').start();\n\n try {\n const {\n data: { data: projectList },\n } = await cloudApiService.listLinkProjects();\n spinner.succeed();\n\n if (!Array.isArray(projectList)) {\n ctx.logger.log(\"We couldn't find any projects available for linking in Strapi Cloud.\");\n return null;\n }\n const projects: ProjectsList = (projectList as unknown as Project[])\n .filter(\n (project: Project) =>\n !(project.isMaintainer || project.name === existingConfig?.project?.name)\n )\n .map((project: Project) => {\n return {\n name: project.displayName,\n value: { name: project.name, displayName: project.displayName },\n };\n });\n if (projects.length === 0) {\n ctx.logger.log(\"We couldn't find any projects available for linking in Strapi Cloud.\");\n return null;\n }\n return projects;\n } catch (e) {\n spinner.fail('An error occurred while fetching your projects from Strapi Cloud.');\n ctx.logger.debug('Failed to list projects', e);\n return null;\n }\n}\n\nasync function getUserSelection(\n ctx: CLIContext,\n projects: ProjectsList\n): Promise<LinkProjectAnswer | null> {\n const { logger } = ctx;\n try {\n const answer: LinkProjectInput = await inquirer.prompt([\n {\n type: 'list',\n name: 'linkProject',\n message: 'Which project do you want to link?',\n choices: [...projects, { name: chalk.grey(`(${QUIT_OPTION})`), value: null }],\n },\n ]);\n\n if (!answer.linkProject) {\n return null;\n }\n\n return answer as LinkProjectAnswer;\n } catch (e) {\n logger.debug('Failed to get user input', e);\n logger.error('An error occurred while trying to get your input.');\n return null;\n }\n}\n\nexport default async (ctx: CLIContext) => {\n const { getValidToken } = await tokenServiceFactory(ctx);\n const token = await getValidToken(ctx, promptLogin);\n const { logger } = ctx;\n\n if (!token) {\n return;\n }\n\n const cloudApiService = await cloudApiFactory(ctx, token);\n\n const existingConfig: LocalSave | null = await getLocalConfig(ctx);\n const shouldRelink = await promptForRelink(ctx, cloudApiService, existingConfig);\n\n if (!shouldRelink) {\n return;\n }\n await trackEvent(ctx, cloudApiService, 'willLinkProject', {});\n\n const projects: ProjectsList | null | undefined = await getProjectsList(\n ctx,\n cloudApiService,\n existingConfig\n );\n\n if (!projects) {\n return;\n }\n\n const answer: LinkProjectAnswer | null = await getUserSelection(ctx, projects);\n\n if (!answer) {\n return;\n }\n\n try {\n const { confirmAction } = await inquirer.prompt([\n {\n type: 'confirm',\n name: 'confirmAction',\n message:\n 'Warning: Once linked, deploying from CLI will replace the existing project and its data. Confirm to proceed:',\n default: false,\n },\n ]);\n\n if (!confirmAction) {\n await trackEvent(ctx, cloudApiService, 'didNotLinkProject', {\n cancelledProjectName: answer.linkProject.name,\n currentProjectName: existingConfig ? existingConfig.project?.name : null,\n });\n return;\n }\n\n await local.save({ project: answer.linkProject });\n logger.log(\n ` You have successfully linked your project to ${chalk.cyan(answer.linkProject.displayName)}. You are now able to deploy your project.`\n );\n await trackEvent(ctx, cloudApiService, 'didLinkProject', {\n projectInternalName: answer.linkProject,\n });\n } catch (e) {\n logger.debug('Failed to link project', e);\n logger.error('An error occurred while linking the project.');\n await trackEvent(ctx, cloudApiService, 'didNotLinkProject', {\n projectInternalName: answer.linkProject,\n });\n }\n};\n"],"names":["QUIT_OPTION","promptForRelink","ctx","cloudApiService","existingConfig","project","shouldRelink","inquirer","prompt","type","name","message","chalk","cyan","displayName","default","trackEvent","currentProjectName","getProjectsList","spinner","logger","start","data","projectList","listLinkProjects","succeed","Array","isArray","log","projects","filter","isMaintainer","map","value","length","e","fail","debug","getUserSelection","answer","choices","grey","linkProject","error","getValidToken","tokenServiceFactory","token","promptLogin","cloudApiFactory","getLocalConfig","confirmAction","cancelledProjectName","local","projectInternalName"],"mappings":"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"}
@@ -0,0 +1,144 @@
1
+ import inquirer from 'inquirer';
2
+ import chalk from 'chalk';
3
+ import { cloudApiFactory } from '../services/cli-api.mjs';
4
+ import { save } from '../services/strapi-info-save.mjs';
5
+ import { tokenServiceFactory } from '../services/token.mjs';
6
+ import 'fast-safe-stringify';
7
+ import 'ora';
8
+ import 'cli-progress';
9
+ import { promptLogin } from '../login/action.mjs';
10
+ import { trackEvent } from '../utils/analytics.mjs';
11
+ import { getLocalConfig } from '../utils/get-local-config.mjs';
12
+
13
+ const QUIT_OPTION = 'Quit';
14
+ async function promptForRelink(ctx, cloudApiService, existingConfig) {
15
+ if (existingConfig && existingConfig.project) {
16
+ const { shouldRelink } = await inquirer.prompt([
17
+ {
18
+ type: 'confirm',
19
+ name: 'shouldRelink',
20
+ message: `A project named ${chalk.cyan(existingConfig.project.displayName ? existingConfig.project.displayName : existingConfig.project.name)} is already linked to this local folder. Do you want to update the link?`,
21
+ default: false
22
+ }
23
+ ]);
24
+ if (!shouldRelink) {
25
+ await trackEvent(ctx, cloudApiService, 'didNotLinkProject', {
26
+ currentProjectName: existingConfig.project?.name
27
+ });
28
+ return false;
29
+ }
30
+ }
31
+ return true;
32
+ }
33
+ async function getProjectsList(ctx, cloudApiService, existingConfig) {
34
+ const spinner = ctx.logger.spinner('Fetching your projects...\n').start();
35
+ try {
36
+ const { data: { data: projectList } } = await cloudApiService.listLinkProjects();
37
+ spinner.succeed();
38
+ if (!Array.isArray(projectList)) {
39
+ ctx.logger.log("We couldn't find any projects available for linking in Strapi Cloud.");
40
+ return null;
41
+ }
42
+ const projects = projectList.filter((project)=>!(project.isMaintainer || project.name === existingConfig?.project?.name)).map((project)=>{
43
+ return {
44
+ name: project.displayName,
45
+ value: {
46
+ name: project.name,
47
+ displayName: project.displayName
48
+ }
49
+ };
50
+ });
51
+ if (projects.length === 0) {
52
+ ctx.logger.log("We couldn't find any projects available for linking in Strapi Cloud.");
53
+ return null;
54
+ }
55
+ return projects;
56
+ } catch (e) {
57
+ spinner.fail('An error occurred while fetching your projects from Strapi Cloud.');
58
+ ctx.logger.debug('Failed to list projects', e);
59
+ return null;
60
+ }
61
+ }
62
+ async function getUserSelection(ctx, projects) {
63
+ const { logger } = ctx;
64
+ try {
65
+ const answer = await inquirer.prompt([
66
+ {
67
+ type: 'list',
68
+ name: 'linkProject',
69
+ message: 'Which project do you want to link?',
70
+ choices: [
71
+ ...projects,
72
+ {
73
+ name: chalk.grey(`(${QUIT_OPTION})`),
74
+ value: null
75
+ }
76
+ ]
77
+ }
78
+ ]);
79
+ if (!answer.linkProject) {
80
+ return null;
81
+ }
82
+ return answer;
83
+ } catch (e) {
84
+ logger.debug('Failed to get user input', e);
85
+ logger.error('An error occurred while trying to get your input.');
86
+ return null;
87
+ }
88
+ }
89
+ var action = (async (ctx)=>{
90
+ const { getValidToken } = await tokenServiceFactory(ctx);
91
+ const token = await getValidToken(ctx, promptLogin);
92
+ const { logger } = ctx;
93
+ if (!token) {
94
+ return;
95
+ }
96
+ const cloudApiService = await cloudApiFactory(ctx, token);
97
+ const existingConfig = await getLocalConfig(ctx);
98
+ const shouldRelink = await promptForRelink(ctx, cloudApiService, existingConfig);
99
+ if (!shouldRelink) {
100
+ return;
101
+ }
102
+ await trackEvent(ctx, cloudApiService, 'willLinkProject', {});
103
+ const projects = await getProjectsList(ctx, cloudApiService, existingConfig);
104
+ if (!projects) {
105
+ return;
106
+ }
107
+ const answer = await getUserSelection(ctx, projects);
108
+ if (!answer) {
109
+ return;
110
+ }
111
+ try {
112
+ const { confirmAction } = await inquirer.prompt([
113
+ {
114
+ type: 'confirm',
115
+ name: 'confirmAction',
116
+ message: 'Warning: Once linked, deploying from CLI will replace the existing project and its data. Confirm to proceed:',
117
+ default: false
118
+ }
119
+ ]);
120
+ if (!confirmAction) {
121
+ await trackEvent(ctx, cloudApiService, 'didNotLinkProject', {
122
+ cancelledProjectName: answer.linkProject.name,
123
+ currentProjectName: existingConfig ? existingConfig.project?.name : null
124
+ });
125
+ return;
126
+ }
127
+ await save({
128
+ project: answer.linkProject
129
+ });
130
+ logger.log(` You have successfully linked your project to ${chalk.cyan(answer.linkProject.displayName)}. You are now able to deploy your project.`);
131
+ await trackEvent(ctx, cloudApiService, 'didLinkProject', {
132
+ projectInternalName: answer.linkProject
133
+ });
134
+ } catch (e) {
135
+ logger.debug('Failed to link project', e);
136
+ logger.error('An error occurred while linking the project.');
137
+ await trackEvent(ctx, cloudApiService, 'didNotLinkProject', {
138
+ projectInternalName: answer.linkProject
139
+ });
140
+ }
141
+ });
142
+
143
+ export { action as default };
144
+ //# sourceMappingURL=action.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"action.mjs","sources":["../../src/link/action.ts"],"sourcesContent":["import inquirer from 'inquirer';\nimport chalk from 'chalk';\n\nimport type { Answers } from 'inquirer';\nimport type { CLIContext } from '../types';\nimport type { CloudApiService } from '../services/cli-api';\n\nimport { LocalSave } from '../services/strapi-info-save';\nimport { cloudApiFactory, tokenServiceFactory, local } from '../services';\nimport { promptLogin } from '../login/action';\nimport { trackEvent } from '../utils/analytics';\nimport { getLocalConfig } from '../utils/get-local-config';\n\nconst QUIT_OPTION = 'Quit';\n\ninterface LinkProjectValue {\n name: string;\n displayName: string;\n}\n\ninterface LinkProjectAnswer extends Answers {\n linkProject: LinkProjectValue;\n}\n\ninterface LinkProjectInput extends Answers {\n linkProject: LinkProjectValue | string;\n}\n\ntype ProjectsList = {\n name: string;\n value: {\n name: string;\n displayName: string;\n };\n}[];\n\ntype Project = {\n name: string;\n displayName: string;\n isMaintainer: boolean;\n};\n\nasync function promptForRelink(\n ctx: CLIContext,\n cloudApiService: CloudApiService,\n existingConfig: LocalSave | null\n) {\n if (existingConfig && existingConfig.project) {\n const { shouldRelink } = await inquirer.prompt([\n {\n type: 'confirm',\n name: 'shouldRelink',\n message: `A project named ${chalk.cyan(\n existingConfig.project.displayName\n ? existingConfig.project.displayName\n : existingConfig.project.name\n )} is already linked to this local folder. Do you want to update the link?`,\n default: false,\n },\n ]);\n\n if (!shouldRelink) {\n await trackEvent(ctx, cloudApiService, 'didNotLinkProject', {\n currentProjectName: existingConfig.project?.name,\n });\n return false;\n }\n }\n\n return true;\n}\n\nasync function getProjectsList(\n ctx: CLIContext,\n cloudApiService: CloudApiService,\n existingConfig: LocalSave | null\n) {\n const spinner = ctx.logger.spinner('Fetching your projects...\\n').start();\n\n try {\n const {\n data: { data: projectList },\n } = await cloudApiService.listLinkProjects();\n spinner.succeed();\n\n if (!Array.isArray(projectList)) {\n ctx.logger.log(\"We couldn't find any projects available for linking in Strapi Cloud.\");\n return null;\n }\n const projects: ProjectsList = (projectList as unknown as Project[])\n .filter(\n (project: Project) =>\n !(project.isMaintainer || project.name === existingConfig?.project?.name)\n )\n .map((project: Project) => {\n return {\n name: project.displayName,\n value: { name: project.name, displayName: project.displayName },\n };\n });\n if (projects.length === 0) {\n ctx.logger.log(\"We couldn't find any projects available for linking in Strapi Cloud.\");\n return null;\n }\n return projects;\n } catch (e) {\n spinner.fail('An error occurred while fetching your projects from Strapi Cloud.');\n ctx.logger.debug('Failed to list projects', e);\n return null;\n }\n}\n\nasync function getUserSelection(\n ctx: CLIContext,\n projects: ProjectsList\n): Promise<LinkProjectAnswer | null> {\n const { logger } = ctx;\n try {\n const answer: LinkProjectInput = await inquirer.prompt([\n {\n type: 'list',\n name: 'linkProject',\n message: 'Which project do you want to link?',\n choices: [...projects, { name: chalk.grey(`(${QUIT_OPTION})`), value: null }],\n },\n ]);\n\n if (!answer.linkProject) {\n return null;\n }\n\n return answer as LinkProjectAnswer;\n } catch (e) {\n logger.debug('Failed to get user input', e);\n logger.error('An error occurred while trying to get your input.');\n return null;\n }\n}\n\nexport default async (ctx: CLIContext) => {\n const { getValidToken } = await tokenServiceFactory(ctx);\n const token = await getValidToken(ctx, promptLogin);\n const { logger } = ctx;\n\n if (!token) {\n return;\n }\n\n const cloudApiService = await cloudApiFactory(ctx, token);\n\n const existingConfig: LocalSave | null = await getLocalConfig(ctx);\n const shouldRelink = await promptForRelink(ctx, cloudApiService, existingConfig);\n\n if (!shouldRelink) {\n return;\n }\n await trackEvent(ctx, cloudApiService, 'willLinkProject', {});\n\n const projects: ProjectsList | null | undefined = await getProjectsList(\n ctx,\n cloudApiService,\n existingConfig\n );\n\n if (!projects) {\n return;\n }\n\n const answer: LinkProjectAnswer | null = await getUserSelection(ctx, projects);\n\n if (!answer) {\n return;\n }\n\n try {\n const { confirmAction } = await inquirer.prompt([\n {\n type: 'confirm',\n name: 'confirmAction',\n message:\n 'Warning: Once linked, deploying from CLI will replace the existing project and its data. Confirm to proceed:',\n default: false,\n },\n ]);\n\n if (!confirmAction) {\n await trackEvent(ctx, cloudApiService, 'didNotLinkProject', {\n cancelledProjectName: answer.linkProject.name,\n currentProjectName: existingConfig ? existingConfig.project?.name : null,\n });\n return;\n }\n\n await local.save({ project: answer.linkProject });\n logger.log(\n ` You have successfully linked your project to ${chalk.cyan(answer.linkProject.displayName)}. You are now able to deploy your project.`\n );\n await trackEvent(ctx, cloudApiService, 'didLinkProject', {\n projectInternalName: answer.linkProject,\n });\n } catch (e) {\n logger.debug('Failed to link project', e);\n logger.error('An error occurred while linking the project.');\n await trackEvent(ctx, cloudApiService, 'didNotLinkProject', {\n projectInternalName: answer.linkProject,\n });\n }\n};\n"],"names":["QUIT_OPTION","promptForRelink","ctx","cloudApiService","existingConfig","project","shouldRelink","inquirer","prompt","type","name","message","chalk","cyan","displayName","default","trackEvent","currentProjectName","getProjectsList","spinner","logger","start","data","projectList","listLinkProjects","succeed","Array","isArray","log","projects","filter","isMaintainer","map","value","length","e","fail","debug","getUserSelection","answer","choices","grey","linkProject","error","getValidToken","tokenServiceFactory","token","promptLogin","cloudApiFactory","getLocalConfig","confirmAction","cancelledProjectName","local","projectInternalName"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../src/link/command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAInD;;GAEG;AACH,QAAA,MAAM,OAAO,EAAE,kBAQd,CAAC;AAEF,eAAe,OAAO,CAAC"}
@@ -0,0 +1,13 @@
1
+ 'use strict';
2
+
3
+ var helpers = require('../utils/helpers.js');
4
+ var action = require('./action.js');
5
+
6
+ /**
7
+ * `$ link local directory to project of the cloud`
8
+ */ const command = ({ command, ctx })=>{
9
+ command.command('cloud:link').alias('link').description('Link a local directory to a Strapi Cloud project').option('-d, --debug', 'Enable debugging mode with verbose logs').option('-s, --silent', "Don't log anything").action(()=>helpers.runAction('link', action)(ctx));
10
+ };
11
+
12
+ module.exports = command;
13
+ //# sourceMappingURL=command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command.js","sources":["../../src/link/command.ts"],"sourcesContent":["import { type StrapiCloudCommand } from '../types';\nimport { runAction } from '../utils/helpers';\nimport action from './action';\n\n/**\n * `$ link local directory to project of the cloud`\n */\nconst command: StrapiCloudCommand = ({ command, ctx }) => {\n command\n .command('cloud:link')\n .alias('link')\n .description('Link a local directory to a Strapi Cloud project')\n .option('-d, --debug', 'Enable debugging mode with verbose logs')\n .option('-s, --silent', \"Don't log anything\")\n .action(() => runAction('link', action)(ctx));\n};\n\nexport default command;\n"],"names":["command","ctx","alias","description","option","action","runAction"],"mappings":";;;;;AAIA;;AAEC,UACKA,OAA8B,GAAA,CAAC,EAAEA,OAAO,EAAEC,GAAG,EAAE,GAAA;IACnDD,OACGA,CAAAA,OAAO,CAAC,YACRE,CAAAA,CAAAA,KAAK,CAAC,MACNC,CAAAA,CAAAA,WAAW,CAAC,kDAAA,CAAA,CACZC,MAAM,CAAC,eAAe,yCACtBA,CAAAA,CAAAA,MAAM,CAAC,cAAgB,EAAA,oBAAA,CAAA,CACvBC,MAAM,CAAC,IAAMC,iBAAU,CAAA,MAAA,EAAQD,MAAQJ,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA;AAC5C;;;;"}
@@ -0,0 +1,11 @@
1
+ import { runAction } from '../utils/helpers.mjs';
2
+ import action from './action.mjs';
3
+
4
+ /**
5
+ * `$ link local directory to project of the cloud`
6
+ */ const command = ({ command, ctx })=>{
7
+ command.command('cloud:link').alias('link').description('Link a local directory to a Strapi Cloud project').option('-d, --debug', 'Enable debugging mode with verbose logs').option('-s, --silent', "Don't log anything").action(()=>runAction('link', action)(ctx));
8
+ };
9
+
10
+ export { command as default };
11
+ //# sourceMappingURL=command.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command.mjs","sources":["../../src/link/command.ts"],"sourcesContent":["import { type StrapiCloudCommand } from '../types';\nimport { runAction } from '../utils/helpers';\nimport action from './action';\n\n/**\n * `$ link local directory to project of the cloud`\n */\nconst command: StrapiCloudCommand = ({ command, ctx }) => {\n command\n .command('cloud:link')\n .alias('link')\n .description('Link a local directory to a Strapi Cloud project')\n .option('-d, --debug', 'Enable debugging mode with verbose logs')\n .option('-s, --silent', \"Don't log anything\")\n .action(() => runAction('link', action)(ctx));\n};\n\nexport default command;\n"],"names":["command","ctx","alias","description","option","action","runAction"],"mappings":";;;AAIA;;AAEC,UACKA,OAA8B,GAAA,CAAC,EAAEA,OAAO,EAAEC,GAAG,EAAE,GAAA;IACnDD,OACGA,CAAAA,OAAO,CAAC,YACRE,CAAAA,CAAAA,KAAK,CAAC,MACNC,CAAAA,CAAAA,WAAW,CAAC,kDAAA,CAAA,CACZC,MAAM,CAAC,eAAe,yCACtBA,CAAAA,CAAAA,MAAM,CAAC,cAAgB,EAAA,oBAAA,CAAA,CACvBC,MAAM,CAAC,IAAMC,SAAU,CAAA,MAAA,EAAQD,MAAQJ,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA;AAC5C;;;;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/link/index.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAEvD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;;AAE3B,wBAK4B"}
@@ -0,0 +1,18 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var action = require('./action.js');
6
+ var command = require('./command.js');
7
+
8
+ var link = {
9
+ name: 'link-project',
10
+ description: 'Link a local directory to a Strapi Cloud project',
11
+ action,
12
+ command
13
+ };
14
+
15
+ exports.action = action;
16
+ exports.command = command;
17
+ exports.default = link;
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../src/link/index.ts"],"sourcesContent":["import action from './action';\nimport command from './command';\nimport type { StrapiCloudCommandInfo } from '../types';\n\nexport { action, command };\n\nexport default {\n name: 'link-project',\n description: 'Link a local directory to a Strapi Cloud project',\n action,\n command,\n} as StrapiCloudCommandInfo;\n"],"names":["name","description","action","command"],"mappings":";;;;;;;AAMA,WAAe;IACbA,IAAM,EAAA,cAAA;IACNC,WAAa,EAAA,kDAAA;AACbC,IAAAA,MAAAA;AACAC,IAAAA;AACF,CAA4B;;;;;;"}
@@ -0,0 +1,12 @@
1
+ import action from './action.mjs';
2
+ import command from './command.mjs';
3
+
4
+ var link = {
5
+ name: 'link-project',
6
+ description: 'Link a local directory to a Strapi Cloud project',
7
+ action,
8
+ command
9
+ };
10
+
11
+ export { action, command, link as default };
12
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../../src/link/index.ts"],"sourcesContent":["import action from './action';\nimport command from './command';\nimport type { StrapiCloudCommandInfo } from '../types';\n\nexport { action, command };\n\nexport default {\n name: 'link-project',\n description: 'Link a local directory to a Strapi Cloud project',\n action,\n command,\n} as StrapiCloudCommandInfo;\n"],"names":["name","description","action","command"],"mappings":";;;AAMA,WAAe;IACbA,IAAM,EAAA,cAAA;IACNC,WAAa,EAAA,kDAAA;AACbC,IAAAA,MAAAA;AACAC,IAAAA;AACF,CAA4B;;;;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"action.d.ts","sourceRoot":"","sources":["../../src/list-projects/action.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;8BAIhB,UAAU;AAArC,wBAsBE"}
@@ -0,0 +1,34 @@
1
+ 'use strict';
2
+
3
+ var cliApi = require('../services/cli-api.js');
4
+ require('fs-extra');
5
+ require('path');
6
+ require('lodash');
7
+ var token = require('../services/token.js');
8
+ require('chalk');
9
+ require('fast-safe-stringify');
10
+ require('ora');
11
+ require('cli-progress');
12
+ var action$1 = require('../login/action.js');
13
+
14
+ var action = (async (ctx)=>{
15
+ const { getValidToken } = await token.tokenServiceFactory(ctx);
16
+ const token$1 = await getValidToken(ctx, action$1.promptLogin);
17
+ const { logger } = ctx;
18
+ if (!token$1) {
19
+ return;
20
+ }
21
+ const cloudApiService = await cliApi.cloudApiFactory(ctx, token$1);
22
+ const spinner = logger.spinner('Fetching your projects...').start();
23
+ try {
24
+ const { data: { data: projectList } } = await cloudApiService.listProjects();
25
+ spinner.succeed();
26
+ logger.log(projectList);
27
+ } catch (e) {
28
+ ctx.logger.debug('Failed to list projects', e);
29
+ spinner.fail('An error occurred while fetching your projects from Strapi Cloud.');
30
+ }
31
+ });
32
+
33
+ module.exports = action;
34
+ //# sourceMappingURL=action.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"action.js","sources":["../../src/list-projects/action.ts"],"sourcesContent":["import type { CLIContext } from '../types';\nimport { cloudApiFactory, tokenServiceFactory } from '../services';\nimport { promptLogin } from '../login/action';\n\nexport default async (ctx: CLIContext) => {\n const { getValidToken } = await tokenServiceFactory(ctx);\n const token = await getValidToken(ctx, promptLogin);\n const { logger } = ctx;\n\n if (!token) {\n return;\n }\n\n const cloudApiService = await cloudApiFactory(ctx, token);\n const spinner = logger.spinner('Fetching your projects...').start();\n\n try {\n const {\n data: { data: projectList },\n } = await cloudApiService.listProjects();\n spinner.succeed();\n logger.log(projectList);\n } catch (e) {\n ctx.logger.debug('Failed to list projects', e);\n spinner.fail('An error occurred while fetching your projects from Strapi Cloud.');\n }\n};\n"],"names":["ctx","getValidToken","tokenServiceFactory","token","promptLogin","logger","cloudApiService","cloudApiFactory","spinner","start","data","projectList","listProjects","succeed","log","e","debug","fail"],"mappings":";;;;;;;;;;;;;AAIA,aAAe,CAAA,OAAOA,GAAAA,GAAAA;AACpB,IAAA,MAAM,EAAEC,aAAa,EAAE,GAAG,MAAMC,yBAAoBF,CAAAA,GAAAA,CAAAA;IACpD,MAAMG,OAAAA,GAAQ,MAAMF,aAAAA,CAAcD,GAAKI,EAAAA,oBAAAA,CAAAA;IACvC,MAAM,EAAEC,MAAM,EAAE,GAAGL,GAAAA;AAEnB,IAAA,IAAI,CAACG,OAAO,EAAA;AACV,QAAA;AACF;IAEA,MAAMG,eAAAA,GAAkB,MAAMC,sBAAAA,CAAgBP,GAAKG,EAAAA,OAAAA,CAAAA;AACnD,IAAA,MAAMK,OAAUH,GAAAA,MAAAA,CAAOG,OAAO,CAAC,6BAA6BC,KAAK,EAAA;IAEjE,IAAI;QACF,MAAM,EACJC,IAAM,EAAA,EAAEA,IAAMC,EAAAA,WAAW,EAAE,EAC5B,GAAG,MAAML,eAAAA,CAAgBM,YAAY,EAAA;AACtCJ,QAAAA,OAAAA,CAAQK,OAAO,EAAA;AACfR,QAAAA,MAAAA,CAAOS,GAAG,CAACH,WAAAA,CAAAA;AACb,KAAA,CAAE,OAAOI,CAAG,EAAA;AACVf,QAAAA,GAAAA,CAAIK,MAAM,CAACW,KAAK,CAAC,yBAA2BD,EAAAA,CAAAA,CAAAA;AAC5CP,QAAAA,OAAAA,CAAQS,IAAI,CAAC,mEAAA,CAAA;AACf;AACF,CAAA;;;;"}
@@ -0,0 +1,32 @@
1
+ import { cloudApiFactory } from '../services/cli-api.mjs';
2
+ import 'fs-extra';
3
+ import 'path';
4
+ import 'lodash';
5
+ import { tokenServiceFactory } from '../services/token.mjs';
6
+ import 'chalk';
7
+ import 'fast-safe-stringify';
8
+ import 'ora';
9
+ import 'cli-progress';
10
+ import { promptLogin } from '../login/action.mjs';
11
+
12
+ var action = (async (ctx)=>{
13
+ const { getValidToken } = await tokenServiceFactory(ctx);
14
+ const token = await getValidToken(ctx, promptLogin);
15
+ const { logger } = ctx;
16
+ if (!token) {
17
+ return;
18
+ }
19
+ const cloudApiService = await cloudApiFactory(ctx, token);
20
+ const spinner = logger.spinner('Fetching your projects...').start();
21
+ try {
22
+ const { data: { data: projectList } } = await cloudApiService.listProjects();
23
+ spinner.succeed();
24
+ logger.log(projectList);
25
+ } catch (e) {
26
+ ctx.logger.debug('Failed to list projects', e);
27
+ spinner.fail('An error occurred while fetching your projects from Strapi Cloud.');
28
+ }
29
+ });
30
+
31
+ export { action as default };
32
+ //# sourceMappingURL=action.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"action.mjs","sources":["../../src/list-projects/action.ts"],"sourcesContent":["import type { CLIContext } from '../types';\nimport { cloudApiFactory, tokenServiceFactory } from '../services';\nimport { promptLogin } from '../login/action';\n\nexport default async (ctx: CLIContext) => {\n const { getValidToken } = await tokenServiceFactory(ctx);\n const token = await getValidToken(ctx, promptLogin);\n const { logger } = ctx;\n\n if (!token) {\n return;\n }\n\n const cloudApiService = await cloudApiFactory(ctx, token);\n const spinner = logger.spinner('Fetching your projects...').start();\n\n try {\n const {\n data: { data: projectList },\n } = await cloudApiService.listProjects();\n spinner.succeed();\n logger.log(projectList);\n } catch (e) {\n ctx.logger.debug('Failed to list projects', e);\n spinner.fail('An error occurred while fetching your projects from Strapi Cloud.');\n }\n};\n"],"names":["ctx","getValidToken","tokenServiceFactory","token","promptLogin","logger","cloudApiService","cloudApiFactory","spinner","start","data","projectList","listProjects","succeed","log","e","debug","fail"],"mappings":";;;;;;;;;;;AAIA,aAAe,CAAA,OAAOA,GAAAA,GAAAA;AACpB,IAAA,MAAM,EAAEC,aAAa,EAAE,GAAG,MAAMC,mBAAoBF,CAAAA,GAAAA,CAAAA;IACpD,MAAMG,KAAAA,GAAQ,MAAMF,aAAAA,CAAcD,GAAKI,EAAAA,WAAAA,CAAAA;IACvC,MAAM,EAAEC,MAAM,EAAE,GAAGL,GAAAA;AAEnB,IAAA,IAAI,CAACG,KAAO,EAAA;AACV,QAAA;AACF;IAEA,MAAMG,eAAAA,GAAkB,MAAMC,eAAAA,CAAgBP,GAAKG,EAAAA,KAAAA,CAAAA;AACnD,IAAA,MAAMK,OAAUH,GAAAA,MAAAA,CAAOG,OAAO,CAAC,6BAA6BC,KAAK,EAAA;IAEjE,IAAI;QACF,MAAM,EACJC,IAAM,EAAA,EAAEA,IAAMC,EAAAA,WAAW,EAAE,EAC5B,GAAG,MAAML,eAAAA,CAAgBM,YAAY,EAAA;AACtCJ,QAAAA,OAAAA,CAAQK,OAAO,EAAA;AACfR,QAAAA,MAAAA,CAAOS,GAAG,CAACH,WAAAA,CAAAA;AACb,KAAA,CAAE,OAAOI,CAAG,EAAA;AACVf,QAAAA,GAAAA,CAAIK,MAAM,CAACW,KAAK,CAAC,yBAA2BD,EAAAA,CAAAA,CAAAA;AAC5CP,QAAAA,OAAAA,CAAQS,IAAI,CAAC,mEAAA,CAAA;AACf;AACF,CAAA;;;;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../src/list-projects/command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAInD;;GAEG;AACH,QAAA,MAAM,OAAO,EAAE,kBAQd,CAAC;AAEF,eAAe,OAAO,CAAC"}
@@ -0,0 +1,13 @@
1
+ 'use strict';
2
+
3
+ var helpers = require('../utils/helpers.js');
4
+ var action = require('./action.js');
5
+
6
+ /**
7
+ * `$ list project from the cloud`
8
+ */ const command = ({ command, ctx })=>{
9
+ command.command('cloud:projects').alias('projects').description('List Strapi Cloud projects').option('-d, --debug', 'Enable debugging mode with verbose logs').option('-s, --silent', "Don't log anything").action(()=>helpers.runAction('projects', action)(ctx));
10
+ };
11
+
12
+ module.exports = command;
13
+ //# sourceMappingURL=command.js.map