@strapi/cloud-cli 0.0.0-experimental.00380841fe1b29f71fe755bb387fa1f75073621b

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 +60 -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 +324 -0
  69. package/dist/deploy-project/action.js.map +1 -0
  70. package/dist/deploy-project/action.mjs +303 -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 +117 -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 +57 -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 +66 -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 +146 -0
  135. package/dist/link/action.js.map +1 -0
  136. package/dist/link/action.mjs +144 -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 +199 -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 +129 -0
  205. package/dist/package.json.js.map +1 -0
  206. package/dist/package.json.mjs +105 -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 +67 -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 +164 -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 +128 -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 +79 -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 +53 -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 +126 -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 +104 -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 +25 -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 +37 -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 +33 -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 +65 -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 +82 -0
@@ -0,0 +1,14 @@
1
+ 'use strict';
2
+
3
+ var cliApi = require('./cli-api.js');
4
+ var strapiInfoSave = require('./strapi-info-save.js');
5
+ var token = require('./token.js');
6
+ var logger = require('./logger.js');
7
+
8
+
9
+
10
+ exports.cloudApiFactory = cliApi.cloudApiFactory;
11
+ exports.local = strapiInfoSave;
12
+ exports.tokenServiceFactory = token.tokenServiceFactory;
13
+ exports.createLogger = logger.createLogger;
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;"}
@@ -0,0 +1,6 @@
1
+ export { cloudApiFactory } from './cli-api.mjs';
2
+ import * as strapiInfoSave from './strapi-info-save.mjs';
3
+ export { strapiInfoSave as local };
4
+ export { tokenServiceFactory } from './token.mjs';
5
+ export { createLogger } from './logger.mjs';
6
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -0,0 +1,22 @@
1
+ import ora from 'ora';
2
+ import * as cliProgress from 'cli-progress';
3
+ export interface LoggerOptions {
4
+ silent?: boolean;
5
+ debug?: boolean;
6
+ timestamp?: boolean;
7
+ }
8
+ export interface Logger {
9
+ warnings: number;
10
+ errors: number;
11
+ debug: (...args: unknown[]) => void;
12
+ info: (...args: unknown[]) => void;
13
+ success: (...args: unknown[]) => void;
14
+ warn: (...args: unknown[]) => void;
15
+ error: (...args: unknown[]) => void;
16
+ log: (...args: unknown[]) => void;
17
+ spinner: (text: string) => Pick<ora.Ora, 'succeed' | 'fail' | 'start' | 'text' | 'isSpinning'>;
18
+ progressBar: (totalSize: number, text: string) => Pick<cliProgress.SingleBar, 'start' | 'stop' | 'update'>;
19
+ }
20
+ declare const createLogger: (options?: LoggerOptions) => Logger;
21
+ export { createLogger };
22
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/services/logger.ts"],"names":[],"mappings":"AAGA,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,KAAK,WAAW,MAAM,cAAc,CAAC;AAE5C,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,MAAM;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IACpC,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IACnC,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IACtC,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IACnC,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IACpC,GAAG,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IAClC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,YAAY,CAAC,CAAC;IAC/F,WAAW,EAAE,CACX,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,KACT,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC,CAAC;CAC/D;AAMD,QAAA,MAAM,YAAY,aAAa,aAAa,KAAQ,MAqInD,CAAC;AAEF,OAAO,EAAE,YAAY,EAAE,CAAC"}
@@ -0,0 +1,128 @@
1
+ 'use strict';
2
+
3
+ var chalk = require('chalk');
4
+ var stringify = require('fast-safe-stringify');
5
+ var ora = require('ora');
6
+ var cliProgress = require('cli-progress');
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 cliProgress__namespace = /*#__PURE__*/_interopNamespaceDefault(cliProgress);
26
+
27
+ const stringifyArg = (arg)=>{
28
+ return typeof arg === 'object' ? stringify(arg) : arg;
29
+ };
30
+ const createLogger = (options = {})=>{
31
+ const { silent = false, debug = false, timestamp = true } = options;
32
+ const state = {
33
+ errors: 0,
34
+ warning: 0
35
+ };
36
+ return {
37
+ get warnings () {
38
+ return state.warning;
39
+ },
40
+ get errors () {
41
+ return state.errors;
42
+ },
43
+ async debug (...args) {
44
+ if (silent || !debug) {
45
+ return;
46
+ }
47
+ console.log(chalk.cyan(`[DEBUG]${timestamp ? `\t[${new Date().toISOString()}]` : ''}`), ...args.map(stringifyArg));
48
+ },
49
+ info (...args) {
50
+ if (silent) {
51
+ return;
52
+ }
53
+ console.info(chalk.blue(`[INFO]${timestamp ? `\t[${new Date().toISOString()}]` : ''}`), ...args.map(stringifyArg));
54
+ },
55
+ log (...args) {
56
+ if (silent) {
57
+ return;
58
+ }
59
+ console.info(chalk.blue(`${timestamp ? `\t[${new Date().toISOString()}]` : ''}`), ...args.map(stringifyArg));
60
+ },
61
+ success (...args) {
62
+ if (silent) {
63
+ return;
64
+ }
65
+ console.info(chalk.green(`[SUCCESS]${timestamp ? `\t[${new Date().toISOString()}]` : ''}`), ...args.map(stringifyArg));
66
+ },
67
+ warn (...args) {
68
+ state.warning += 1;
69
+ if (silent) {
70
+ return;
71
+ }
72
+ console.warn(chalk.yellow(`[WARN]${timestamp ? `\t[${new Date().toISOString()}]` : ''}`), ...args.map(stringifyArg));
73
+ },
74
+ error (...args) {
75
+ state.errors += 1;
76
+ if (silent) {
77
+ return;
78
+ }
79
+ console.error(chalk.red(`[ERROR]${timestamp ? `\t[${new Date().toISOString()}]` : ''}`), ...args.map(stringifyArg));
80
+ },
81
+ // @ts-expect-error – returning a subpart of ora is fine because the types tell us what is what.
82
+ spinner (text) {
83
+ if (silent) {
84
+ return {
85
+ succeed () {
86
+ return this;
87
+ },
88
+ fail () {
89
+ return this;
90
+ },
91
+ start () {
92
+ return this;
93
+ },
94
+ text: '',
95
+ isSpinning: false
96
+ };
97
+ }
98
+ return ora(text);
99
+ },
100
+ progressBar (totalSize, text) {
101
+ if (silent) {
102
+ return {
103
+ start () {
104
+ return this;
105
+ },
106
+ stop () {
107
+ return this;
108
+ },
109
+ update () {
110
+ return this;
111
+ }
112
+ };
113
+ }
114
+ const progressBar = new cliProgress__namespace.SingleBar({
115
+ format: `${text ? `${text} |` : ''}${chalk.green('{bar}')}| {percentage}%`,
116
+ barCompleteChar: '\u2588',
117
+ barIncompleteChar: '\u2591',
118
+ hideCursor: true,
119
+ forceRedraw: true
120
+ });
121
+ progressBar.start(totalSize, 0);
122
+ return progressBar;
123
+ }
124
+ };
125
+ };
126
+
127
+ exports.createLogger = createLogger;
128
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sources":["../../src/services/logger.ts"],"sourcesContent":["import chalk from 'chalk';\nimport stringify from 'fast-safe-stringify';\n\nimport ora from 'ora';\nimport * as cliProgress from 'cli-progress';\n\nexport interface LoggerOptions {\n silent?: boolean;\n debug?: boolean;\n timestamp?: boolean;\n}\n\nexport interface Logger {\n warnings: number;\n errors: number;\n debug: (...args: unknown[]) => void;\n info: (...args: unknown[]) => void;\n success: (...args: unknown[]) => void;\n warn: (...args: unknown[]) => void;\n error: (...args: unknown[]) => void;\n log: (...args: unknown[]) => void;\n spinner: (text: string) => Pick<ora.Ora, 'succeed' | 'fail' | 'start' | 'text' | 'isSpinning'>;\n progressBar: (\n totalSize: number,\n text: string\n ) => Pick<cliProgress.SingleBar, 'start' | 'stop' | 'update'>;\n}\n\nconst stringifyArg = (arg: unknown) => {\n return typeof arg === 'object' ? stringify(arg) : arg;\n};\n\nconst createLogger = (options: LoggerOptions = {}): Logger => {\n const { silent = false, debug = false, timestamp = true } = options;\n\n const state = { errors: 0, warning: 0 };\n\n return {\n get warnings() {\n return state.warning;\n },\n\n get errors() {\n return state.errors;\n },\n\n async debug(...args) {\n if (silent || !debug) {\n return;\n }\n\n console.log(\n chalk.cyan(`[DEBUG]${timestamp ? `\\t[${new Date().toISOString()}]` : ''}`),\n ...args.map(stringifyArg)\n );\n },\n\n info(...args) {\n if (silent) {\n return;\n }\n\n console.info(\n chalk.blue(`[INFO]${timestamp ? `\\t[${new Date().toISOString()}]` : ''}`),\n ...args.map(stringifyArg)\n );\n },\n\n log(...args) {\n if (silent) {\n return;\n }\n\n console.info(\n chalk.blue(`${timestamp ? `\\t[${new Date().toISOString()}]` : ''}`),\n ...args.map(stringifyArg)\n );\n },\n\n success(...args) {\n if (silent) {\n return;\n }\n\n console.info(\n chalk.green(`[SUCCESS]${timestamp ? `\\t[${new Date().toISOString()}]` : ''}`),\n ...args.map(stringifyArg)\n );\n },\n\n warn(...args) {\n state.warning += 1;\n\n if (silent) {\n return;\n }\n\n console.warn(\n chalk.yellow(`[WARN]${timestamp ? `\\t[${new Date().toISOString()}]` : ''}`),\n ...args.map(stringifyArg)\n );\n },\n\n error(...args) {\n state.errors += 1;\n\n if (silent) {\n return;\n }\n\n console.error(\n chalk.red(`[ERROR]${timestamp ? `\\t[${new Date().toISOString()}]` : ''}`),\n ...args.map(stringifyArg)\n );\n },\n\n // @ts-expect-error – returning a subpart of ora is fine because the types tell us what is what.\n spinner(text: string) {\n if (silent) {\n return {\n succeed() {\n return this;\n },\n fail() {\n return this;\n },\n start() {\n return this;\n },\n text: '',\n isSpinning: false,\n };\n }\n\n return ora(text);\n },\n\n progressBar(totalSize: number, text: string) {\n if (silent) {\n return {\n start() {\n return this;\n },\n stop() {\n return this;\n },\n update() {\n return this;\n },\n };\n }\n\n const progressBar = new cliProgress.SingleBar({\n format: `${text ? `${text} |` : ''}${chalk.green('{bar}')}| {percentage}%`,\n barCompleteChar: '\\u2588',\n barIncompleteChar: '\\u2591',\n hideCursor: true,\n forceRedraw: true,\n });\n\n progressBar.start(totalSize, 0);\n\n return progressBar;\n },\n };\n};\n\nexport { createLogger };\n"],"names":["stringifyArg","arg","stringify","createLogger","options","silent","debug","timestamp","state","errors","warning","warnings","args","console","log","chalk","cyan","Date","toISOString","map","info","blue","success","green","warn","yellow","error","red","spinner","text","succeed","fail","start","isSpinning","ora","progressBar","totalSize","stop","update","cliProgress","SingleBar","format","barCompleteChar","barIncompleteChar","hideCursor","forceRedraw"],"mappings":"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"}
@@ -0,0 +1,107 @@
1
+ import chalk from 'chalk';
2
+ import stringify from 'fast-safe-stringify';
3
+ import ora from 'ora';
4
+ import * as cliProgress from 'cli-progress';
5
+
6
+ const stringifyArg = (arg)=>{
7
+ return typeof arg === 'object' ? stringify(arg) : arg;
8
+ };
9
+ const createLogger = (options = {})=>{
10
+ const { silent = false, debug = false, timestamp = true } = options;
11
+ const state = {
12
+ errors: 0,
13
+ warning: 0
14
+ };
15
+ return {
16
+ get warnings () {
17
+ return state.warning;
18
+ },
19
+ get errors () {
20
+ return state.errors;
21
+ },
22
+ async debug (...args) {
23
+ if (silent || !debug) {
24
+ return;
25
+ }
26
+ console.log(chalk.cyan(`[DEBUG]${timestamp ? `\t[${new Date().toISOString()}]` : ''}`), ...args.map(stringifyArg));
27
+ },
28
+ info (...args) {
29
+ if (silent) {
30
+ return;
31
+ }
32
+ console.info(chalk.blue(`[INFO]${timestamp ? `\t[${new Date().toISOString()}]` : ''}`), ...args.map(stringifyArg));
33
+ },
34
+ log (...args) {
35
+ if (silent) {
36
+ return;
37
+ }
38
+ console.info(chalk.blue(`${timestamp ? `\t[${new Date().toISOString()}]` : ''}`), ...args.map(stringifyArg));
39
+ },
40
+ success (...args) {
41
+ if (silent) {
42
+ return;
43
+ }
44
+ console.info(chalk.green(`[SUCCESS]${timestamp ? `\t[${new Date().toISOString()}]` : ''}`), ...args.map(stringifyArg));
45
+ },
46
+ warn (...args) {
47
+ state.warning += 1;
48
+ if (silent) {
49
+ return;
50
+ }
51
+ console.warn(chalk.yellow(`[WARN]${timestamp ? `\t[${new Date().toISOString()}]` : ''}`), ...args.map(stringifyArg));
52
+ },
53
+ error (...args) {
54
+ state.errors += 1;
55
+ if (silent) {
56
+ return;
57
+ }
58
+ console.error(chalk.red(`[ERROR]${timestamp ? `\t[${new Date().toISOString()}]` : ''}`), ...args.map(stringifyArg));
59
+ },
60
+ // @ts-expect-error – returning a subpart of ora is fine because the types tell us what is what.
61
+ spinner (text) {
62
+ if (silent) {
63
+ return {
64
+ succeed () {
65
+ return this;
66
+ },
67
+ fail () {
68
+ return this;
69
+ },
70
+ start () {
71
+ return this;
72
+ },
73
+ text: '',
74
+ isSpinning: false
75
+ };
76
+ }
77
+ return ora(text);
78
+ },
79
+ progressBar (totalSize, text) {
80
+ if (silent) {
81
+ return {
82
+ start () {
83
+ return this;
84
+ },
85
+ stop () {
86
+ return this;
87
+ },
88
+ update () {
89
+ return this;
90
+ }
91
+ };
92
+ }
93
+ const progressBar = new cliProgress.SingleBar({
94
+ format: `${text ? `${text} |` : ''}${chalk.green('{bar}')}| {percentage}%`,
95
+ barCompleteChar: '\u2588',
96
+ barIncompleteChar: '\u2591',
97
+ hideCursor: true,
98
+ forceRedraw: true
99
+ });
100
+ progressBar.start(totalSize, 0);
101
+ return progressBar;
102
+ }
103
+ };
104
+ };
105
+
106
+ export { createLogger };
107
+ //# sourceMappingURL=logger.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.mjs","sources":["../../src/services/logger.ts"],"sourcesContent":["import chalk from 'chalk';\nimport stringify from 'fast-safe-stringify';\n\nimport ora from 'ora';\nimport * as cliProgress from 'cli-progress';\n\nexport interface LoggerOptions {\n silent?: boolean;\n debug?: boolean;\n timestamp?: boolean;\n}\n\nexport interface Logger {\n warnings: number;\n errors: number;\n debug: (...args: unknown[]) => void;\n info: (...args: unknown[]) => void;\n success: (...args: unknown[]) => void;\n warn: (...args: unknown[]) => void;\n error: (...args: unknown[]) => void;\n log: (...args: unknown[]) => void;\n spinner: (text: string) => Pick<ora.Ora, 'succeed' | 'fail' | 'start' | 'text' | 'isSpinning'>;\n progressBar: (\n totalSize: number,\n text: string\n ) => Pick<cliProgress.SingleBar, 'start' | 'stop' | 'update'>;\n}\n\nconst stringifyArg = (arg: unknown) => {\n return typeof arg === 'object' ? stringify(arg) : arg;\n};\n\nconst createLogger = (options: LoggerOptions = {}): Logger => {\n const { silent = false, debug = false, timestamp = true } = options;\n\n const state = { errors: 0, warning: 0 };\n\n return {\n get warnings() {\n return state.warning;\n },\n\n get errors() {\n return state.errors;\n },\n\n async debug(...args) {\n if (silent || !debug) {\n return;\n }\n\n console.log(\n chalk.cyan(`[DEBUG]${timestamp ? `\\t[${new Date().toISOString()}]` : ''}`),\n ...args.map(stringifyArg)\n );\n },\n\n info(...args) {\n if (silent) {\n return;\n }\n\n console.info(\n chalk.blue(`[INFO]${timestamp ? `\\t[${new Date().toISOString()}]` : ''}`),\n ...args.map(stringifyArg)\n );\n },\n\n log(...args) {\n if (silent) {\n return;\n }\n\n console.info(\n chalk.blue(`${timestamp ? `\\t[${new Date().toISOString()}]` : ''}`),\n ...args.map(stringifyArg)\n );\n },\n\n success(...args) {\n if (silent) {\n return;\n }\n\n console.info(\n chalk.green(`[SUCCESS]${timestamp ? `\\t[${new Date().toISOString()}]` : ''}`),\n ...args.map(stringifyArg)\n );\n },\n\n warn(...args) {\n state.warning += 1;\n\n if (silent) {\n return;\n }\n\n console.warn(\n chalk.yellow(`[WARN]${timestamp ? `\\t[${new Date().toISOString()}]` : ''}`),\n ...args.map(stringifyArg)\n );\n },\n\n error(...args) {\n state.errors += 1;\n\n if (silent) {\n return;\n }\n\n console.error(\n chalk.red(`[ERROR]${timestamp ? `\\t[${new Date().toISOString()}]` : ''}`),\n ...args.map(stringifyArg)\n );\n },\n\n // @ts-expect-error – returning a subpart of ora is fine because the types tell us what is what.\n spinner(text: string) {\n if (silent) {\n return {\n succeed() {\n return this;\n },\n fail() {\n return this;\n },\n start() {\n return this;\n },\n text: '',\n isSpinning: false,\n };\n }\n\n return ora(text);\n },\n\n progressBar(totalSize: number, text: string) {\n if (silent) {\n return {\n start() {\n return this;\n },\n stop() {\n return this;\n },\n update() {\n return this;\n },\n };\n }\n\n const progressBar = new cliProgress.SingleBar({\n format: `${text ? `${text} |` : ''}${chalk.green('{bar}')}| {percentage}%`,\n barCompleteChar: '\\u2588',\n barIncompleteChar: '\\u2591',\n hideCursor: true,\n forceRedraw: true,\n });\n\n progressBar.start(totalSize, 0);\n\n return progressBar;\n },\n };\n};\n\nexport { createLogger };\n"],"names":["stringifyArg","arg","stringify","createLogger","options","silent","debug","timestamp","state","errors","warning","warnings","args","console","log","chalk","cyan","Date","toISOString","map","info","blue","success","green","warn","yellow","error","red","spinner","text","succeed","fail","start","isSpinning","ora","progressBar","totalSize","stop","update","cliProgress","SingleBar","format","barCompleteChar","barIncompleteChar","hideCursor","forceRedraw"],"mappings":";;;;;AA4BA,MAAMA,eAAe,CAACC,GAAAA,GAAAA;AACpB,IAAA,OAAO,OAAOA,GAAAA,KAAQ,QAAWC,GAAAA,SAAAA,CAAUD,GAAOA,CAAAA,GAAAA,GAAAA;AACpD,CAAA;AAEA,MAAME,YAAe,GAAA,CAACC,OAAyB,GAAA,EAAE,GAAA;IAC/C,MAAM,EAAEC,MAAS,GAAA,KAAK,EAAEC,KAAAA,GAAQ,KAAK,EAAEC,SAAAA,GAAY,IAAI,EAAE,GAAGH,OAAAA;AAE5D,IAAA,MAAMI,KAAQ,GAAA;QAAEC,MAAQ,EAAA,CAAA;QAAGC,OAAS,EAAA;AAAE,KAAA;IAEtC,OAAO;AACL,QAAA,IAAIC,QAAW,CAAA,GAAA;AACb,YAAA,OAAOH,MAAME,OAAO;AACtB,SAAA;AAEA,QAAA,IAAID,MAAS,CAAA,GAAA;AACX,YAAA,OAAOD,MAAMC,MAAM;AACrB,SAAA;QAEA,MAAMH,KAAAA,CAAAA,CAAM,GAAGM,IAAI,EAAA;YACjB,IAAIP,MAAAA,IAAU,CAACC,KAAO,EAAA;AACpB,gBAAA;AACF;YAEAO,OAAQC,CAAAA,GAAG,CACTC,KAAAA,CAAMC,IAAI,CAAC,CAAC,OAAO,EAAET,SAAY,GAAA,CAAC,GAAG,EAAE,IAAIU,IAAOC,EAAAA,CAAAA,WAAW,EAAG,CAAA,CAAC,CAAC,GAAG,GAAG,CAAC,CAAA,EAAA,GACtEN,IAAKO,CAAAA,GAAG,CAACnB,YAAAA,CAAAA,CAAAA;AAEhB,SAAA;AAEAoB,QAAAA,IAAAA,CAAAA,CAAK,GAAGR,IAAI,EAAA;AACV,YAAA,IAAIP,MAAQ,EAAA;AACV,gBAAA;AACF;YAEAQ,OAAQO,CAAAA,IAAI,CACVL,KAAAA,CAAMM,IAAI,CAAC,CAAC,MAAM,EAAEd,SAAY,GAAA,CAAC,GAAG,EAAE,IAAIU,IAAOC,EAAAA,CAAAA,WAAW,EAAG,CAAA,CAAC,CAAC,GAAG,GAAG,CAAC,CAAA,EAAA,GACrEN,IAAKO,CAAAA,GAAG,CAACnB,YAAAA,CAAAA,CAAAA;AAEhB,SAAA;AAEAc,QAAAA,GAAAA,CAAAA,CAAI,GAAGF,IAAI,EAAA;AACT,YAAA,IAAIP,MAAQ,EAAA;AACV,gBAAA;AACF;YAEAQ,OAAQO,CAAAA,IAAI,CACVL,KAAMM,CAAAA,IAAI,CAAC,CAAC,EAAEd,SAAY,GAAA,CAAC,GAAG,EAAE,IAAIU,IAAOC,EAAAA,CAAAA,WAAW,EAAG,CAAA,CAAC,CAAC,GAAG,GAAG,CAAC,CAAA,EAAA,GAC/DN,IAAKO,CAAAA,GAAG,CAACnB,YAAAA,CAAAA,CAAAA;AAEhB,SAAA;AAEAsB,QAAAA,OAAAA,CAAAA,CAAQ,GAAGV,IAAI,EAAA;AACb,YAAA,IAAIP,MAAQ,EAAA;AACV,gBAAA;AACF;YAEAQ,OAAQO,CAAAA,IAAI,CACVL,KAAAA,CAAMQ,KAAK,CAAC,CAAC,SAAS,EAAEhB,SAAY,GAAA,CAAC,GAAG,EAAE,IAAIU,IAAOC,EAAAA,CAAAA,WAAW,EAAG,CAAA,CAAC,CAAC,GAAG,GAAG,CAAC,CAAA,EAAA,GACzEN,IAAKO,CAAAA,GAAG,CAACnB,YAAAA,CAAAA,CAAAA;AAEhB,SAAA;AAEAwB,QAAAA,IAAAA,CAAAA,CAAK,GAAGZ,IAAI,EAAA;AACVJ,YAAAA,KAAAA,CAAME,OAAO,IAAI,CAAA;AAEjB,YAAA,IAAIL,MAAQ,EAAA;AACV,gBAAA;AACF;YAEAQ,OAAQW,CAAAA,IAAI,CACVT,KAAAA,CAAMU,MAAM,CAAC,CAAC,MAAM,EAAElB,SAAY,GAAA,CAAC,GAAG,EAAE,IAAIU,IAAOC,EAAAA,CAAAA,WAAW,EAAG,CAAA,CAAC,CAAC,GAAG,GAAG,CAAC,CAAA,EAAA,GACvEN,IAAKO,CAAAA,GAAG,CAACnB,YAAAA,CAAAA,CAAAA;AAEhB,SAAA;AAEA0B,QAAAA,KAAAA,CAAAA,CAAM,GAAGd,IAAI,EAAA;AACXJ,YAAAA,KAAAA,CAAMC,MAAM,IAAI,CAAA;AAEhB,YAAA,IAAIJ,MAAQ,EAAA;AACV,gBAAA;AACF;YAEAQ,OAAQa,CAAAA,KAAK,CACXX,KAAAA,CAAMY,GAAG,CAAC,CAAC,OAAO,EAAEpB,SAAY,GAAA,CAAC,GAAG,EAAE,IAAIU,IAAOC,EAAAA,CAAAA,WAAW,EAAG,CAAA,CAAC,CAAC,GAAG,GAAG,CAAC,CAAA,EAAA,GACrEN,IAAKO,CAAAA,GAAG,CAACnB,YAAAA,CAAAA,CAAAA;AAEhB,SAAA;;AAGA4B,QAAAA,OAAAA,CAAAA,CAAQC,IAAY,EAAA;AAClB,YAAA,IAAIxB,MAAQ,EAAA;gBACV,OAAO;AACLyB,oBAAAA,OAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,IAAI;AACb,qBAAA;AACAC,oBAAAA,IAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,IAAI;AACb,qBAAA;AACAC,oBAAAA,KAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,IAAI;AACb,qBAAA;oBACAH,IAAM,EAAA,EAAA;oBACNI,UAAY,EAAA;AACd,iBAAA;AACF;AAEA,YAAA,OAAOC,GAAIL,CAAAA,IAAAA,CAAAA;AACb,SAAA;QAEAM,WAAYC,CAAAA,CAAAA,SAAiB,EAAEP,IAAY,EAAA;AACzC,YAAA,IAAIxB,MAAQ,EAAA;gBACV,OAAO;AACL2B,oBAAAA,KAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,IAAI;AACb,qBAAA;AACAK,oBAAAA,IAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,IAAI;AACb,qBAAA;AACAC,oBAAAA,MAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,IAAI;AACb;AACF,iBAAA;AACF;AAEA,YAAA,MAAMH,WAAc,GAAA,IAAII,WAAYC,CAAAA,SAAS,CAAC;AAC5CC,gBAAAA,MAAAA,EAAQ,CAAC,EAAEZ,IAAAA,GAAO,CAAC,EAAEA,KAAK,EAAE,CAAC,GAAG,EAAA,CAAG,EAAEd,KAAMQ,CAAAA,KAAK,CAAC,OAAA,CAAA,CAAS,eAAe,CAAC;gBAC1EmB,eAAiB,EAAA,QAAA;gBACjBC,iBAAmB,EAAA,QAAA;gBACnBC,UAAY,EAAA,IAAA;gBACZC,WAAa,EAAA;AACf,aAAA,CAAA;YAEAV,WAAYH,CAAAA,KAAK,CAACI,SAAW,EAAA,CAAA,CAAA;YAE7B,OAAOD,WAAAA;AACT;AACF,KAAA;AACF;;;;"}
@@ -0,0 +1,6 @@
1
+ import type { CLIContext, CloudCliConfig } from '../types';
2
+ export declare function notificationServiceFactory({ logger }: CLIContext): (url: string, token: string, cliConfig: CloudCliConfig) => {
3
+ waitForEnvironmentCreation: (environmentName: string) => Promise<unknown>;
4
+ close: () => void;
5
+ };
6
+ //# sourceMappingURL=notification.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notification.d.ts","sourceRoot":"","sources":["../../src/services/notification.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAsB3D,wBAAgB,0BAA0B,CAAC,EAAE,MAAM,EAAE,EAAE,UAAU,SAClD,MAAM,SAAS,MAAM,aAAa,cAAc;kDAiDN,MAAM;;EA6B9D"}
@@ -0,0 +1,79 @@
1
+ 'use strict';
2
+
3
+ var EventSource = require('eventsource');
4
+ var EventEmitter = require('node:events');
5
+
6
+ function notificationServiceFactory({ logger }) {
7
+ return (url, token, cliConfig)=>{
8
+ const CONN_TIMEOUT = Number(cliConfig.notificationsConnectionTimeout);
9
+ const eventEmitter = new EventEmitter();
10
+ const es = new EventSource(url, {
11
+ headers: {
12
+ Authorization: `Bearer ${token}`
13
+ }
14
+ });
15
+ let timeoutId;
16
+ const resetTimeout = ()=>{
17
+ clearTimeout(timeoutId);
18
+ timeoutId = setTimeout(()=>{
19
+ logger.log('We were unable to connect to the server at this time. This could be due to a temporary issue. Please try again in a moment.');
20
+ es.close();
21
+ eventEmitter.emit('connectionTimedOut');
22
+ }, CONN_TIMEOUT); // 5 minutes
23
+ };
24
+ es.onopen = ()=>{
25
+ resetTimeout();
26
+ };
27
+ es.onmessage = (event)=>{
28
+ resetTimeout();
29
+ if (!event.data) {
30
+ return;
31
+ }
32
+ const data = JSON.parse(event.data);
33
+ if (data.message) {
34
+ logger.log(data.message);
35
+ }
36
+ // Close connection when a specific event is received
37
+ if (data.event === 'deploymentCompleted' || data.event === 'deploymentFailed' || data.event === 'environmentCreationFailed' || data.event === 'environmentCreationCompleted') {
38
+ clearTimeout(timeoutId);
39
+ es.close();
40
+ }
41
+ eventEmitter.emit(data.event, data);
42
+ };
43
+ const waitForEnvironmentCreation = (environmentName)=>{
44
+ return new Promise((resolve, reject)=>{
45
+ eventEmitter.on('environmentCreationCompleted', (data)=>{
46
+ if (data.environmentName !== environmentName) {
47
+ return;
48
+ }
49
+ resolve('Environment created successfully');
50
+ eventEmitter.removeAllListeners('environmentCreationCompleted');
51
+ });
52
+ eventEmitter.on('environmentCreationFailed', (data)=>{
53
+ if (data.environmentName !== environmentName) {
54
+ return;
55
+ }
56
+ reject(new Error(`Environment creation failed`, {
57
+ cause: 'EnvironmentCreationFailed'
58
+ }));
59
+ eventEmitter.removeAllListeners('environmentCreationFailed');
60
+ });
61
+ eventEmitter.on('connectionTimedOut', ()=>{
62
+ reject(new Error('Connection timed out'));
63
+ });
64
+ });
65
+ };
66
+ const close = ()=>{
67
+ clearTimeout(timeoutId);
68
+ es.close();
69
+ eventEmitter.removeAllListeners();
70
+ };
71
+ return {
72
+ waitForEnvironmentCreation,
73
+ close
74
+ };
75
+ };
76
+ }
77
+
78
+ exports.notificationServiceFactory = notificationServiceFactory;
79
+ //# sourceMappingURL=notification.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notification.js","sources":["../../src/services/notification.ts"],"sourcesContent":["import EventSource from 'eventsource';\nimport EventEmitter from 'node:events';\nimport type { CLIContext, CloudCliConfig } from '../types';\n\ntype Event = {\n type: string;\n data: string;\n lastEventId: string;\n origin: string;\n};\n\ntype DeploymentNotificationData = {\n event:\n | 'deploymentFailed'\n | 'deploymentCompleted'\n | 'environmentCreationFailed'\n | 'environmentCreationCompleted';\n userId: string;\n projectName: string;\n environmentName: string;\n createdAt: string;\n message?: string;\n};\n\nexport function notificationServiceFactory({ logger }: CLIContext) {\n return (url: string, token: string, cliConfig: CloudCliConfig) => {\n const CONN_TIMEOUT = Number(cliConfig.notificationsConnectionTimeout);\n const eventEmitter = new EventEmitter();\n\n const es = new EventSource(url, {\n headers: {\n Authorization: `Bearer ${token}`,\n },\n });\n let timeoutId: NodeJS.Timeout;\n\n const resetTimeout = () => {\n clearTimeout(timeoutId);\n timeoutId = setTimeout(() => {\n logger.log(\n 'We were unable to connect to the server at this time. This could be due to a temporary issue. Please try again in a moment.'\n );\n es.close();\n eventEmitter.emit('connectionTimedOut');\n }, CONN_TIMEOUT); // 5 minutes\n };\n\n es.onopen = () => {\n resetTimeout();\n };\n es.onmessage = (event: Event) => {\n resetTimeout();\n if (!event.data) {\n return;\n }\n const data: DeploymentNotificationData = JSON.parse(event.data);\n\n if (data.message) {\n logger.log(data.message);\n }\n\n // Close connection when a specific event is received\n if (\n data.event === 'deploymentCompleted' ||\n data.event === 'deploymentFailed' ||\n data.event === 'environmentCreationFailed' ||\n data.event === 'environmentCreationCompleted'\n ) {\n clearTimeout(timeoutId);\n es.close();\n }\n eventEmitter.emit(data.event, data);\n };\n\n const waitForEnvironmentCreation = (environmentName: string) => {\n return new Promise((resolve, reject) => {\n eventEmitter.on('environmentCreationCompleted', (data: DeploymentNotificationData) => {\n if (data.environmentName !== environmentName) {\n return;\n }\n resolve('Environment created successfully');\n eventEmitter.removeAllListeners('environmentCreationCompleted');\n });\n eventEmitter.on('environmentCreationFailed', (data: DeploymentNotificationData) => {\n if (data.environmentName !== environmentName) {\n return;\n }\n reject(new Error(`Environment creation failed`, { cause: 'EnvironmentCreationFailed' }));\n eventEmitter.removeAllListeners('environmentCreationFailed');\n });\n\n eventEmitter.on('connectionTimedOut', () => {\n reject(new Error('Connection timed out'));\n });\n });\n };\n const close = () => {\n clearTimeout(timeoutId);\n es.close();\n eventEmitter.removeAllListeners();\n };\n return { waitForEnvironmentCreation, close };\n };\n}\n"],"names":["notificationServiceFactory","logger","url","token","cliConfig","CONN_TIMEOUT","Number","notificationsConnectionTimeout","eventEmitter","EventEmitter","es","EventSource","headers","Authorization","timeoutId","resetTimeout","clearTimeout","setTimeout","log","close","emit","onopen","onmessage","event","data","JSON","parse","message","waitForEnvironmentCreation","environmentName","Promise","resolve","reject","on","removeAllListeners","Error","cause"],"mappings":";;;;;AAwBO,SAASA,0BAAAA,CAA2B,EAAEC,MAAM,EAAc,EAAA;IAC/D,OAAO,CAACC,KAAaC,KAAeC,EAAAA,SAAAA,GAAAA;QAClC,MAAMC,YAAAA,GAAeC,MAAOF,CAAAA,SAAAA,CAAUG,8BAA8B,CAAA;AACpE,QAAA,MAAMC,eAAe,IAAIC,YAAAA,EAAAA;QAEzB,MAAMC,EAAAA,GAAK,IAAIC,WAAAA,CAAYT,GAAK,EAAA;YAC9BU,OAAS,EAAA;AACPC,gBAAAA,aAAAA,EAAe,CAAC,OAAO,EAAEV,KAAAA,CAAM;AACjC;AACF,SAAA,CAAA;QACA,IAAIW,SAAAA;AAEJ,QAAA,MAAMC,YAAe,GAAA,IAAA;YACnBC,YAAaF,CAAAA,SAAAA,CAAAA;AACbA,YAAAA,SAAAA,GAAYG,UAAW,CAAA,IAAA;AACrBhB,gBAAAA,MAAAA,CAAOiB,GAAG,CACR,6HAAA,CAAA;AAEFR,gBAAAA,EAAAA,CAAGS,KAAK,EAAA;AACRX,gBAAAA,YAAAA,CAAaY,IAAI,CAAC,oBAAA,CAAA;AACpB,aAAA,EAAGf;AACL,SAAA;AAEAK,QAAAA,EAAAA,CAAGW,MAAM,GAAG,IAAA;AACVN,YAAAA,YAAAA,EAAAA;AACF,SAAA;QACAL,EAAGY,CAAAA,SAAS,GAAG,CAACC,KAAAA,GAAAA;AACdR,YAAAA,YAAAA,EAAAA;YACA,IAAI,CAACQ,KAAMC,CAAAA,IAAI,EAAE;AACf,gBAAA;AACF;AACA,YAAA,MAAMA,IAAmCC,GAAAA,IAAAA,CAAKC,KAAK,CAACH,MAAMC,IAAI,CAAA;YAE9D,IAAIA,IAAAA,CAAKG,OAAO,EAAE;gBAChB1B,MAAOiB,CAAAA,GAAG,CAACM,IAAAA,CAAKG,OAAO,CAAA;AACzB;;AAGA,YAAA,IACEH,IAAKD,CAAAA,KAAK,KAAK,qBAAA,IACfC,KAAKD,KAAK,KAAK,kBACfC,IAAAA,IAAAA,CAAKD,KAAK,KAAK,2BAAA,IACfC,IAAKD,CAAAA,KAAK,KAAK,8BACf,EAAA;gBACAP,YAAaF,CAAAA,SAAAA,CAAAA;AACbJ,gBAAAA,EAAAA,CAAGS,KAAK,EAAA;AACV;AACAX,YAAAA,YAAAA,CAAaY,IAAI,CAACI,IAAKD,CAAAA,KAAK,EAAEC,IAAAA,CAAAA;AAChC,SAAA;AAEA,QAAA,MAAMI,6BAA6B,CAACC,eAAAA,GAAAA;YAClC,OAAO,IAAIC,OAAQ,CAAA,CAACC,OAASC,EAAAA,MAAAA,GAAAA;gBAC3BxB,YAAayB,CAAAA,EAAE,CAAC,8BAAA,EAAgC,CAACT,IAAAA,GAAAA;oBAC/C,IAAIA,IAAAA,CAAKK,eAAe,KAAKA,eAAiB,EAAA;AAC5C,wBAAA;AACF;oBACAE,OAAQ,CAAA,kCAAA,CAAA;AACRvB,oBAAAA,YAAAA,CAAa0B,kBAAkB,CAAC,8BAAA,CAAA;AAClC,iBAAA,CAAA;gBACA1B,YAAayB,CAAAA,EAAE,CAAC,2BAAA,EAA6B,CAACT,IAAAA,GAAAA;oBAC5C,IAAIA,IAAAA,CAAKK,eAAe,KAAKA,eAAiB,EAAA;AAC5C,wBAAA;AACF;AACAG,oBAAAA,MAAAA,CAAO,IAAIG,KAAAA,CAAM,CAAC,2BAA2B,CAAC,EAAE;wBAAEC,KAAO,EAAA;AAA4B,qBAAA,CAAA,CAAA;AACrF5B,oBAAAA,YAAAA,CAAa0B,kBAAkB,CAAC,2BAAA,CAAA;AAClC,iBAAA,CAAA;gBAEA1B,YAAayB,CAAAA,EAAE,CAAC,oBAAsB,EAAA,IAAA;AACpCD,oBAAAA,MAAAA,CAAO,IAAIG,KAAM,CAAA,sBAAA,CAAA,CAAA;AACnB,iBAAA,CAAA;AACF,aAAA,CAAA;AACF,SAAA;AACA,QAAA,MAAMhB,KAAQ,GAAA,IAAA;YACZH,YAAaF,CAAAA,SAAAA,CAAAA;AACbJ,YAAAA,EAAAA,CAAGS,KAAK,EAAA;AACRX,YAAAA,YAAAA,CAAa0B,kBAAkB,EAAA;AACjC,SAAA;QACA,OAAO;AAAEN,YAAAA,0BAAAA;AAA4BT,YAAAA;AAAM,SAAA;AAC7C,KAAA;AACF;;;;"}
@@ -0,0 +1,77 @@
1
+ import EventSource from 'eventsource';
2
+ import EventEmitter from 'node:events';
3
+
4
+ function notificationServiceFactory({ logger }) {
5
+ return (url, token, cliConfig)=>{
6
+ const CONN_TIMEOUT = Number(cliConfig.notificationsConnectionTimeout);
7
+ const eventEmitter = new EventEmitter();
8
+ const es = new EventSource(url, {
9
+ headers: {
10
+ Authorization: `Bearer ${token}`
11
+ }
12
+ });
13
+ let timeoutId;
14
+ const resetTimeout = ()=>{
15
+ clearTimeout(timeoutId);
16
+ timeoutId = setTimeout(()=>{
17
+ logger.log('We were unable to connect to the server at this time. This could be due to a temporary issue. Please try again in a moment.');
18
+ es.close();
19
+ eventEmitter.emit('connectionTimedOut');
20
+ }, CONN_TIMEOUT); // 5 minutes
21
+ };
22
+ es.onopen = ()=>{
23
+ resetTimeout();
24
+ };
25
+ es.onmessage = (event)=>{
26
+ resetTimeout();
27
+ if (!event.data) {
28
+ return;
29
+ }
30
+ const data = JSON.parse(event.data);
31
+ if (data.message) {
32
+ logger.log(data.message);
33
+ }
34
+ // Close connection when a specific event is received
35
+ if (data.event === 'deploymentCompleted' || data.event === 'deploymentFailed' || data.event === 'environmentCreationFailed' || data.event === 'environmentCreationCompleted') {
36
+ clearTimeout(timeoutId);
37
+ es.close();
38
+ }
39
+ eventEmitter.emit(data.event, data);
40
+ };
41
+ const waitForEnvironmentCreation = (environmentName)=>{
42
+ return new Promise((resolve, reject)=>{
43
+ eventEmitter.on('environmentCreationCompleted', (data)=>{
44
+ if (data.environmentName !== environmentName) {
45
+ return;
46
+ }
47
+ resolve('Environment created successfully');
48
+ eventEmitter.removeAllListeners('environmentCreationCompleted');
49
+ });
50
+ eventEmitter.on('environmentCreationFailed', (data)=>{
51
+ if (data.environmentName !== environmentName) {
52
+ return;
53
+ }
54
+ reject(new Error(`Environment creation failed`, {
55
+ cause: 'EnvironmentCreationFailed'
56
+ }));
57
+ eventEmitter.removeAllListeners('environmentCreationFailed');
58
+ });
59
+ eventEmitter.on('connectionTimedOut', ()=>{
60
+ reject(new Error('Connection timed out'));
61
+ });
62
+ });
63
+ };
64
+ const close = ()=>{
65
+ clearTimeout(timeoutId);
66
+ es.close();
67
+ eventEmitter.removeAllListeners();
68
+ };
69
+ return {
70
+ waitForEnvironmentCreation,
71
+ close
72
+ };
73
+ };
74
+ }
75
+
76
+ export { notificationServiceFactory };
77
+ //# sourceMappingURL=notification.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notification.mjs","sources":["../../src/services/notification.ts"],"sourcesContent":["import EventSource from 'eventsource';\nimport EventEmitter from 'node:events';\nimport type { CLIContext, CloudCliConfig } from '../types';\n\ntype Event = {\n type: string;\n data: string;\n lastEventId: string;\n origin: string;\n};\n\ntype DeploymentNotificationData = {\n event:\n | 'deploymentFailed'\n | 'deploymentCompleted'\n | 'environmentCreationFailed'\n | 'environmentCreationCompleted';\n userId: string;\n projectName: string;\n environmentName: string;\n createdAt: string;\n message?: string;\n};\n\nexport function notificationServiceFactory({ logger }: CLIContext) {\n return (url: string, token: string, cliConfig: CloudCliConfig) => {\n const CONN_TIMEOUT = Number(cliConfig.notificationsConnectionTimeout);\n const eventEmitter = new EventEmitter();\n\n const es = new EventSource(url, {\n headers: {\n Authorization: `Bearer ${token}`,\n },\n });\n let timeoutId: NodeJS.Timeout;\n\n const resetTimeout = () => {\n clearTimeout(timeoutId);\n timeoutId = setTimeout(() => {\n logger.log(\n 'We were unable to connect to the server at this time. This could be due to a temporary issue. Please try again in a moment.'\n );\n es.close();\n eventEmitter.emit('connectionTimedOut');\n }, CONN_TIMEOUT); // 5 minutes\n };\n\n es.onopen = () => {\n resetTimeout();\n };\n es.onmessage = (event: Event) => {\n resetTimeout();\n if (!event.data) {\n return;\n }\n const data: DeploymentNotificationData = JSON.parse(event.data);\n\n if (data.message) {\n logger.log(data.message);\n }\n\n // Close connection when a specific event is received\n if (\n data.event === 'deploymentCompleted' ||\n data.event === 'deploymentFailed' ||\n data.event === 'environmentCreationFailed' ||\n data.event === 'environmentCreationCompleted'\n ) {\n clearTimeout(timeoutId);\n es.close();\n }\n eventEmitter.emit(data.event, data);\n };\n\n const waitForEnvironmentCreation = (environmentName: string) => {\n return new Promise((resolve, reject) => {\n eventEmitter.on('environmentCreationCompleted', (data: DeploymentNotificationData) => {\n if (data.environmentName !== environmentName) {\n return;\n }\n resolve('Environment created successfully');\n eventEmitter.removeAllListeners('environmentCreationCompleted');\n });\n eventEmitter.on('environmentCreationFailed', (data: DeploymentNotificationData) => {\n if (data.environmentName !== environmentName) {\n return;\n }\n reject(new Error(`Environment creation failed`, { cause: 'EnvironmentCreationFailed' }));\n eventEmitter.removeAllListeners('environmentCreationFailed');\n });\n\n eventEmitter.on('connectionTimedOut', () => {\n reject(new Error('Connection timed out'));\n });\n });\n };\n const close = () => {\n clearTimeout(timeoutId);\n es.close();\n eventEmitter.removeAllListeners();\n };\n return { waitForEnvironmentCreation, close };\n };\n}\n"],"names":["notificationServiceFactory","logger","url","token","cliConfig","CONN_TIMEOUT","Number","notificationsConnectionTimeout","eventEmitter","EventEmitter","es","EventSource","headers","Authorization","timeoutId","resetTimeout","clearTimeout","setTimeout","log","close","emit","onopen","onmessage","event","data","JSON","parse","message","waitForEnvironmentCreation","environmentName","Promise","resolve","reject","on","removeAllListeners","Error","cause"],"mappings":";;;AAwBO,SAASA,0BAAAA,CAA2B,EAAEC,MAAM,EAAc,EAAA;IAC/D,OAAO,CAACC,KAAaC,KAAeC,EAAAA,SAAAA,GAAAA;QAClC,MAAMC,YAAAA,GAAeC,MAAOF,CAAAA,SAAAA,CAAUG,8BAA8B,CAAA;AACpE,QAAA,MAAMC,eAAe,IAAIC,YAAAA,EAAAA;QAEzB,MAAMC,EAAAA,GAAK,IAAIC,WAAAA,CAAYT,GAAK,EAAA;YAC9BU,OAAS,EAAA;AACPC,gBAAAA,aAAAA,EAAe,CAAC,OAAO,EAAEV,KAAAA,CAAM;AACjC;AACF,SAAA,CAAA;QACA,IAAIW,SAAAA;AAEJ,QAAA,MAAMC,YAAe,GAAA,IAAA;YACnBC,YAAaF,CAAAA,SAAAA,CAAAA;AACbA,YAAAA,SAAAA,GAAYG,UAAW,CAAA,IAAA;AACrBhB,gBAAAA,MAAAA,CAAOiB,GAAG,CACR,6HAAA,CAAA;AAEFR,gBAAAA,EAAAA,CAAGS,KAAK,EAAA;AACRX,gBAAAA,YAAAA,CAAaY,IAAI,CAAC,oBAAA,CAAA;AACpB,aAAA,EAAGf;AACL,SAAA;AAEAK,QAAAA,EAAAA,CAAGW,MAAM,GAAG,IAAA;AACVN,YAAAA,YAAAA,EAAAA;AACF,SAAA;QACAL,EAAGY,CAAAA,SAAS,GAAG,CAACC,KAAAA,GAAAA;AACdR,YAAAA,YAAAA,EAAAA;YACA,IAAI,CAACQ,KAAMC,CAAAA,IAAI,EAAE;AACf,gBAAA;AACF;AACA,YAAA,MAAMA,IAAmCC,GAAAA,IAAAA,CAAKC,KAAK,CAACH,MAAMC,IAAI,CAAA;YAE9D,IAAIA,IAAAA,CAAKG,OAAO,EAAE;gBAChB1B,MAAOiB,CAAAA,GAAG,CAACM,IAAAA,CAAKG,OAAO,CAAA;AACzB;;AAGA,YAAA,IACEH,IAAKD,CAAAA,KAAK,KAAK,qBAAA,IACfC,KAAKD,KAAK,KAAK,kBACfC,IAAAA,IAAAA,CAAKD,KAAK,KAAK,2BAAA,IACfC,IAAKD,CAAAA,KAAK,KAAK,8BACf,EAAA;gBACAP,YAAaF,CAAAA,SAAAA,CAAAA;AACbJ,gBAAAA,EAAAA,CAAGS,KAAK,EAAA;AACV;AACAX,YAAAA,YAAAA,CAAaY,IAAI,CAACI,IAAKD,CAAAA,KAAK,EAAEC,IAAAA,CAAAA;AAChC,SAAA;AAEA,QAAA,MAAMI,6BAA6B,CAACC,eAAAA,GAAAA;YAClC,OAAO,IAAIC,OAAQ,CAAA,CAACC,OAASC,EAAAA,MAAAA,GAAAA;gBAC3BxB,YAAayB,CAAAA,EAAE,CAAC,8BAAA,EAAgC,CAACT,IAAAA,GAAAA;oBAC/C,IAAIA,IAAAA,CAAKK,eAAe,KAAKA,eAAiB,EAAA;AAC5C,wBAAA;AACF;oBACAE,OAAQ,CAAA,kCAAA,CAAA;AACRvB,oBAAAA,YAAAA,CAAa0B,kBAAkB,CAAC,8BAAA,CAAA;AAClC,iBAAA,CAAA;gBACA1B,YAAayB,CAAAA,EAAE,CAAC,2BAAA,EAA6B,CAACT,IAAAA,GAAAA;oBAC5C,IAAIA,IAAAA,CAAKK,eAAe,KAAKA,eAAiB,EAAA;AAC5C,wBAAA;AACF;AACAG,oBAAAA,MAAAA,CAAO,IAAIG,KAAAA,CAAM,CAAC,2BAA2B,CAAC,EAAE;wBAAEC,KAAO,EAAA;AAA4B,qBAAA,CAAA,CAAA;AACrF5B,oBAAAA,YAAAA,CAAa0B,kBAAkB,CAAC,2BAAA,CAAA;AAClC,iBAAA,CAAA;gBAEA1B,YAAayB,CAAAA,EAAE,CAAC,oBAAsB,EAAA,IAAA;AACpCD,oBAAAA,MAAAA,CAAO,IAAIG,KAAM,CAAA,sBAAA,CAAA,CAAA;AACnB,iBAAA,CAAA;AACF,aAAA,CAAA;AACF,SAAA;AACA,QAAA,MAAMhB,KAAQ,GAAA,IAAA;YACZH,YAAaF,CAAAA,SAAAA,CAAAA;AACbJ,YAAAA,EAAAA,CAAGS,KAAK,EAAA;AACRX,YAAAA,YAAAA,CAAa0B,kBAAkB,EAAA;AACjC,SAAA;QACA,OAAO;AAAEN,YAAAA,0BAAAA;AAA4BT,YAAAA;AAAM,SAAA;AAC7C,KAAA;AACF;;;;"}
@@ -0,0 +1,25 @@
1
+ import type { ProjectInfo } from './cli-api';
2
+ export declare const LOCAL_SAVE_FILENAME = ".strapi-cloud.json";
3
+ export type LocalSave = {
4
+ project?: Omit<ProjectInfo, 'id'>;
5
+ };
6
+ type DeepPartial<T> = {
7
+ [P in keyof T]?: T[P] extends object ? DeepPartial<T[P]> : T[P];
8
+ };
9
+ export type LocalPatch = {
10
+ project?: DeepPartial<Omit<ProjectInfo, 'id'>>;
11
+ };
12
+ export declare function save(data: LocalSave, { directoryPath }?: {
13
+ directoryPath?: string;
14
+ }): Promise<void>;
15
+ export declare function retrieve({ directoryPath, }?: {
16
+ directoryPath?: string;
17
+ }): Promise<LocalSave>;
18
+ export declare function patch(patchData: LocalPatch, { directoryPath }?: {
19
+ directoryPath?: string;
20
+ }): Promise<void>;
21
+ export declare function deleteConfig({ directoryPath }?: {
22
+ directoryPath?: string;
23
+ }): Promise<void>;
24
+ export {};
25
+ //# sourceMappingURL=strapi-info-save.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strapi-info-save.d.ts","sourceRoot":"","sources":["../../src/services/strapi-info-save.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAE7C,eAAO,MAAM,mBAAmB,uBAAuB,CAAC;AAExD,MAAM,MAAM,SAAS,GAAG;IACtB,OAAO,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;CACnC,CAAC;AAGF,KAAK,WAAW,CAAC,CAAC,IAAI;KACnB,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAChE,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,OAAO,CAAC,EAAE,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC;CAChD,CAAC;AAKF,wBAAsB,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,aAAa,EAAE,GAAE;IAAE,aAAa,CAAC,EAAE,MAAM,CAAA;CAAO,iBAK7F;AAED,wBAAsB,QAAQ,CAAC,EAC7B,aAAa,GACd,GAAE;IAAE,aAAa,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CAOtD;AAED,wBAAsB,KAAK,CACzB,SAAS,EAAE,UAAU,EACrB,EAAE,aAAa,EAAE,GAAE;IAAE,aAAa,CAAC,EAAE,MAAM,CAAA;CAAO,iBASnD;AAED,wBAAsB,YAAY,CAAC,EAAE,aAAa,EAAE,GAAE;IAAE,aAAa,CAAC,EAAE,MAAM,CAAA;CAAO,iBAMpF"}
@@ -0,0 +1,53 @@
1
+ 'use strict';
2
+
3
+ var fse = require('fs-extra');
4
+ var path = require('path');
5
+ var lodash = require('lodash');
6
+
7
+ const LOCAL_SAVE_FILENAME = '.strapi-cloud.json';
8
+ const getFilePath = (directoryPath)=>path.join(directoryPath || process.cwd(), LOCAL_SAVE_FILENAME);
9
+ async function save(data, { directoryPath } = {}) {
10
+ const pathToFile = getFilePath(directoryPath);
11
+ // Ensure the directory exists and creates it if not
12
+ await fse.ensureDir(path.dirname(pathToFile));
13
+ await fse.writeJson(pathToFile, data, {
14
+ encoding: 'utf8'
15
+ });
16
+ }
17
+ async function retrieve({ directoryPath } = {}) {
18
+ const pathToFile = getFilePath(directoryPath);
19
+ const pathExists = await fse.pathExists(pathToFile);
20
+ if (!pathExists) {
21
+ return {};
22
+ }
23
+ return fse.readJSON(pathToFile, {
24
+ encoding: 'utf8'
25
+ });
26
+ }
27
+ async function patch(patchData, { directoryPath } = {}) {
28
+ const pathToFile = getFilePath(directoryPath);
29
+ const existingData = await retrieve({
30
+ directoryPath
31
+ });
32
+ if (!existingData) {
33
+ throw new Error('No configuration data found to patch.');
34
+ }
35
+ const newData = lodash.merge(existingData, patchData);
36
+ await fse.writeJson(pathToFile, newData, {
37
+ encoding: 'utf8'
38
+ });
39
+ }
40
+ async function deleteConfig({ directoryPath } = {}) {
41
+ const pathToFile = getFilePath(directoryPath);
42
+ const pathExists = await fse.pathExists(pathToFile);
43
+ if (pathExists) {
44
+ await fse.remove(pathToFile);
45
+ }
46
+ }
47
+
48
+ exports.LOCAL_SAVE_FILENAME = LOCAL_SAVE_FILENAME;
49
+ exports.deleteConfig = deleteConfig;
50
+ exports.patch = patch;
51
+ exports.retrieve = retrieve;
52
+ exports.save = save;
53
+ //# sourceMappingURL=strapi-info-save.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strapi-info-save.js","sources":["../../src/services/strapi-info-save.ts"],"sourcesContent":["import fse from 'fs-extra';\nimport path from 'path';\nimport { merge } from 'lodash';\nimport type { ProjectInfo } from './cli-api';\n\nexport const LOCAL_SAVE_FILENAME = '.strapi-cloud.json';\n\nexport type LocalSave = {\n project?: Omit<ProjectInfo, 'id'>;\n};\n\n// Utility type for making all properties optional recursively\ntype DeepPartial<T> = {\n [P in keyof T]?: T[P] extends object ? DeepPartial<T[P]> : T[P];\n};\n\nexport type LocalPatch = {\n project?: DeepPartial<Omit<ProjectInfo, 'id'>>;\n};\n\nconst getFilePath = (directoryPath?: string): string =>\n path.join(directoryPath || process.cwd(), LOCAL_SAVE_FILENAME);\n\nexport async function save(data: LocalSave, { directoryPath }: { directoryPath?: string } = {}) {\n const pathToFile = getFilePath(directoryPath);\n // Ensure the directory exists and creates it if not\n await fse.ensureDir(path.dirname(pathToFile));\n await fse.writeJson(pathToFile, data, { encoding: 'utf8' });\n}\n\nexport async function retrieve({\n directoryPath,\n}: { directoryPath?: string } = {}): Promise<LocalSave> {\n const pathToFile = getFilePath(directoryPath);\n const pathExists = await fse.pathExists(pathToFile);\n if (!pathExists) {\n return {};\n }\n return fse.readJSON(pathToFile, { encoding: 'utf8' });\n}\n\nexport async function patch(\n patchData: LocalPatch,\n { directoryPath }: { directoryPath?: string } = {}\n) {\n const pathToFile = getFilePath(directoryPath);\n const existingData = await retrieve({ directoryPath });\n if (!existingData) {\n throw new Error('No configuration data found to patch.');\n }\n const newData = merge(existingData, patchData);\n await fse.writeJson(pathToFile, newData, { encoding: 'utf8' });\n}\n\nexport async function deleteConfig({ directoryPath }: { directoryPath?: string } = {}) {\n const pathToFile = getFilePath(directoryPath);\n const pathExists = await fse.pathExists(pathToFile);\n if (pathExists) {\n await fse.remove(pathToFile);\n }\n}\n"],"names":["LOCAL_SAVE_FILENAME","getFilePath","directoryPath","path","join","process","cwd","save","data","pathToFile","fse","ensureDir","dirname","writeJson","encoding","retrieve","pathExists","readJSON","patch","patchData","existingData","Error","newData","merge","deleteConfig","remove"],"mappings":";;;;;;AAKO,MAAMA,sBAAsB;AAenC,MAAMC,WAAAA,GAAc,CAACC,aACnBC,GAAAA,IAAAA,CAAKC,IAAI,CAACF,aAAAA,IAAiBG,OAAQC,CAAAA,GAAG,EAAIN,EAAAA,mBAAAA,CAAAA;AAErC,eAAeO,KAAKC,IAAe,EAAE,EAAEN,aAAa,EAA8B,GAAG,EAAE,EAAA;AAC5F,IAAA,MAAMO,aAAaR,WAAYC,CAAAA,aAAAA,CAAAA;;AAE/B,IAAA,MAAMQ,GAAIC,CAAAA,SAAS,CAACR,IAAAA,CAAKS,OAAO,CAACH,UAAAA,CAAAA,CAAAA;AACjC,IAAA,MAAMC,GAAIG,CAAAA,SAAS,CAACJ,UAAAA,EAAYD,IAAM,EAAA;QAAEM,QAAU,EAAA;AAAO,KAAA,CAAA;AAC3D;AAEO,eAAeC,QAAS,CAAA,EAC7Bb,aAAa,EACc,GAAG,EAAE,EAAA;AAChC,IAAA,MAAMO,aAAaR,WAAYC,CAAAA,aAAAA,CAAAA;AAC/B,IAAA,MAAMc,UAAa,GAAA,MAAMN,GAAIM,CAAAA,UAAU,CAACP,UAAAA,CAAAA;AACxC,IAAA,IAAI,CAACO,UAAY,EAAA;AACf,QAAA,OAAO,EAAC;AACV;IACA,OAAON,GAAAA,CAAIO,QAAQ,CAACR,UAAY,EAAA;QAAEK,QAAU,EAAA;AAAO,KAAA,CAAA;AACrD;AAEO,eAAeI,MACpBC,SAAqB,EACrB,EAAEjB,aAAa,EAA8B,GAAG,EAAE,EAAA;AAElD,IAAA,MAAMO,aAAaR,WAAYC,CAAAA,aAAAA,CAAAA;IAC/B,MAAMkB,YAAAA,GAAe,MAAML,QAAS,CAAA;AAAEb,QAAAA;AAAc,KAAA,CAAA;AACpD,IAAA,IAAI,CAACkB,YAAc,EAAA;AACjB,QAAA,MAAM,IAAIC,KAAM,CAAA,uCAAA,CAAA;AAClB;IACA,MAAMC,OAAAA,GAAUC,aAAMH,YAAcD,EAAAA,SAAAA,CAAAA;AACpC,IAAA,MAAMT,GAAIG,CAAAA,SAAS,CAACJ,UAAAA,EAAYa,OAAS,EAAA;QAAER,QAAU,EAAA;AAAO,KAAA,CAAA;AAC9D;AAEO,eAAeU,YAAa,CAAA,EAAEtB,aAAa,EAA8B,GAAG,EAAE,EAAA;AACnF,IAAA,MAAMO,aAAaR,WAAYC,CAAAA,aAAAA,CAAAA;AAC/B,IAAA,MAAMc,UAAa,GAAA,MAAMN,GAAIM,CAAAA,UAAU,CAACP,UAAAA,CAAAA;AACxC,IAAA,IAAIO,UAAY,EAAA;QACd,MAAMN,GAAAA,CAAIe,MAAM,CAAChB,UAAAA,CAAAA;AACnB;AACF;;;;;;;;"}