@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,121 @@
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
+ var action = (async (ctx)=>{
20
+ const { getValidToken } = await token.tokenServiceFactory(ctx);
21
+ const token$1 = await getValidToken(ctx, action$1.promptLogin);
22
+ const { logger } = ctx;
23
+ if (!token$1) {
24
+ return;
25
+ }
26
+ const project = await getLocalConfig.getLocalProject(ctx);
27
+ if (!project) {
28
+ logger.debug(`No valid local project configuration was found.`);
29
+ return;
30
+ }
31
+ const cloudApiService = await cliApi.cloudApiFactory(ctx, token$1);
32
+ const environments = await getEnvironmentsList(ctx, cloudApiService, project);
33
+ if (!environments) {
34
+ logger.debug(`Fetching environments failed.`);
35
+ return;
36
+ }
37
+ if (environments.length === 0) {
38
+ logger.log(`The only available environment is already linked. You can add a new one from your project settings on the Strapi Cloud dashboard.`);
39
+ return;
40
+ }
41
+ const answer = await promptUserForEnvironment(ctx, environments);
42
+ if (!answer) {
43
+ return;
44
+ }
45
+ await analytics.trackEvent(ctx, cloudApiService, 'willLinkEnvironment', {
46
+ projectName: project.name,
47
+ environmentName: answer.targetEnvironment
48
+ });
49
+ try {
50
+ await strapiInfoSave.patch({
51
+ project: {
52
+ targetEnvironment: answer.targetEnvironment
53
+ }
54
+ });
55
+ } catch (e) {
56
+ await analytics.trackEvent(ctx, cloudApiService, 'didNotLinkEnvironment', {
57
+ projectName: project.name,
58
+ environmentName: answer.targetEnvironment
59
+ });
60
+ logger.debug('Failed to link environment', e);
61
+ logger.error('Failed to link the environment. If this issue persists, try re-linking your project or contact support.');
62
+ process.exit(1);
63
+ }
64
+ logger.log(` You have successfully linked your project to ${chalk__default.default.cyan(answer.targetEnvironment)}, on ${chalk__default.default.cyan(project.displayName)}. You are now able to deploy your project.`);
65
+ await analytics.trackEvent(ctx, cloudApiService, 'didLinkEnvironment', {
66
+ projectName: project.name,
67
+ environmentName: answer.targetEnvironment
68
+ });
69
+ });
70
+ async function promptUserForEnvironment(ctx, environments) {
71
+ const { logger } = ctx;
72
+ try {
73
+ const { default: inquirer } = await import('inquirer');
74
+ const answer = await inquirer.prompt([
75
+ {
76
+ type: 'list',
77
+ name: 'targetEnvironment',
78
+ message: 'Which environment do you want to link?',
79
+ choices: [
80
+ ...environments,
81
+ {
82
+ name: chalk__default.default.grey(`(${QUIT_OPTION})`),
83
+ value: null
84
+ }
85
+ ]
86
+ }
87
+ ]);
88
+ if (!answer.targetEnvironment) {
89
+ return null;
90
+ }
91
+ return answer;
92
+ } catch (e) {
93
+ logger.debug('Failed to get user input', e);
94
+ logger.error('An error occurred while trying to get your environment selection.');
95
+ return null;
96
+ }
97
+ }
98
+ async function getEnvironmentsList(ctx, cloudApiService, project) {
99
+ const spinner = ctx.logger.spinner('Fetching environments...\n').start();
100
+ try {
101
+ const { data: { data: environmentsList } } = await cloudApiService.listLinkEnvironments({
102
+ name: project.name
103
+ });
104
+ if (!Array.isArray(environmentsList) || environmentsList.length === 0) {
105
+ throw new Error('Environments not found in server response');
106
+ }
107
+ spinner.succeed();
108
+ return environmentsList.filter((environment)=>environment.name !== project.targetEnvironment);
109
+ } catch (e) {
110
+ if (e.response && e.response.status === 404) {
111
+ spinner.succeed();
112
+ ctx.logger.warn(`\nThe project associated with this folder does not exist in Strapi Cloud. \nPlease link your local project to an existing Strapi Cloud project using the ${chalk__default.default.cyan('link')} command.`);
113
+ } else {
114
+ spinner.fail('An error occurred while fetching environments data from Strapi Cloud.');
115
+ ctx.logger.debug('Failed to list environments', e);
116
+ }
117
+ }
118
+ }
119
+
120
+ module.exports = action;
121
+ //# sourceMappingURL=action.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"action.js","sources":["../../../src/environment/link/action.ts"],"sourcesContent":["import chalk from 'chalk';\nimport type { Answers } from 'inquirer';\nimport { EnvironmentDetails, ProjectInput } from '../../services/cli-api';\nimport type { CLIContext, CloudApiService } from '../../types';\nimport { cloudApiFactory, tokenServiceFactory, local } from '../../services';\nimport { promptLogin } from '../../login/action';\nimport { trackEvent } from '../../utils/analytics';\nimport { getLocalProject } from '../../utils/get-local-config';\n\nconst QUIT_OPTION = 'Quit';\n\ninterface LinkEnvironmentAnswer extends Answers {\n targetEnvironment: string;\n}\n\ninterface LinkEnvironmentInput extends Answers {\n targetEnvironment: string;\n}\n\ntype EnvironmentsList = EnvironmentDetails[];\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 project = await getLocalProject(ctx);\n\n if (!project) {\n logger.debug(`No valid local project configuration was found.`);\n return;\n }\n\n const cloudApiService = await cloudApiFactory(ctx, token);\n const environments = await getEnvironmentsList(ctx, cloudApiService, project);\n\n if (!environments) {\n logger.debug(`Fetching environments failed.`);\n return;\n }\n\n if (environments.length === 0) {\n logger.log(\n `The only available environment is already linked. You can add a new one from your project settings on the Strapi Cloud dashboard.`\n );\n return;\n }\n\n const answer: LinkEnvironmentAnswer | null = await promptUserForEnvironment(ctx, environments);\n\n if (!answer) {\n return;\n }\n\n await trackEvent(ctx, cloudApiService, 'willLinkEnvironment', {\n projectName: project.name,\n environmentName: answer.targetEnvironment,\n });\n\n try {\n await local.patch({ project: { targetEnvironment: answer.targetEnvironment } });\n } catch (e) {\n await trackEvent(ctx, cloudApiService, 'didNotLinkEnvironment', {\n projectName: project.name,\n environmentName: answer.targetEnvironment,\n });\n logger.debug('Failed to link environment', e);\n logger.error(\n 'Failed to link the environment. If this issue persists, try re-linking your project or contact support.'\n );\n process.exit(1);\n }\n\n logger.log(\n ` You have successfully linked your project to ${chalk.cyan(answer.targetEnvironment)}, on ${chalk.cyan(project.displayName)}. You are now able to deploy your project.`\n );\n await trackEvent(ctx, cloudApiService, 'didLinkEnvironment', {\n projectName: project.name,\n environmentName: answer.targetEnvironment,\n });\n};\n\nasync function promptUserForEnvironment(\n ctx: CLIContext,\n environments: EnvironmentsList\n): Promise<LinkEnvironmentAnswer | null> {\n const { logger } = ctx;\n\n try {\n const { default: inquirer } = await import('inquirer');\n const answer: LinkEnvironmentInput = await inquirer.prompt([\n {\n type: 'list',\n name: 'targetEnvironment',\n message: 'Which environment do you want to link?',\n choices: [...environments, { name: chalk.grey(`(${QUIT_OPTION})`), value: null }],\n },\n ]);\n\n if (!answer.targetEnvironment) {\n return null;\n }\n\n return answer;\n } catch (e) {\n logger.debug('Failed to get user input', e);\n logger.error('An error occurred while trying to get your environment selection.');\n return null;\n }\n}\n\nasync function getEnvironmentsList(\n ctx: CLIContext,\n cloudApiService: CloudApiService,\n project: ProjectInput\n) {\n const spinner = ctx.logger.spinner('Fetching environments...\\n').start();\n\n try {\n const {\n data: { data: environmentsList },\n } = await cloudApiService.listLinkEnvironments({ name: project.name });\n\n if (!Array.isArray(environmentsList) || environmentsList.length === 0) {\n throw new Error('Environments not found in server response');\n }\n spinner.succeed();\n return environmentsList.filter(\n (environment: EnvironmentDetails) => environment.name !== project.targetEnvironment\n );\n } catch (e: any) {\n if (e.response && e.response.status === 404) {\n spinner.succeed();\n ctx.logger.warn(\n `\\nThe project associated with this folder does not exist in Strapi Cloud. \\nPlease link your local project to an existing Strapi Cloud project using the ${chalk.cyan(\n 'link'\n )} command.`\n );\n } else {\n spinner.fail('An error occurred while fetching environments data from Strapi Cloud.');\n ctx.logger.debug('Failed to list environments', e);\n }\n }\n}\n"],"names":["QUIT_OPTION","ctx","getValidToken","tokenServiceFactory","token","promptLogin","logger","project","getLocalProject","debug","cloudApiService","cloudApiFactory","environments","getEnvironmentsList","length","log","answer","promptUserForEnvironment","trackEvent","projectName","name","environmentName","targetEnvironment","local","e","error","process","exit","chalk","cyan","displayName","default","inquirer","prompt","type","message","choices","grey","value","spinner","start","data","environmentsList","listLinkEnvironments","Array","isArray","Error","succeed","filter","environment","response","status","warn","fail"],"mappings":"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"}
@@ -0,0 +1,115 @@
1
+ import chalk from 'chalk';
2
+ import { cloudApiFactory } from '../../services/cli-api.mjs';
3
+ import { patch } 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 { getLocalProject } from '../../utils/get-local-config.mjs';
11
+
12
+ const QUIT_OPTION = 'Quit';
13
+ var action = (async (ctx)=>{
14
+ const { getValidToken } = await tokenServiceFactory(ctx);
15
+ const token = await getValidToken(ctx, promptLogin);
16
+ const { logger } = ctx;
17
+ if (!token) {
18
+ return;
19
+ }
20
+ const project = await getLocalProject(ctx);
21
+ if (!project) {
22
+ logger.debug(`No valid local project configuration was found.`);
23
+ return;
24
+ }
25
+ const cloudApiService = await cloudApiFactory(ctx, token);
26
+ const environments = await getEnvironmentsList(ctx, cloudApiService, project);
27
+ if (!environments) {
28
+ logger.debug(`Fetching environments failed.`);
29
+ return;
30
+ }
31
+ if (environments.length === 0) {
32
+ logger.log(`The only available environment is already linked. You can add a new one from your project settings on the Strapi Cloud dashboard.`);
33
+ return;
34
+ }
35
+ const answer = await promptUserForEnvironment(ctx, environments);
36
+ if (!answer) {
37
+ return;
38
+ }
39
+ await trackEvent(ctx, cloudApiService, 'willLinkEnvironment', {
40
+ projectName: project.name,
41
+ environmentName: answer.targetEnvironment
42
+ });
43
+ try {
44
+ await patch({
45
+ project: {
46
+ targetEnvironment: answer.targetEnvironment
47
+ }
48
+ });
49
+ } catch (e) {
50
+ await trackEvent(ctx, cloudApiService, 'didNotLinkEnvironment', {
51
+ projectName: project.name,
52
+ environmentName: answer.targetEnvironment
53
+ });
54
+ logger.debug('Failed to link environment', e);
55
+ logger.error('Failed to link the environment. If this issue persists, try re-linking your project or contact support.');
56
+ process.exit(1);
57
+ }
58
+ logger.log(` You have successfully linked your project to ${chalk.cyan(answer.targetEnvironment)}, on ${chalk.cyan(project.displayName)}. You are now able to deploy your project.`);
59
+ await trackEvent(ctx, cloudApiService, 'didLinkEnvironment', {
60
+ projectName: project.name,
61
+ environmentName: answer.targetEnvironment
62
+ });
63
+ });
64
+ async function promptUserForEnvironment(ctx, environments) {
65
+ const { logger } = ctx;
66
+ try {
67
+ const { default: inquirer } = await import('inquirer');
68
+ const answer = await inquirer.prompt([
69
+ {
70
+ type: 'list',
71
+ name: 'targetEnvironment',
72
+ message: 'Which environment do you want to link?',
73
+ choices: [
74
+ ...environments,
75
+ {
76
+ name: chalk.grey(`(${QUIT_OPTION})`),
77
+ value: null
78
+ }
79
+ ]
80
+ }
81
+ ]);
82
+ if (!answer.targetEnvironment) {
83
+ return null;
84
+ }
85
+ return answer;
86
+ } catch (e) {
87
+ logger.debug('Failed to get user input', e);
88
+ logger.error('An error occurred while trying to get your environment selection.');
89
+ return null;
90
+ }
91
+ }
92
+ async function getEnvironmentsList(ctx, cloudApiService, project) {
93
+ const spinner = ctx.logger.spinner('Fetching environments...\n').start();
94
+ try {
95
+ const { data: { data: environmentsList } } = await cloudApiService.listLinkEnvironments({
96
+ name: project.name
97
+ });
98
+ if (!Array.isArray(environmentsList) || environmentsList.length === 0) {
99
+ throw new Error('Environments not found in server response');
100
+ }
101
+ spinner.succeed();
102
+ return environmentsList.filter((environment)=>environment.name !== project.targetEnvironment);
103
+ } catch (e) {
104
+ if (e.response && e.response.status === 404) {
105
+ spinner.succeed();
106
+ ctx.logger.warn(`\nThe project associated with this folder does not exist in Strapi Cloud. \nPlease link your local project to an existing Strapi Cloud project using the ${chalk.cyan('link')} command.`);
107
+ } else {
108
+ spinner.fail('An error occurred while fetching environments data from Strapi Cloud.');
109
+ ctx.logger.debug('Failed to list environments', e);
110
+ }
111
+ }
112
+ }
113
+
114
+ export { action as default };
115
+ //# sourceMappingURL=action.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"action.mjs","sources":["../../../src/environment/link/action.ts"],"sourcesContent":["import chalk from 'chalk';\nimport type { Answers } from 'inquirer';\nimport { EnvironmentDetails, ProjectInput } from '../../services/cli-api';\nimport type { CLIContext, CloudApiService } from '../../types';\nimport { cloudApiFactory, tokenServiceFactory, local } from '../../services';\nimport { promptLogin } from '../../login/action';\nimport { trackEvent } from '../../utils/analytics';\nimport { getLocalProject } from '../../utils/get-local-config';\n\nconst QUIT_OPTION = 'Quit';\n\ninterface LinkEnvironmentAnswer extends Answers {\n targetEnvironment: string;\n}\n\ninterface LinkEnvironmentInput extends Answers {\n targetEnvironment: string;\n}\n\ntype EnvironmentsList = EnvironmentDetails[];\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 project = await getLocalProject(ctx);\n\n if (!project) {\n logger.debug(`No valid local project configuration was found.`);\n return;\n }\n\n const cloudApiService = await cloudApiFactory(ctx, token);\n const environments = await getEnvironmentsList(ctx, cloudApiService, project);\n\n if (!environments) {\n logger.debug(`Fetching environments failed.`);\n return;\n }\n\n if (environments.length === 0) {\n logger.log(\n `The only available environment is already linked. You can add a new one from your project settings on the Strapi Cloud dashboard.`\n );\n return;\n }\n\n const answer: LinkEnvironmentAnswer | null = await promptUserForEnvironment(ctx, environments);\n\n if (!answer) {\n return;\n }\n\n await trackEvent(ctx, cloudApiService, 'willLinkEnvironment', {\n projectName: project.name,\n environmentName: answer.targetEnvironment,\n });\n\n try {\n await local.patch({ project: { targetEnvironment: answer.targetEnvironment } });\n } catch (e) {\n await trackEvent(ctx, cloudApiService, 'didNotLinkEnvironment', {\n projectName: project.name,\n environmentName: answer.targetEnvironment,\n });\n logger.debug('Failed to link environment', e);\n logger.error(\n 'Failed to link the environment. If this issue persists, try re-linking your project or contact support.'\n );\n process.exit(1);\n }\n\n logger.log(\n ` You have successfully linked your project to ${chalk.cyan(answer.targetEnvironment)}, on ${chalk.cyan(project.displayName)}. You are now able to deploy your project.`\n );\n await trackEvent(ctx, cloudApiService, 'didLinkEnvironment', {\n projectName: project.name,\n environmentName: answer.targetEnvironment,\n });\n};\n\nasync function promptUserForEnvironment(\n ctx: CLIContext,\n environments: EnvironmentsList\n): Promise<LinkEnvironmentAnswer | null> {\n const { logger } = ctx;\n\n try {\n const { default: inquirer } = await import('inquirer');\n const answer: LinkEnvironmentInput = await inquirer.prompt([\n {\n type: 'list',\n name: 'targetEnvironment',\n message: 'Which environment do you want to link?',\n choices: [...environments, { name: chalk.grey(`(${QUIT_OPTION})`), value: null }],\n },\n ]);\n\n if (!answer.targetEnvironment) {\n return null;\n }\n\n return answer;\n } catch (e) {\n logger.debug('Failed to get user input', e);\n logger.error('An error occurred while trying to get your environment selection.');\n return null;\n }\n}\n\nasync function getEnvironmentsList(\n ctx: CLIContext,\n cloudApiService: CloudApiService,\n project: ProjectInput\n) {\n const spinner = ctx.logger.spinner('Fetching environments...\\n').start();\n\n try {\n const {\n data: { data: environmentsList },\n } = await cloudApiService.listLinkEnvironments({ name: project.name });\n\n if (!Array.isArray(environmentsList) || environmentsList.length === 0) {\n throw new Error('Environments not found in server response');\n }\n spinner.succeed();\n return environmentsList.filter(\n (environment: EnvironmentDetails) => environment.name !== project.targetEnvironment\n );\n } catch (e: any) {\n if (e.response && e.response.status === 404) {\n spinner.succeed();\n ctx.logger.warn(\n `\\nThe project associated with this folder does not exist in Strapi Cloud. \\nPlease link your local project to an existing Strapi Cloud project using the ${chalk.cyan(\n 'link'\n )} command.`\n );\n } else {\n spinner.fail('An error occurred while fetching environments data from Strapi Cloud.');\n ctx.logger.debug('Failed to list environments', e);\n }\n }\n}\n"],"names":["QUIT_OPTION","ctx","getValidToken","tokenServiceFactory","token","promptLogin","logger","project","getLocalProject","debug","cloudApiService","cloudApiFactory","environments","getEnvironmentsList","length","log","answer","promptUserForEnvironment","trackEvent","projectName","name","environmentName","targetEnvironment","local","e","error","process","exit","chalk","cyan","displayName","default","inquirer","prompt","type","message","choices","grey","value","spinner","start","data","environmentsList","listLinkEnvironments","Array","isArray","Error","succeed","filter","environment","response","status","warn","fail"],"mappings":";;;;;;;;;;;AASA,MAAMA,WAAAA,GAAc,MAAA;AAYpB,aAAe,CAAA,OAAOC,GAAAA,GAAAA;AACpB,IAAA,MAAM,EAAEC,aAAa,EAAE,GAAG,MAAMC,mBAAAA,CAAoBF,GAAAA,CAAAA;IACpD,MAAMG,KAAAA,GAAQ,MAAMF,aAAAA,CAAcD,GAAAA,EAAKI,WAAAA,CAAAA;IACvC,MAAM,EAAEC,MAAM,EAAE,GAAGL,GAAAA;AAEnB,IAAA,IAAI,CAACG,KAAAA,EAAO;AACV,QAAA;AACF,IAAA;IAEA,MAAMG,OAAAA,GAAU,MAAMC,eAAAA,CAAgBP,GAAAA,CAAAA;AAEtC,IAAA,IAAI,CAACM,OAAAA,EAAS;AACZD,QAAAA,MAAAA,CAAOG,KAAK,CAAC,CAAC,+CAA+C,CAAC,CAAA;AAC9D,QAAA;AACF,IAAA;IAEA,MAAMC,eAAAA,GAAkB,MAAMC,eAAAA,CAAgBV,GAAAA,EAAKG,KAAAA,CAAAA;AACnD,IAAA,MAAMQ,YAAAA,GAAe,MAAMC,mBAAAA,CAAoBZ,GAAAA,EAAKS,eAAAA,EAAiBH,OAAAA,CAAAA;AAErE,IAAA,IAAI,CAACK,YAAAA,EAAc;AACjBN,QAAAA,MAAAA,CAAOG,KAAK,CAAC,CAAC,6BAA6B,CAAC,CAAA;AAC5C,QAAA;AACF,IAAA;IAEA,IAAIG,YAAAA,CAAaE,MAAM,KAAK,CAAA,EAAG;AAC7BR,QAAAA,MAAAA,CAAOS,GAAG,CACR,CAAC,iIAAiI,CAAC,CAAA;AAErI,QAAA;AACF,IAAA;IAEA,MAAMC,MAAAA,GAAuC,MAAMC,wBAAAA,CAAyBhB,GAAAA,EAAKW,YAAAA,CAAAA;AAEjF,IAAA,IAAI,CAACI,MAAAA,EAAQ;AACX,QAAA;AACF,IAAA;IAEA,MAAME,UAAAA,CAAWjB,GAAAA,EAAKS,eAAAA,EAAiB,qBAAA,EAAuB;AAC5DS,QAAAA,WAAAA,EAAaZ,QAAQa,IAAI;AACzBC,QAAAA,eAAAA,EAAiBL,OAAOM;AAC1B,KAAA,CAAA;IAEA,IAAI;QACF,MAAMC,KAAW,CAAC;YAAEhB,OAAAA,EAAS;AAAEe,gBAAAA,iBAAAA,EAAmBN,OAAOM;AAAkB;AAAE,SAAA,CAAA;AAC/E,IAAA,CAAA,CAAE,OAAOE,CAAAA,EAAG;QACV,MAAMN,UAAAA,CAAWjB,GAAAA,EAAKS,eAAAA,EAAiB,uBAAA,EAAyB;AAC9DS,YAAAA,WAAAA,EAAaZ,QAAQa,IAAI;AACzBC,YAAAA,eAAAA,EAAiBL,OAAOM;AAC1B,SAAA,CAAA;QACAhB,MAAAA,CAAOG,KAAK,CAAC,4BAAA,EAA8Be,CAAAA,CAAAA;AAC3ClB,QAAAA,MAAAA,CAAOmB,KAAK,CACV,yGAAA,CAAA;AAEFC,QAAAA,OAAAA,CAAQC,IAAI,CAAC,CAAA,CAAA;AACf,IAAA;IAEArB,MAAAA,CAAOS,GAAG,CACR,CAAC,8CAA8C,EAAEa,KAAAA,CAAMC,IAAI,CAACb,MAAAA,CAAOM,iBAAiB,EAAE,KAAK,EAAEM,MAAMC,IAAI,CAACtB,QAAQuB,WAAW,CAAA,CAAE,0CAA0C,CAAC,CAAA;IAE1K,MAAMZ,UAAAA,CAAWjB,GAAAA,EAAKS,eAAAA,EAAiB,oBAAA,EAAsB;AAC3DS,QAAAA,WAAAA,EAAaZ,QAAQa,IAAI;AACzBC,QAAAA,eAAAA,EAAiBL,OAAOM;AAC1B,KAAA,CAAA;AACF,CAAA;AAEA,eAAeL,wBAAAA,CACbhB,GAAe,EACfW,YAA8B,EAAA;IAE9B,MAAM,EAAEN,MAAM,EAAE,GAAGL,GAAAA;IAEnB,IAAI;AACF,QAAA,MAAM,EAAE8B,OAAAA,EAASC,QAAQ,EAAE,GAAG,MAAM,OAAO,UAAA,CAAA;AAC3C,QAAA,MAAMhB,MAAAA,GAA+B,MAAMgB,QAAAA,CAASC,MAAM,CAAC;AACzD,YAAA;gBACEC,IAAAA,EAAM,MAAA;gBACNd,IAAAA,EAAM,mBAAA;gBACNe,OAAAA,EAAS,wCAAA;gBACTC,OAAAA,EAAS;AAAIxB,oBAAAA,GAAAA,YAAAA;AAAc,oBAAA;wBAAEQ,IAAAA,EAAMQ,KAAAA,CAAMS,IAAI,CAAC,CAAC,CAAC,EAAErC,WAAAA,CAAY,CAAC,CAAC,CAAA;wBAAGsC,KAAAA,EAAO;AAAK;AAAE;AACnF;AACD,SAAA,CAAA;QAED,IAAI,CAACtB,MAAAA,CAAOM,iBAAiB,EAAE;YAC7B,OAAO,IAAA;AACT,QAAA;QAEA,OAAON,MAAAA;AACT,IAAA,CAAA,CAAE,OAAOQ,CAAAA,EAAG;QACVlB,MAAAA,CAAOG,KAAK,CAAC,0BAAA,EAA4Be,CAAAA,CAAAA;AACzClB,QAAAA,MAAAA,CAAOmB,KAAK,CAAC,mEAAA,CAAA;QACb,OAAO,IAAA;AACT,IAAA;AACF;AAEA,eAAeZ,mBAAAA,CACbZ,GAAe,EACfS,eAAgC,EAChCH,OAAqB,EAAA;AAErB,IAAA,MAAMgC,UAAUtC,GAAAA,CAAIK,MAAM,CAACiC,OAAO,CAAC,8BAA8BC,KAAK,EAAA;IAEtE,IAAI;QACF,MAAM,EACJC,IAAAA,EAAM,EAAEA,IAAAA,EAAMC,gBAAgB,EAAE,EACjC,GAAG,MAAMhC,eAAAA,CAAgBiC,oBAAoB,CAAC;AAAEvB,YAAAA,IAAAA,EAAMb,QAAQa;AAAK,SAAA,CAAA;QAEpE,IAAI,CAACwB,MAAMC,OAAO,CAACH,qBAAqBA,gBAAAA,CAAiB5B,MAAM,KAAK,CAAA,EAAG;AACrE,YAAA,MAAM,IAAIgC,KAAAA,CAAM,2CAAA,CAAA;AAClB,QAAA;AACAP,QAAAA,OAAAA,CAAQQ,OAAO,EAAA;QACf,OAAOL,gBAAAA,CAAiBM,MAAM,CAC5B,CAACC,cAAoCA,WAAAA,CAAY7B,IAAI,KAAKb,OAAAA,CAAQe,iBAAiB,CAAA;AAEvF,IAAA,CAAA,CAAE,OAAOE,CAAAA,EAAQ;QACf,IAAIA,CAAAA,CAAE0B,QAAQ,IAAI1B,CAAAA,CAAE0B,QAAQ,CAACC,MAAM,KAAK,GAAA,EAAK;AAC3CZ,YAAAA,OAAAA,CAAQQ,OAAO,EAAA;AACf9C,YAAAA,GAAAA,CAAIK,MAAM,CAAC8C,IAAI,CACb,CAAC,yJAAyJ,EAAExB,KAAAA,CAAMC,IAAI,CACpK,MAAA,CAAA,CACA,SAAS,CAAC,CAAA;QAEhB,CAAA,MAAO;AACLU,YAAAA,OAAAA,CAAQc,IAAI,CAAC,uEAAA,CAAA;AACbpD,YAAAA,GAAAA,CAAIK,MAAM,CAACG,KAAK,CAAC,6BAAA,EAA+Be,CAAAA,CAAAA;AAClD,QAAA;AACF,IAAA;AACF;;;;"}
@@ -0,0 +1,4 @@
1
+ import { type StrapiCloudCommand } from '../../types';
2
+ declare const command: StrapiCloudCommand;
3
+ export default command;
4
+ //# sourceMappingURL=command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../src/environment/link/command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAKtD,QAAA,MAAM,OAAO,EAAE,kBASd,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
+ var command$1 = require('../command.js');
6
+
7
+ const command = ({ command, ctx })=>{
8
+ const environmentCmd = command$1.initializeEnvironmentCommand(command, ctx);
9
+ environmentCmd.command('link').description('Link project to a specific Strapi Cloud project environment').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/environment/link/command.ts"],"sourcesContent":["import { type StrapiCloudCommand } from '../../types';\nimport { runAction } from '../../utils/helpers';\nimport action from './action';\nimport { initializeEnvironmentCommand } from '../command';\n\nconst command: StrapiCloudCommand = ({ command, ctx }) => {\n const environmentCmd = initializeEnvironmentCommand(command, ctx);\n\n environmentCmd\n .command('link')\n .description('Link project to a specific Strapi Cloud project environment')\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","environmentCmd","initializeEnvironmentCommand","description","option","action","runAction"],"mappings":";;;;;;AAKA,MAAMA,UAA8B,CAAC,EAAEA,OAAO,EAAEC,GAAG,EAAE,GAAA;IACnD,MAAMC,cAAAA,GAAiBC,uCAA6BH,OAAAA,EAASC,GAAAA,CAAAA;AAE7DC,IAAAA,cAAAA,CACGF,OAAO,CAAC,MAAA,CAAA,CACRI,WAAW,CAAC,6DAAA,CAAA,CACZC,MAAM,CAAC,aAAA,EAAe,2CACtBA,MAAM,CAAC,gBAAgB,oBAAA,CAAA,CACvBC,MAAM,CAAC,IAAMC,iBAAAA,CAAU,QAAQD,MAAAA,CAAAA,CAAQL,GAAAA,CAAAA,CAAAA;AAC5C;;;;"}
@@ -0,0 +1,11 @@
1
+ import { runAction } from '../../utils/helpers.mjs';
2
+ import action from './action.mjs';
3
+ import { initializeEnvironmentCommand } from '../command.mjs';
4
+
5
+ const command = ({ command, ctx })=>{
6
+ const environmentCmd = initializeEnvironmentCommand(command, ctx);
7
+ environmentCmd.command('link').description('Link project to a specific Strapi Cloud project environment').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/environment/link/command.ts"],"sourcesContent":["import { type StrapiCloudCommand } from '../../types';\nimport { runAction } from '../../utils/helpers';\nimport action from './action';\nimport { initializeEnvironmentCommand } from '../command';\n\nconst command: StrapiCloudCommand = ({ command, ctx }) => {\n const environmentCmd = initializeEnvironmentCommand(command, ctx);\n\n environmentCmd\n .command('link')\n .description('Link project to a specific Strapi Cloud project environment')\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","environmentCmd","initializeEnvironmentCommand","description","option","action","runAction"],"mappings":";;;;AAKA,MAAMA,UAA8B,CAAC,EAAEA,OAAO,EAAEC,GAAG,EAAE,GAAA;IACnD,MAAMC,cAAAA,GAAiBC,6BAA6BH,OAAAA,EAASC,GAAAA,CAAAA;AAE7DC,IAAAA,cAAAA,CACGF,OAAO,CAAC,MAAA,CAAA,CACRI,WAAW,CAAC,6DAAA,CAAA,CACZC,MAAM,CAAC,aAAA,EAAe,2CACtBA,MAAM,CAAC,gBAAgB,oBAAA,CAAA,CACvBC,MAAM,CAAC,IAAMC,SAAAA,CAAU,QAAQD,MAAAA,CAAAA,CAAQL,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/environment/link/index.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAE1D,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;wBAOtB,sBAAsB;AAL3B,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 linkEnvironment = {
9
+ name: 'link-environment',
10
+ description: 'Link Strapi Cloud environment to a local project',
11
+ action,
12
+ command
13
+ };
14
+
15
+ exports.action = action;
16
+ exports.command = command;
17
+ exports.default = linkEnvironment;
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../src/environment/link/index.ts"],"sourcesContent":["import action from './action';\nimport command from './command';\nimport type { StrapiCloudCommandInfo } from '../../types';\n\nexport { action, command };\n\nexport default {\n name: 'link-environment',\n description: 'Link Strapi Cloud environment to a local project',\n action,\n command,\n} as StrapiCloudCommandInfo;\n"],"names":["name","description","action","command"],"mappings":";;;;;;;AAMA,sBAAe;IACbA,IAAAA,EAAM,kBAAA;IACNC,WAAAA,EAAa,kDAAA;AACbC,IAAAA,MAAAA;AACAC,IAAAA;AACF,CAAA;;;;;;"}
@@ -0,0 +1,12 @@
1
+ import action from './action.mjs';
2
+ import command from './command.mjs';
3
+
4
+ var linkEnvironment = {
5
+ name: 'link-environment',
6
+ description: 'Link Strapi Cloud environment to a local project',
7
+ action,
8
+ command
9
+ };
10
+
11
+ export { action, command, linkEnvironment as default };
12
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../../../src/environment/link/index.ts"],"sourcesContent":["import action from './action';\nimport command from './command';\nimport type { StrapiCloudCommandInfo } from '../../types';\n\nexport { action, command };\n\nexport default {\n name: 'link-environment',\n description: 'Link Strapi Cloud environment to a local project',\n action,\n command,\n} as StrapiCloudCommandInfo;\n"],"names":["name","description","action","command"],"mappings":";;;AAMA,sBAAe;IACbA,IAAAA,EAAM,kBAAA;IACNC,WAAAA,EAAa,kDAAA;AACbC,IAAAA,MAAAA;AACAC,IAAAA;AACF,CAAA;;;;"}
@@ -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/environment/list/action.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;yBAMxB,KAAK,UAAU;AAArC,wBA8CE"}
@@ -0,0 +1,61 @@
1
+ 'use strict';
2
+
3
+ var chalk = require('chalk');
4
+ var cliApi = require('../../services/cli-api.js');
5
+ require('fs-extra');
6
+ require('path');
7
+ require('lodash');
8
+ var token = require('../../services/token.js');
9
+ require('fast-safe-stringify');
10
+ require('ora');
11
+ require('cli-progress');
12
+ var action$1 = require('../../login/action.js');
13
+ var analytics = require('../../utils/analytics.js');
14
+ var getLocalConfig = require('../../utils/get-local-config.js');
15
+
16
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
17
+
18
+ var chalk__default = /*#__PURE__*/_interopDefault(chalk);
19
+
20
+ var action = (async (ctx)=>{
21
+ const { getValidToken } = await token.tokenServiceFactory(ctx);
22
+ const token$1 = await getValidToken(ctx, action$1.promptLogin);
23
+ const { logger } = ctx;
24
+ if (!token$1) {
25
+ return;
26
+ }
27
+ const project = await getLocalConfig.getLocalProject(ctx);
28
+ if (!project) {
29
+ ctx.logger.debug(`No valid local project configuration was found.`);
30
+ return;
31
+ }
32
+ const cloudApiService = await cliApi.cloudApiFactory(ctx, token$1);
33
+ const spinner = logger.spinner('Fetching environments...').start();
34
+ await analytics.trackEvent(ctx, cloudApiService, 'willListEnvironment', {
35
+ projectInternalName: project.name
36
+ });
37
+ try {
38
+ const { data: { data: environmentsList } } = await cloudApiService.listEnvironments({
39
+ name: project.name
40
+ });
41
+ spinner.succeed();
42
+ logger.log(environmentsList);
43
+ await analytics.trackEvent(ctx, cloudApiService, 'didListEnvironment', {
44
+ projectInternalName: project.name
45
+ });
46
+ } catch (e) {
47
+ if (e.response && e.response.status === 404) {
48
+ spinner.succeed();
49
+ logger.warn(`\nThe project associated with this folder does not exist in Strapi Cloud. \nPlease link your local project to an existing Strapi Cloud project using the ${chalk__default.default.cyan('link')} command`);
50
+ } else {
51
+ spinner.fail('An error occurred while fetching environments data from Strapi Cloud.');
52
+ logger.debug('Failed to list environments', e);
53
+ }
54
+ await analytics.trackEvent(ctx, cloudApiService, 'didNotListEnvironment', {
55
+ projectInternalName: project.name
56
+ });
57
+ }
58
+ });
59
+
60
+ module.exports = action;
61
+ //# sourceMappingURL=action.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"action.js","sources":["../../../src/environment/list/action.ts"],"sourcesContent":["import chalk from 'chalk';\nimport type { CLIContext } from '../../types';\nimport { cloudApiFactory, tokenServiceFactory } from '../../services';\nimport { promptLogin } from '../../login/action';\nimport { trackEvent } from '../../utils/analytics';\nimport { getLocalProject } from '../../utils/get-local-config';\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 project = await getLocalProject(ctx);\n if (!project) {\n ctx.logger.debug(`No valid local project configuration was found.`);\n return;\n }\n\n const cloudApiService = await cloudApiFactory(ctx, token);\n const spinner = logger.spinner('Fetching environments...').start();\n await trackEvent(ctx, cloudApiService, 'willListEnvironment', {\n projectInternalName: project.name,\n });\n\n try {\n const {\n data: { data: environmentsList },\n } = await cloudApiService.listEnvironments({ name: project.name });\n spinner.succeed();\n logger.log(environmentsList);\n await trackEvent(ctx, cloudApiService, 'didListEnvironment', {\n projectInternalName: project.name,\n });\n } catch (e: any) {\n if (e.response && e.response.status === 404) {\n spinner.succeed();\n logger.warn(\n `\\nThe project associated with this folder does not exist in Strapi Cloud. \\nPlease link your local project to an existing Strapi Cloud project using the ${chalk.cyan(\n 'link'\n )} command`\n );\n } else {\n spinner.fail('An error occurred while fetching environments data from Strapi Cloud.');\n logger.debug('Failed to list environments', e);\n }\n await trackEvent(ctx, cloudApiService, 'didNotListEnvironment', {\n projectInternalName: project.name,\n });\n }\n};\n"],"names":["ctx","getValidToken","tokenServiceFactory","token","promptLogin","logger","project","getLocalProject","debug","cloudApiService","cloudApiFactory","spinner","start","trackEvent","projectInternalName","name","data","environmentsList","listEnvironments","succeed","log","e","response","status","warn","chalk","cyan","fail"],"mappings":";;;;;;;;;;;;;;;;;;;AAOA,aAAe,CAAA,OAAOA,GAAAA,GAAAA;AACpB,IAAA,MAAM,EAAEC,aAAa,EAAE,GAAG,MAAMC,yBAAAA,CAAoBF,GAAAA,CAAAA;IACpD,MAAMG,OAAAA,GAAQ,MAAMF,aAAAA,CAAcD,GAAAA,EAAKI,oBAAAA,CAAAA;IACvC,MAAM,EAAEC,MAAM,EAAE,GAAGL,GAAAA;AAEnB,IAAA,IAAI,CAACG,OAAAA,EAAO;AACV,QAAA;AACF,IAAA;IAEA,MAAMG,OAAAA,GAAU,MAAMC,8BAAAA,CAAgBP,GAAAA,CAAAA;AACtC,IAAA,IAAI,CAACM,OAAAA,EAAS;AACZN,QAAAA,GAAAA,CAAIK,MAAM,CAACG,KAAK,CAAC,CAAC,+CAA+C,CAAC,CAAA;AAClE,QAAA;AACF,IAAA;IAEA,MAAMC,eAAAA,GAAkB,MAAMC,sBAAAA,CAAgBV,GAAAA,EAAKG,OAAAA,CAAAA;AACnD,IAAA,MAAMQ,OAAAA,GAAUN,MAAAA,CAAOM,OAAO,CAAC,4BAA4BC,KAAK,EAAA;IAChE,MAAMC,oBAAAA,CAAWb,GAAAA,EAAKS,eAAAA,EAAiB,qBAAA,EAAuB;AAC5DK,QAAAA,mBAAAA,EAAqBR,QAAQS;AAC/B,KAAA,CAAA;IAEA,IAAI;QACF,MAAM,EACJC,IAAAA,EAAM,EAAEA,IAAAA,EAAMC,gBAAgB,EAAE,EACjC,GAAG,MAAMR,eAAAA,CAAgBS,gBAAgB,CAAC;AAAEH,YAAAA,IAAAA,EAAMT,QAAQS;AAAK,SAAA,CAAA;AAChEJ,QAAAA,OAAAA,CAAQQ,OAAO,EAAA;AACfd,QAAAA,MAAAA,CAAOe,GAAG,CAACH,gBAAAA,CAAAA;QACX,MAAMJ,oBAAAA,CAAWb,GAAAA,EAAKS,eAAAA,EAAiB,oBAAA,EAAsB;AAC3DK,YAAAA,mBAAAA,EAAqBR,QAAQS;AAC/B,SAAA,CAAA;AACF,IAAA,CAAA,CAAE,OAAOM,CAAAA,EAAQ;QACf,IAAIA,CAAAA,CAAEC,QAAQ,IAAID,CAAAA,CAAEC,QAAQ,CAACC,MAAM,KAAK,GAAA,EAAK;AAC3CZ,YAAAA,OAAAA,CAAQQ,OAAO,EAAA;YACfd,MAAAA,CAAOmB,IAAI,CACT,CAAC,yJAAyJ,EAAEC,uBAAMC,IAAI,CACpK,MAAA,CAAA,CACA,QAAQ,CAAC,CAAA;QAEf,CAAA,MAAO;AACLf,YAAAA,OAAAA,CAAQgB,IAAI,CAAC,uEAAA,CAAA;YACbtB,MAAAA,CAAOG,KAAK,CAAC,6BAAA,EAA+Ba,CAAAA,CAAAA;AAC9C,QAAA;QACA,MAAMR,oBAAAA,CAAWb,GAAAA,EAAKS,eAAAA,EAAiB,uBAAA,EAAyB;AAC9DK,YAAAA,mBAAAA,EAAqBR,QAAQS;AAC/B,SAAA,CAAA;AACF,IAAA;AACF,CAAA;;;;"}
@@ -0,0 +1,55 @@
1
+ import chalk from 'chalk';
2
+ import { cloudApiFactory } from '../../services/cli-api.mjs';
3
+ import 'fs-extra';
4
+ import 'path';
5
+ import 'lodash';
6
+ import { tokenServiceFactory } from '../../services/token.mjs';
7
+ import 'fast-safe-stringify';
8
+ import 'ora';
9
+ import 'cli-progress';
10
+ import { promptLogin } from '../../login/action.mjs';
11
+ import { trackEvent } from '../../utils/analytics.mjs';
12
+ import { getLocalProject } from '../../utils/get-local-config.mjs';
13
+
14
+ var action = (async (ctx)=>{
15
+ const { getValidToken } = await tokenServiceFactory(ctx);
16
+ const token = await getValidToken(ctx, promptLogin);
17
+ const { logger } = ctx;
18
+ if (!token) {
19
+ return;
20
+ }
21
+ const project = await getLocalProject(ctx);
22
+ if (!project) {
23
+ ctx.logger.debug(`No valid local project configuration was found.`);
24
+ return;
25
+ }
26
+ const cloudApiService = await cloudApiFactory(ctx, token);
27
+ const spinner = logger.spinner('Fetching environments...').start();
28
+ await trackEvent(ctx, cloudApiService, 'willListEnvironment', {
29
+ projectInternalName: project.name
30
+ });
31
+ try {
32
+ const { data: { data: environmentsList } } = await cloudApiService.listEnvironments({
33
+ name: project.name
34
+ });
35
+ spinner.succeed();
36
+ logger.log(environmentsList);
37
+ await trackEvent(ctx, cloudApiService, 'didListEnvironment', {
38
+ projectInternalName: project.name
39
+ });
40
+ } catch (e) {
41
+ if (e.response && e.response.status === 404) {
42
+ spinner.succeed();
43
+ logger.warn(`\nThe project associated with this folder does not exist in Strapi Cloud. \nPlease link your local project to an existing Strapi Cloud project using the ${chalk.cyan('link')} command`);
44
+ } else {
45
+ spinner.fail('An error occurred while fetching environments data from Strapi Cloud.');
46
+ logger.debug('Failed to list environments', e);
47
+ }
48
+ await trackEvent(ctx, cloudApiService, 'didNotListEnvironment', {
49
+ projectInternalName: project.name
50
+ });
51
+ }
52
+ });
53
+
54
+ export { action as default };
55
+ //# sourceMappingURL=action.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"action.mjs","sources":["../../../src/environment/list/action.ts"],"sourcesContent":["import chalk from 'chalk';\nimport type { CLIContext } from '../../types';\nimport { cloudApiFactory, tokenServiceFactory } from '../../services';\nimport { promptLogin } from '../../login/action';\nimport { trackEvent } from '../../utils/analytics';\nimport { getLocalProject } from '../../utils/get-local-config';\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 project = await getLocalProject(ctx);\n if (!project) {\n ctx.logger.debug(`No valid local project configuration was found.`);\n return;\n }\n\n const cloudApiService = await cloudApiFactory(ctx, token);\n const spinner = logger.spinner('Fetching environments...').start();\n await trackEvent(ctx, cloudApiService, 'willListEnvironment', {\n projectInternalName: project.name,\n });\n\n try {\n const {\n data: { data: environmentsList },\n } = await cloudApiService.listEnvironments({ name: project.name });\n spinner.succeed();\n logger.log(environmentsList);\n await trackEvent(ctx, cloudApiService, 'didListEnvironment', {\n projectInternalName: project.name,\n });\n } catch (e: any) {\n if (e.response && e.response.status === 404) {\n spinner.succeed();\n logger.warn(\n `\\nThe project associated with this folder does not exist in Strapi Cloud. \\nPlease link your local project to an existing Strapi Cloud project using the ${chalk.cyan(\n 'link'\n )} command`\n );\n } else {\n spinner.fail('An error occurred while fetching environments data from Strapi Cloud.');\n logger.debug('Failed to list environments', e);\n }\n await trackEvent(ctx, cloudApiService, 'didNotListEnvironment', {\n projectInternalName: project.name,\n });\n }\n};\n"],"names":["ctx","getValidToken","tokenServiceFactory","token","promptLogin","logger","project","getLocalProject","debug","cloudApiService","cloudApiFactory","spinner","start","trackEvent","projectInternalName","name","data","environmentsList","listEnvironments","succeed","log","e","response","status","warn","chalk","cyan","fail"],"mappings":";;;;;;;;;;;;;AAOA,aAAe,CAAA,OAAOA,GAAAA,GAAAA;AACpB,IAAA,MAAM,EAAEC,aAAa,EAAE,GAAG,MAAMC,mBAAAA,CAAoBF,GAAAA,CAAAA;IACpD,MAAMG,KAAAA,GAAQ,MAAMF,aAAAA,CAAcD,GAAAA,EAAKI,WAAAA,CAAAA;IACvC,MAAM,EAAEC,MAAM,EAAE,GAAGL,GAAAA;AAEnB,IAAA,IAAI,CAACG,KAAAA,EAAO;AACV,QAAA;AACF,IAAA;IAEA,MAAMG,OAAAA,GAAU,MAAMC,eAAAA,CAAgBP,GAAAA,CAAAA;AACtC,IAAA,IAAI,CAACM,OAAAA,EAAS;AACZN,QAAAA,GAAAA,CAAIK,MAAM,CAACG,KAAK,CAAC,CAAC,+CAA+C,CAAC,CAAA;AAClE,QAAA;AACF,IAAA;IAEA,MAAMC,eAAAA,GAAkB,MAAMC,eAAAA,CAAgBV,GAAAA,EAAKG,KAAAA,CAAAA;AACnD,IAAA,MAAMQ,OAAAA,GAAUN,MAAAA,CAAOM,OAAO,CAAC,4BAA4BC,KAAK,EAAA;IAChE,MAAMC,UAAAA,CAAWb,GAAAA,EAAKS,eAAAA,EAAiB,qBAAA,EAAuB;AAC5DK,QAAAA,mBAAAA,EAAqBR,QAAQS;AAC/B,KAAA,CAAA;IAEA,IAAI;QACF,MAAM,EACJC,IAAAA,EAAM,EAAEA,IAAAA,EAAMC,gBAAgB,EAAE,EACjC,GAAG,MAAMR,eAAAA,CAAgBS,gBAAgB,CAAC;AAAEH,YAAAA,IAAAA,EAAMT,QAAQS;AAAK,SAAA,CAAA;AAChEJ,QAAAA,OAAAA,CAAQQ,OAAO,EAAA;AACfd,QAAAA,MAAAA,CAAOe,GAAG,CAACH,gBAAAA,CAAAA;QACX,MAAMJ,UAAAA,CAAWb,GAAAA,EAAKS,eAAAA,EAAiB,oBAAA,EAAsB;AAC3DK,YAAAA,mBAAAA,EAAqBR,QAAQS;AAC/B,SAAA,CAAA;AACF,IAAA,CAAA,CAAE,OAAOM,CAAAA,EAAQ;QACf,IAAIA,CAAAA,CAAEC,QAAQ,IAAID,CAAAA,CAAEC,QAAQ,CAACC,MAAM,KAAK,GAAA,EAAK;AAC3CZ,YAAAA,OAAAA,CAAQQ,OAAO,EAAA;YACfd,MAAAA,CAAOmB,IAAI,CACT,CAAC,yJAAyJ,EAAEC,MAAMC,IAAI,CACpK,MAAA,CAAA,CACA,QAAQ,CAAC,CAAA;QAEf,CAAA,MAAO;AACLf,YAAAA,OAAAA,CAAQgB,IAAI,CAAC,uEAAA,CAAA;YACbtB,MAAAA,CAAOG,KAAK,CAAC,6BAAA,EAA+Ba,CAAAA,CAAAA;AAC9C,QAAA;QACA,MAAMR,UAAAA,CAAWb,GAAAA,EAAKS,eAAAA,EAAiB,uBAAA,EAAyB;AAC9DK,YAAAA,mBAAAA,EAAqBR,QAAQS;AAC/B,SAAA,CAAA;AACF,IAAA;AACF,CAAA;;;;"}
@@ -0,0 +1,4 @@
1
+ import { type StrapiCloudCommand } from '../../types';
2
+ declare const command: StrapiCloudCommand;
3
+ export default command;
4
+ //# sourceMappingURL=command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../src/environment/list/command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAKtD,QAAA,MAAM,OAAO,EAAE,kBASd,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
+ var command$1 = require('../command.js');
6
+
7
+ const command = ({ command, ctx })=>{
8
+ const environmentCmd = command$1.initializeEnvironmentCommand(command, ctx);
9
+ environmentCmd.command('list').description('List Strapi Cloud project environments').option('-d, --debug', 'Enable debugging mode with verbose logs').option('-s, --silent', "Don't log anything").action(()=>helpers.runAction('list', action)(ctx));
10
+ };
11
+
12
+ module.exports = command;
13
+ //# sourceMappingURL=command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command.js","sources":["../../../src/environment/list/command.ts"],"sourcesContent":["import { type StrapiCloudCommand } from '../../types';\nimport { runAction } from '../../utils/helpers';\nimport action from './action';\nimport { initializeEnvironmentCommand } from '../command';\n\nconst command: StrapiCloudCommand = ({ command, ctx }) => {\n const environmentCmd = initializeEnvironmentCommand(command, ctx);\n\n environmentCmd\n .command('list')\n .description('List Strapi Cloud project environments')\n .option('-d, --debug', 'Enable debugging mode with verbose logs')\n .option('-s, --silent', \"Don't log anything\")\n .action(() => runAction('list', action)(ctx));\n};\n\nexport default command;\n"],"names":["command","ctx","environmentCmd","initializeEnvironmentCommand","description","option","action","runAction"],"mappings":";;;;;;AAKA,MAAMA,UAA8B,CAAC,EAAEA,OAAO,EAAEC,GAAG,EAAE,GAAA;IACnD,MAAMC,cAAAA,GAAiBC,uCAA6BH,OAAAA,EAASC,GAAAA,CAAAA;AAE7DC,IAAAA,cAAAA,CACGF,OAAO,CAAC,MAAA,CAAA,CACRI,WAAW,CAAC,wCAAA,CAAA,CACZC,MAAM,CAAC,aAAA,EAAe,2CACtBA,MAAM,CAAC,gBAAgB,oBAAA,CAAA,CACvBC,MAAM,CAAC,IAAMC,iBAAAA,CAAU,QAAQD,MAAAA,CAAAA,CAAQL,GAAAA,CAAAA,CAAAA;AAC5C;;;;"}
@@ -0,0 +1,11 @@
1
+ import { runAction } from '../../utils/helpers.mjs';
2
+ import action from './action.mjs';
3
+ import { initializeEnvironmentCommand } from '../command.mjs';
4
+
5
+ const command = ({ command, ctx })=>{
6
+ const environmentCmd = initializeEnvironmentCommand(command, ctx);
7
+ environmentCmd.command('list').description('List Strapi Cloud project environments').option('-d, --debug', 'Enable debugging mode with verbose logs').option('-s, --silent', "Don't log anything").action(()=>runAction('list', 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/environment/list/command.ts"],"sourcesContent":["import { type StrapiCloudCommand } from '../../types';\nimport { runAction } from '../../utils/helpers';\nimport action from './action';\nimport { initializeEnvironmentCommand } from '../command';\n\nconst command: StrapiCloudCommand = ({ command, ctx }) => {\n const environmentCmd = initializeEnvironmentCommand(command, ctx);\n\n environmentCmd\n .command('list')\n .description('List Strapi Cloud project environments')\n .option('-d, --debug', 'Enable debugging mode with verbose logs')\n .option('-s, --silent', \"Don't log anything\")\n .action(() => runAction('list', action)(ctx));\n};\n\nexport default command;\n"],"names":["command","ctx","environmentCmd","initializeEnvironmentCommand","description","option","action","runAction"],"mappings":";;;;AAKA,MAAMA,UAA8B,CAAC,EAAEA,OAAO,EAAEC,GAAG,EAAE,GAAA;IACnD,MAAMC,cAAAA,GAAiBC,6BAA6BH,OAAAA,EAASC,GAAAA,CAAAA;AAE7DC,IAAAA,cAAAA,CACGF,OAAO,CAAC,MAAA,CAAA,CACRI,WAAW,CAAC,wCAAA,CAAA,CACZC,MAAM,CAAC,aAAA,EAAe,2CACtBA,MAAM,CAAC,gBAAgB,oBAAA,CAAA,CACvBC,MAAM,CAAC,IAAMC,SAAAA,CAAU,QAAQD,MAAAA,CAAAA,CAAQL,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/environment/list/index.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAE1D,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;wBAOtB,sBAAsB;AAL3B,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 listEnvironments = {
9
+ name: 'list-environments',
10
+ description: 'List Strapi Cloud environments',
11
+ action,
12
+ command
13
+ };
14
+
15
+ exports.action = action;
16
+ exports.command = command;
17
+ exports.default = listEnvironments;
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","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;;;;;;"}