@strapi/cloud-cli 0.0.0-experimental.0008b7f1c9e3678ad260dac74a24f2d9f8d8a5c7

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 (296) hide show
  1. package/LICENSE +37 -0
  2. package/README.md +3 -0
  3. package/bin/index.js +7 -0
  4. package/dist/bin.d.ts +4 -0
  5. package/dist/bin.d.ts.map +1 -0
  6. package/dist/bin.js +51 -0
  7. package/dist/bin.js.map +1 -0
  8. package/dist/bin.mjs +49 -0
  9. package/dist/bin.mjs.map +1 -0
  10. package/dist/cloud/command.d.ts +3 -0
  11. package/dist/cloud/command.d.ts.map +1 -0
  12. package/dist/cloud/command.js +14 -0
  13. package/dist/cloud/command.js.map +1 -0
  14. package/dist/cloud/command.mjs +12 -0
  15. package/dist/cloud/command.mjs.map +1 -0
  16. package/dist/config/api.d.ts +5 -0
  17. package/dist/config/api.d.ts.map +1 -0
  18. package/dist/config/api.js +11 -0
  19. package/dist/config/api.js.map +1 -0
  20. package/dist/config/api.mjs +9 -0
  21. package/dist/config/api.mjs.map +1 -0
  22. package/dist/config/local.d.ts +9 -0
  23. package/dist/config/local.d.ts.map +1 -0
  24. package/dist/config/local.js +67 -0
  25. package/dist/config/local.js.map +1 -0
  26. package/dist/config/local.mjs +55 -0
  27. package/dist/config/local.mjs.map +1 -0
  28. package/dist/create-growth-sso-trial/action.d.ts +9 -0
  29. package/dist/create-growth-sso-trial/action.d.ts.map +1 -0
  30. package/dist/create-growth-sso-trial/action.js +51 -0
  31. package/dist/create-growth-sso-trial/action.js.map +1 -0
  32. package/dist/create-growth-sso-trial/action.mjs +49 -0
  33. package/dist/create-growth-sso-trial/action.mjs.map +1 -0
  34. package/dist/create-growth-sso-trial/index.d.ts +4 -0
  35. package/dist/create-growth-sso-trial/index.d.ts.map +1 -0
  36. package/dist/create-project/action.d.ts +4 -0
  37. package/dist/create-project/action.d.ts.map +1 -0
  38. package/dist/create-project/action.js +122 -0
  39. package/dist/create-project/action.js.map +1 -0
  40. package/dist/create-project/action.mjs +120 -0
  41. package/dist/create-project/action.mjs.map +1 -0
  42. package/dist/create-project/command.d.ts +7 -0
  43. package/dist/create-project/command.d.ts.map +1 -0
  44. package/dist/create-project/command.js +14 -0
  45. package/dist/create-project/command.js.map +1 -0
  46. package/dist/create-project/command.mjs +12 -0
  47. package/dist/create-project/command.mjs.map +1 -0
  48. package/dist/create-project/index.d.ts +7 -0
  49. package/dist/create-project/index.d.ts.map +1 -0
  50. package/dist/create-project/index.js +18 -0
  51. package/dist/create-project/index.js.map +1 -0
  52. package/dist/create-project/index.mjs +12 -0
  53. package/dist/create-project/index.mjs.map +1 -0
  54. package/dist/create-project/utils/get-project-name-from-pkg.d.ts +3 -0
  55. package/dist/create-project/utils/get-project-name-from-pkg.d.ts.map +1 -0
  56. package/dist/create-project/utils/get-project-name-from-pkg.js +15 -0
  57. package/dist/create-project/utils/get-project-name-from-pkg.js.map +1 -0
  58. package/dist/create-project/utils/get-project-name-from-pkg.mjs +13 -0
  59. package/dist/create-project/utils/get-project-name-from-pkg.mjs.map +1 -0
  60. package/dist/create-project/utils/project-questions.utils.d.ts +20 -0
  61. package/dist/create-project/utils/project-questions.utils.d.ts.map +1 -0
  62. package/dist/create-project/utils/project-questions.utils.js +63 -0
  63. package/dist/create-project/utils/project-questions.utils.js.map +1 -0
  64. package/dist/create-project/utils/project-questions.utils.mjs +59 -0
  65. package/dist/create-project/utils/project-questions.utils.mjs.map +1 -0
  66. package/dist/deploy-project/action.d.ts +8 -0
  67. package/dist/deploy-project/action.d.ts.map +1 -0
  68. package/dist/deploy-project/action.js +332 -0
  69. package/dist/deploy-project/action.js.map +1 -0
  70. package/dist/deploy-project/action.mjs +304 -0
  71. package/dist/deploy-project/action.mjs.map +1 -0
  72. package/dist/deploy-project/command.d.ts +7 -0
  73. package/dist/deploy-project/command.d.ts.map +1 -0
  74. package/dist/deploy-project/command.js +14 -0
  75. package/dist/deploy-project/command.js.map +1 -0
  76. package/dist/deploy-project/command.mjs +12 -0
  77. package/dist/deploy-project/command.mjs.map +1 -0
  78. package/dist/deploy-project/index.d.ts +7 -0
  79. package/dist/deploy-project/index.d.ts.map +1 -0
  80. package/dist/deploy-project/index.js +18 -0
  81. package/dist/deploy-project/index.js.map +1 -0
  82. package/dist/deploy-project/index.mjs +12 -0
  83. package/dist/deploy-project/index.mjs.map +1 -0
  84. package/dist/environment/command.d.ts +3 -0
  85. package/dist/environment/command.d.ts.map +1 -0
  86. package/dist/environment/command.js +15 -0
  87. package/dist/environment/command.js.map +1 -0
  88. package/dist/environment/command.mjs +13 -0
  89. package/dist/environment/command.mjs.map +1 -0
  90. package/dist/environment/link/action.d.ts +4 -0
  91. package/dist/environment/link/action.d.ts.map +1 -0
  92. package/dist/environment/link/action.js +121 -0
  93. package/dist/environment/link/action.js.map +1 -0
  94. package/dist/environment/link/action.mjs +115 -0
  95. package/dist/environment/link/action.mjs.map +1 -0
  96. package/dist/environment/link/command.d.ts +4 -0
  97. package/dist/environment/link/command.d.ts.map +1 -0
  98. package/dist/environment/link/command.js +13 -0
  99. package/dist/environment/link/command.js.map +1 -0
  100. package/dist/environment/link/command.mjs +11 -0
  101. package/dist/environment/link/command.mjs.map +1 -0
  102. package/dist/environment/link/index.d.ts +7 -0
  103. package/dist/environment/link/index.d.ts.map +1 -0
  104. package/dist/environment/link/index.js +18 -0
  105. package/dist/environment/link/index.js.map +1 -0
  106. package/dist/environment/link/index.mjs +12 -0
  107. package/dist/environment/link/index.mjs.map +1 -0
  108. package/dist/environment/list/action.d.ts +4 -0
  109. package/dist/environment/list/action.d.ts.map +1 -0
  110. package/dist/environment/list/action.js +61 -0
  111. package/dist/environment/list/action.js.map +1 -0
  112. package/dist/environment/list/action.mjs +55 -0
  113. package/dist/environment/list/action.mjs.map +1 -0
  114. package/dist/environment/list/command.d.ts +4 -0
  115. package/dist/environment/list/command.d.ts.map +1 -0
  116. package/dist/environment/list/command.js +13 -0
  117. package/dist/environment/list/command.js.map +1 -0
  118. package/dist/environment/list/command.mjs +11 -0
  119. package/dist/environment/list/command.mjs.map +1 -0
  120. package/dist/environment/list/index.d.ts +7 -0
  121. package/dist/environment/list/index.d.ts.map +1 -0
  122. package/dist/environment/list/index.js +18 -0
  123. package/dist/environment/list/index.js.map +1 -0
  124. package/dist/environment/list/index.mjs +12 -0
  125. package/dist/environment/list/index.mjs.map +1 -0
  126. package/dist/index.d.ts +27 -0
  127. package/dist/index.d.ts.map +1 -0
  128. package/dist/index.js +70 -0
  129. package/dist/index.js.map +1 -0
  130. package/dist/index.mjs +62 -0
  131. package/dist/index.mjs.map +1 -0
  132. package/dist/link/action.d.ts +4 -0
  133. package/dist/link/action.d.ts.map +1 -0
  134. package/dist/link/action.js +152 -0
  135. package/dist/link/action.js.map +1 -0
  136. package/dist/link/action.mjs +146 -0
  137. package/dist/link/action.mjs.map +1 -0
  138. package/dist/link/command.d.ts +7 -0
  139. package/dist/link/command.d.ts.map +1 -0
  140. package/dist/link/command.js +13 -0
  141. package/dist/link/command.js.map +1 -0
  142. package/dist/link/command.mjs +11 -0
  143. package/dist/link/command.mjs.map +1 -0
  144. package/dist/link/index.d.ts +7 -0
  145. package/dist/link/index.d.ts.map +1 -0
  146. package/dist/link/index.js +18 -0
  147. package/dist/link/index.js.map +1 -0
  148. package/dist/link/index.mjs +12 -0
  149. package/dist/link/index.mjs.map +1 -0
  150. package/dist/list-projects/action.d.ts +4 -0
  151. package/dist/list-projects/action.d.ts.map +1 -0
  152. package/dist/list-projects/action.js +34 -0
  153. package/dist/list-projects/action.js.map +1 -0
  154. package/dist/list-projects/action.mjs +32 -0
  155. package/dist/list-projects/action.mjs.map +1 -0
  156. package/dist/list-projects/command.d.ts +7 -0
  157. package/dist/list-projects/command.d.ts.map +1 -0
  158. package/dist/list-projects/command.js +13 -0
  159. package/dist/list-projects/command.js.map +1 -0
  160. package/dist/list-projects/command.mjs +11 -0
  161. package/dist/list-projects/command.mjs.map +1 -0
  162. package/dist/list-projects/index.d.ts +7 -0
  163. package/dist/list-projects/index.d.ts.map +1 -0
  164. package/dist/list-projects/index.js +18 -0
  165. package/dist/list-projects/index.js.map +1 -0
  166. package/dist/list-projects/index.mjs +12 -0
  167. package/dist/list-projects/index.mjs.map +1 -0
  168. package/dist/login/action.d.ts +6 -0
  169. package/dist/login/action.d.ts.map +1 -0
  170. package/dist/login/action.js +204 -0
  171. package/dist/login/action.js.map +1 -0
  172. package/dist/login/action.mjs +194 -0
  173. package/dist/login/action.mjs.map +1 -0
  174. package/dist/login/command.d.ts +7 -0
  175. package/dist/login/command.d.ts.map +1 -0
  176. package/dist/login/command.js +14 -0
  177. package/dist/login/command.js.map +1 -0
  178. package/dist/login/command.mjs +12 -0
  179. package/dist/login/command.mjs.map +1 -0
  180. package/dist/login/index.d.ts +7 -0
  181. package/dist/login/index.d.ts.map +1 -0
  182. package/dist/login/index.js +18 -0
  183. package/dist/login/index.js.map +1 -0
  184. package/dist/login/index.mjs +12 -0
  185. package/dist/login/index.mjs.map +1 -0
  186. package/dist/logout/action.d.ts +4 -0
  187. package/dist/logout/action.d.ts.map +1 -0
  188. package/dist/logout/action.js +46 -0
  189. package/dist/logout/action.js.map +1 -0
  190. package/dist/logout/action.mjs +44 -0
  191. package/dist/logout/action.mjs.map +1 -0
  192. package/dist/logout/command.d.ts +7 -0
  193. package/dist/logout/command.d.ts.map +1 -0
  194. package/dist/logout/command.js +14 -0
  195. package/dist/logout/command.js.map +1 -0
  196. package/dist/logout/command.mjs +12 -0
  197. package/dist/logout/command.mjs.map +1 -0
  198. package/dist/logout/index.d.ts +11 -0
  199. package/dist/logout/index.d.ts.map +1 -0
  200. package/dist/logout/index.js +18 -0
  201. package/dist/logout/index.js.map +1 -0
  202. package/dist/logout/index.mjs +12 -0
  203. package/dist/logout/index.mjs.map +1 -0
  204. package/dist/package.json.js +11 -0
  205. package/dist/package.json.js.map +1 -0
  206. package/dist/package.json.mjs +6 -0
  207. package/dist/package.json.mjs.map +1 -0
  208. package/dist/services/build-logs.d.ts +4 -0
  209. package/dist/services/build-logs.d.ts.map +1 -0
  210. package/dist/services/build-logs.js +71 -0
  211. package/dist/services/build-logs.js.map +1 -0
  212. package/dist/services/build-logs.mjs +65 -0
  213. package/dist/services/build-logs.mjs.map +1 -0
  214. package/dist/services/cli-api.d.ts +107 -0
  215. package/dist/services/cli-api.d.ts.map +1 -0
  216. package/dist/services/cli-api.js +170 -0
  217. package/dist/services/cli-api.js.map +1 -0
  218. package/dist/services/cli-api.mjs +161 -0
  219. package/dist/services/cli-api.mjs.map +1 -0
  220. package/dist/services/context.d.ts +4 -0
  221. package/dist/services/context.d.ts.map +1 -0
  222. package/dist/services/context.js +14 -0
  223. package/dist/services/context.js.map +1 -0
  224. package/dist/services/context.mjs +11 -0
  225. package/dist/services/context.mjs.map +1 -0
  226. package/dist/services/index.d.ts +5 -0
  227. package/dist/services/index.d.ts.map +1 -0
  228. package/dist/services/index.js +14 -0
  229. package/dist/services/index.js.map +1 -0
  230. package/dist/services/index.mjs +6 -0
  231. package/dist/services/index.mjs.map +1 -0
  232. package/dist/services/logger.d.ts +22 -0
  233. package/dist/services/logger.d.ts.map +1 -0
  234. package/dist/services/logger.js +134 -0
  235. package/dist/services/logger.js.map +1 -0
  236. package/dist/services/logger.mjs +107 -0
  237. package/dist/services/logger.mjs.map +1 -0
  238. package/dist/services/notification.d.ts +6 -0
  239. package/dist/services/notification.d.ts.map +1 -0
  240. package/dist/services/notification.js +84 -0
  241. package/dist/services/notification.js.map +1 -0
  242. package/dist/services/notification.mjs +77 -0
  243. package/dist/services/notification.mjs.map +1 -0
  244. package/dist/services/strapi-info-save.d.ts +25 -0
  245. package/dist/services/strapi-info-save.d.ts.map +1 -0
  246. package/dist/services/strapi-info-save.js +58 -0
  247. package/dist/services/strapi-info-save.js.map +1 -0
  248. package/dist/services/strapi-info-save.mjs +47 -0
  249. package/dist/services/strapi-info-save.mjs.map +1 -0
  250. package/dist/services/token.d.ts +12 -0
  251. package/dist/services/token.d.ts.map +1 -0
  252. package/dist/services/token.js +131 -0
  253. package/dist/services/token.js.map +1 -0
  254. package/dist/services/token.mjs +124 -0
  255. package/dist/services/token.mjs.map +1 -0
  256. package/dist/types.d.ts +73 -0
  257. package/dist/types.d.ts.map +1 -0
  258. package/dist/utils/analytics.d.ts +4 -0
  259. package/dist/utils/analytics.d.ts.map +1 -0
  260. package/dist/utils/analytics.js +12 -0
  261. package/dist/utils/analytics.js.map +1 -0
  262. package/dist/utils/analytics.mjs +10 -0
  263. package/dist/utils/analytics.mjs.map +1 -0
  264. package/dist/utils/compress-files.d.ts +4 -0
  265. package/dist/utils/compress-files.d.ts.map +1 -0
  266. package/dist/utils/compress-files.js +105 -0
  267. package/dist/utils/compress-files.js.map +1 -0
  268. package/dist/utils/compress-files.mjs +80 -0
  269. package/dist/utils/compress-files.mjs.map +1 -0
  270. package/dist/utils/error-message-factories.d.ts +9 -0
  271. package/dist/utils/error-message-factories.d.ts.map +1 -0
  272. package/dist/utils/error-message-factories.js +30 -0
  273. package/dist/utils/error-message-factories.js.map +1 -0
  274. package/dist/utils/error-message-factories.mjs +22 -0
  275. package/dist/utils/error-message-factories.mjs.map +1 -0
  276. package/dist/utils/get-local-config.d.ts +6 -0
  277. package/dist/utils/get-local-config.d.ts.map +1 -0
  278. package/dist/utils/get-local-config.js +41 -0
  279. package/dist/utils/get-local-config.js.map +1 -0
  280. package/dist/utils/get-local-config.mjs +34 -0
  281. package/dist/utils/get-local-config.mjs.map +1 -0
  282. package/dist/utils/helpers.d.ts +3 -0
  283. package/dist/utils/helpers.d.ts.map +1 -0
  284. package/dist/utils/helpers.js +37 -0
  285. package/dist/utils/helpers.js.map +1 -0
  286. package/dist/utils/helpers.mjs +31 -0
  287. package/dist/utils/helpers.mjs.map +1 -0
  288. package/dist/utils/pkg.d.ts +121 -0
  289. package/dist/utils/pkg.d.ts.map +1 -0
  290. package/dist/utils/pkg.js +70 -0
  291. package/dist/utils/pkg.js.map +1 -0
  292. package/dist/utils/pkg.mjs +43 -0
  293. package/dist/utils/pkg.mjs.map +1 -0
  294. package/dist/utils/tests/compress-files.test.d.ts +2 -0
  295. package/dist/utils/tests/compress-files.test.d.ts.map +1 -0
  296. package/package.json +83 -0
