@strapi/cloud-cli 0.0.0-next.fdac61dd05ca665168f51f655f1d165b55ec4231 → 0.0.0-next.ffc36acb308febe288f1a31b62cbbb75b286585c

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 (339) hide show
  1. package/dist/bin.d.ts.map +1 -0
  2. package/dist/bin.js +5 -18
  3. package/dist/bin.js.map +1 -1
  4. package/dist/bin.mjs +3 -16
  5. package/dist/bin.mjs.map +1 -1
  6. package/dist/cloud/command.d.ts.map +1 -0
  7. package/dist/cloud/command.js +14 -0
  8. package/dist/cloud/command.js.map +1 -0
  9. package/dist/cloud/command.mjs +12 -0
  10. package/dist/cloud/command.mjs.map +1 -0
  11. package/dist/config/api.d.ts.map +1 -0
  12. package/dist/config/api.js +11 -0
  13. package/dist/config/api.js.map +1 -0
  14. package/dist/config/api.mjs +9 -0
  15. package/dist/config/api.mjs.map +1 -0
  16. package/dist/{src/config → config}/local.d.ts +1 -1
  17. package/dist/config/local.d.ts.map +1 -0
  18. package/dist/config/local.js +60 -0
  19. package/dist/config/local.js.map +1 -0
  20. package/dist/config/local.mjs +55 -0
  21. package/dist/config/local.mjs.map +1 -0
  22. package/dist/create-growth-sso-trial/action.d.ts +9 -0
  23. package/dist/create-growth-sso-trial/action.d.ts.map +1 -0
  24. package/dist/create-growth-sso-trial/action.js +52 -0
  25. package/dist/create-growth-sso-trial/action.js.map +1 -0
  26. package/dist/create-growth-sso-trial/action.mjs +50 -0
  27. package/dist/create-growth-sso-trial/action.mjs.map +1 -0
  28. package/dist/create-growth-sso-trial/index.d.ts +4 -0
  29. package/dist/create-growth-sso-trial/index.d.ts.map +1 -0
  30. package/dist/create-project/action.d.ts +4 -0
  31. package/dist/create-project/action.d.ts.map +1 -0
  32. package/dist/create-project/action.js +122 -0
  33. package/dist/create-project/action.js.map +1 -0
  34. package/dist/create-project/action.mjs +120 -0
  35. package/dist/create-project/action.mjs.map +1 -0
  36. package/dist/create-project/command.d.ts.map +1 -0
  37. package/dist/create-project/command.js +14 -0
  38. package/dist/create-project/command.js.map +1 -0
  39. package/dist/create-project/command.mjs +12 -0
  40. package/dist/create-project/command.mjs.map +1 -0
  41. package/dist/create-project/index.d.ts.map +1 -0
  42. package/dist/create-project/index.js +18 -0
  43. package/dist/create-project/index.js.map +1 -0
  44. package/dist/create-project/index.mjs +12 -0
  45. package/dist/create-project/index.mjs.map +1 -0
  46. package/dist/create-project/utils/get-project-name-from-pkg.d.ts.map +1 -0
  47. package/dist/create-project/utils/get-project-name-from-pkg.js +15 -0
  48. package/dist/create-project/utils/get-project-name-from-pkg.js.map +1 -0
  49. package/dist/create-project/utils/get-project-name-from-pkg.mjs +13 -0
  50. package/dist/create-project/utils/get-project-name-from-pkg.mjs.map +1 -0
  51. package/dist/create-project/utils/project-questions.utils.d.ts.map +1 -0
  52. package/dist/create-project/utils/project-questions.utils.js +63 -0
  53. package/dist/create-project/utils/project-questions.utils.js.map +1 -0
  54. package/dist/create-project/utils/project-questions.utils.mjs +59 -0
  55. package/dist/create-project/utils/project-questions.utils.mjs.map +1 -0
  56. package/dist/deploy-project/action.d.ts.map +1 -0
  57. package/dist/deploy-project/action.js +324 -0
  58. package/dist/deploy-project/action.js.map +1 -0
  59. package/dist/deploy-project/action.mjs +303 -0
  60. package/dist/deploy-project/action.mjs.map +1 -0
  61. package/dist/deploy-project/command.d.ts.map +1 -0
  62. package/dist/deploy-project/command.js +14 -0
  63. package/dist/deploy-project/command.js.map +1 -0
  64. package/dist/deploy-project/command.mjs +12 -0
  65. package/dist/deploy-project/command.mjs.map +1 -0
  66. package/dist/deploy-project/index.d.ts.map +1 -0
  67. package/dist/deploy-project/index.js +18 -0
  68. package/dist/deploy-project/index.js.map +1 -0
  69. package/dist/deploy-project/index.mjs +12 -0
  70. package/dist/deploy-project/index.mjs.map +1 -0
  71. package/dist/environment/command.d.ts.map +1 -0
  72. package/dist/environment/command.js +15 -0
  73. package/dist/environment/command.js.map +1 -0
  74. package/dist/environment/command.mjs +13 -0
  75. package/dist/environment/command.mjs.map +1 -0
  76. package/dist/environment/link/action.d.ts.map +1 -0
  77. package/dist/environment/link/action.js +117 -0
  78. package/dist/environment/link/action.js.map +1 -0
  79. package/dist/environment/link/action.mjs +115 -0
  80. package/dist/environment/link/action.mjs.map +1 -0
  81. package/dist/environment/link/command.d.ts.map +1 -0
  82. package/dist/environment/link/command.js +13 -0
  83. package/dist/environment/link/command.js.map +1 -0
  84. package/dist/environment/link/command.mjs +11 -0
  85. package/dist/environment/link/command.mjs.map +1 -0
  86. package/dist/environment/link/index.d.ts.map +1 -0
  87. package/dist/environment/link/index.js +18 -0
  88. package/dist/environment/link/index.js.map +1 -0
  89. package/dist/environment/link/index.mjs +12 -0
  90. package/dist/environment/link/index.mjs.map +1 -0
  91. package/dist/environment/list/action.d.ts.map +1 -0
  92. package/dist/environment/list/action.js +57 -0
  93. package/dist/environment/list/action.js.map +1 -0
  94. package/dist/environment/list/action.mjs +55 -0
  95. package/dist/environment/list/action.mjs.map +1 -0
  96. package/dist/environment/list/command.d.ts.map +1 -0
  97. package/dist/environment/list/command.js +13 -0
  98. package/dist/environment/list/command.js.map +1 -0
  99. package/dist/environment/list/command.mjs +11 -0
  100. package/dist/environment/list/command.mjs.map +1 -0
  101. package/dist/environment/list/index.d.ts.map +1 -0
  102. package/dist/environment/list/index.js +18 -0
  103. package/dist/environment/list/index.js.map +1 -0
  104. package/dist/environment/list/index.mjs +12 -0
  105. package/dist/environment/list/index.mjs.map +1 -0
  106. package/dist/{src/index.d.ts → index.d.ts} +2 -0
  107. package/dist/index.d.ts.map +1 -0
  108. package/dist/index.js +61 -29
  109. package/dist/index.js.map +1 -1
  110. package/dist/index.mjs +61 -25
  111. package/dist/index.mjs.map +1 -1
  112. package/dist/link/action.d.ts.map +1 -0
  113. package/dist/link/action.js +146 -0
  114. package/dist/link/action.js.map +1 -0
  115. package/dist/link/action.mjs +144 -0
  116. package/dist/link/action.mjs.map +1 -0
  117. package/dist/link/command.d.ts.map +1 -0
  118. package/dist/link/command.js +13 -0
  119. package/dist/link/command.js.map +1 -0
  120. package/dist/link/command.mjs +11 -0
  121. package/dist/link/command.mjs.map +1 -0
  122. package/dist/link/index.d.ts.map +1 -0
  123. package/dist/link/index.js +18 -0
  124. package/dist/link/index.js.map +1 -0
  125. package/dist/link/index.mjs +12 -0
  126. package/dist/link/index.mjs.map +1 -0
  127. package/dist/list-projects/action.d.ts.map +1 -0
  128. package/dist/list-projects/action.js +34 -0
  129. package/dist/list-projects/action.js.map +1 -0
  130. package/dist/list-projects/action.mjs +32 -0
  131. package/dist/list-projects/action.mjs.map +1 -0
  132. package/dist/list-projects/command.d.ts.map +1 -0
  133. package/dist/list-projects/command.js +13 -0
  134. package/dist/list-projects/command.js.map +1 -0
  135. package/dist/list-projects/command.mjs +11 -0
  136. package/dist/list-projects/command.mjs.map +1 -0
  137. package/dist/list-projects/index.d.ts.map +1 -0
  138. package/dist/list-projects/index.js +18 -0
  139. package/dist/list-projects/index.js.map +1 -0
  140. package/dist/list-projects/index.mjs +12 -0
  141. package/dist/list-projects/index.mjs.map +1 -0
  142. package/dist/login/action.d.ts +6 -0
  143. package/dist/login/action.d.ts.map +1 -0
  144. package/dist/login/action.js +194 -0
  145. package/dist/login/action.js.map +1 -0
  146. package/dist/login/action.mjs +189 -0
  147. package/dist/login/action.mjs.map +1 -0
  148. package/dist/login/command.d.ts.map +1 -0
  149. package/dist/login/command.js +14 -0
  150. package/dist/login/command.js.map +1 -0
  151. package/dist/login/command.mjs +12 -0
  152. package/dist/login/command.mjs.map +1 -0
  153. package/dist/login/index.d.ts.map +1 -0
  154. package/dist/login/index.js +18 -0
  155. package/dist/login/index.js.map +1 -0
  156. package/dist/login/index.mjs +12 -0
  157. package/dist/login/index.mjs.map +1 -0
  158. package/dist/logout/action.d.ts.map +1 -0
  159. package/dist/logout/action.js +46 -0
  160. package/dist/logout/action.js.map +1 -0
  161. package/dist/logout/action.mjs +44 -0
  162. package/dist/logout/action.mjs.map +1 -0
  163. package/dist/logout/command.d.ts.map +1 -0
  164. package/dist/logout/command.js +14 -0
  165. package/dist/logout/command.js.map +1 -0
  166. package/dist/logout/command.mjs +12 -0
  167. package/dist/logout/command.mjs.map +1 -0
  168. package/dist/logout/index.d.ts.map +1 -0
  169. package/dist/logout/index.js +18 -0
  170. package/dist/logout/index.js.map +1 -0
  171. package/dist/logout/index.mjs +12 -0
  172. package/dist/logout/index.mjs.map +1 -0
  173. package/dist/package.json.js +129 -0
  174. package/dist/package.json.js.map +1 -0
  175. package/dist/package.json.mjs +105 -0
  176. package/dist/package.json.mjs.map +1 -0
  177. package/dist/services/build-logs.d.ts.map +1 -0
  178. package/dist/services/build-logs.js +67 -0
  179. package/dist/services/build-logs.js.map +1 -0
  180. package/dist/services/build-logs.mjs +65 -0
  181. package/dist/services/build-logs.mjs.map +1 -0
  182. package/dist/{src/services → services}/cli-api.d.ts +13 -2
  183. package/dist/services/cli-api.d.ts.map +1 -0
  184. package/dist/services/cli-api.js +159 -0
  185. package/dist/services/cli-api.js.map +1 -0
  186. package/dist/services/cli-api.mjs +156 -0
  187. package/dist/services/cli-api.mjs.map +1 -0
  188. package/dist/services/index.d.ts.map +1 -0
  189. package/dist/services/index.js +14 -0
  190. package/dist/services/index.js.map +1 -0
  191. package/dist/services/index.mjs +6 -0
  192. package/dist/services/index.mjs.map +1 -0
  193. package/dist/services/logger.d.ts.map +1 -0
  194. package/dist/services/logger.js +128 -0
  195. package/dist/services/logger.js.map +1 -0
  196. package/dist/services/logger.mjs +107 -0
  197. package/dist/services/logger.mjs.map +1 -0
  198. package/dist/{src/services → services}/notification.d.ts +4 -1
  199. package/dist/services/notification.d.ts.map +1 -0
  200. package/dist/services/notification.js +79 -0
  201. package/dist/services/notification.js.map +1 -0
  202. package/dist/services/notification.mjs +77 -0
  203. package/dist/services/notification.mjs.map +1 -0
  204. package/dist/services/strapi-info-save.d.ts.map +1 -0
  205. package/dist/services/strapi-info-save.js +53 -0
  206. package/dist/services/strapi-info-save.js.map +1 -0
  207. package/dist/services/strapi-info-save.mjs +47 -0
  208. package/dist/services/strapi-info-save.mjs.map +1 -0
  209. package/dist/services/token.d.ts.map +1 -0
  210. package/dist/services/token.js +126 -0
  211. package/dist/services/token.js.map +1 -0
  212. package/dist/services/token.mjs +124 -0
  213. package/dist/services/token.mjs.map +1 -0
  214. package/dist/{src/types.d.ts → types.d.ts} +19 -1
  215. package/dist/types.d.ts.map +1 -0
  216. package/dist/utils/analytics.d.ts.map +1 -0
  217. package/dist/utils/analytics.js +12 -0
  218. package/dist/utils/analytics.js.map +1 -0
  219. package/dist/utils/analytics.mjs +10 -0
  220. package/dist/utils/analytics.mjs.map +1 -0
  221. package/dist/utils/compress-files.d.ts.map +1 -0
  222. package/dist/utils/compress-files.js +104 -0
  223. package/dist/utils/compress-files.js.map +1 -0
  224. package/dist/utils/compress-files.mjs +80 -0
  225. package/dist/utils/compress-files.mjs.map +1 -0
  226. package/dist/utils/error-message-factories.d.ts +9 -0
  227. package/dist/utils/error-message-factories.d.ts.map +1 -0
  228. package/dist/utils/error-message-factories.js +25 -0
  229. package/dist/utils/error-message-factories.js.map +1 -0
  230. package/dist/utils/error-message-factories.mjs +22 -0
  231. package/dist/utils/error-message-factories.mjs.map +1 -0
  232. package/dist/utils/get-local-config.d.ts.map +1 -0
  233. package/dist/utils/get-local-config.js +37 -0
  234. package/dist/utils/get-local-config.js.map +1 -0
  235. package/dist/utils/get-local-config.mjs +34 -0
  236. package/dist/utils/get-local-config.mjs.map +1 -0
  237. package/dist/utils/helpers.d.ts.map +1 -0
  238. package/dist/utils/helpers.js +33 -0
  239. package/dist/utils/helpers.js.map +1 -0
  240. package/dist/utils/helpers.mjs +31 -0
  241. package/dist/utils/helpers.mjs.map +1 -0
  242. package/dist/utils/pkg.d.ts.map +1 -0
  243. package/dist/utils/pkg.js +65 -0
  244. package/dist/utils/pkg.js.map +1 -0
  245. package/dist/utils/pkg.mjs +43 -0
  246. package/dist/utils/pkg.mjs.map +1 -0
  247. package/dist/utils/tests/compress-files.test.d.ts.map +1 -0
  248. package/package.json +6 -6
  249. package/dist/chunks/index-DCxxMB6X.mjs +0 -1869
  250. package/dist/chunks/index-DCxxMB6X.mjs.map +0 -1
  251. package/dist/chunks/index-n1CokuqJ.js +0 -1896
  252. package/dist/chunks/index-n1CokuqJ.js.map +0 -1
  253. package/dist/src/bin.d.ts.map +0 -1
  254. package/dist/src/cloud/command.d.ts.map +0 -1
  255. package/dist/src/config/api.d.ts.map +0 -1
  256. package/dist/src/config/local.d.ts.map +0 -1
  257. package/dist/src/create-project/action.d.ts +0 -4
  258. package/dist/src/create-project/action.d.ts.map +0 -1
  259. package/dist/src/create-project/command.d.ts.map +0 -1
  260. package/dist/src/create-project/index.d.ts.map +0 -1
  261. package/dist/src/create-project/utils/get-project-name-from-pkg.d.ts.map +0 -1
  262. package/dist/src/create-project/utils/project-questions.utils.d.ts.map +0 -1
  263. package/dist/src/deploy-project/action.d.ts.map +0 -1
  264. package/dist/src/deploy-project/command.d.ts.map +0 -1
  265. package/dist/src/deploy-project/index.d.ts.map +0 -1
  266. package/dist/src/environment/command.d.ts.map +0 -1
  267. package/dist/src/environment/link/action.d.ts.map +0 -1
  268. package/dist/src/environment/link/command.d.ts.map +0 -1
  269. package/dist/src/environment/link/index.d.ts.map +0 -1
  270. package/dist/src/environment/list/action.d.ts.map +0 -1
  271. package/dist/src/environment/list/command.d.ts.map +0 -1
  272. package/dist/src/environment/list/index.d.ts.map +0 -1
  273. package/dist/src/index.d.ts.map +0 -1
  274. package/dist/src/link/action.d.ts.map +0 -1
  275. package/dist/src/link/command.d.ts.map +0 -1
  276. package/dist/src/link/index.d.ts.map +0 -1
  277. package/dist/src/list-projects/action.d.ts.map +0 -1
  278. package/dist/src/list-projects/command.d.ts.map +0 -1
  279. package/dist/src/list-projects/index.d.ts.map +0 -1
  280. package/dist/src/login/action.d.ts +0 -4
  281. package/dist/src/login/action.d.ts.map +0 -1
  282. package/dist/src/login/command.d.ts.map +0 -1
  283. package/dist/src/login/index.d.ts.map +0 -1
  284. package/dist/src/logout/action.d.ts.map +0 -1
  285. package/dist/src/logout/command.d.ts.map +0 -1
  286. package/dist/src/logout/index.d.ts.map +0 -1
  287. package/dist/src/services/build-logs.d.ts.map +0 -1
  288. package/dist/src/services/cli-api.d.ts.map +0 -1
  289. package/dist/src/services/index.d.ts.map +0 -1
  290. package/dist/src/services/logger.d.ts.map +0 -1
  291. package/dist/src/services/notification.d.ts.map +0 -1
  292. package/dist/src/services/strapi-info-save.d.ts.map +0 -1
  293. package/dist/src/services/token.d.ts.map +0 -1
  294. package/dist/src/types.d.ts.map +0 -1
  295. package/dist/src/utils/analytics.d.ts.map +0 -1
  296. package/dist/src/utils/compress-files.d.ts.map +0 -1
  297. package/dist/src/utils/get-local-config.d.ts.map +0 -1
  298. package/dist/src/utils/helpers.d.ts.map +0 -1
  299. package/dist/src/utils/pkg.d.ts.map +0 -1
  300. package/dist/src/utils/tests/compress-files.test.d.ts.map +0 -1
  301. /package/dist/{src/bin.d.ts → bin.d.ts} +0 -0
  302. /package/dist/{src/cloud → cloud}/command.d.ts +0 -0
  303. /package/dist/{src/config → config}/api.d.ts +0 -0
  304. /package/dist/{src/create-project → create-project}/command.d.ts +0 -0
  305. /package/dist/{src/create-project → create-project}/index.d.ts +0 -0
  306. /package/dist/{src/create-project → create-project}/utils/get-project-name-from-pkg.d.ts +0 -0
  307. /package/dist/{src/create-project → create-project}/utils/project-questions.utils.d.ts +0 -0
  308. /package/dist/{src/deploy-project → deploy-project}/action.d.ts +0 -0
  309. /package/dist/{src/deploy-project → deploy-project}/command.d.ts +0 -0
  310. /package/dist/{src/deploy-project → deploy-project}/index.d.ts +0 -0
  311. /package/dist/{src/environment → environment}/command.d.ts +0 -0
  312. /package/dist/{src/environment → environment}/link/action.d.ts +0 -0
  313. /package/dist/{src/environment → environment}/link/command.d.ts +0 -0
  314. /package/dist/{src/environment → environment}/link/index.d.ts +0 -0
  315. /package/dist/{src/environment → environment}/list/action.d.ts +0 -0
  316. /package/dist/{src/environment → environment}/list/command.d.ts +0 -0
  317. /package/dist/{src/environment → environment}/list/index.d.ts +0 -0
  318. /package/dist/{src/link → link}/action.d.ts +0 -0
  319. /package/dist/{src/link → link}/command.d.ts +0 -0
  320. /package/dist/{src/link → link}/index.d.ts +0 -0
  321. /package/dist/{src/list-projects → list-projects}/action.d.ts +0 -0
  322. /package/dist/{src/list-projects → list-projects}/command.d.ts +0 -0
  323. /package/dist/{src/list-projects → list-projects}/index.d.ts +0 -0
  324. /package/dist/{src/login → login}/command.d.ts +0 -0
  325. /package/dist/{src/login → login}/index.d.ts +0 -0
  326. /package/dist/{src/logout → logout}/action.d.ts +0 -0
  327. /package/dist/{src/logout → logout}/command.d.ts +0 -0
  328. /package/dist/{src/logout → logout}/index.d.ts +0 -0
  329. /package/dist/{src/services → services}/build-logs.d.ts +0 -0
  330. /package/dist/{src/services → services}/index.d.ts +0 -0
  331. /package/dist/{src/services → services}/logger.d.ts +0 -0
  332. /package/dist/{src/services → services}/strapi-info-save.d.ts +0 -0
  333. /package/dist/{src/services → services}/token.d.ts +0 -0
  334. /package/dist/{src/utils → utils}/analytics.d.ts +0 -0
  335. /package/dist/{src/utils → utils}/compress-files.d.ts +0 -0
  336. /package/dist/{src/utils → utils}/get-local-config.d.ts +0 -0
  337. /package/dist/{src/utils → utils}/helpers.d.ts +0 -0
  338. /package/dist/{src/utils → utils}/pkg.d.ts +0 -0
  339. /package/dist/{src/utils → utils}/tests/compress-files.test.d.ts +0 -0
