@strapi/cloud-cli 0.0.0-next.a64ced5364618f917adb31b8684b4e3c01c58862 → 0.0.0-next.a767343b1e63a03d004a3bfe31496e5d84e421b9

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 (326) hide show
  1. package/LICENSE +18 -3
  2. package/dist/bin.d.ts.map +1 -0
  3. package/dist/bin.js +45 -171
  4. package/dist/bin.js.map +1 -1
  5. package/dist/bin.mjs +49 -0
  6. package/dist/bin.mjs.map +1 -0
  7. package/dist/cloud/command.d.ts +3 -0
  8. package/dist/cloud/command.d.ts.map +1 -0
  9. package/dist/cloud/command.js +14 -0
  10. package/dist/cloud/command.js.map +1 -0
  11. package/dist/cloud/command.mjs +12 -0
  12. package/dist/cloud/command.mjs.map +1 -0
  13. package/dist/config/api.d.ts.map +1 -0
  14. package/dist/config/api.js +11 -0
  15. package/dist/config/api.js.map +1 -0
  16. package/dist/config/api.mjs +9 -0
  17. package/dist/config/api.mjs.map +1 -0
  18. package/dist/{src/config → config}/local.d.ts +1 -1
  19. package/dist/config/local.d.ts.map +1 -0
  20. package/dist/config/local.js +60 -0
  21. package/dist/config/local.js.map +1 -0
  22. package/dist/config/local.mjs +55 -0
  23. package/dist/config/local.mjs.map +1 -0
  24. package/dist/create-growth-sso-trial/action.d.ts +9 -0
  25. package/dist/create-growth-sso-trial/action.d.ts.map +1 -0
  26. package/dist/create-growth-sso-trial/action.js +51 -0
  27. package/dist/create-growth-sso-trial/action.js.map +1 -0
  28. package/dist/create-growth-sso-trial/action.mjs +49 -0
  29. package/dist/create-growth-sso-trial/action.mjs.map +1 -0
  30. package/dist/create-growth-sso-trial/index.d.ts +4 -0
  31. package/dist/create-growth-sso-trial/index.d.ts.map +1 -0
  32. package/dist/create-project/action.d.ts +4 -0
  33. package/dist/create-project/action.d.ts.map +1 -0
  34. package/dist/create-project/action.js +122 -0
  35. package/dist/create-project/action.js.map +1 -0
  36. package/dist/create-project/action.mjs +120 -0
  37. package/dist/create-project/action.mjs.map +1 -0
  38. package/dist/create-project/command.d.ts.map +1 -0
  39. package/dist/create-project/command.js +14 -0
  40. package/dist/create-project/command.js.map +1 -0
  41. package/dist/create-project/command.mjs +12 -0
  42. package/dist/create-project/command.mjs.map +1 -0
  43. package/dist/create-project/index.d.ts.map +1 -0
  44. package/dist/create-project/index.js +18 -0
  45. package/dist/create-project/index.js.map +1 -0
  46. package/dist/create-project/index.mjs +12 -0
  47. package/dist/create-project/index.mjs.map +1 -0
  48. package/dist/create-project/utils/get-project-name-from-pkg.d.ts +3 -0
  49. package/dist/create-project/utils/get-project-name-from-pkg.d.ts.map +1 -0
  50. package/dist/create-project/utils/get-project-name-from-pkg.js +15 -0
  51. package/dist/create-project/utils/get-project-name-from-pkg.js.map +1 -0
  52. package/dist/create-project/utils/get-project-name-from-pkg.mjs +13 -0
  53. package/dist/create-project/utils/get-project-name-from-pkg.mjs.map +1 -0
  54. package/dist/create-project/utils/project-questions.utils.d.ts +20 -0
  55. package/dist/create-project/utils/project-questions.utils.d.ts.map +1 -0
  56. package/dist/create-project/utils/project-questions.utils.js +63 -0
  57. package/dist/create-project/utils/project-questions.utils.js.map +1 -0
  58. package/dist/create-project/utils/project-questions.utils.mjs +59 -0
  59. package/dist/create-project/utils/project-questions.utils.mjs.map +1 -0
  60. package/dist/deploy-project/action.d.ts +8 -0
  61. package/dist/deploy-project/action.d.ts.map +1 -0
  62. package/dist/deploy-project/action.js +324 -0
  63. package/dist/deploy-project/action.js.map +1 -0
  64. package/dist/deploy-project/action.mjs +303 -0
  65. package/dist/deploy-project/action.mjs.map +1 -0
  66. package/dist/deploy-project/command.d.ts.map +1 -0
  67. package/dist/deploy-project/command.js +14 -0
  68. package/dist/deploy-project/command.js.map +1 -0
  69. package/dist/deploy-project/command.mjs +12 -0
  70. package/dist/deploy-project/command.mjs.map +1 -0
  71. package/dist/deploy-project/index.d.ts.map +1 -0
  72. package/dist/deploy-project/index.js +18 -0
  73. package/dist/deploy-project/index.js.map +1 -0
  74. package/dist/deploy-project/index.mjs +12 -0
  75. package/dist/deploy-project/index.mjs.map +1 -0
  76. package/dist/environment/command.d.ts +3 -0
  77. package/dist/environment/command.d.ts.map +1 -0
  78. package/dist/environment/command.js +15 -0
  79. package/dist/environment/command.js.map +1 -0
  80. package/dist/environment/command.mjs +13 -0
  81. package/dist/environment/command.mjs.map +1 -0
  82. package/dist/environment/link/action.d.ts +4 -0
  83. package/dist/environment/link/action.d.ts.map +1 -0
  84. package/dist/environment/link/action.js +117 -0
  85. package/dist/environment/link/action.js.map +1 -0
  86. package/dist/environment/link/action.mjs +115 -0
  87. package/dist/environment/link/action.mjs.map +1 -0
  88. package/dist/environment/link/command.d.ts +4 -0
  89. package/dist/environment/link/command.d.ts.map +1 -0
  90. package/dist/environment/link/command.js +13 -0
  91. package/dist/environment/link/command.js.map +1 -0
  92. package/dist/environment/link/command.mjs +11 -0
  93. package/dist/environment/link/command.mjs.map +1 -0
  94. package/dist/environment/link/index.d.ts +7 -0
  95. package/dist/environment/link/index.d.ts.map +1 -0
  96. package/dist/environment/link/index.js +18 -0
  97. package/dist/environment/link/index.js.map +1 -0
  98. package/dist/environment/link/index.mjs +12 -0
  99. package/dist/environment/link/index.mjs.map +1 -0
  100. package/dist/environment/list/action.d.ts +4 -0
  101. package/dist/environment/list/action.d.ts.map +1 -0
  102. package/dist/environment/list/action.js +57 -0
  103. package/dist/environment/list/action.js.map +1 -0
  104. package/dist/environment/list/action.mjs +55 -0
  105. package/dist/environment/list/action.mjs.map +1 -0
  106. package/dist/environment/list/command.d.ts +4 -0
  107. package/dist/environment/list/command.d.ts.map +1 -0
  108. package/dist/environment/list/command.js +13 -0
  109. package/dist/environment/list/command.js.map +1 -0
  110. package/dist/environment/list/command.mjs +11 -0
  111. package/dist/environment/list/command.mjs.map +1 -0
  112. package/dist/environment/list/index.d.ts +7 -0
  113. package/dist/environment/list/index.d.ts.map +1 -0
  114. package/dist/environment/list/index.js +18 -0
  115. package/dist/environment/list/index.js.map +1 -0
  116. package/dist/environment/list/index.mjs +12 -0
  117. package/dist/environment/list/index.mjs.map +1 -0
  118. package/dist/{src/index.d.ts → index.d.ts} +6 -0
  119. package/dist/index.d.ts.map +1 -0
  120. package/dist/index.js +58 -1223
  121. package/dist/index.js.map +1 -1
  122. package/dist/index.mjs +56 -1165
  123. package/dist/index.mjs.map +1 -1
  124. package/dist/link/action.d.ts.map +1 -0
  125. package/dist/link/action.js +146 -0
  126. package/dist/link/action.js.map +1 -0
  127. package/dist/link/action.mjs +144 -0
  128. package/dist/link/action.mjs.map +1 -0
  129. package/dist/link/command.d.ts +7 -0
  130. package/dist/link/command.d.ts.map +1 -0
  131. package/dist/link/command.js +13 -0
  132. package/dist/link/command.js.map +1 -0
  133. package/dist/link/command.mjs +11 -0
  134. package/dist/link/command.mjs.map +1 -0
  135. package/dist/link/index.d.ts.map +1 -0
  136. package/dist/link/index.js +18 -0
  137. package/dist/link/index.js.map +1 -0
  138. package/dist/link/index.mjs +12 -0
  139. package/dist/link/index.mjs.map +1 -0
  140. package/dist/list-projects/action.d.ts.map +1 -0
  141. package/dist/list-projects/action.js +34 -0
  142. package/dist/list-projects/action.js.map +1 -0
  143. package/dist/list-projects/action.mjs +32 -0
  144. package/dist/list-projects/action.mjs.map +1 -0
  145. package/dist/list-projects/command.d.ts +7 -0
  146. package/dist/list-projects/command.d.ts.map +1 -0
  147. package/dist/list-projects/command.js +13 -0
  148. package/dist/list-projects/command.js.map +1 -0
  149. package/dist/list-projects/command.mjs +11 -0
  150. package/dist/list-projects/command.mjs.map +1 -0
  151. package/dist/list-projects/index.d.ts +7 -0
  152. package/dist/list-projects/index.d.ts.map +1 -0
  153. package/dist/list-projects/index.js +18 -0
  154. package/dist/list-projects/index.js.map +1 -0
  155. package/dist/list-projects/index.mjs +12 -0
  156. package/dist/list-projects/index.mjs.map +1 -0
  157. package/dist/login/action.d.ts +6 -0
  158. package/dist/login/action.d.ts.map +1 -0
  159. package/dist/login/action.js +199 -0
  160. package/dist/login/action.js.map +1 -0
  161. package/dist/login/action.mjs +194 -0
  162. package/dist/login/action.mjs.map +1 -0
  163. package/dist/login/command.d.ts.map +1 -0
  164. package/dist/login/command.js +14 -0
  165. package/dist/login/command.js.map +1 -0
  166. package/dist/login/command.mjs +12 -0
  167. package/dist/login/command.mjs.map +1 -0
  168. package/dist/login/index.d.ts +7 -0
  169. package/dist/login/index.d.ts.map +1 -0
  170. package/dist/login/index.js +18 -0
  171. package/dist/login/index.js.map +1 -0
  172. package/dist/login/index.mjs +12 -0
  173. package/dist/login/index.mjs.map +1 -0
  174. package/dist/logout/action.d.ts +4 -0
  175. package/dist/logout/action.d.ts.map +1 -0
  176. package/dist/logout/action.js +46 -0
  177. package/dist/logout/action.js.map +1 -0
  178. package/dist/logout/action.mjs +44 -0
  179. package/dist/logout/action.mjs.map +1 -0
  180. package/dist/logout/command.d.ts.map +1 -0
  181. package/dist/logout/command.js +14 -0
  182. package/dist/logout/command.js.map +1 -0
  183. package/dist/logout/command.mjs +12 -0
  184. package/dist/logout/command.mjs.map +1 -0
  185. package/dist/logout/index.d.ts.map +1 -0
  186. package/dist/logout/index.js +18 -0
  187. package/dist/logout/index.js.map +1 -0
  188. package/dist/logout/index.mjs +12 -0
  189. package/dist/logout/index.mjs.map +1 -0
  190. package/dist/package.json.js +129 -0
  191. package/dist/package.json.js.map +1 -0
  192. package/dist/package.json.mjs +105 -0
  193. package/dist/package.json.mjs.map +1 -0
  194. package/dist/services/build-logs.d.ts.map +1 -0
  195. package/dist/services/build-logs.js +67 -0
  196. package/dist/services/build-logs.js.map +1 -0
  197. package/dist/services/build-logs.mjs +65 -0
  198. package/dist/services/build-logs.mjs.map +1 -0
  199. package/dist/services/cli-api.d.ts +107 -0
  200. package/dist/services/cli-api.d.ts.map +1 -0
  201. package/dist/services/cli-api.js +164 -0
  202. package/dist/services/cli-api.js.map +1 -0
  203. package/dist/services/cli-api.mjs +161 -0
  204. package/dist/services/cli-api.mjs.map +1 -0
  205. package/dist/services/context.d.ts +4 -0
  206. package/dist/services/context.d.ts.map +1 -0
  207. package/dist/services/context.js +14 -0
  208. package/dist/services/context.js.map +1 -0
  209. package/dist/services/context.mjs +11 -0
  210. package/dist/services/context.mjs.map +1 -0
  211. package/dist/services/index.d.ts.map +1 -0
  212. package/dist/services/index.js +14 -0
  213. package/dist/services/index.js.map +1 -0
  214. package/dist/services/index.mjs +6 -0
  215. package/dist/services/index.mjs.map +1 -0
  216. package/dist/services/logger.d.ts.map +1 -0
  217. package/dist/services/logger.js +128 -0
  218. package/dist/services/logger.js.map +1 -0
  219. package/dist/services/logger.mjs +107 -0
  220. package/dist/services/logger.mjs.map +1 -0
  221. package/dist/{src/services → services}/notification.d.ts +4 -1
  222. package/dist/services/notification.d.ts.map +1 -0
  223. package/dist/services/notification.js +79 -0
  224. package/dist/services/notification.js.map +1 -0
  225. package/dist/services/notification.mjs +77 -0
  226. package/dist/services/notification.mjs.map +1 -0
  227. package/dist/services/strapi-info-save.d.ts +25 -0
  228. package/dist/services/strapi-info-save.d.ts.map +1 -0
  229. package/dist/services/strapi-info-save.js +53 -0
  230. package/dist/services/strapi-info-save.js.map +1 -0
  231. package/dist/services/strapi-info-save.mjs +47 -0
  232. package/dist/services/strapi-info-save.mjs.map +1 -0
  233. package/dist/{src/services → services}/token.d.ts +1 -1
  234. package/dist/services/token.d.ts.map +1 -0
  235. package/dist/services/token.js +126 -0
  236. package/dist/services/token.js.map +1 -0
  237. package/dist/services/token.mjs +124 -0
  238. package/dist/services/token.mjs.map +1 -0
  239. package/dist/{src/types.d.ts → types.d.ts} +31 -2
  240. package/dist/types.d.ts.map +1 -0
  241. package/dist/utils/analytics.d.ts +4 -0
  242. package/dist/utils/analytics.d.ts.map +1 -0
  243. package/dist/utils/analytics.js +12 -0
  244. package/dist/utils/analytics.js.map +1 -0
  245. package/dist/utils/analytics.mjs +10 -0
  246. package/dist/utils/analytics.mjs.map +1 -0
  247. package/dist/utils/compress-files.d.ts.map +1 -0
  248. package/dist/utils/compress-files.js +104 -0
  249. package/dist/utils/compress-files.js.map +1 -0
  250. package/dist/utils/compress-files.mjs +80 -0
  251. package/dist/utils/compress-files.mjs.map +1 -0
  252. package/dist/utils/error-message-factories.d.ts +9 -0
  253. package/dist/utils/error-message-factories.d.ts.map +1 -0
  254. package/dist/utils/error-message-factories.js +25 -0
  255. package/dist/utils/error-message-factories.js.map +1 -0
  256. package/dist/utils/error-message-factories.mjs +22 -0
  257. package/dist/utils/error-message-factories.mjs.map +1 -0
  258. package/dist/utils/get-local-config.d.ts +6 -0
  259. package/dist/utils/get-local-config.d.ts.map +1 -0
  260. package/dist/utils/get-local-config.js +37 -0
  261. package/dist/utils/get-local-config.js.map +1 -0
  262. package/dist/utils/get-local-config.mjs +34 -0
  263. package/dist/utils/get-local-config.mjs.map +1 -0
  264. package/dist/utils/helpers.d.ts.map +1 -0
  265. package/dist/utils/helpers.js +33 -0
  266. package/dist/utils/helpers.js.map +1 -0
  267. package/dist/utils/helpers.mjs +31 -0
  268. package/dist/utils/helpers.mjs.map +1 -0
  269. package/dist/utils/pkg.d.ts.map +1 -0
  270. package/dist/utils/pkg.js +65 -0
  271. package/dist/utils/pkg.js.map +1 -0
  272. package/dist/utils/pkg.mjs +43 -0
  273. package/dist/utils/pkg.mjs.map +1 -0
  274. package/dist/utils/tests/compress-files.test.d.ts.map +1 -0
  275. package/package.json +16 -14
  276. package/dist/src/bin.d.ts.map +0 -1
  277. package/dist/src/config/api.d.ts.map +0 -1
  278. package/dist/src/config/local.d.ts.map +0 -1
  279. package/dist/src/create-project/action.d.ts +0 -4
  280. package/dist/src/create-project/action.d.ts.map +0 -1
  281. package/dist/src/create-project/command.d.ts.map +0 -1
  282. package/dist/src/create-project/index.d.ts.map +0 -1
  283. package/dist/src/deploy-project/action.d.ts.map +0 -1
  284. package/dist/src/deploy-project/command.d.ts.map +0 -1
  285. package/dist/src/deploy-project/index.d.ts.map +0 -1
  286. package/dist/src/index.d.ts.map +0 -1
  287. package/dist/src/login/action.d.ts +0 -4
  288. package/dist/src/login/action.d.ts.map +0 -1
  289. package/dist/src/login/command.d.ts.map +0 -1
  290. package/dist/src/login/index.d.ts.map +0 -1
  291. package/dist/src/logout/action.d.ts.map +0 -1
  292. package/dist/src/logout/command.d.ts.map +0 -1
  293. package/dist/src/logout/index.d.ts.map +0 -1
  294. package/dist/src/services/build-logs.d.ts.map +0 -1
  295. package/dist/src/services/cli-api.d.ts +0 -39
  296. package/dist/src/services/cli-api.d.ts.map +0 -1
  297. package/dist/src/services/index.d.ts.map +0 -1
  298. package/dist/src/services/logger.d.ts.map +0 -1
  299. package/dist/src/services/notification.d.ts.map +0 -1
  300. package/dist/src/services/strapi-info-save.d.ts +0 -12
  301. package/dist/src/services/strapi-info-save.d.ts.map +0 -1
  302. package/dist/src/services/token.d.ts.map +0 -1
  303. package/dist/src/types.d.ts.map +0 -1
  304. package/dist/src/utils/compress-files.d.ts.map +0 -1
  305. package/dist/src/utils/helpers.d.ts.map +0 -1
  306. package/dist/src/utils/pkg.d.ts.map +0 -1
  307. package/dist/src/utils/tests/compress-files.test.d.ts.map +0 -1
  308. /package/dist/{src/bin.d.ts → bin.d.ts} +0 -0
  309. /package/dist/{src/config → config}/api.d.ts +0 -0
  310. /package/dist/{src/create-project → create-project}/command.d.ts +0 -0
  311. /package/dist/{src/create-project → create-project}/index.d.ts +0 -0
  312. /package/dist/{src/deploy-project → deploy-project}/command.d.ts +0 -0
  313. /package/dist/{src/deploy-project → deploy-project}/index.d.ts +0 -0
  314. /package/dist/{src/deploy-project → link}/action.d.ts +0 -0
  315. /package/dist/{src/login → link}/index.d.ts +0 -0
  316. /package/dist/{src/logout → list-projects}/action.d.ts +0 -0
  317. /package/dist/{src/login → login}/command.d.ts +0 -0
  318. /package/dist/{src/logout → logout}/command.d.ts +0 -0
  319. /package/dist/{src/logout → logout}/index.d.ts +0 -0
  320. /package/dist/{src/services → services}/build-logs.d.ts +0 -0
  321. /package/dist/{src/services → services}/index.d.ts +0 -0
  322. /package/dist/{src/services → services}/logger.d.ts +0 -0
  323. /package/dist/{src/utils → utils}/compress-files.d.ts +0 -0
  324. /package/dist/{src/utils → utils}/helpers.d.ts +0 -0
  325. /package/dist/{src/utils → utils}/pkg.d.ts +0 -0
  326. /package/dist/{src/utils → utils}/tests/compress-files.test.d.ts +0 -0