@@ -0,0 +1,12 @@
1
+ import action from './action.mjs';
2
+ import command from './command.mjs';
3
+
4
+ var listEnvironments = {
5
+ name: 'list-environments',
6
+ description: 'List Strapi Cloud environments',
7
+ action,
8
+ command
9
+ };
10
+
11
+ export { action, command, listEnvironments as default };
12
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../../../src/environment/list/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: 'list-environments',\n description: 'List Strapi Cloud environments',\n action,\n command,\n} as StrapiCloudCommandInfo;\n"],"names":["name","description","action","command"],"mappings":";;;AAMA,uBAAe;IACbA,IAAAA,EAAM,mBAAA;IACNC,WAAAA,EAAa,gCAAA;AACbC,IAAAA,MAAAA;AACAC,IAAAA;AACF,CAAA;;;;"}
@@ -0,0 +1,27 @@
1
+ import { Command } from 'commander';
2
+ import { createGrowthSsoTrial } from './create-growth-sso-trial';
3
+ import { CLIContext } from './types';
4
+ export declare const cli: {
5
+ deployProject: import("./types").StrapiCloudCommandInfo;
6
+ link: import("./types").StrapiCloudCommandInfo;
7
+ login: import("./types").StrapiCloudCommandInfo;
8
+ logout: {
9
+ name: string;
10
+ description: string;
11
+ action: (ctx: CLIContext) => Promise<void>;
12
+ command: import("./types").StrapiCloudCommand;
13
+ };
14
+ createProject: import("./types").StrapiCloudCommandInfo;
15
+ linkEnvironment: import("./types").StrapiCloudCommandInfo;
16
+ listProjects: import("./types").StrapiCloudCommandInfo;
17
+ listEnvironments: import("./types").StrapiCloudCommandInfo;
18
+ };
19
+ export { createGrowthSsoTrial };
20
+ export declare function buildStrapiCloudCommands({ command, ctx, argv, }: {
21
+ command: Command;
22
+ ctx: CLIContext;
23
+ argv: string[];
24
+ }): Promise<void>;
25
+ export * as services from './services';
26
+ export * from './types';
27
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAIjE,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAGrC,eAAO,MAAM,GAAG;;;;;;;;;;;;;;CASf,CAAC;AAEF,OAAO,EAAE,oBAAoB,EAAE,CAAC;AAsBhC,wBAAsB,wBAAwB,CAAC,EAC7C,OAAO,EACP,GAAG,EACH,IAAI,GACL,EAAE;IACD,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,EAAE,UAAU,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB,iBAeA;AAED,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAC;AAEvC,cAAc,SAAS,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,70 @@
1
+ 'use strict';
2
+
3
+ var crypto = require('crypto');
4
+ var index$8 = require('./deploy-project/index.js');
5
+ var index$7 = require('./link/index.js');
6
+ var index$6 = require('./login/index.js');
7
+ var index$5 = require('./logout/index.js');
8
+ var index$4 = require('./create-project/index.js');
9
+ var action = require('./create-growth-sso-trial/action.js');
10
+ var index$2 = require('./list-projects/index.js');
11
+ var index$1 = require('./environment/list/index.js');
12
+ var index$3 = require('./environment/link/index.js');
13
+ var local = require('./config/local.js');
14
+ var index = require('./services/index.js');
15
+
16
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
17
+
18
+ var crypto__default = /*#__PURE__*/_interopDefault(crypto);
19
+
20
+ const cli = {
21
+ deployProject: index$8.default,
22
+ link: index$7.default,
23
+ login: index$6.default,
24
+ logout: index$5.default,
25
+ createProject: index$4.default,
26
+ linkEnvironment: index$3.default,
27
+ listProjects: index$2.default,
28
+ listEnvironments: index$1.default
29
+ };
30
+ const cloudCommands = [
31
+ index$8.default,
32
+ index$7.default,
33
+ index$6.default,
34
+ index$5.default,
35
+ index$3.default,
36
+ index$2.default,
37
+ index$1.default
38
+ ];
39
+ async function initCloudCLIConfig() {
40
+ const localConfig = await local.getLocalConfig();
41
+ if (!localConfig.installId) {
42
+ localConfig.installId = crypto__default.default.randomUUID();
43
+ }
44
+ await local.saveLocalConfig(localConfig);
45
+ }
46
+ async function buildStrapiCloudCommands({ command, ctx, argv }) {
47
+ await initCloudCLIConfig();
48
+ // Load all commands
49
+ for (const cloudCommand of cloudCommands){
50
+ try {
51
+ // Add this command to the Commander command object
52
+ const subCommand = await cloudCommand.command({
53
+ command,
54
+ ctx,
55
+ argv
56
+ });
57
+ if (subCommand) {
58
+ command.addCommand(subCommand);
59
+ }
60
+ } catch (e) {
61
+ console.error(`Failed to load command ${cloudCommand.name}`, e);
62
+ }
63
+ }
64
+ }
65
+
66
+ exports.createGrowthSsoTrial = action;
67
+ exports.services = index;
68
+ exports.buildStrapiCloudCommands = buildStrapiCloudCommands;
69
+ exports.cli = cli;
70
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","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 { createGrowthSsoTrial } from './create-growth-sso-trial';\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\nexport { createGrowthSsoTrial };\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.installId) {\n localConfig.installId = 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","installId","crypto","randomUUID","saveLocalConfig","buildStrapiCloudCommands","command","ctx","argv","cloudCommand","subCommand","addCommand","e","console","error","name"],"mappings":";;;;;;;;;;;;;;;;;;;MAcaA,GAAAA,GAAM;AACjBC,mBAAAA,eAAAA;AACAC,UAAAA,eAAAA;AACAC,WAAAA,eAAAA;AACAC,YAAAA,eAAAA;AACAC,mBAAAA,eAAAA;AACAC,qBAAAA,eAAAA;AACAC,kBAAAA,eAAAA;AACAC,sBAAAA;AACF;AAIA,MAAMC,aAAAA,GAAgB;AACpBR,IAAAA,eAAAA;AACAC,IAAAA,eAAAA;AACAC,IAAAA,eAAAA;AACAC,IAAAA,eAAAA;AACAE,IAAAA,eAAAA;AACAC,IAAAA,eAAAA;AACAC,IAAAA;AACD,CAAA;AAED,eAAeE,kBAAAA,GAAAA;AACb,IAAA,MAAMC,cAAc,MAAMC,oBAAAA,EAAAA;IAE1B,IAAI,CAACD,WAAAA,CAAYE,SAAS,EAAE;QAC1BF,WAAAA,CAAYE,SAAS,GAAGC,uBAAAA,CAAOC,UAAU,EAAA;AAC3C,IAAA;AAEA,IAAA,MAAMC,qBAAAA,CAAgBL,WAAAA,CAAAA;AACxB;AAEO,eAAeM,yBAAyB,EAC7CC,OAAO,EACPC,GAAG,EACHC,IAAI,EAKL,EAAA;IACC,MAAMV,kBAAAA,EAAAA;;IAEN,KAAK,MAAMW,gBAAgBZ,aAAAA,CAAe;QACxC,IAAI;;AAEF,YAAA,MAAMa,UAAAA,GAAa,MAAMD,YAAAA,CAAaH,OAAO,CAAC;AAAEA,gBAAAA,OAAAA;AAASC,gBAAAA,GAAAA;AAAKC,gBAAAA;AAAK,aAAA,CAAA;AAEnE,YAAA,IAAIE,UAAAA,EAAY;AACdJ,gBAAAA,OAAAA,CAAQK,UAAU,CAACD,UAAAA,CAAAA;AACrB,YAAA;AACF,QAAA,CAAA,CAAE,OAAOE,CAAAA,EAAG;YACVC,OAAAA,CAAQC,KAAK,CAAC,CAAC,uBAAuB,EAAEL,YAAAA,CAAaM,IAAI,EAAE,EAAEH,CAAAA,CAAAA;AAC/D,QAAA;AACF,IAAA;AACF;;;;;;;"}
package/dist/index.mjs ADDED
@@ -0,0 +1,62 @@
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
+ export { default as createGrowthSsoTrial } from './create-growth-sso-trial/action.mjs';
8
+ import listProjects from './list-projects/index.mjs';
9
+ import listEnvironments from './environment/list/index.mjs';
10
+ import linkEnvironment from './environment/link/index.mjs';
11
+ import { getLocalConfig, saveLocalConfig } from './config/local.mjs';
12
+ import * as index from './services/index.mjs';
13
+ export { index as services };
14
+
15
+ const cli = {
16
+ deployProject,
17
+ link,
18
+ login,
19
+ logout,
20
+ createProject,
21
+ linkEnvironment,
22
+ listProjects,
23
+ listEnvironments
24
+ };
25
+ const cloudCommands = [
26
+ deployProject,
27
+ link,
28
+ login,
29
+ logout,
30
+ linkEnvironment,
31
+ listProjects,
32
+ listEnvironments
33
+ ];
34
+ async function initCloudCLIConfig() {
35
+ const localConfig = await getLocalConfig();
36
+ if (!localConfig.installId) {
37
+ localConfig.installId = crypto.randomUUID();
38
+ }
39
+ await saveLocalConfig(localConfig);
40
+ }
41
+ async function buildStrapiCloudCommands({ command, ctx, argv }) {
42
+ await initCloudCLIConfig();
43
+ // Load all commands
44
+ for (const cloudCommand of cloudCommands){
45
+ try {
46
+ // Add this command to the Commander command object
47
+ const subCommand = await cloudCommand.command({
48
+ command,
49
+ ctx,
50
+ argv
51
+ });
52
+ if (subCommand) {
53
+ command.addCommand(subCommand);
54
+ }
55
+ } catch (e) {
56
+ console.error(`Failed to load command ${cloudCommand.name}`, e);
57
+ }
58
+ }
59
+ }
60
+
61
+ export { buildStrapiCloudCommands, cli };
62
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
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 { createGrowthSsoTrial } from './create-growth-sso-trial';\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\nexport { createGrowthSsoTrial };\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.installId) {\n localConfig.installId = 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","installId","crypto","randomUUID","saveLocalConfig","buildStrapiCloudCommands","command","ctx","argv","cloudCommand","subCommand","addCommand","e","console","error","name"],"mappings":";;;;;;;;;;;;;;MAcaA,GAAAA,GAAM;AACjBC,IAAAA,aAAAA;AACAC,IAAAA,IAAAA;AACAC,IAAAA,KAAAA;AACAC,IAAAA,MAAAA;AACAC,IAAAA,aAAAA;AACAC,IAAAA,eAAAA;AACAC,IAAAA,YAAAA;AACAC,IAAAA;AACF;AAIA,MAAMC,aAAAA,GAAgB;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,WAAAA,CAAYE,SAAS,EAAE;QAC1BF,WAAAA,CAAYE,SAAS,GAAGC,MAAAA,CAAOC,UAAU,EAAA;AAC3C,IAAA;AAEA,IAAA,MAAMC,eAAAA,CAAgBL,WAAAA,CAAAA;AACxB;AAEO,eAAeM,yBAAyB,EAC7CC,OAAO,EACPC,GAAG,EACHC,IAAI,EAKL,EAAA;IACC,MAAMV,kBAAAA,EAAAA;;IAEN,KAAK,MAAMW,gBAAgBZ,aAAAA,CAAe;QACxC,IAAI;;AAEF,YAAA,MAAMa,UAAAA,GAAa,MAAMD,YAAAA,CAAaH,OAAO,CAAC;AAAEA,gBAAAA,OAAAA;AAASC,gBAAAA,GAAAA;AAAKC,gBAAAA;AAAK,aAAA,CAAA;AAEnE,YAAA,IAAIE,UAAAA,EAAY;AACdJ,gBAAAA,OAAAA,CAAQK,UAAU,CAACD,UAAAA,CAAAA;AACrB,YAAA;AACF,QAAA,CAAA,CAAE,OAAOE,CAAAA,EAAG;YACVC,OAAAA,CAAQC,KAAK,CAAC,CAAC,uBAAuB,EAAEL,YAAAA,CAAaM,IAAI,EAAE,EAAEH,CAAAA,CAAAA;AAC/D,QAAA;AACF,IAAA;AACF;;;;"}
@@ -0,0 +1,4 @@
1
+ import type { CLIContext } from '../types';
2
+ declare const _default: (ctx: CLIContext) => Promise<void>;
3
+ export default _default;
4
+ //# sourceMappingURL=action.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"action.d.ts","sourceRoot":"","sources":["../../src/link/action.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;yBA6IrB,KAAK,UAAU;AAArC,wBAqEE"}
@@ -0,0 +1,152 @@
1
+ 'use strict';
2
+
3
+ var chalk = require('chalk');
4
+ var cliApi = require('../services/cli-api.js');
5
+ var strapiInfoSave = require('../services/strapi-info-save.js');
6
+ var token = require('../services/token.js');
7
+ require('fast-safe-stringify');
8
+ require('ora');
9
+ require('cli-progress');
10
+ var action$1 = require('../login/action.js');
11
+ var analytics = require('../utils/analytics.js');
12
+ var getLocalConfig = require('../utils/get-local-config.js');
13
+
14
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
15
+
16
+ var chalk__default = /*#__PURE__*/_interopDefault(chalk);
17
+
18
+ const QUIT_OPTION = 'Quit';
19
+ async function promptForRelink(ctx, cloudApiService, existingConfig) {
20
+ if (existingConfig && existingConfig.project) {
21
+ const { default: inquirer } = await import('inquirer');
22
+ const { shouldRelink } = await inquirer.prompt([
23
+ {
24
+ type: 'confirm',
25
+ name: 'shouldRelink',
26
+ message: `A project named ${chalk__default.default.cyan(existingConfig.project.displayName ? existingConfig.project.displayName : existingConfig.project.name)} is already linked to this local folder. Do you want to update the link?`,
27
+ default: false
28
+ }
29
+ ]);
30
+ if (!shouldRelink) {
31
+ await analytics.trackEvent(ctx, cloudApiService, 'didNotLinkProject', {
32
+ currentProjectName: existingConfig.project?.name
33
+ });
34
+ return false;
35
+ }
36
+ }
37
+ return true;
38
+ }
39
+ async function getProjectsList(ctx, cloudApiService, existingConfig) {
40
+ const spinner = ctx.logger.spinner('Fetching your projects...\n').start();
41
+ try {
42
+ const { data: { data: projectList } } = await cloudApiService.listLinkProjects();
43
+ spinner.succeed();
44
+ if (!Array.isArray(projectList)) {
45
+ ctx.logger.log('No Cloud project found. To link a project, first create it via the Cloud dashboard (https://cloud.strapi.io).');
46
+ return null;
47
+ }
48
+ const projects = projectList.filter((project)=>!(project.isMaintainer || project.name === existingConfig?.project?.name)).map((project)=>{
49
+ return {
50
+ name: project.displayName,
51
+ value: {
52
+ name: project.name,
53
+ displayName: project.displayName
54
+ }
55
+ };
56
+ });
57
+ if (projects.length === 0) {
58
+ ctx.logger.log('No Cloud project found. To link a project, first create it via the Cloud dashboard (https://cloud.strapi.io).');
59
+ return null;
60
+ }
61
+ return projects;
62
+ } catch (e) {
63
+ spinner.fail('An error occurred while fetching your projects from Strapi Cloud.');
64
+ ctx.logger.debug('Failed to list projects', e);
65
+ return null;
66
+ }
67
+ }
68
+ async function getUserSelection(ctx, projects) {
69
+ const { logger } = ctx;
70
+ try {
71
+ const { default: inquirer } = await import('inquirer');
72
+ const answer = await inquirer.prompt([
73
+ {
74
+ type: 'list',
75
+ name: 'linkProject',
76
+ message: 'Which project do you want to link?',
77
+ choices: [
78
+ ...projects,
79
+ {
80
+ name: chalk__default.default.grey(`(${QUIT_OPTION})`),
81
+ value: null
82
+ }
83
+ ]
84
+ }
85
+ ]);
86
+ if (!answer.linkProject) {
87
+ return null;
88
+ }
89
+ return answer;
90
+ } catch (e) {
91
+ logger.debug('Failed to get user input', e);
92
+ logger.error('An error occurred while trying to get your input.');
93
+ return null;
94
+ }
95
+ }
96
+ var action = (async (ctx)=>{
97
+ const { getValidToken } = await token.tokenServiceFactory(ctx);
98
+ const token$1 = await getValidToken(ctx, action$1.promptLogin);
99
+ const { logger } = ctx;
100
+ if (!token$1) {
101
+ return;
102
+ }
103
+ const cloudApiService = await cliApi.cloudApiFactory(ctx, token$1);
104
+ const existingConfig = await getLocalConfig.getLocalConfig(ctx);
105
+ const shouldRelink = await promptForRelink(ctx, cloudApiService, existingConfig);
106
+ if (!shouldRelink) {
107
+ return;
108
+ }
109
+ await analytics.trackEvent(ctx, cloudApiService, 'willLinkProject', {});
110
+ const projects = await getProjectsList(ctx, cloudApiService, existingConfig);
111
+ if (!projects) {
112
+ return;
113
+ }
114
+ const answer = await getUserSelection(ctx, projects);
115
+ if (!answer) {
116
+ return;
117
+ }
118
+ try {
119
+ const { default: inquirer } = await import('inquirer');
120
+ const { confirmAction } = await inquirer.prompt([
121
+ {
122
+ type: 'confirm',
123
+ name: 'confirmAction',
124
+ message: 'Warning: Once linked, deploying from CLI will replace the existing project and its data. Confirm to proceed:',
125
+ default: false
126
+ }
127
+ ]);
128
+ if (!confirmAction) {
129
+ await analytics.trackEvent(ctx, cloudApiService, 'didNotLinkProject', {
130
+ cancelledProjectName: answer.linkProject.name,
131
+ currentProjectName: existingConfig ? existingConfig.project?.name : null
132
+ });
133
+ return;
134
+ }
135
+ await strapiInfoSave.save({
136
+ project: answer.linkProject
137
+ });
138
+ logger.log(` You have successfully linked your project to ${chalk__default.default.cyan(answer.linkProject.displayName)}. You are now able to deploy your project.`);
139
+ await analytics.trackEvent(ctx, cloudApiService, 'didLinkProject', {
140
+ projectInternalName: answer.linkProject
141
+ });
142
+ } catch (e) {
143
+ logger.debug('Failed to link project', e);
144
+ logger.error('An error occurred while linking the project.');
145
+ await analytics.trackEvent(ctx, cloudApiService, 'didNotLinkProject', {
146
+ projectInternalName: answer.linkProject
147
+ });
148
+ }
149
+ });
150
+
151
+ module.exports = action;
152
+ //# sourceMappingURL=action.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"action.js","sources":["../../src/link/action.ts"],"sourcesContent":["import 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 { default: inquirer } = await import('inquirer');\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(\n 'No Cloud project found. To link a project, first create it via the Cloud dashboard (https://cloud.strapi.io).'\n );\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(\n 'No Cloud project found. To link a project, first create it via the Cloud dashboard (https://cloud.strapi.io).'\n );\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 { default: inquirer } = await import('inquirer');\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 { default: inquirer } = await import('inquirer');\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","default","inquirer","shouldRelink","prompt","type","name","message","chalk","cyan","displayName","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,146 @@
1
+ import chalk from 'chalk';
2
+ import { cloudApiFactory } from '../services/cli-api.mjs';
3
+ import { save } from '../services/strapi-info-save.mjs';
4
+ import { tokenServiceFactory } from '../services/token.mjs';
5
+ import 'fast-safe-stringify';
6
+ import 'ora';
7
+ import 'cli-progress';
8
+ import { promptLogin } from '../login/action.mjs';
9
+ import { trackEvent } from '../utils/analytics.mjs';
10
+ import { getLocalConfig } from '../utils/get-local-config.mjs';
11
+
12
+ const QUIT_OPTION = 'Quit';
13
+ async function promptForRelink(ctx, cloudApiService, existingConfig) {
14
+ if (existingConfig && existingConfig.project) {
15
+ const { default: inquirer } = await import('inquirer');
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('No Cloud project found. To link a project, first create it via the Cloud dashboard (https://cloud.strapi.io).');
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('No Cloud project found. To link a project, first create it via the Cloud dashboard (https://cloud.strapi.io).');
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 { default: inquirer } = await import('inquirer');
66
+ const answer = await inquirer.prompt([
67
+ {
68
+ type: 'list',
69
+ name: 'linkProject',
70
+ message: 'Which project do you want to link?',
71
+ choices: [
72
+ ...projects,
73
+ {
74
+ name: chalk.grey(`(${QUIT_OPTION})`),
75
+ value: null
76
+ }
77
+ ]
78
+ }
79
+ ]);
80
+ if (!answer.linkProject) {
81
+ return null;
82
+ }
83
+ return answer;
84
+ } catch (e) {
85
+ logger.debug('Failed to get user input', e);
86
+ logger.error('An error occurred while trying to get your input.');
87
+ return null;
88
+ }
89
+ }
90
+ var action = (async (ctx)=>{
91
+ const { getValidToken } = await tokenServiceFactory(ctx);
92
+ const token = await getValidToken(ctx, promptLogin);
93
+ const { logger } = ctx;
94
+ if (!token) {
95
+ return;
96
+ }
97
+ const cloudApiService = await cloudApiFactory(ctx, token);
98
+ const existingConfig = await getLocalConfig(ctx);
99
+ const shouldRelink = await promptForRelink(ctx, cloudApiService, existingConfig);
100
+ if (!shouldRelink) {
101
+ return;
102
+ }
103
+ await trackEvent(ctx, cloudApiService, 'willLinkProject', {});
104
+ const projects = await getProjectsList(ctx, cloudApiService, existingConfig);
105
+ if (!projects) {
106
+ return;
107
+ }
108
+ const answer = await getUserSelection(ctx, projects);
109
+ if (!answer) {
110
+ return;
111
+ }
112
+ try {
113
+ const { default: inquirer } = await import('inquirer');
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 trackEvent(ctx, cloudApiService, 'didNotLinkProject', {
124
+ cancelledProjectName: answer.linkProject.name,
125
+ currentProjectName: existingConfig ? existingConfig.project?.name : null
126
+ });
127
+ return;
128
+ }
129
+ await 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 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 trackEvent(ctx, cloudApiService, 'didNotLinkProject', {
140
+ projectInternalName: answer.linkProject
141
+ });
142
+ }
143
+ });
144
+
145
+ export { action as default };
146
+ //# sourceMappingURL=action.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"action.mjs","sources":["../../src/link/action.ts"],"sourcesContent":["import 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 { default: inquirer } = await import('inquirer');\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(\n 'No Cloud project found. To link a project, first create it via the Cloud dashboard (https://cloud.strapi.io).'\n );\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(\n 'No Cloud project found. To link a project, first create it via the Cloud dashboard (https://cloud.strapi.io).'\n );\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 { default: inquirer } = await import('inquirer');\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 { default: inquirer } = await import('inquirer');\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","default","inquirer","shouldRelink","prompt","type","name","message","chalk","cyan","displayName","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,7 @@
1
+ import { type StrapiCloudCommand } from '../types';
2
+ /**
3
+ * `$ link local directory to project of the cloud`
4
+ */
5
+ declare const command: StrapiCloudCommand;
6
+ export default command;
7
+ //# sourceMappingURL=command.d.ts.map
@@ -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,OAAAA,GAA8B,CAAC,EAAEA,OAAO,EAAEC,GAAG,EAAE,GAAA;IACnDD,OAAAA,CACGA,OAAO,CAAC,YAAA,CAAA,CACRE,KAAK,CAAC,MAAA,CAAA,CACNC,WAAW,CAAC,kDAAA,CAAA,CACZC,MAAM,CAAC,eAAe,yCAAA,CAAA,CACtBA,MAAM,CAAC,cAAA,EAAgB,oBAAA,CAAA,CACvBC,MAAM,CAAC,IAAMC,iBAAAA,CAAU,MAAA,EAAQD,MAAAA,CAAAA,CAAQJ,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,OAAAA,GAA8B,CAAC,EAAEA,OAAO,EAAEC,GAAG,EAAE,GAAA;IACnDD,OAAAA,CACGA,OAAO,CAAC,YAAA,CAAA,CACRE,KAAK,CAAC,MAAA,CAAA,CACNC,WAAW,CAAC,kDAAA,CAAA,CACZC,MAAM,CAAC,eAAe,yCAAA,CAAA,CACtBA,MAAM,CAAC,cAAA,EAAgB,oBAAA,CAAA,CACvBC,MAAM,CAAC,IAAMC,SAAAA,CAAU,MAAA,EAAQD,MAAAA,CAAAA,CAAQJ,GAAAA,CAAAA,CAAAA;AAC5C;;;;"}
@@ -0,0 +1,7 @@
1
+ import action from './action';
2
+ import command from './command';
3
+ import type { StrapiCloudCommandInfo } from '../types';
4
+ export { action, command };
5
+ declare const _default: StrapiCloudCommandInfo;
6
+ export default _default;
7
+ //# sourceMappingURL=index.d.ts.map
@@ -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;wBAOtB,sBAAsB;AAL3B,wBAK4B"}