@@ -0,0 +1,124 @@
1
+ import jwksClient from 'jwks-rsa';
2
+ import jwt from 'jsonwebtoken';
3
+ import { getLocalConfig, saveLocalConfig } from '../config/local.mjs';
4
+ import { cloudApiFactory } from './cli-api.mjs';
5
+
6
+ let cliConfig;
7
+ async function tokenServiceFactory({ logger }) {
8
+ const cloudApiService = await cloudApiFactory({
9
+ logger
10
+ });
11
+ async function saveToken(str) {
12
+ const appConfig = await getLocalConfig();
13
+ if (!appConfig) {
14
+ logger.error('There was a problem saving your token. Please try again.');
15
+ return;
16
+ }
17
+ appConfig.token = str;
18
+ try {
19
+ await saveLocalConfig(appConfig);
20
+ } catch (e) {
21
+ logger.debug(e);
22
+ logger.error('There was a problem saving your token. Please try again.');
23
+ }
24
+ }
25
+ async function retrieveToken() {
26
+ const appConfig = await getLocalConfig();
27
+ if (appConfig.token) {
28
+ // check if token is still valid
29
+ if (await isTokenValid(appConfig.token)) {
30
+ return appConfig.token;
31
+ }
32
+ }
33
+ return undefined;
34
+ }
35
+ async function validateToken(idToken, jwksUrl) {
36
+ const client = jwksClient({
37
+ jwksUri: jwksUrl
38
+ });
39
+ // Get the Key from the JWKS using the token header's Key ID (kid)
40
+ const getKey = (header, callback)=>{
41
+ client.getSigningKey(header.kid, (e, key)=>{
42
+ if (e) {
43
+ callback(e);
44
+ } else if (key) {
45
+ const publicKey = 'publicKey' in key ? key.publicKey : key.rsaPublicKey;
46
+ callback(null, publicKey);
47
+ } else {
48
+ callback(new Error('Key not found'));
49
+ }
50
+ });
51
+ };
52
+ const decodedToken = jwt.decode(idToken, {
53
+ complete: true
54
+ });
55
+ if (!decodedToken) {
56
+ if (typeof idToken === 'undefined' || idToken === '') {
57
+ logger.warn('You need to be logged in to use this feature. Please log in and try again.');
58
+ } else {
59
+ logger.error('There seems to be a problem with your login information. Please try logging in again.');
60
+ }
61
+ return Promise.reject(new Error('Invalid token'));
62
+ }
63
+ // Verify the JWT token signature using the JWKS Key
64
+ return new Promise((resolve, reject)=>{
65
+ jwt.verify(idToken, getKey, (err)=>{
66
+ if (err) {
67
+ reject(err);
68
+ }
69
+ if (decodedToken.payload.exp < Math.floor(Date.now() / 1000)) {
70
+ reject(new Error('Token is expired'));
71
+ }
72
+ resolve();
73
+ });
74
+ });
75
+ }
76
+ async function isTokenValid(token) {
77
+ try {
78
+ const config = await cloudApiService.config();
79
+ cliConfig = config.data;
80
+ if (token) {
81
+ await validateToken(token, cliConfig.jwksUrl);
82
+ return true;
83
+ }
84
+ return false;
85
+ } catch (e) {
86
+ logger.debug(e);
87
+ return false;
88
+ }
89
+ }
90
+ async function eraseToken() {
91
+ const appConfig = await getLocalConfig();
92
+ if (!appConfig) {
93
+ return;
94
+ }
95
+ delete appConfig.token;
96
+ try {
97
+ await saveLocalConfig(appConfig);
98
+ } catch (e) {
99
+ logger.debug(e);
100
+ logger.error('There was an issue removing your login information. Please try logging out again.');
101
+ throw e;
102
+ }
103
+ }
104
+ async function getValidToken(ctx, loginAction) {
105
+ let token = await retrieveToken();
106
+ while(!token || !await isTokenValid(token)){
107
+ logger.log(token ? 'Oops! Your token seems expired or invalid. Please login again.' : "We couldn't find a valid token. You need to be logged in to use this feature.");
108
+ if (!await loginAction(ctx)) return null;
109
+ token = await retrieveToken();
110
+ }
111
+ return token;
112
+ }
113
+ return {
114
+ saveToken,
115
+ retrieveToken,
116
+ validateToken,
117
+ isTokenValid,
118
+ eraseToken,
119
+ getValidToken
120
+ };
121
+ }
122
+
123
+ export { tokenServiceFactory };
124
+ //# sourceMappingURL=token.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token.mjs","sources":["../../src/services/token.ts"],"sourcesContent":["import jwksClient, { type JwksClient, type SigningKey } from 'jwks-rsa';\nimport type { JwtHeader, VerifyErrors } from 'jsonwebtoken';\nimport jwt from 'jsonwebtoken';\nimport { getLocalConfig, saveLocalConfig } from '../config/local';\nimport type { CloudCliConfig, CLIContext } from '../types';\nimport { cloudApiFactory } from './cli-api';\n\nlet cliConfig: CloudCliConfig;\n\ninterface DecodedToken {\n [key: string]: any;\n}\n\nexport async function tokenServiceFactory({ logger }: { logger: CLIContext['logger'] }) {\n const cloudApiService = await cloudApiFactory({ logger });\n\n async function saveToken(str: string) {\n const appConfig = await getLocalConfig();\n\n if (!appConfig) {\n logger.error('There was a problem saving your token. Please try again.');\n return;\n }\n\n appConfig.token = str;\n\n try {\n await saveLocalConfig(appConfig);\n } catch (e: Error | unknown) {\n logger.debug(e);\n logger.error('There was a problem saving your token. Please try again.');\n }\n }\n\n async function retrieveToken() {\n const appConfig = await getLocalConfig();\n if (appConfig.token) {\n // check if token is still valid\n if (await isTokenValid(appConfig.token)) {\n return appConfig.token;\n }\n }\n return undefined;\n }\n\n async function validateToken(idToken: string, jwksUrl: string): Promise<void> {\n const client: JwksClient = jwksClient({\n jwksUri: jwksUrl,\n });\n\n // Get the Key from the JWKS using the token header's Key ID (kid)\n const getKey = (header: JwtHeader, callback: (e: Error | null, key?: string) => void) => {\n client.getSigningKey(header.kid, (e: Error | null, key?: SigningKey) => {\n if (e) {\n callback(e);\n } else if (key) {\n const publicKey = 'publicKey' in key ? key.publicKey : key.rsaPublicKey;\n callback(null, publicKey);\n } else {\n callback(new Error('Key not found'));\n }\n });\n };\n\n const decodedToken = jwt.decode(idToken, { complete: true }) as DecodedToken;\n if (!decodedToken) {\n if (typeof idToken === 'undefined' || idToken === '') {\n logger.warn('You need to be logged in to use this feature. Please log in and try again.');\n } else {\n logger.error(\n 'There seems to be a problem with your login information. Please try logging in again.'\n );\n }\n return Promise.reject(new Error('Invalid token'));\n }\n\n // Verify the JWT token signature using the JWKS Key\n return new Promise<void>((resolve, reject) => {\n jwt.verify(idToken, getKey, (err: VerifyErrors | null) => {\n if (err) {\n reject(err);\n }\n if (decodedToken.payload.exp < Math.floor(Date.now() / 1000)) {\n reject(new Error('Token is expired'));\n }\n resolve();\n });\n });\n }\n\n async function isTokenValid(token: string) {\n try {\n const config = await cloudApiService.config();\n\n cliConfig = config.data;\n if (token) {\n await validateToken(token, cliConfig.jwksUrl);\n return true;\n }\n return false;\n } catch (e) {\n logger.debug(e);\n return false;\n }\n }\n\n async function eraseToken() {\n const appConfig = await getLocalConfig();\n if (!appConfig) {\n return;\n }\n\n delete appConfig.token;\n\n try {\n await saveLocalConfig(appConfig);\n } catch (e: Error | unknown) {\n logger.debug(e);\n logger.error(\n 'There was an issue removing your login information. Please try logging out again.'\n );\n throw e;\n }\n }\n\n async function getValidToken(\n ctx: CLIContext,\n loginAction: (ctx: CLIContext) => Promise<boolean>\n ) {\n let token = await retrieveToken();\n\n while (!token || !(await isTokenValid(token))) {\n logger.log(\n token\n ? 'Oops! Your token seems expired or invalid. Please login again.'\n : \"We couldn't find a valid token. You need to be logged in to use this feature.\"\n );\n if (!(await loginAction(ctx))) return null;\n token = await retrieveToken();\n }\n\n return token;\n }\n\n return {\n saveToken,\n retrieveToken,\n validateToken,\n isTokenValid,\n eraseToken,\n getValidToken,\n };\n}\n"],"names":["cliConfig","tokenServiceFactory","logger","cloudApiService","cloudApiFactory","saveToken","str","appConfig","getLocalConfig","error","token","saveLocalConfig","e","debug","retrieveToken","isTokenValid","undefined","validateToken","idToken","jwksUrl","client","jwksClient","jwksUri","getKey","header","callback","getSigningKey","kid","key","publicKey","rsaPublicKey","Error","decodedToken","jwt","decode","complete","warn","Promise","reject","resolve","verify","err","payload","exp","Math","floor","Date","now","config","data","eraseToken","getValidToken","ctx","loginAction","log"],"mappings":"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"}
@@ -7,6 +7,10 @@ export type ProjectAnswers = {
7
7
  region: string;
8
8
  plan: string;
9
9
  };