@@ -0,0 +1,51 @@
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
+ var logger = require('../services/logger.js');
9
+ var context = require('../services/context.js');
10
+ var analytics = require('../utils/analytics.js');
11
+
12
+ var action = (async ({ strapiVersion })=>{
13
+ const logger$1 = logger.createLogger();
14
+ const { retrieveToken } = await token.tokenServiceFactory({
15
+ logger: logger$1
16
+ });
17
+ const token$1 = await retrieveToken();
18
+ if (!token$1) {
19
+ return;
20
+ }
21
+ const cloudApiService = await cliApi.cloudApiFactory({
22
+ logger: logger$1
23
+ }, token$1);
24
+ try {
25
+ const { data: config } = await cloudApiService.config();
26
+ if (!config?.featureFlags?.growthSsoTrialEnabled) {
27
+ return;
28
+ }
29
+ } catch (e) {
30
+ logger$1.debug('Failed to get cli config', e);
31
+ return;
32
+ }
33
+ try {
34
+ const response = await cloudApiService.createTrial({
35
+ strapiVersion: strapiVersion || ''
36
+ });
37
+ const ctx = context.getContext();
38
+ await analytics.trackEvent(ctx, cloudApiService, 'didCreateGrowthSsoTrial', {
39
+ strapiVersion: strapiVersion || ''
40
+ });
41
+ return {
42
+ license: response.data?.licenseKey
43
+ };
44
+ } catch (e) {
45
+ logger$1.debug(e);
46
+ logger$1.error('We encountered an issue while creating your trial. Please try again in a moment. If the problem persists, contact support for assistance.');
47
+ }
48
+ });
49
+
50
+ module.exports = action;
51
+ //# sourceMappingURL=action.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"action.js","sources":["../../src/create-growth-sso-trial/action.ts"],"sourcesContent":["import { cloudApiFactory, tokenServiceFactory } from '../services';\nimport { getContext } from '../services/context';\nimport { createLogger } from '../services/logger';\nimport { trackEvent } from '../utils/analytics';\n\ninterface CreateGrowthSsoTrialInput {\n strapiVersion: string | undefined;\n}\n\ninterface CreateGrowthSsoTrialResponse {\n license: string;\n}\n\nexport default async ({\n strapiVersion,\n}: CreateGrowthSsoTrialInput): Promise<CreateGrowthSsoTrialResponse | undefined> => {\n const logger = createLogger();\n const { retrieveToken } = await tokenServiceFactory({ logger });\n\n const token = await retrieveToken();\n if (!token) {\n return;\n }\n\n const cloudApiService = await cloudApiFactory({ logger }, token);\n\n try {\n const { data: config } = await cloudApiService.config();\n if (!config?.featureFlags?.growthSsoTrialEnabled) {\n return;\n }\n } catch (e: unknown) {\n logger.debug('Failed to get cli config', e);\n return;\n }\n\n try {\n const response = await cloudApiService.createTrial({ strapiVersion: strapiVersion || '' });\n\n const ctx = getContext();\n\n await trackEvent(ctx, cloudApiService, 'didCreateGrowthSsoTrial', {\n strapiVersion: strapiVersion || '',\n });\n\n return { license: response.data?.licenseKey };\n } catch (e: Error | unknown) {\n logger.debug(e);\n logger.error(\n 'We encountered an issue while creating your trial. Please try again in a moment. If the problem persists, contact support for assistance.'\n );\n }\n};\n"],"names":["strapiVersion","logger","createLogger","retrieveToken","tokenServiceFactory","token","cloudApiService","cloudApiFactory","data","config","featureFlags","growthSsoTrialEnabled","e","debug","response","createTrial","ctx","getContext","trackEvent","license","licenseKey","error"],"mappings":";;;;;;;;;;;AAaA,aAAe,CAAA,OAAO,EACpBA,aAAa,EACa,GAAA;AAC1B,IAAA,MAAMC,QAASC,GAAAA,mBAAAA,EAAAA;AACf,IAAA,MAAM,EAAEC,aAAa,EAAE,GAAG,MAAMC,yBAAoB,CAAA;AAAEH,gBAAAA;AAAO,KAAA,CAAA;AAE7D,IAAA,MAAMI,UAAQ,MAAMF,aAAAA,EAAAA;AACpB,IAAA,IAAI,CAACE,OAAO,EAAA;AACV,QAAA;AACF;IAEA,MAAMC,eAAAA,GAAkB,MAAMC,sBAAgB,CAAA;AAAEN,gBAAAA;KAAUI,EAAAA,OAAAA,CAAAA;IAE1D,IAAI;AACF,QAAA,MAAM,EAAEG,IAAMC,EAAAA,MAAM,EAAE,GAAG,MAAMH,gBAAgBG,MAAM,EAAA;QACrD,IAAI,CAACA,MAAQC,EAAAA,YAAAA,EAAcC,qBAAuB,EAAA;AAChD,YAAA;AACF;AACF,KAAA,CAAE,OAAOC,CAAY,EAAA;QACnBX,QAAOY,CAAAA,KAAK,CAAC,0BAA4BD,EAAAA,CAAAA,CAAAA;AACzC,QAAA;AACF;IAEA,IAAI;AACF,QAAA,MAAME,QAAW,GAAA,MAAMR,eAAgBS,CAAAA,WAAW,CAAC;AAAEf,YAAAA,aAAAA,EAAeA,aAAiB,IAAA;AAAG,SAAA,CAAA;AAExF,QAAA,MAAMgB,GAAMC,GAAAA,kBAAAA,EAAAA;QAEZ,MAAMC,oBAAAA,CAAWF,GAAKV,EAAAA,eAAAA,EAAiB,yBAA2B,EAAA;AAChEN,YAAAA,aAAAA,EAAeA,aAAiB,IAAA;AAClC,SAAA,CAAA;QAEA,OAAO;YAAEmB,OAASL,EAAAA,QAAAA,CAASN,IAAI,EAAEY;AAAW,SAAA;AAC9C,KAAA,CAAE,OAAOR,CAAoB,EAAA;AAC3BX,QAAAA,QAAAA,CAAOY,KAAK,CAACD,CAAAA,CAAAA;AACbX,QAAAA,QAAAA,CAAOoB,KAAK,CACV,2IAAA,CAAA;AAEJ;AACF,CAAA;;;;"}
@@ -0,0 +1,49 @@
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 { createLogger } from '../services/logger.mjs';
7
+ import { getContext } from '../services/context.mjs';
8
+ import { trackEvent } from '../utils/analytics.mjs';
9
+
10
+ var action = (async ({ strapiVersion })=>{
11
+ const logger = createLogger();
12
+ const { retrieveToken } = await tokenServiceFactory({
13
+ logger
14
+ });
15
+ const token = await retrieveToken();
16
+ if (!token) {
17
+ return;
18
+ }
19
+ const cloudApiService = await cloudApiFactory({
20
+ logger
21
+ }, token);
22
+ try {
23
+ const { data: config } = await cloudApiService.config();
24
+ if (!config?.featureFlags?.growthSsoTrialEnabled) {
25
+ return;
26
+ }
27
+ } catch (e) {
28
+ logger.debug('Failed to get cli config', e);
29
+ return;
30
+ }
31
+ try {
32
+ const response = await cloudApiService.createTrial({
33
+ strapiVersion: strapiVersion || ''
34
+ });
35
+ const ctx = getContext();
36
+ await trackEvent(ctx, cloudApiService, 'didCreateGrowthSsoTrial', {
37
+ strapiVersion: strapiVersion || ''
38
+ });
39
+ return {
40
+ license: response.data?.licenseKey
41
+ };
42
+ } catch (e) {
43
+ logger.debug(e);
44
+ logger.error('We encountered an issue while creating your trial. Please try again in a moment. If the problem persists, contact support for assistance.');
45
+ }
46
+ });
47
+
48
+ export { action as default };
49
+ //# sourceMappingURL=action.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"action.mjs","sources":["../../src/create-growth-sso-trial/action.ts"],"sourcesContent":["import { cloudApiFactory, tokenServiceFactory } from '../services';\nimport { getContext } from '../services/context';\nimport { createLogger } from '../services/logger';\nimport { trackEvent } from '../utils/analytics';\n\ninterface CreateGrowthSsoTrialInput {\n strapiVersion: string | undefined;\n}\n\ninterface CreateGrowthSsoTrialResponse {\n license: string;\n}\n\nexport default async ({\n strapiVersion,\n}: CreateGrowthSsoTrialInput): Promise<CreateGrowthSsoTrialResponse | undefined> => {\n const logger = createLogger();\n const { retrieveToken } = await tokenServiceFactory({ logger });\n\n const token = await retrieveToken();\n if (!token) {\n return;\n }\n\n const cloudApiService = await cloudApiFactory({ logger }, token);\n\n try {\n const { data: config } = await cloudApiService.config();\n if (!config?.featureFlags?.growthSsoTrialEnabled) {\n return;\n }\n } catch (e: unknown) {\n logger.debug('Failed to get cli config', e);\n return;\n }\n\n try {\n const response = await cloudApiService.createTrial({ strapiVersion: strapiVersion || '' });\n\n const ctx = getContext();\n\n await trackEvent(ctx, cloudApiService, 'didCreateGrowthSsoTrial', {\n strapiVersion: strapiVersion || '',\n });\n\n return { license: response.data?.licenseKey };\n } catch (e: Error | unknown) {\n logger.debug(e);\n logger.error(\n 'We encountered an issue while creating your trial. Please try again in a moment. If the problem persists, contact support for assistance.'\n );\n }\n};\n"],"names":["strapiVersion","logger","createLogger","retrieveToken","tokenServiceFactory","token","cloudApiService","cloudApiFactory","data","config","featureFlags","growthSsoTrialEnabled","e","debug","response","createTrial","ctx","getContext","trackEvent","license","licenseKey","error"],"mappings":";;;;;;;;;AAaA,aAAe,CAAA,OAAO,EACpBA,aAAa,EACa,GAAA;AAC1B,IAAA,MAAMC,MAASC,GAAAA,YAAAA,EAAAA;AACf,IAAA,MAAM,EAAEC,aAAa,EAAE,GAAG,MAAMC,mBAAoB,CAAA;AAAEH,QAAAA;AAAO,KAAA,CAAA;AAE7D,IAAA,MAAMI,QAAQ,MAAMF,aAAAA,EAAAA;AACpB,IAAA,IAAI,CAACE,KAAO,EAAA;AACV,QAAA;AACF;IAEA,MAAMC,eAAAA,GAAkB,MAAMC,eAAgB,CAAA;AAAEN,QAAAA;KAAUI,EAAAA,KAAAA,CAAAA;IAE1D,IAAI;AACF,QAAA,MAAM,EAAEG,IAAMC,EAAAA,MAAM,EAAE,GAAG,MAAMH,gBAAgBG,MAAM,EAAA;QACrD,IAAI,CAACA,MAAQC,EAAAA,YAAAA,EAAcC,qBAAuB,EAAA;AAChD,YAAA;AACF;AACF,KAAA,CAAE,OAAOC,CAAY,EAAA;QACnBX,MAAOY,CAAAA,KAAK,CAAC,0BAA4BD,EAAAA,CAAAA,CAAAA;AACzC,QAAA;AACF;IAEA,IAAI;AACF,QAAA,MAAME,QAAW,GAAA,MAAMR,eAAgBS,CAAAA,WAAW,CAAC;AAAEf,YAAAA,aAAAA,EAAeA,aAAiB,IAAA;AAAG,SAAA,CAAA;AAExF,QAAA,MAAMgB,GAAMC,GAAAA,UAAAA,EAAAA;QAEZ,MAAMC,UAAAA,CAAWF,GAAKV,EAAAA,eAAAA,EAAiB,yBAA2B,EAAA;AAChEN,YAAAA,aAAAA,EAAeA,aAAiB,IAAA;AAClC,SAAA,CAAA;QAEA,OAAO;YAAEmB,OAASL,EAAAA,QAAAA,CAASN,IAAI,EAAEY;AAAW,SAAA;AAC9C,KAAA,CAAE,OAAOR,CAAoB,EAAA;AAC3BX,QAAAA,MAAAA,CAAOY,KAAK,CAACD,CAAAA,CAAAA;AACbX,QAAAA,MAAAA,CAAOoB,KAAK,CACV,2IAAA,CAAA;AAEJ;AACF,CAAA;;;;"}
@@ -0,0 +1,4 @@
1
+ import action from './action';
2
+ export { action };
3
+ export { action as createGrowthSsoTrial };
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/create-growth-sso-trial/index.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,UAAU,CAAC;AAE9B,OAAO,EAAE,MAAM,EAAE,CAAC;AAElB,OAAO,EAAE,MAAM,IAAI,oBAAoB,EAAE,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { CLIContext, CreateProjectResponse } from '../types';
2
+ declare const _default: (ctx: CLIContext) => Promise<CreateProjectResponse | undefined>;
3
+ export default _default;
4
+ //# sourceMappingURL=action.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"action.d.ts","sourceRoot":"","sources":["../../src/create-project/action.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,UAAU,EAGV,qBAAqB,EAGtB,MAAM,UAAU,CAAC;8BAsGS,UAAU;AAArC,wBAyCE"}
@@ -0,0 +1,122 @@
1
+ 'use strict';
2
+
3
+ var inquirer = require('inquirer');
4
+ var axios = require('axios');
5
+ var fp = require('lodash/fp');
6
+ var cliApi = require('../services/cli-api.js');
7
+ var strapiInfoSave = require('../services/strapi-info-save.js');
8
+ var token = require('../services/token.js');
9
+ require('chalk');
10
+ require('fast-safe-stringify');
11
+ require('ora');
12
+ require('cli-progress');
13
+ var getProjectNameFromPkg = require('./utils/get-project-name-from-pkg.js');
14
+ var action$1 = require('../login/action.js');
15
+ var projectQuestions_utils = require('./utils/project-questions.utils.js');
16
+ var api = require('../config/api.js');
17
+ var notification = require('../services/notification.js');
18
+ var errorMessageFactories = require('../utils/error-message-factories.js');
19
+
20
+ async function handleError(ctx, error) {
21
+ const { logger } = ctx;
22
+ logger.debug(error);
23
+ if (error instanceof axios.AxiosError) {
24
+ const errorMessage = typeof error.response?.data === 'string' ? error.response.data : null;
25
+ switch(error.response?.status){
26
+ case 400:
27
+ logger.error(errorMessage || 'Invalid input. Please check your inputs and try again.');
28
+ return;
29
+ case 403:
30
+ logger.error(errorMessage || 'You do not have permission to create a project. Please contact support for assistance.');
31
+ return;
32
+ case 503:
33
+ logger.error('Strapi Cloud project creation is currently unavailable. Please try again later.');
34
+ return;
35
+ default:
36
+ if (errorMessage) {
37
+ logger.error(errorMessage);
38
+ throw error;
39
+ }
40
+ break;
41
+ }
42
+ }
43
+ logger.error('We encountered an issue while creating your project. Please try again in a moment. If the problem persists, contact support for assistance.');
44
+ }
45
+ async function createProject(ctx, cloudApi, projectInput, token, config) {
46
+ const { logger } = ctx;
47
+ const projectSpinner = logger.spinner('Setting up your project...').start();
48
+ projectSpinner.indent = 1;
49
+ const notificationService = notification.notificationServiceFactory(ctx);
50
+ const { waitForEnvironmentCreation, close } = notificationService(`${api.apiConfig.apiBaseUrl}/${cliApi.VERSION}/notifications`, token, config);
51
+ let projectData;
52
+ try {
53
+ const { data } = await cloudApi.createProject(projectInput);
54
+ projectData = data;
55
+ await strapiInfoSave.save({
56
+ project: data
57
+ });
58
+ projectSpinner.succeed('Project created successfully!');
59
+ } catch (e) {
60
+ projectSpinner.fail(`An error occurred while creating the project on Strapi Cloud.`);
61
+ close();
62
+ throw e;
63
+ }
64
+ if (config.featureFlags.asyncProjectCreationEnabled) {
65
+ const environmentSpinner = logger.spinner('Setting up your environment... This may take a minute...').start();
66
+ environmentSpinner.indent = 1;
67
+ try {
68
+ await waitForEnvironmentCreation(projectData.environmentInternalName);
69
+ environmentSpinner.succeed('Environment created successfully!\n');
70
+ } catch (e) {
71
+ environmentSpinner.fail(`An error occurred while creating the environment on Strapi Cloud.\n`);
72
+ const environmentErrorMessage = errorMessageFactories.environmentErrorMessageFactory({
73
+ projectName: projectData.name,
74
+ firstLine: config.projectCreation.errors.environmentCreationFailed.firstLine,
75
+ secondLine: config.projectCreation.errors.environmentCreationFailed.secondLine
76
+ });
77
+ logger.log(errorMessageFactories.environmentCreationErrorFactory(environmentErrorMessage));
78
+ return;
79
+ }
80
+ }
81
+ close();
82
+ return projectData;
83
+ }
84
+ var action = (async (ctx)=>{
85
+ const { logger } = ctx;
86
+ const { getValidToken, eraseToken } = await token.tokenServiceFactory(ctx);
87
+ const token$1 = await getValidToken(ctx, action$1.promptLogin);
88
+ if (!token$1) {
89
+ return;
90
+ }
91
+ const cloudApi = await cliApi.cloudApiFactory(ctx, token$1);
92
+ const { data: config } = await cloudApi.config();
93
+ const projectName = await getProjectNameFromPkg.getProjectNameFromPackageJson(ctx);
94
+ const defaultAnswersMapper = projectQuestions_utils.questionDefaultValuesMapper({
95
+ name: projectName,
96
+ nodeVersion: projectQuestions_utils.getProjectNodeVersionDefault
97
+ });
98
+ const questions = defaultAnswersMapper(config.projectCreation.questions);
99
+ const defaultValues = {
100
+ ...config.projectCreation.defaults,
101
+ ...projectQuestions_utils.getDefaultsFromQuestions(questions)
102
+ };
103
+ const projectAnswersDefaulted = fp.defaults(defaultValues);
104
+ const projectAnswers = await inquirer.prompt(questions);
105
+ const projectInput = projectAnswersDefaulted(projectAnswers);
106
+ try {
107
+ return await createProject(ctx, cloudApi, projectInput, token$1, config);
108
+ } catch (e) {
109
+ if (e instanceof axios.AxiosError && e.response?.status === 401) {
110
+ logger.warn('Oops! Your session has expired. Please log in again to retry.');
111
+ await eraseToken();
112
+ if (await action$1.promptLogin(ctx)) {
113
+ return await createProject(ctx, cloudApi, projectInput, token$1, config);
114
+ }
115
+ } else {
116
+ await handleError(ctx, e);
117
+ }
118
+ }
119
+ });
120
+
121
+ module.exports = action;
122
+ //# sourceMappingURL=action.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"action.js","sources":["../../src/create-project/action.ts"],"sourcesContent":["import inquirer from 'inquirer';\nimport { AxiosError } from 'axios';\nimport { defaults } from 'lodash/fp';\nimport {\n CLIContext,\n CloudApiService,\n CloudCliConfig,\n CreateProjectResponse,\n ProjectAnswers,\n ProjectInput,\n} from '../types';\nimport { cloudApiFactory, local, tokenServiceFactory } from '../services';\nimport { VERSION } from '../services/cli-api';\nimport { getProjectNameFromPackageJson } from './utils/get-project-name-from-pkg';\nimport { promptLogin } from '../login/action';\nimport {\n getDefaultsFromQuestions,\n getProjectNodeVersionDefault,\n questionDefaultValuesMapper,\n} from './utils/project-questions.utils';\nimport { apiConfig } from '../config/api';\nimport { notificationServiceFactory } from '../services/notification';\nimport {\n environmentCreationErrorFactory,\n environmentErrorMessageFactory,\n} from '../utils/error-message-factories';\n\nasync function handleError(ctx: CLIContext, error: Error) {\n const { logger } = ctx;\n logger.debug(error);\n if (error instanceof AxiosError) {\n const errorMessage = typeof error.response?.data === 'string' ? error.response.data : null;\n switch (error.response?.status) {\n case 400:\n logger.error(errorMessage || 'Invalid input. Please check your inputs and try again.');\n return;\n case 403:\n logger.error(\n errorMessage ||\n 'You do not have permission to create a project. Please contact support for assistance.'\n );\n return;\n case 503:\n logger.error(\n 'Strapi Cloud project creation is currently unavailable. Please try again later.'\n );\n return;\n default:\n if (errorMessage) {\n logger.error(errorMessage);\n throw error;\n }\n break;\n }\n }\n logger.error(\n 'We encountered an issue while creating your project. Please try again in a moment. If the problem persists, contact support for assistance.'\n );\n}\n\nasync function createProject(\n ctx: CLIContext,\n cloudApi: CloudApiService,\n projectInput: ProjectInput,\n token: string,\n config: CloudCliConfig\n) {\n const { logger } = ctx;\n const projectSpinner = logger.spinner('Setting up your project...').start();\n projectSpinner.indent = 1;\n const notificationService = notificationServiceFactory(ctx);\n const { waitForEnvironmentCreation, close } = notificationService(\n `${apiConfig.apiBaseUrl}/${VERSION}/notifications`,\n token,\n config\n );\n let projectData: CreateProjectResponse;\n try {\n const { data } = await cloudApi.createProject(projectInput);\n projectData = data;\n await local.save({ project: data });\n projectSpinner.succeed('Project created successfully!');\n } catch (e: Error | unknown) {\n projectSpinner.fail(`An error occurred while creating the project on Strapi Cloud.`);\n close();\n throw e;\n }\n if (config.featureFlags.asyncProjectCreationEnabled) {\n const environmentSpinner = logger\n .spinner('Setting up your environment... This may take a minute...')\n .start();\n environmentSpinner.indent = 1;\n try {\n await waitForEnvironmentCreation(projectData.environmentInternalName);\n environmentSpinner.succeed('Environment created successfully!\\n');\n } catch (e: Error | unknown) {\n environmentSpinner.fail(\n `An error occurred while creating the environment on Strapi Cloud.\\n`\n );\n const environmentErrorMessage = environmentErrorMessageFactory({\n projectName: projectData.name,\n firstLine: config.projectCreation.errors.environmentCreationFailed.firstLine,\n secondLine: config.projectCreation.errors.environmentCreationFailed.secondLine,\n });\n logger.log(environmentCreationErrorFactory(environmentErrorMessage));\n return;\n }\n }\n close();\n return projectData;\n}\n\nexport default async (ctx: CLIContext) => {\n const { logger } = ctx;\n const { getValidToken, eraseToken } = await tokenServiceFactory(ctx);\n\n const token = await getValidToken(ctx, promptLogin);\n if (!token) {\n return;\n }\n\n const cloudApi = await cloudApiFactory(ctx, token);\n const { data: config } = await cloudApi.config();\n const projectName = await getProjectNameFromPackageJson(ctx);\n\n const defaultAnswersMapper = questionDefaultValuesMapper({\n name: projectName,\n nodeVersion: getProjectNodeVersionDefault,\n });\n const questions = defaultAnswersMapper(config.projectCreation.questions);\n const defaultValues = {\n ...config.projectCreation.defaults,\n ...getDefaultsFromQuestions(questions),\n };\n\n const projectAnswersDefaulted = defaults(defaultValues);\n const projectAnswers = await inquirer.prompt<ProjectAnswers>(questions);\n\n const projectInput: ProjectInput = projectAnswersDefaulted(projectAnswers);\n\n try {\n return await createProject(ctx, cloudApi, projectInput, token, config);\n } catch (e: Error | unknown) {\n if (e instanceof AxiosError && e.response?.status === 401) {\n logger.warn('Oops! Your session has expired. Please log in again to retry.');\n await eraseToken();\n if (await promptLogin(ctx)) {\n return await createProject(ctx, cloudApi, projectInput, token, config);\n }\n } else {\n await handleError(ctx, e as Error);\n }\n }\n};\n"],"names":["handleError","ctx","error","logger","debug","AxiosError","errorMessage","response","data","status","createProject","cloudApi","projectInput","token","config","projectSpinner","spinner","start","indent","notificationService","notificationServiceFactory","waitForEnvironmentCreation","close","apiConfig","apiBaseUrl","VERSION","projectData","local","project","succeed","e","fail","featureFlags","asyncProjectCreationEnabled","environmentSpinner","environmentInternalName","environmentErrorMessage","environmentErrorMessageFactory","projectName","name","firstLine","projectCreation","errors","environmentCreationFailed","secondLine","log","environmentCreationErrorFactory","getValidToken","eraseToken","tokenServiceFactory","promptLogin","cloudApiFactory","getProjectNameFromPackageJson","defaultAnswersMapper","questionDefaultValuesMapper","nodeVersion","getProjectNodeVersionDefault","questions","defaultValues","defaults","getDefaultsFromQuestions","projectAnswersDefaulted","projectAnswers","inquirer","prompt","warn"],"mappings":"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"}
@@ -0,0 +1,120 @@
1
+ import inquirer from 'inquirer';
2
+ import { AxiosError } from 'axios';
3
+ import { defaults } from 'lodash/fp';
4
+ import { cloudApiFactory, VERSION } from '../services/cli-api.mjs';
5
+ import { save } from '../services/strapi-info-save.mjs';
6
+ import { tokenServiceFactory } from '../services/token.mjs';
7
+ import 'chalk';
8
+ import 'fast-safe-stringify';
9
+ import 'ora';
10
+ import 'cli-progress';
11
+ import { getProjectNameFromPackageJson } from './utils/get-project-name-from-pkg.mjs';
12
+ import { promptLogin } from '../login/action.mjs';
13
+ import { getDefaultsFromQuestions, questionDefaultValuesMapper, getProjectNodeVersionDefault } from './utils/project-questions.utils.mjs';
14
+ import { apiConfig } from '../config/api.mjs';
15
+ import { notificationServiceFactory } from '../services/notification.mjs';
16
+ import { environmentErrorMessageFactory, environmentCreationErrorFactory } from '../utils/error-message-factories.mjs';
17
+
18
+ async function handleError(ctx, error) {
19
+ const { logger } = ctx;
20
+ logger.debug(error);
21
+ if (error instanceof AxiosError) {
22
+ const errorMessage = typeof error.response?.data === 'string' ? error.response.data : null;
23
+ switch(error.response?.status){
24
+ case 400:
25
+ logger.error(errorMessage || 'Invalid input. Please check your inputs and try again.');
26
+ return;
27
+ case 403:
28
+ logger.error(errorMessage || 'You do not have permission to create a project. Please contact support for assistance.');
29
+ return;
30
+ case 503:
31
+ logger.error('Strapi Cloud project creation is currently unavailable. Please try again later.');
32
+ return;
33
+ default:
34
+ if (errorMessage) {
35
+ logger.error(errorMessage);
36
+ throw error;
37
+ }
38
+ break;
39
+ }
40
+ }
41
+ logger.error('We encountered an issue while creating your project. Please try again in a moment. If the problem persists, contact support for assistance.');
42
+ }
43
+ async function createProject(ctx, cloudApi, projectInput, token, config) {
44
+ const { logger } = ctx;
45
+ const projectSpinner = logger.spinner('Setting up your project...').start();
46
+ projectSpinner.indent = 1;
47
+ const notificationService = notificationServiceFactory(ctx);
48
+ const { waitForEnvironmentCreation, close } = notificationService(`${apiConfig.apiBaseUrl}/${VERSION}/notifications`, token, config);
49
+ let projectData;
50
+ try {
51
+ const { data } = await cloudApi.createProject(projectInput);
52
+ projectData = data;
53
+ await save({
54
+ project: data
55
+ });
56
+ projectSpinner.succeed('Project created successfully!');
57
+ } catch (e) {
58
+ projectSpinner.fail(`An error occurred while creating the project on Strapi Cloud.`);
59
+ close();
60
+ throw e;
61
+ }
62
+ if (config.featureFlags.asyncProjectCreationEnabled) {
63
+ const environmentSpinner = logger.spinner('Setting up your environment... This may take a minute...').start();
64
+ environmentSpinner.indent = 1;
65
+ try {
66
+ await waitForEnvironmentCreation(projectData.environmentInternalName);
67
+ environmentSpinner.succeed('Environment created successfully!\n');
68
+ } catch (e) {
69
+ environmentSpinner.fail(`An error occurred while creating the environment on Strapi Cloud.\n`);
70
+ const environmentErrorMessage = environmentErrorMessageFactory({
71
+ projectName: projectData.name,
72
+ firstLine: config.projectCreation.errors.environmentCreationFailed.firstLine,
73
+ secondLine: config.projectCreation.errors.environmentCreationFailed.secondLine
74
+ });
75
+ logger.log(environmentCreationErrorFactory(environmentErrorMessage));
76
+ return;
77
+ }
78
+ }
79
+ close();
80
+ return projectData;
81
+ }
82
+ var action = (async (ctx)=>{
83
+ const { logger } = ctx;
84
+ const { getValidToken, eraseToken } = await tokenServiceFactory(ctx);
85
+ const token = await getValidToken(ctx, promptLogin);
86
+ if (!token) {
87
+ return;
88
+ }
89
+ const cloudApi = await cloudApiFactory(ctx, token);
90
+ const { data: config } = await cloudApi.config();
91
+ const projectName = await getProjectNameFromPackageJson(ctx);
92
+ const defaultAnswersMapper = questionDefaultValuesMapper({
93
+ name: projectName,
94
+ nodeVersion: getProjectNodeVersionDefault
95
+ });
96
+ const questions = defaultAnswersMapper(config.projectCreation.questions);
97
+ const defaultValues = {
98
+ ...config.projectCreation.defaults,
99
+ ...getDefaultsFromQuestions(questions)
100
+ };
101
+ const projectAnswersDefaulted = defaults(defaultValues);
102
+ const projectAnswers = await inquirer.prompt(questions);
103
+ const projectInput = projectAnswersDefaulted(projectAnswers);
104
+ try {
105
+ return await createProject(ctx, cloudApi, projectInput, token, config);
106
+ } catch (e) {
107
+ if (e instanceof AxiosError && e.response?.status === 401) {
108
+ logger.warn('Oops! Your session has expired. Please log in again to retry.');
109
+ await eraseToken();
110
+ if (await promptLogin(ctx)) {
111
+ return await createProject(ctx, cloudApi, projectInput, token, config);
112
+ }
113
+ } else {
114
+ await handleError(ctx, e);
115
+ }
116
+ }
117
+ });
118
+
119
+ export { action as default };
120
+ //# sourceMappingURL=action.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"action.mjs","sources":["../../src/create-project/action.ts"],"sourcesContent":["import inquirer from 'inquirer';\nimport { AxiosError } from 'axios';\nimport { defaults } from 'lodash/fp';\nimport {\n CLIContext,\n CloudApiService,\n CloudCliConfig,\n CreateProjectResponse,\n ProjectAnswers,\n ProjectInput,\n} from '../types';\nimport { cloudApiFactory, local, tokenServiceFactory } from '../services';\nimport { VERSION } from '../services/cli-api';\nimport { getProjectNameFromPackageJson } from './utils/get-project-name-from-pkg';\nimport { promptLogin } from '../login/action';\nimport {\n getDefaultsFromQuestions,\n getProjectNodeVersionDefault,\n questionDefaultValuesMapper,\n} from './utils/project-questions.utils';\nimport { apiConfig } from '../config/api';\nimport { notificationServiceFactory } from '../services/notification';\nimport {\n environmentCreationErrorFactory,\n environmentErrorMessageFactory,\n} from '../utils/error-message-factories';\n\nasync function handleError(ctx: CLIContext, error: Error) {\n const { logger } = ctx;\n logger.debug(error);\n if (error instanceof AxiosError) {\n const errorMessage = typeof error.response?.data === 'string' ? error.response.data : null;\n switch (error.response?.status) {\n case 400:\n logger.error(errorMessage || 'Invalid input. Please check your inputs and try again.');\n return;\n case 403:\n logger.error(\n errorMessage ||\n 'You do not have permission to create a project. Please contact support for assistance.'\n );\n return;\n case 503:\n logger.error(\n 'Strapi Cloud project creation is currently unavailable. Please try again later.'\n );\n return;\n default:\n if (errorMessage) {\n logger.error(errorMessage);\n throw error;\n }\n break;\n }\n }\n logger.error(\n 'We encountered an issue while creating your project. Please try again in a moment. If the problem persists, contact support for assistance.'\n );\n}\n\nasync function createProject(\n ctx: CLIContext,\n cloudApi: CloudApiService,\n projectInput: ProjectInput,\n token: string,\n config: CloudCliConfig\n) {\n const { logger } = ctx;\n const projectSpinner = logger.spinner('Setting up your project...').start();\n projectSpinner.indent = 1;\n const notificationService = notificationServiceFactory(ctx);\n const { waitForEnvironmentCreation, close } = notificationService(\n `${apiConfig.apiBaseUrl}/${VERSION}/notifications`,\n token,\n config\n );\n let projectData: CreateProjectResponse;\n try {\n const { data } = await cloudApi.createProject(projectInput);\n projectData = data;\n await local.save({ project: data });\n projectSpinner.succeed('Project created successfully!');\n } catch (e: Error | unknown) {\n projectSpinner.fail(`An error occurred while creating the project on Strapi Cloud.`);\n close();\n throw e;\n }\n if (config.featureFlags.asyncProjectCreationEnabled) {\n const environmentSpinner = logger\n .spinner('Setting up your environment... This may take a minute...')\n .start();\n environmentSpinner.indent = 1;\n try {\n await waitForEnvironmentCreation(projectData.environmentInternalName);\n environmentSpinner.succeed('Environment created successfully!\\n');\n } catch (e: Error | unknown) {\n environmentSpinner.fail(\n `An error occurred while creating the environment on Strapi Cloud.\\n`\n );\n const environmentErrorMessage = environmentErrorMessageFactory({\n projectName: projectData.name,\n firstLine: config.projectCreation.errors.environmentCreationFailed.firstLine,\n secondLine: config.projectCreation.errors.environmentCreationFailed.secondLine,\n });\n logger.log(environmentCreationErrorFactory(environmentErrorMessage));\n return;\n }\n }\n close();\n return projectData;\n}\n\nexport default async (ctx: CLIContext) => {\n const { logger } = ctx;\n const { getValidToken, eraseToken } = await tokenServiceFactory(ctx);\n\n const token = await getValidToken(ctx, promptLogin);\n if (!token) {\n return;\n }\n\n const cloudApi = await cloudApiFactory(ctx, token);\n const { data: config } = await cloudApi.config();\n const projectName = await getProjectNameFromPackageJson(ctx);\n\n const defaultAnswersMapper = questionDefaultValuesMapper({\n name: projectName,\n nodeVersion: getProjectNodeVersionDefault,\n });\n const questions = defaultAnswersMapper(config.projectCreation.questions);\n const defaultValues = {\n ...config.projectCreation.defaults,\n ...getDefaultsFromQuestions(questions),\n };\n\n const projectAnswersDefaulted = defaults(defaultValues);\n const projectAnswers = await inquirer.prompt<ProjectAnswers>(questions);\n\n const projectInput: ProjectInput = projectAnswersDefaulted(projectAnswers);\n\n try {\n return await createProject(ctx, cloudApi, projectInput, token, config);\n } catch (e: Error | unknown) {\n if (e instanceof AxiosError && e.response?.status === 401) {\n logger.warn('Oops! Your session has expired. Please log in again to retry.');\n await eraseToken();\n if (await promptLogin(ctx)) {\n return await createProject(ctx, cloudApi, projectInput, token, config);\n }\n } else {\n await handleError(ctx, e as Error);\n }\n }\n};\n"],"names":["handleError","ctx","error","logger","debug","AxiosError","errorMessage","response","data","status","createProject","cloudApi","projectInput","token","config","projectSpinner","spinner","start","indent","notificationService","notificationServiceFactory","waitForEnvironmentCreation","close","apiConfig","apiBaseUrl","VERSION","projectData","local","project","succeed","e","fail","featureFlags","asyncProjectCreationEnabled","environmentSpinner","environmentInternalName","environmentErrorMessage","environmentErrorMessageFactory","projectName","name","firstLine","projectCreation","errors","environmentCreationFailed","secondLine","log","environmentCreationErrorFactory","getValidToken","eraseToken","tokenServiceFactory","promptLogin","cloudApiFactory","getProjectNameFromPackageJson","defaultAnswersMapper","questionDefaultValuesMapper","nodeVersion","getProjectNodeVersionDefault","questions","defaultValues","defaults","getDefaultsFromQuestions","projectAnswersDefaulted","projectAnswers","inquirer","prompt","warn"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../src/create-project/command.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAInD;;GAEG;AACH,QAAA,MAAM,OAAO,EAAE,kBAMd,CAAC;AAEF,eAAe,OAAO,CAAC"}
@@ -0,0 +1,14 @@
1
+ 'use strict';
2
+
3
+ var commander = require('commander');
4
+ var helpers = require('../utils/helpers.js');
5
+ var action = require('./action.js');
6
+
7
+ /**
8
+ * `$ create project in Strapi cloud`
9
+ */ const command = ({ ctx })=>{
10
+ return commander.createCommand('cloud:create-project').description('Create a Strapi Cloud project').option('-d, --debug', 'Enable debugging mode with verbose logs').option('-s, --silent', "Don't log anything").action(()=>helpers.runAction('cloud:create-project', action)(ctx));
11
+ };
12
+
13
+ module.exports = command;
14
+ //# sourceMappingURL=command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command.js","sources":["../../src/create-project/command.ts"],"sourcesContent":["import { createCommand } from 'commander';\nimport { type StrapiCloudCommand } from '../types';\nimport { runAction } from '../utils/helpers';\nimport action from './action';\n\n/**\n * `$ create project in Strapi cloud`\n */\nconst command: StrapiCloudCommand = ({ ctx }) => {\n return createCommand('cloud:create-project')\n .description('Create 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('cloud:create-project', action)(ctx));\n};\n\nexport default command;\n"],"names":["command","ctx","createCommand","description","option","action","runAction"],"mappings":";;;;;;AAKA;;AAEC,IACKA,MAAAA,OAAAA,GAA8B,CAAC,EAAEC,GAAG,EAAE,GAAA;AAC1C,IAAA,OAAOC,wBAAc,sBAClBC,CAAAA,CAAAA,WAAW,CAAC,+BACZC,CAAAA,CAAAA,MAAM,CAAC,aAAe,EAAA,yCAAA,CAAA,CACtBA,MAAM,CAAC,gBAAgB,oBACvBC,CAAAA,CAAAA,MAAM,CAAC,IAAMC,iBAAAA,CAAU,wBAAwBD,MAAQJ,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA;AAC5D;;;;"}
@@ -0,0 +1,12 @@
1
+ import { createCommand } from 'commander';
2
+ import { runAction } from '../utils/helpers.mjs';
3
+ import action from './action.mjs';
4
+
5
+ /**
6
+ * `$ create project in Strapi cloud`
7
+ */ const command = ({ ctx })=>{
8
+ return createCommand('cloud:create-project').description('Create a Strapi Cloud project').option('-d, --debug', 'Enable debugging mode with verbose logs').option('-s, --silent', "Don't log anything").action(()=>runAction('cloud:create-project', action)(ctx));
9
+ };
10
+
11
+ export { command as default };
12
+ //# sourceMappingURL=command.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command.mjs","sources":["../../src/create-project/command.ts"],"sourcesContent":["import { createCommand } from 'commander';\nimport { type StrapiCloudCommand } from '../types';\nimport { runAction } from '../utils/helpers';\nimport action from './action';\n\n/**\n * `$ create project in Strapi cloud`\n */\nconst command: StrapiCloudCommand = ({ ctx }) => {\n return createCommand('cloud:create-project')\n .description('Create 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('cloud:create-project', action)(ctx));\n};\n\nexport default command;\n"],"names":["command","ctx","createCommand","description","option","action","runAction"],"mappings":";;;;AAKA;;AAEC,IACKA,MAAAA,OAAAA,GAA8B,CAAC,EAAEC,GAAG,EAAE,GAAA;AAC1C,IAAA,OAAOC,cAAc,sBAClBC,CAAAA,CAAAA,WAAW,CAAC,+BACZC,CAAAA,CAAAA,MAAM,CAAC,aAAe,EAAA,yCAAA,CAAA,CACtBA,MAAM,CAAC,gBAAgB,oBACvBC,CAAAA,CAAAA,MAAM,CAAC,IAAMC,SAAAA,CAAU,wBAAwBD,MAAQJ,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA;AAC5D;;;;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/create-project/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 createProject = {
9
+ name: 'create-project',
10
+ description: 'Create a new project',
11
+ action,
12
+ command
13
+ };
14
+
15
+ exports.action = action;
16
+ exports.command = command;
17
+ exports.default = createProject;
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../src/create-project/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: 'create-project',\n description: 'Create a new project',\n action,\n command,\n} as StrapiCloudCommandInfo;\n"],"names":["name","description","action","command"],"mappings":";;;;;;;AAMA,oBAAe;IACbA,IAAM,EAAA,gBAAA;IACNC,WAAa,EAAA,sBAAA;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 createProject = {
5
+ name: 'create-project',
6
+ description: 'Create a new project',
7
+ action,
8
+ command
9
+ };
10
+
11
+ export { action, command, createProject as default };
12
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../../src/create-project/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: 'create-project',\n description: 'Create a new project',\n action,\n command,\n} as StrapiCloudCommandInfo;\n"],"names":["name","description","action","command"],"mappings":";;;AAMA,oBAAe;IACbA,IAAM,EAAA,gBAAA;IACNC,WAAa,EAAA,sBAAA;AACbC,IAAAA,MAAAA;AACAC,IAAAA;AACF,CAA4B;;;;"}
@@ -0,0 +1,3 @@
1
+ import { CLIContext } from '../../types';
2
+ export declare function getProjectNameFromPackageJson(ctx: CLIContext): Promise<string>;
3
+ //# sourceMappingURL=get-project-name-from-pkg.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-project-name-from-pkg.d.ts","sourceRoot":"","sources":["../../../src/create-project/utils/get-project-name-from-pkg.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,wBAAsB,6BAA6B,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAOpF"}
@@ -0,0 +1,15 @@
1
+ 'use strict';
2
+
3
+ var pkg = require('../../utils/pkg.js');
4
+
5
+ async function getProjectNameFromPackageJson(ctx) {
6
+ try {
7
+ const packageJson = await pkg.loadPkg(ctx);
8
+ return packageJson.name || 'my-strapi-project';
9
+ } catch (e) {
10
+ return 'my-strapi-project';
11
+ }
12
+ }
13
+
14
+ exports.getProjectNameFromPackageJson = getProjectNameFromPackageJson;
15
+ //# sourceMappingURL=get-project-name-from-pkg.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-project-name-from-pkg.js","sources":["../../../src/create-project/utils/get-project-name-from-pkg.ts"],"sourcesContent":["import { CLIContext } from '../../types';\nimport { PackageJson, loadPkg } from '../../utils/pkg';\n\nexport async function getProjectNameFromPackageJson(ctx: CLIContext): Promise<string> {\n try {\n const packageJson = (await loadPkg(ctx)) as PackageJson;\n return packageJson.name || 'my-strapi-project';\n } catch (e) {\n return 'my-strapi-project';\n }\n}\n"],"names":["getProjectNameFromPackageJson","ctx","packageJson","loadPkg","name","e"],"mappings":";;;;AAGO,eAAeA,8BAA8BC,GAAe,EAAA;IACjE,IAAI;QACF,MAAMC,WAAAA,GAAe,MAAMC,WAAQF,CAAAA,GAAAA,CAAAA;QACnC,OAAOC,WAAAA,CAAYE,IAAI,IAAI,mBAAA;AAC7B,KAAA,CAAE,OAAOC,CAAG,EAAA;QACV,OAAO,mBAAA;AACT;AACF;;;;"}
@@ -0,0 +1,13 @@
1
+ import { loadPkg } from '../../utils/pkg.mjs';
2
+
3
+ async function getProjectNameFromPackageJson(ctx) {
4
+ try {
5
+ const packageJson = await loadPkg(ctx);
6
+ return packageJson.name || 'my-strapi-project';
7
+ } catch (e) {
8
+ return 'my-strapi-project';
9
+ }
10
+ }
11
+
12
+ export { getProjectNameFromPackageJson };
13
+ //# sourceMappingURL=get-project-name-from-pkg.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-project-name-from-pkg.mjs","sources":["../../../src/create-project/utils/get-project-name-from-pkg.ts"],"sourcesContent":["import { CLIContext } from '../../types';\nimport { PackageJson, loadPkg } from '../../utils/pkg';\n\nexport async function getProjectNameFromPackageJson(ctx: CLIContext): Promise<string> {\n try {\n const packageJson = (await loadPkg(ctx)) as PackageJson;\n return packageJson.name || 'my-strapi-project';\n } catch (e) {\n return 'my-strapi-project';\n }\n}\n"],"names":["getProjectNameFromPackageJson","ctx","packageJson","loadPkg","name","e"],"mappings":";;AAGO,eAAeA,8BAA8BC,GAAe,EAAA;IACjE,IAAI;QACF,MAAMC,WAAAA,GAAe,MAAMC,OAAQF,CAAAA,GAAAA,CAAAA;QACnC,OAAOC,WAAAA,CAAYE,IAAI,IAAI,mBAAA;AAC7B,KAAA,CAAE,OAAOC,CAAG,EAAA;QACV,OAAO,mBAAA;AACT;AACF;;;;"}
@@ -0,0 +1,20 @@
1
+ import { DistinctQuestion } from 'inquirer';
2
+ import type { ProjectAnswers } from '../../types';
3
+ /**
4
+ * Apply default values to questions based on the provided mapper
5
+ * @param questionsMap - A partial object with keys matching the ProjectAnswers keys and values being the default value or a function to get the default value
6
+ */
7
+ export declare function questionDefaultValuesMapper(questionsMap: Partial<{
8
+ [K in keyof ProjectAnswers]: ((question: DistinctQuestion<ProjectAnswers>) => ProjectAnswers[K]) | ProjectAnswers[K];
9
+ }>): (questions: ReadonlyArray<DistinctQuestion<ProjectAnswers>>) => ReadonlyArray<DistinctQuestion<ProjectAnswers>>;
10
+ /**
11
+ * Get default values from questions
12
+ * @param questions - An array of questions for project creation
13
+ */
14
+ export declare function getDefaultsFromQuestions(questions: ReadonlyArray<DistinctQuestion<ProjectAnswers>>): Partial<ProjectAnswers>;
15
+ /**
16
+ * Get the default node version based on the current node version if it is in the list of choices
17
+ * @param question - The question for the node version in project creation
18
+ */
19
+ export declare function getProjectNodeVersionDefault(question: DistinctQuestion<ProjectAnswers>): string;
20
+ //# sourceMappingURL=project-questions.utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-questions.utils.d.ts","sourceRoot":"","sources":["../../../src/create-project/utils/project-questions.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD;;;GAGG;AACH,wBAAgB,2BAA2B,CACzC,YAAY,EAAE,OAAO,CAAC;KACnB,CAAC,IAAI,MAAM,cAAc,GACtB,CAAC,CAAC,QAAQ,EAAE,gBAAgB,CAAC,cAAc,CAAC,KAAK,cAAc,CAAC,CAAC,CAAC,CAAC,GACnE,cAAc,CAAC,CAAC,CAAC;CACtB,CAAC,eAGW,cAAc,iBAAiB,cAAc,CAAC,CAAC,KACzD,cAAc,iBAAiB,cAAc,CAAC,CAAC,CAyBnD;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,aAAa,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC,GACzD,OAAO,CAAC,cAAc,CAAC,CAOzB;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,gBAAgB,CAAC,cAAc,CAAC,GAAG,MAAM,CAW/F"}