10
+ type BoxedErrorMessage = {
11
+ firstLine: string;
12
+ secondLine: string;
13
+ };
10
14
  export type CloudCliConfig = {
11
15
  clientId: string;
12
16
  baseUrl: string;
@@ -19,18 +23,32 @@ export type CloudCliConfig = {
19
23
  questions: ReadonlyArray<DistinctQuestion<ProjectAnswers>>;
20
24
  defaults: Partial<ProjectAnswers>;
21
25
  introText: string;
26
+ userChoice?: object;
27
+ reference?: string;
28
+ errors: {
29
+ environmentCreationFailed: BoxedErrorMessage;
30
+ };
22
31
  };
23
32
  projectDeployment: {
24
33
  confirmationText: string;
34
+ errors: {
35
+ environmentNotReady: BoxedErrorMessage;
36
+ };
25
37
  };
26
38
  buildLogsConnectionTimeout: string;
27
39
  buildLogsMaxRetries: string;
28
40
  notificationsConnectionTimeout: string;
29
41
  maxProjectFileSize: string;
42
+ featureFlags: {
43
+ cloudLoginPromptEnabled: boolean;
44
+ growthSsoTrialEnabled: boolean;
45
+ asyncProjectCreationEnabled: boolean;
46
+ };
30
47
  };
31
48
  export interface CLIContext {
32
49
  cwd: string;
33
50
  logger: Logger;
51
+ promptExperiment?: string;
34
52
  }
35
53
  export type StrapiCloudCommand = (params: {
36
54
  command: Command;
@@ -44,7 +62,7 @@ export type StrapiCloudCommandInfo = {
44
62
  name: string;
45
63
  description: string;
46
64
  command: StrapiCloudCommand;
47
- action: (ctx: CLIContext) => Promise<unknown>;
65
+ action: (ctx: CLIContext, options?: Record<string, unknown>) => Promise<unknown>;
48
66
  };
49
67
  export type TrackPayload = Record<string, unknown>;
50
68
  export type * from './services/cli-api';
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,KAAK,iBAAiB,GAAG;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE;QACf,SAAS,EAAE,aAAa,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC,CAAC;QAC3D,QAAQ,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;QAClC,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,MAAM,EAAE;YACN,yBAAyB,EAAE,iBAAiB,CAAC;SAC9C,CAAC;KACH,CAAC;IACF,iBAAiB,EAAE;QACjB,gBAAgB,EAAE,MAAM,CAAC;QACzB,MAAM,EAAE;YACN,mBAAmB,EAAE,iBAAiB,CAAC;SACxC,CAAC;KACH,CAAC;IACF,0BAA0B,EAAE,MAAM,CAAC;IACnC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,8BAA8B,EAAE,MAAM,CAAC;IACvC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,YAAY,EAAE;QACZ,uBAAuB,EAAE,OAAO,CAAC;QACjC,qBAAqB,EAAE,OAAO,CAAC;QAC/B,2BAA2B,EAAE,OAAO,CAAC;KACtC,CAAC;CACH,CAAC;AAEF,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,MAAM,kBAAkB,GAAG,CAAC,MAAM,EAAE;IACxC,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,EAAE,UAAU,CAAC;CACjB,KAAK,IAAI,GAAG,OAAO,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;AAE/C,MAAM,MAAM,2BAA2B,GAAG,CAAC,MAAM,EAAE;IACjD,OAAO,EAAE,OAAO,CAAC;CAClB,KAAK,IAAI,GAAG,OAAO,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;AAE/C,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,kBAAkB,CAAC;IAC5B,MAAM,EAAE,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAClF,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEnD,mBAAmB,oBAAoB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analytics.d.ts","sourceRoot":"","sources":["../../src/utils/analytics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE1E,QAAA,MAAM,UAAU,QACT,UAAU,mBACE,eAAe,aACrB,MAAM,aACN,YAAY,kBAOxB,CAAC;AAEF,OAAO,EAAE,UAAU,EAAE,CAAC"}
@@ -0,0 +1,12 @@
1
+ 'use strict';
2
+
3
+ const trackEvent = async (ctx, cloudApiService, eventName, eventData)=>{
4
+ try {
5
+ await cloudApiService.track(eventName, eventData);
6
+ } catch (e) {
7
+ ctx.logger.debug(`Failed to track ${eventName}`, e);
8
+ }
9
+ };
10
+
11
+ exports.trackEvent = trackEvent;
12
+ //# sourceMappingURL=analytics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analytics.js","sources":["../../src/utils/analytics.ts"],"sourcesContent":["import type { CLIContext, CloudApiService, TrackPayload } from '../types';\n\nconst trackEvent = async (\n ctx: CLIContext,\n cloudApiService: CloudApiService,\n eventName: string,\n eventData: TrackPayload\n) => {\n try {\n await cloudApiService.track(eventName, eventData);\n } catch (e) {\n ctx.logger.debug(`Failed to track ${eventName}`, e);\n }\n};\n\nexport { trackEvent };\n"],"names":["trackEvent","ctx","cloudApiService","eventName","eventData","track","e","logger","debug"],"mappings":";;AAEA,MAAMA,UAAa,GAAA,OACjBC,GACAC,EAAAA,eAAAA,EACAC,SACAC,EAAAA,SAAAA,GAAAA;IAEA,IAAI;QACF,MAAMF,eAAAA,CAAgBG,KAAK,CAACF,SAAWC,EAAAA,SAAAA,CAAAA;AACzC,KAAA,CAAE,OAAOE,CAAG,EAAA;QACVL,GAAIM,CAAAA,MAAM,CAACC,KAAK,CAAC,CAAC,gBAAgB,EAAEL,SAAU,CAAA,CAAC,EAAEG,CAAAA,CAAAA;AACnD;AACF;;;;"}
@@ -0,0 +1,10 @@
1
+ const trackEvent = async (ctx, cloudApiService, eventName, eventData)=>{
2
+ try {
3
+ await cloudApiService.track(eventName, eventData);
4
+ } catch (e) {
5
+ ctx.logger.debug(`Failed to track ${eventName}`, e);
6
+ }
7
+ };
8
+
9
+ export { trackEvent };
10
+ //# sourceMappingURL=analytics.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analytics.mjs","sources":["../../src/utils/analytics.ts"],"sourcesContent":["import type { CLIContext, CloudApiService, TrackPayload } from '../types';\n\nconst trackEvent = async (\n ctx: CLIContext,\n cloudApiService: CloudApiService,\n eventName: string,\n eventData: TrackPayload\n) => {\n try {\n await cloudApiService.track(eventName, eventData);\n } catch (e) {\n ctx.logger.debug(`Failed to track ${eventName}`, e);\n }\n};\n\nexport { trackEvent };\n"],"names":["trackEvent","ctx","cloudApiService","eventName","eventData","track","e","logger","debug"],"mappings":"AAEA,MAAMA,UAAa,GAAA,OACjBC,GACAC,EAAAA,eAAAA,EACAC,SACAC,EAAAA,SAAAA,GAAAA;IAEA,IAAI;QACF,MAAMF,eAAAA,CAAgBG,KAAK,CAACF,SAAWC,EAAAA,SAAAA,CAAAA;AACzC,KAAA,CAAE,OAAOE,CAAG,EAAA;QACVL,GAAIM,CAAAA,MAAM,CAACC,KAAK,CAAC,CAAC,gBAAgB,EAAEL,SAAU,CAAA,CAAC,EAAEG,CAAAA,CAAAA;AACnD;AACF;;;;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compress-files.d.ts","sourceRoot":"","sources":["../../src/utils/compress-files.ts"],"names":[],"mappings":"AAsBA,QAAA,MAAM,aAAa,eAAgB,MAAM,QAAQ,MAAM,kBAAkB,MAAM,EAAE,KAAG,OAgBnF,CAAC;AAwCF,QAAA,MAAM,kBAAkB,gBACT,MAAM,oBACD,MAAM,YACd,MAAM,KACf,QAAQ,IAAI,CAWd,CAAC;AAEF,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,CAAC"}
@@ -0,0 +1,104 @@
1
+ 'use strict';
2
+
3
+ var fse = require('fs-extra');
4
+ var tar = require('tar');
5
+ var path = require('path');
6
+ var minimatch = require('minimatch');
7
+
8
+ function _interopNamespaceDefault(e) {
9
+ var n = Object.create(null);
10
+ if (e) {
11
+ Object.keys(e).forEach(function (k) {
12
+ if (k !== 'default') {
13
+ var d = Object.getOwnPropertyDescriptor(e, k);
14
+ Object.defineProperty(n, k, d.get ? d : {
15
+ enumerable: true,
16
+ get: function () { return e[k]; }
17
+ });
18
+ }
19
+ });
20
+ }
21
+ n.default = e;
22
+ return Object.freeze(n);
23
+ }
24
+
25
+ var fse__namespace = /*#__PURE__*/_interopNamespaceDefault(fse);
26
+ var tar__namespace = /*#__PURE__*/_interopNamespaceDefault(tar);
27
+ var path__namespace = /*#__PURE__*/_interopNamespaceDefault(path);
28
+
29
+ const IGNORED_PATTERNS = [
30
+ '**/.git/**',
31
+ '**/node_modules/**',
32
+ '**/build/**',
33
+ '**/data/uploads/**',
34
+ '**/dist/**',
35
+ '**/.cache/**',
36
+ '**/.circleci/**',
37
+ '**/.github/**',
38
+ '**/.gitignore',
39
+ '**/.gitkeep',
40
+ '**/.gitlab-ci.yml',
41
+ '**/.idea/**',
42
+ '**/public/uploads/**',
43
+ '**/.vscode/**'
44
+ ];
45
+ const isIgnoredFile = (folderPath, file, ignorePatterns)=>{
46
+ ignorePatterns.push(...IGNORED_PATTERNS);
47
+ const relativeFilePath = path__namespace.join(folderPath, file);
48
+ let isIgnored = false;
49
+ for (const pattern of ignorePatterns){
50
+ if (pattern.startsWith('!')) {
51
+ if (minimatch.minimatch(relativeFilePath, pattern.slice(1), {
52
+ matchBase: true,
53
+ dot: true
54
+ })) {
55
+ return false;
56
+ }
57
+ } else if (minimatch.minimatch(relativeFilePath, pattern, {
58
+ matchBase: true,
59
+ dot: true
60
+ })) {
61
+ if (path__namespace.basename(file) !== '.gitkeep') {
62
+ isIgnored = true;
63
+ }
64
+ }
65
+ }
66
+ return isIgnored;
67
+ };
68
+ const getFiles = async (dirPath, ignorePatterns = [], subfolder = '')=>{
69
+ const arrayOfFiles = [];
70
+ const entries = await fse__namespace.readdir(path__namespace.join(dirPath, subfolder));
71
+ for (const entry of entries){
72
+ const entryPathFromRoot = path__namespace.join(subfolder, entry);
73
+ const entryPath = path__namespace.relative(dirPath, entryPathFromRoot);
74
+ const isIgnored = isIgnoredFile(dirPath, entryPathFromRoot, ignorePatterns);
75
+ if (!isIgnored) {
76
+ if (fse__namespace.statSync(entryPath).isDirectory()) {
77
+ const subFiles = await getFiles(dirPath, ignorePatterns, entryPathFromRoot);
78
+ arrayOfFiles.push(...subFiles);
79
+ } else {
80
+ arrayOfFiles.push(entryPath);
81
+ }
82
+ }
83
+ }
84
+ return arrayOfFiles;
85
+ };
86
+ const readGitignore = async (folderPath)=>{
87
+ const gitignorePath = path__namespace.resolve(folderPath, '.gitignore');
88
+ const pathExist = await fse__namespace.pathExists(gitignorePath);
89
+ if (!pathExist) return [];
90
+ const gitignoreContent = await fse__namespace.readFile(gitignorePath, 'utf8');
91
+ return gitignoreContent.split(/\r?\n/).filter((line)=>Boolean(line.trim()) && !line.startsWith('#'));
92
+ };
93
+ const compressFilesToTar = async (storagePath, folderToCompress, filename)=>{
94
+ const ignorePatterns = await readGitignore(folderToCompress);
95
+ const filesToCompress = await getFiles(folderToCompress, ignorePatterns);
96
+ return tar__namespace.c({
97
+ gzip: true,
98
+ file: path__namespace.resolve(storagePath, filename)
99
+ }, filesToCompress);
100
+ };
101
+
102
+ exports.compressFilesToTar = compressFilesToTar;
103
+ exports.isIgnoredFile = isIgnoredFile;
104
+ //# sourceMappingURL=compress-files.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compress-files.js","sources":["../../src/utils/compress-files.ts"],"sourcesContent":["import * as fse from 'fs-extra';\nimport * as tar from 'tar';\nimport * as path from 'path';\nimport { minimatch } from 'minimatch';\n\nconst IGNORED_PATTERNS = [\n '**/.git/**',\n '**/node_modules/**',\n '**/build/**',\n '**/data/uploads/**',\n '**/dist/**',\n '**/.cache/**',\n '**/.circleci/**',\n '**/.github/**',\n '**/.gitignore',\n '**/.gitkeep',\n '**/.gitlab-ci.yml',\n '**/.idea/**',\n '**/public/uploads/**',\n '**/.vscode/**',\n];\n\nconst isIgnoredFile = (folderPath: string, file: string, ignorePatterns: string[]): boolean => {\n ignorePatterns.push(...IGNORED_PATTERNS);\n const relativeFilePath = path.join(folderPath, file);\n let isIgnored = false;\n for (const pattern of ignorePatterns) {\n if (pattern.startsWith('!')) {\n if (minimatch(relativeFilePath, pattern.slice(1), { matchBase: true, dot: true })) {\n return false;\n }\n } else if (minimatch(relativeFilePath, pattern, { matchBase: true, dot: true })) {\n if (path.basename(file) !== '.gitkeep') {\n isIgnored = true;\n }\n }\n }\n return isIgnored;\n};\n\nconst getFiles = async (\n dirPath: string,\n ignorePatterns: string[] = [],\n subfolder: string = ''\n): Promise<string[]> => {\n const arrayOfFiles: string[] = [];\n const entries = await fse.readdir(path.join(dirPath, subfolder));\n\n for (const entry of entries) {\n const entryPathFromRoot = path.join(subfolder, entry);\n const entryPath = path.relative(dirPath, entryPathFromRoot);\n const isIgnored = isIgnoredFile(dirPath, entryPathFromRoot, ignorePatterns);\n\n if (!isIgnored) {\n if (fse.statSync(entryPath).isDirectory()) {\n const subFiles = await getFiles(dirPath, ignorePatterns, entryPathFromRoot);\n arrayOfFiles.push(...subFiles);\n } else {\n arrayOfFiles.push(entryPath);\n }\n }\n }\n return arrayOfFiles;\n};\n\nconst readGitignore = async (folderPath: string): Promise<string[]> => {\n const gitignorePath = path.resolve(folderPath, '.gitignore');\n const pathExist = await fse.pathExists(gitignorePath);\n\n if (!pathExist) return [];\n\n const gitignoreContent = await fse.readFile(gitignorePath, 'utf8');\n\n return gitignoreContent\n .split(/\\r?\\n/)\n .filter((line) => Boolean(line.trim()) && !line.startsWith('#'));\n};\n\nconst compressFilesToTar = async (\n storagePath: string,\n folderToCompress: string,\n filename: string\n): Promise<void> => {\n const ignorePatterns = await readGitignore(folderToCompress);\n const filesToCompress = await getFiles(folderToCompress, ignorePatterns);\n\n return tar.c(\n {\n gzip: true,\n file: path.resolve(storagePath, filename),\n },\n filesToCompress\n );\n};\n\nexport { compressFilesToTar, isIgnoredFile };\n"],"names":["IGNORED_PATTERNS","isIgnoredFile","folderPath","file","ignorePatterns","push","relativeFilePath","path","join","isIgnored","pattern","startsWith","minimatch","slice","matchBase","dot","basename","getFiles","dirPath","subfolder","arrayOfFiles","entries","fse","readdir","entry","entryPathFromRoot","entryPath","relative","statSync","isDirectory","subFiles","readGitignore","gitignorePath","resolve","pathExist","pathExists","gitignoreContent","readFile","split","filter","line","Boolean","trim","compressFilesToTar","storagePath","folderToCompress","filename","filesToCompress","tar","c","gzip"],"mappings":"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"}
@@ -0,0 +1,80 @@
1
+ import * as fse from 'fs-extra';
2
+ import * as tar from 'tar';
3
+ import * as path from 'path';
4
+ import { minimatch } from 'minimatch';
5
+
6
+ const IGNORED_PATTERNS = [
7
+ '**/.git/**',
8
+ '**/node_modules/**',
9
+ '**/build/**',
10
+ '**/data/uploads/**',
11
+ '**/dist/**',
12
+ '**/.cache/**',
13
+ '**/.circleci/**',
14
+ '**/.github/**',
15
+ '**/.gitignore',
16
+ '**/.gitkeep',
17
+ '**/.gitlab-ci.yml',
18
+ '**/.idea/**',
19
+ '**/public/uploads/**',
20
+ '**/.vscode/**'
21
+ ];
22
+ const isIgnoredFile = (folderPath, file, ignorePatterns)=>{
23
+ ignorePatterns.push(...IGNORED_PATTERNS);
24
+ const relativeFilePath = path.join(folderPath, file);
25
+ let isIgnored = false;
26
+ for (const pattern of ignorePatterns){
27
+ if (pattern.startsWith('!')) {
28
+ if (minimatch(relativeFilePath, pattern.slice(1), {
29
+ matchBase: true,
30
+ dot: true
31
+ })) {
32
+ return false;
33
+ }
34
+ } else if (minimatch(relativeFilePath, pattern, {
35
+ matchBase: true,
36
+ dot: true
37
+ })) {
38
+ if (path.basename(file) !== '.gitkeep') {
39
+ isIgnored = true;
40
+ }
41
+ }
42
+ }
43
+ return isIgnored;
44
+ };
45
+ const getFiles = async (dirPath, ignorePatterns = [], subfolder = '')=>{
46
+ const arrayOfFiles = [];
47
+ const entries = await fse.readdir(path.join(dirPath, subfolder));
48
+ for (const entry of entries){
49
+ const entryPathFromRoot = path.join(subfolder, entry);
50
+ const entryPath = path.relative(dirPath, entryPathFromRoot);
51
+ const isIgnored = isIgnoredFile(dirPath, entryPathFromRoot, ignorePatterns);
52
+ if (!isIgnored) {
53
+ if (fse.statSync(entryPath).isDirectory()) {
54
+ const subFiles = await getFiles(dirPath, ignorePatterns, entryPathFromRoot);
55
+ arrayOfFiles.push(...subFiles);
56
+ } else {
57
+ arrayOfFiles.push(entryPath);
58
+ }
59
+ }
60
+ }
61
+ return arrayOfFiles;
62
+ };
63
+ const readGitignore = async (folderPath)=>{
64
+ const gitignorePath = path.resolve(folderPath, '.gitignore');
65
+ const pathExist = await fse.pathExists(gitignorePath);
66
+ if (!pathExist) return [];
67
+ const gitignoreContent = await fse.readFile(gitignorePath, 'utf8');
68
+ return gitignoreContent.split(/\r?\n/).filter((line)=>Boolean(line.trim()) && !line.startsWith('#'));
69
+ };
70
+ const compressFilesToTar = async (storagePath, folderToCompress, filename)=>{
71
+ const ignorePatterns = await readGitignore(folderToCompress);
72
+ const filesToCompress = await getFiles(folderToCompress, ignorePatterns);
73
+ return tar.c({
74
+ gzip: true,
75
+ file: path.resolve(storagePath, filename)
76
+ }, filesToCompress);
77
+ };
78
+
79
+ export { compressFilesToTar, isIgnoredFile };
80
+ //# sourceMappingURL=compress-files.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compress-files.mjs","sources":["../../src/utils/compress-files.ts"],"sourcesContent":["import * as fse from 'fs-extra';\nimport * as tar from 'tar';\nimport * as path from 'path';\nimport { minimatch } from 'minimatch';\n\nconst IGNORED_PATTERNS = [\n '**/.git/**',\n '**/node_modules/**',\n '**/build/**',\n '**/data/uploads/**',\n '**/dist/**',\n '**/.cache/**',\n '**/.circleci/**',\n '**/.github/**',\n '**/.gitignore',\n '**/.gitkeep',\n '**/.gitlab-ci.yml',\n '**/.idea/**',\n '**/public/uploads/**',\n '**/.vscode/**',\n];\n\nconst isIgnoredFile = (folderPath: string, file: string, ignorePatterns: string[]): boolean => {\n ignorePatterns.push(...IGNORED_PATTERNS);\n const relativeFilePath = path.join(folderPath, file);\n let isIgnored = false;\n for (const pattern of ignorePatterns) {\n if (pattern.startsWith('!')) {\n if (minimatch(relativeFilePath, pattern.slice(1), { matchBase: true, dot: true })) {\n return false;\n }\n } else if (minimatch(relativeFilePath, pattern, { matchBase: true, dot: true })) {\n if (path.basename(file) !== '.gitkeep') {\n isIgnored = true;\n }\n }\n }\n return isIgnored;\n};\n\nconst getFiles = async (\n dirPath: string,\n ignorePatterns: string[] = [],\n subfolder: string = ''\n): Promise<string[]> => {\n const arrayOfFiles: string[] = [];\n const entries = await fse.readdir(path.join(dirPath, subfolder));\n\n for (const entry of entries) {\n const entryPathFromRoot = path.join(subfolder, entry);\n const entryPath = path.relative(dirPath, entryPathFromRoot);\n const isIgnored = isIgnoredFile(dirPath, entryPathFromRoot, ignorePatterns);\n\n if (!isIgnored) {\n if (fse.statSync(entryPath).isDirectory()) {\n const subFiles = await getFiles(dirPath, ignorePatterns, entryPathFromRoot);\n arrayOfFiles.push(...subFiles);\n } else {\n arrayOfFiles.push(entryPath);\n }\n }\n }\n return arrayOfFiles;\n};\n\nconst readGitignore = async (folderPath: string): Promise<string[]> => {\n const gitignorePath = path.resolve(folderPath, '.gitignore');\n const pathExist = await fse.pathExists(gitignorePath);\n\n if (!pathExist) return [];\n\n const gitignoreContent = await fse.readFile(gitignorePath, 'utf8');\n\n return gitignoreContent\n .split(/\\r?\\n/)\n .filter((line) => Boolean(line.trim()) && !line.startsWith('#'));\n};\n\nconst compressFilesToTar = async (\n storagePath: string,\n folderToCompress: string,\n filename: string\n): Promise<void> => {\n const ignorePatterns = await readGitignore(folderToCompress);\n const filesToCompress = await getFiles(folderToCompress, ignorePatterns);\n\n return tar.c(\n {\n gzip: true,\n file: path.resolve(storagePath, filename),\n },\n filesToCompress\n );\n};\n\nexport { compressFilesToTar, isIgnoredFile };\n"],"names":["IGNORED_PATTERNS","isIgnoredFile","folderPath","file","ignorePatterns","push","relativeFilePath","path","join","isIgnored","pattern","startsWith","minimatch","slice","matchBase","dot","basename","getFiles","dirPath","subfolder","arrayOfFiles","entries","fse","readdir","entry","entryPathFromRoot","entryPath","relative","statSync","isDirectory","subFiles","readGitignore","gitignorePath","resolve","pathExist","pathExists","gitignoreContent","readFile","split","filter","line","Boolean","trim","compressFilesToTar","storagePath","folderToCompress","filename","filesToCompress","tar","c","gzip"],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ type EnvironmentErrorMessage = {
2
+ projectName: string;
3
+ firstLine: string;
4
+ secondLine: string;
5
+ };
6
+ export declare const environmentErrorMessageFactory: ({ projectName, firstLine, secondLine, }: EnvironmentErrorMessage) => string;
7
+ export declare const environmentCreationErrorFactory: (environmentErrorMessage: string) => string;
8
+ export {};
9
+ //# sourceMappingURL=error-message-factories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-message-factories.d.ts","sourceRoot":"","sources":["../../src/utils/error-message-factories.ts"],"names":[],"mappings":"AAIA,KAAK,uBAAuB,GAAG;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,eAAO,MAAM,8BAA8B,4CAIxC,uBAAuB,WAQzB,CAAC;AAEF,eAAO,MAAM,+BAA+B,4BAA6B,MAAM,WAO3E,CAAC"}
@@ -0,0 +1,25 @@
1
+ 'use strict';
2
+
3
+ var chalk = require('chalk');
4
+ var boxen = require('boxen');
5
+ var api = require('../config/api.js');
6
+
7
+ const environmentErrorMessageFactory = ({ projectName, firstLine, secondLine })=>{
8
+ return [
9
+ chalk.yellow(firstLine),
10
+ '',
11
+ chalk.cyan(secondLine),
12
+ chalk.blue(' → ') + chalk.blue.underline(`${api.apiConfig.dashboardBaseUrl}/projects/${projectName}`)
13
+ ].join('\n');
14
+ };
15
+ const environmentCreationErrorFactory = (environmentErrorMessage)=>boxen(environmentErrorMessage, {
16
+ padding: 1,
17
+ margin: 1,
18
+ borderStyle: 'round',
19
+ borderColor: 'white',
20
+ titleAlignment: 'left'
21
+ });
22
+
23
+ exports.environmentCreationErrorFactory = environmentCreationErrorFactory;
24
+ exports.environmentErrorMessageFactory = environmentErrorMessageFactory;
25
+ //# sourceMappingURL=error-message-factories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-message-factories.js","sources":["../../src/utils/error-message-factories.ts"],"sourcesContent":["import chalk from 'chalk';\nimport boxen from 'boxen';\nimport { apiConfig } from '../config/api';\n\ntype EnvironmentErrorMessage = {\n projectName: string;\n firstLine: string;\n secondLine: string;\n};\n\nexport const environmentErrorMessageFactory = ({\n projectName,\n firstLine,\n secondLine,\n}: EnvironmentErrorMessage) => {\n return [\n chalk.yellow(firstLine),\n '',\n chalk.cyan(secondLine),\n chalk.blue(' → ') +\n chalk.blue.underline(`${apiConfig.dashboardBaseUrl}/projects/${projectName}`),\n ].join('\\n');\n};\n\nexport const environmentCreationErrorFactory = (environmentErrorMessage: string) =>\n boxen(environmentErrorMessage, {\n padding: 1,\n margin: 1,\n borderStyle: 'round',\n borderColor: 'white',\n titleAlignment: 'left',\n });\n"],"names":["environmentErrorMessageFactory","projectName","firstLine","secondLine","chalk","yellow","cyan","blue","underline","apiConfig","dashboardBaseUrl","join","environmentCreationErrorFactory","environmentErrorMessage","boxen","padding","margin","borderStyle","borderColor","titleAlignment"],"mappings":";;;;;;AAUO,MAAMA,iCAAiC,CAAC,EAC7CC,WAAW,EACXC,SAAS,EACTC,UAAU,EACc,GAAA;IACxB,OAAO;AACLC,QAAAA,KAAAA,CAAMC,MAAM,CAACH,SAAAA,CAAAA;AACb,QAAA,EAAA;AACAE,QAAAA,KAAAA,CAAME,IAAI,CAACH,UAAAA,CAAAA;AACXC,QAAAA,KAAAA,CAAMG,IAAI,CAAC,MAAA,CAAA,GACTH,KAAMG,CAAAA,IAAI,CAACC,SAAS,CAAC,CAAC,EAAEC,cAAUC,gBAAgB,CAAC,UAAU,EAAET,YAAY,CAAC;AAC/E,KAAA,CAACU,IAAI,CAAC,IAAA,CAAA;AACT;AAEaC,MAAAA,+BAAAA,GAAkC,CAACC,uBAAAA,GAC9CC,MAAMD,uBAAyB,EAAA;QAC7BE,OAAS,EAAA,CAAA;QACTC,MAAQ,EAAA,CAAA;QACRC,WAAa,EAAA,OAAA;QACbC,WAAa,EAAA,OAAA;QACbC,cAAgB,EAAA;KACf;;;;;"}
@@ -0,0 +1,22 @@
1
+ import chalk from 'chalk';
2
+ import boxen from 'boxen';
3
+ import { apiConfig } from '../config/api.mjs';
4
+
5
+ const environmentErrorMessageFactory = ({ projectName, firstLine, secondLine })=>{
6
+ return [
7
+ chalk.yellow(firstLine),
8
+ '',
9
+ chalk.cyan(secondLine),
10
+ chalk.blue(' → ') + chalk.blue.underline(`${apiConfig.dashboardBaseUrl}/projects/${projectName}`)
11
+ ].join('\n');
12
+ };
13
+ const environmentCreationErrorFactory = (environmentErrorMessage)=>boxen(environmentErrorMessage, {
14
+ padding: 1,
15
+ margin: 1,
16
+ borderStyle: 'round',
17
+ borderColor: 'white',
18
+ titleAlignment: 'left'
19
+ });
20
+
21
+ export { environmentCreationErrorFactory, environmentErrorMessageFactory };
22
+ //# sourceMappingURL=error-message-factories.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-message-factories.mjs","sources":["../../src/utils/error-message-factories.ts"],"sourcesContent":["import chalk from 'chalk';\nimport boxen from 'boxen';\nimport { apiConfig } from '../config/api';\n\ntype EnvironmentErrorMessage = {\n projectName: string;\n firstLine: string;\n secondLine: string;\n};\n\nexport const environmentErrorMessageFactory = ({\n projectName,\n firstLine,\n secondLine,\n}: EnvironmentErrorMessage) => {\n return [\n chalk.yellow(firstLine),\n '',\n chalk.cyan(secondLine),\n chalk.blue(' → ') +\n chalk.blue.underline(`${apiConfig.dashboardBaseUrl}/projects/${projectName}`),\n ].join('\\n');\n};\n\nexport const environmentCreationErrorFactory = (environmentErrorMessage: string) =>\n boxen(environmentErrorMessage, {\n padding: 1,\n margin: 1,\n borderStyle: 'round',\n borderColor: 'white',\n titleAlignment: 'left',\n });\n"],"names":["environmentErrorMessageFactory","projectName","firstLine","secondLine","chalk","yellow","cyan","blue","underline","apiConfig","dashboardBaseUrl","join","environmentCreationErrorFactory","environmentErrorMessage","boxen","padding","margin","borderStyle","borderColor","titleAlignment"],"mappings":";;;;AAUO,MAAMA,iCAAiC,CAAC,EAC7CC,WAAW,EACXC,SAAS,EACTC,UAAU,EACc,GAAA;IACxB,OAAO;AACLC,QAAAA,KAAAA,CAAMC,MAAM,CAACH,SAAAA,CAAAA;AACb,QAAA,EAAA;AACAE,QAAAA,KAAAA,CAAME,IAAI,CAACH,UAAAA,CAAAA;AACXC,QAAAA,KAAAA,CAAMG,IAAI,CAAC,MAAA,CAAA,GACTH,KAAMG,CAAAA,IAAI,CAACC,SAAS,CAAC,CAAC,EAAEC,UAAUC,gBAAgB,CAAC,UAAU,EAAET,YAAY,CAAC;AAC/E,KAAA,CAACU,IAAI,CAAC,IAAA,CAAA;AACT;AAEaC,MAAAA,+BAAAA,GAAkC,CAACC,uBAAAA,GAC9CC,MAAMD,uBAAyB,EAAA;QAC7BE,OAAS,EAAA,CAAA;QACTC,MAAQ,EAAA,CAAA;QACRC,WAAa,EAAA,OAAA;QACbC,WAAa,EAAA,OAAA;QACbC,cAAgB,EAAA;KACf;;;;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-local-config.d.ts","sourceRoot":"","sources":["../../src/utils/get-local-config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAEzD,iBAAe,cAAc,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAQxE;AAED,iBAAe,eAAe,CAAC,GAAG,EAAE,UAAU,uDAY7C;AAED,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,CAAC"}
@@ -0,0 +1,37 @@
1
+ 'use strict';
2
+
3
+ var chalk = require('chalk');
4
+ require('axios');
5
+ require('fs-extra');
6
+ require('os');
7
+ require('../config/api.js');
8
+ require('path');
9
+ require('xdg-app-paths');
10
+ var strapiInfoSave = require('../services/strapi-info-save.js');
11
+ require('jwks-rsa');
12
+ require('jsonwebtoken');
13
+ require('fast-safe-stringify');
14
+ require('ora');
15
+ require('cli-progress');
16
+
17
+ async function getLocalConfig(ctx) {
18
+ try {
19
+ return await strapiInfoSave.retrieve();
20
+ } catch (e) {
21
+ ctx.logger.debug('Failed to get project config', e);
22
+ ctx.logger.error('An error occurred while retrieving config data from your local project.');
23
+ return null;
24
+ }
25
+ }
26
+ async function getLocalProject(ctx) {
27
+ const localConfig = await getLocalConfig(ctx);
28
+ if (!localConfig || !localConfig.project) {
29
+ ctx.logger.warn(`\nWe couldn't find a valid local project config.\nPlease link your local project to an existing Strapi Cloud project using the ${chalk.cyan('link')} command.`);
30
+ process.exit(1);
31
+ }
32
+ return localConfig.project;
33
+ }
34
+
35
+ exports.getLocalConfig = getLocalConfig;
36
+ exports.getLocalProject = getLocalProject;
37
+ //# sourceMappingURL=get-local-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-local-config.js","sources":["../../src/utils/get-local-config.ts"],"sourcesContent":["import chalk from 'chalk';\nimport type { CLIContext } from '../types';\nimport { local } from '../services';\nimport { LocalSave } from '../services/strapi-info-save';\n\nasync function getLocalConfig(ctx: CLIContext): Promise<LocalSave | null> {\n try {\n return await local.retrieve();\n } catch (e) {\n ctx.logger.debug('Failed to get project config', e);\n ctx.logger.error('An error occurred while retrieving config data from your local project.');\n return null;\n }\n}\n\nasync function getLocalProject(ctx: CLIContext) {\n const localConfig = await getLocalConfig(ctx);\n\n if (!localConfig || !localConfig.project) {\n ctx.logger.warn(\n `\\nWe couldn't find a valid local project config.\\nPlease link your local project to an existing Strapi Cloud project using the ${chalk.cyan(\n 'link'\n )} command.`\n );\n process.exit(1);\n }\n return localConfig.project;\n}\n\nexport { getLocalConfig, getLocalProject };\n"],"names":["getLocalConfig","ctx","local","e","logger","debug","error","getLocalProject","localConfig","project","warn","chalk","cyan","process","exit"],"mappings":";;;;;;;;;;;;;;;;AAKA,eAAeA,eAAeC,GAAe,EAAA;IAC3C,IAAI;QACF,OAAO,MAAMC,uBAAc,EAAA;AAC7B,KAAA,CAAE,OAAOC,CAAG,EAAA;AACVF,QAAAA,GAAAA,CAAIG,MAAM,CAACC,KAAK,CAAC,8BAAgCF,EAAAA,CAAAA,CAAAA;QACjDF,GAAIG,CAAAA,MAAM,CAACE,KAAK,CAAC,yEAAA,CAAA;QACjB,OAAO,IAAA;AACT;AACF;AAEA,eAAeC,gBAAgBN,GAAe,EAAA;IAC5C,MAAMO,WAAAA,GAAc,MAAMR,cAAeC,CAAAA,GAAAA,CAAAA;AAEzC,IAAA,IAAI,CAACO,WAAAA,IAAe,CAACA,WAAAA,CAAYC,OAAO,EAAE;AACxCR,QAAAA,GAAAA,CAAIG,MAAM,CAACM,IAAI,CACb,CAAC,+HAA+H,EAAEC,KAAAA,CAAMC,IAAI,CAC1I,MACA,CAAA,CAAA,SAAS,CAAC,CAAA;AAEdC,QAAAA,OAAAA,CAAQC,IAAI,CAAC,CAAA,CAAA;AACf;AACA,IAAA,OAAON,YAAYC,OAAO;AAC5B;;;;;"}
@@ -0,0 +1,34 @@
1
+ import chalk from 'chalk';
2
+ import 'axios';
3
+ import 'fs-extra';
4
+ import 'os';
5
+ import '../config/api.mjs';
6
+ import 'path';
7
+ import 'xdg-app-paths';
8
+ import { retrieve } from '../services/strapi-info-save.mjs';
9
+ import 'jwks-rsa';
10
+ import 'jsonwebtoken';
11
+ import 'fast-safe-stringify';
12
+ import 'ora';
13
+ import 'cli-progress';
14
+
15
+ async function getLocalConfig(ctx) {
16
+ try {
17
+ return await retrieve();
18
+ } catch (e) {
19
+ ctx.logger.debug('Failed to get project config', e);
20
+ ctx.logger.error('An error occurred while retrieving config data from your local project.');
21
+ return null;
22
+ }
23
+ }
24
+ async function getLocalProject(ctx) {
25
+ const localConfig = await getLocalConfig(ctx);
26
+ if (!localConfig || !localConfig.project) {
27
+ ctx.logger.warn(`\nWe couldn't find a valid local project config.\nPlease link your local project to an existing Strapi Cloud project using the ${chalk.cyan('link')} command.`);
28
+ process.exit(1);
29
+ }
30
+ return localConfig.project;
31
+ }
32
+
33
+ export { getLocalConfig, getLocalProject };
34
+ //# sourceMappingURL=get-local-config.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-local-config.mjs","sources":["../../src/utils/get-local-config.ts"],"sourcesContent":["import chalk from 'chalk';\nimport type { CLIContext } from '../types';\nimport { local } from '../services';\nimport { LocalSave } from '../services/strapi-info-save';\n\nasync function getLocalConfig(ctx: CLIContext): Promise<LocalSave | null> {\n try {\n return await local.retrieve();\n } catch (e) {\n ctx.logger.debug('Failed to get project config', e);\n ctx.logger.error('An error occurred while retrieving config data from your local project.');\n return null;\n }\n}\n\nasync function getLocalProject(ctx: CLIContext) {\n const localConfig = await getLocalConfig(ctx);\n\n if (!localConfig || !localConfig.project) {\n ctx.logger.warn(\n `\\nWe couldn't find a valid local project config.\\nPlease link your local project to an existing Strapi Cloud project using the ${chalk.cyan(\n 'link'\n )} command.`\n );\n process.exit(1);\n }\n return localConfig.project;\n}\n\nexport { getLocalConfig, getLocalProject };\n"],"names":["getLocalConfig","ctx","local","e","logger","debug","error","getLocalProject","localConfig","project","warn","chalk","cyan","process","exit"],"mappings":";;;;;;;;;;;;;;AAKA,eAAeA,eAAeC,GAAe,EAAA;IAC3C,IAAI;QACF,OAAO,MAAMC,QAAc,EAAA;AAC7B,KAAA,CAAE,OAAOC,CAAG,EAAA;AACVF,QAAAA,GAAAA,CAAIG,MAAM,CAACC,KAAK,CAAC,8BAAgCF,EAAAA,CAAAA,CAAAA;QACjDF,GAAIG,CAAAA,MAAM,CAACE,KAAK,CAAC,yEAAA,CAAA;QACjB,OAAO,IAAA;AACT;AACF;AAEA,eAAeC,gBAAgBN,GAAe,EAAA;IAC5C,MAAMO,WAAAA,GAAc,MAAMR,cAAeC,CAAAA,GAAAA,CAAAA;AAEzC,IAAA,IAAI,CAACO,WAAAA,IAAe,CAACA,WAAAA,CAAYC,OAAO,EAAE;AACxCR,QAAAA,GAAAA,CAAIG,MAAM,CAACM,IAAI,CACb,CAAC,+HAA+H,EAAEC,KAAAA,CAAMC,IAAI,CAC1I,MACA,CAAA,CAAA,SAAS,CAAC,CAAA;AAEdC,QAAAA,OAAAA,CAAQC,IAAI,CAAC,CAAA,CAAA;AACf;AACA,IAAA,OAAON,YAAYC,OAAO;AAC5B;;;;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/utils/helpers.ts"],"names":[],"mappings":"AA6BA,QAAA,MAAM,SAAS,SACN,MAAM,UAAU,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,QAAQ,OAAO,CAAC,eACjD,OAAO,EAAE,SAWlB,CAAC;AAEJ,OAAO,EAAE,SAAS,EAAE,CAAC"}