@strapi/cloud-cli 0.0.0-experimental.626cf5324f21d318dee435c11cb3e08bb4c414b7 → 0.0.0-experimental.6340da17068c3bed7fb006e7bcc554c71129e282

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 (334) hide show
  1. package/dist/bin.d.ts.map +1 -0
  2. package/dist/bin.js +45 -171
  3. package/dist/bin.js.map +1 -1
  4. package/dist/bin.mjs +49 -0
  5. package/dist/bin.mjs.map +1 -0
  6. package/dist/cloud/command.d.ts +3 -0
  7. package/dist/cloud/command.d.ts.map +1 -0
  8. package/dist/cloud/command.js +14 -0
  9. package/dist/cloud/command.js.map +1 -0
  10. package/dist/cloud/command.mjs +12 -0
  11. package/dist/cloud/command.mjs.map +1 -0
  12. package/dist/config/api.d.ts +5 -0
  13. package/dist/config/api.d.ts.map +1 -0
  14. package/dist/config/api.js +11 -0
  15. package/dist/config/api.js.map +1 -0
  16. package/dist/config/api.mjs +9 -0
  17. package/dist/config/api.mjs.map +1 -0
  18. package/dist/{src/config → config}/local.d.ts +1 -1
  19. package/dist/config/local.d.ts.map +1 -0
  20. package/dist/config/local.js +67 -0
  21. package/dist/config/local.js.map +1 -0
  22. package/dist/config/local.mjs +55 -0
  23. package/dist/config/local.mjs.map +1 -0
  24. package/dist/create-growth-sso-trial/action.d.ts +9 -0
  25. package/dist/create-growth-sso-trial/action.d.ts.map +1 -0
  26. package/dist/create-growth-sso-trial/action.js +51 -0
  27. package/dist/create-growth-sso-trial/action.js.map +1 -0
  28. package/dist/create-growth-sso-trial/action.mjs +49 -0
  29. package/dist/create-growth-sso-trial/action.mjs.map +1 -0
  30. package/dist/create-growth-sso-trial/index.d.ts +4 -0
  31. package/dist/create-growth-sso-trial/index.d.ts.map +1 -0
  32. package/dist/create-project/action.d.ts +4 -0
  33. package/dist/create-project/action.d.ts.map +1 -0
  34. package/dist/create-project/action.js +122 -0
  35. package/dist/create-project/action.js.map +1 -0
  36. package/dist/create-project/action.mjs +120 -0
  37. package/dist/create-project/action.mjs.map +1 -0
  38. package/dist/create-project/command.d.ts.map +1 -0
  39. package/dist/create-project/command.js +14 -0
  40. package/dist/create-project/command.js.map +1 -0
  41. package/dist/create-project/command.mjs +12 -0
  42. package/dist/create-project/command.mjs.map +1 -0
  43. package/dist/create-project/index.d.ts.map +1 -0
  44. package/dist/create-project/index.js +18 -0
  45. package/dist/create-project/index.js.map +1 -0
  46. package/dist/create-project/index.mjs +12 -0
  47. package/dist/create-project/index.mjs.map +1 -0
  48. package/dist/create-project/utils/get-project-name-from-pkg.d.ts.map +1 -0
  49. package/dist/create-project/utils/get-project-name-from-pkg.js +15 -0
  50. package/dist/create-project/utils/get-project-name-from-pkg.js.map +1 -0
  51. package/dist/create-project/utils/get-project-name-from-pkg.mjs +13 -0
  52. package/dist/create-project/utils/get-project-name-from-pkg.mjs.map +1 -0
  53. package/dist/{src/create-project → create-project}/utils/project-questions.utils.d.ts +1 -1
  54. package/dist/create-project/utils/project-questions.utils.d.ts.map +1 -0
  55. package/dist/create-project/utils/project-questions.utils.js +63 -0
  56. package/dist/create-project/utils/project-questions.utils.js.map +1 -0
  57. package/dist/create-project/utils/project-questions.utils.mjs +59 -0
  58. package/dist/create-project/utils/project-questions.utils.mjs.map +1 -0
  59. package/dist/deploy-project/action.d.ts +8 -0
  60. package/dist/deploy-project/action.d.ts.map +1 -0
  61. package/dist/deploy-project/action.js +332 -0
  62. package/dist/deploy-project/action.js.map +1 -0
  63. package/dist/deploy-project/action.mjs +304 -0
  64. package/dist/deploy-project/action.mjs.map +1 -0
  65. package/dist/deploy-project/command.d.ts.map +1 -0
  66. package/dist/deploy-project/command.js +14 -0
  67. package/dist/deploy-project/command.js.map +1 -0
  68. package/dist/deploy-project/command.mjs +12 -0
  69. package/dist/deploy-project/command.mjs.map +1 -0
  70. package/dist/deploy-project/index.d.ts.map +1 -0
  71. package/dist/deploy-project/index.js +18 -0
  72. package/dist/deploy-project/index.js.map +1 -0
  73. package/dist/deploy-project/index.mjs +12 -0
  74. package/dist/deploy-project/index.mjs.map +1 -0
  75. package/dist/environment/command.d.ts +3 -0
  76. package/dist/environment/command.d.ts.map +1 -0
  77. package/dist/environment/command.js +15 -0
  78. package/dist/environment/command.js.map +1 -0
  79. package/dist/environment/command.mjs +13 -0
  80. package/dist/environment/command.mjs.map +1 -0
  81. package/dist/{src/logout → environment/link}/action.d.ts +1 -1
  82. package/dist/environment/link/action.d.ts.map +1 -0
  83. package/dist/environment/link/action.js +121 -0
  84. package/dist/environment/link/action.js.map +1 -0
  85. package/dist/environment/link/action.mjs +115 -0
  86. package/dist/environment/link/action.mjs.map +1 -0
  87. package/dist/environment/link/command.d.ts +4 -0
  88. package/dist/environment/link/command.d.ts.map +1 -0
  89. package/dist/environment/link/command.js +13 -0
  90. package/dist/environment/link/command.js.map +1 -0
  91. package/dist/environment/link/command.mjs +11 -0
  92. package/dist/environment/link/command.mjs.map +1 -0
  93. package/dist/environment/link/index.d.ts +7 -0
  94. package/dist/environment/link/index.d.ts.map +1 -0
  95. package/dist/environment/link/index.js +18 -0
  96. package/dist/environment/link/index.js.map +1 -0
  97. package/dist/environment/link/index.mjs +12 -0
  98. package/dist/environment/link/index.mjs.map +1 -0
  99. package/dist/environment/list/action.d.ts +4 -0
  100. package/dist/environment/list/action.d.ts.map +1 -0
  101. package/dist/environment/list/action.js +61 -0
  102. package/dist/environment/list/action.js.map +1 -0
  103. package/dist/environment/list/action.mjs +55 -0
  104. package/dist/environment/list/action.mjs.map +1 -0
  105. package/dist/environment/list/command.d.ts +4 -0
  106. package/dist/environment/list/command.d.ts.map +1 -0
  107. package/dist/environment/list/command.js +13 -0
  108. package/dist/environment/list/command.js.map +1 -0
  109. package/dist/environment/list/command.mjs +11 -0
  110. package/dist/environment/list/command.mjs.map +1 -0
  111. package/dist/environment/list/index.d.ts +7 -0
  112. package/dist/environment/list/index.d.ts.map +1 -0
  113. package/dist/environment/list/index.js +18 -0
  114. package/dist/environment/list/index.js.map +1 -0
  115. package/dist/environment/list/index.mjs +12 -0
  116. package/dist/environment/list/index.mjs.map +1 -0
  117. package/dist/{src/index.d.ts → index.d.ts} +4 -0
  118. package/dist/index.d.ts.map +1 -0
  119. package/dist/index.js +62 -1581
  120. package/dist/index.js.map +1 -1
  121. package/dist/index.mjs +56 -1526
  122. package/dist/index.mjs.map +1 -1
  123. package/dist/link/action.d.ts.map +1 -0
  124. package/dist/link/action.js +152 -0
  125. package/dist/link/action.js.map +1 -0
  126. package/dist/link/action.mjs +146 -0
  127. package/dist/link/action.mjs.map +1 -0
  128. package/dist/link/command.d.ts.map +1 -0
  129. package/dist/link/command.js +13 -0
  130. package/dist/link/command.js.map +1 -0
  131. package/dist/link/command.mjs +11 -0
  132. package/dist/link/command.mjs.map +1 -0
  133. package/dist/link/index.d.ts.map +1 -0
  134. package/dist/link/index.js +18 -0
  135. package/dist/link/index.js.map +1 -0
  136. package/dist/link/index.mjs +12 -0
  137. package/dist/link/index.mjs.map +1 -0
  138. package/dist/list-projects/action.d.ts.map +1 -0
  139. package/dist/list-projects/action.js +34 -0
  140. package/dist/list-projects/action.js.map +1 -0
  141. package/dist/list-projects/action.mjs +32 -0
  142. package/dist/list-projects/action.mjs.map +1 -0
  143. package/dist/list-projects/command.d.ts.map +1 -0
  144. package/dist/list-projects/command.js +13 -0
  145. package/dist/list-projects/command.js.map +1 -0
  146. package/dist/list-projects/command.mjs +11 -0
  147. package/dist/list-projects/command.mjs.map +1 -0
  148. package/dist/list-projects/index.d.ts.map +1 -0
  149. package/dist/list-projects/index.js +18 -0
  150. package/dist/list-projects/index.js.map +1 -0
  151. package/dist/list-projects/index.mjs +12 -0
  152. package/dist/list-projects/index.mjs.map +1 -0
  153. package/dist/login/action.d.ts +6 -0
  154. package/dist/login/action.d.ts.map +1 -0
  155. package/dist/login/action.js +204 -0
  156. package/dist/login/action.js.map +1 -0
  157. package/dist/login/action.mjs +194 -0
  158. package/dist/login/action.mjs.map +1 -0
  159. package/dist/login/command.d.ts.map +1 -0
  160. package/dist/login/command.js +14 -0
  161. package/dist/login/command.js.map +1 -0
  162. package/dist/login/command.mjs +12 -0
  163. package/dist/login/command.mjs.map +1 -0
  164. package/dist/login/index.d.ts.map +1 -0
  165. package/dist/login/index.js +18 -0
  166. package/dist/login/index.js.map +1 -0
  167. package/dist/login/index.mjs +12 -0
  168. package/dist/login/index.mjs.map +1 -0
  169. package/dist/logout/action.d.ts.map +1 -0
  170. package/dist/logout/action.js +46 -0
  171. package/dist/logout/action.js.map +1 -0
  172. package/dist/logout/action.mjs +44 -0
  173. package/dist/logout/action.mjs.map +1 -0
  174. package/dist/logout/command.d.ts.map +1 -0
  175. package/dist/logout/command.js +14 -0
  176. package/dist/logout/command.js.map +1 -0
  177. package/dist/logout/command.mjs +12 -0
  178. package/dist/logout/command.mjs.map +1 -0
  179. package/dist/logout/index.d.ts.map +1 -0
  180. package/dist/logout/index.js +18 -0
  181. package/dist/logout/index.js.map +1 -0
  182. package/dist/logout/index.mjs +12 -0
  183. package/dist/logout/index.mjs.map +1 -0
  184. package/dist/package.json.js +11 -0
  185. package/dist/package.json.js.map +1 -0
  186. package/dist/package.json.mjs +6 -0
  187. package/dist/package.json.mjs.map +1 -0
  188. package/dist/services/build-logs.d.ts.map +1 -0
  189. package/dist/services/build-logs.js +71 -0
  190. package/dist/services/build-logs.js.map +1 -0
  191. package/dist/services/build-logs.mjs +65 -0
  192. package/dist/services/build-logs.mjs.map +1 -0
  193. package/dist/{src/services → services}/cli-api.d.ts +43 -5
  194. package/dist/services/cli-api.d.ts.map +1 -0
  195. package/dist/services/cli-api.js +170 -0
  196. package/dist/services/cli-api.js.map +1 -0
  197. package/dist/services/cli-api.mjs +161 -0
  198. package/dist/services/cli-api.mjs.map +1 -0
  199. package/dist/services/context.d.ts +4 -0
  200. package/dist/services/context.d.ts.map +1 -0
  201. package/dist/services/context.js +14 -0
  202. package/dist/services/context.js.map +1 -0
  203. package/dist/services/context.mjs +11 -0
  204. package/dist/services/context.mjs.map +1 -0
  205. package/dist/services/index.d.ts.map +1 -0
  206. package/dist/services/index.js +14 -0
  207. package/dist/services/index.js.map +1 -0
  208. package/dist/services/index.mjs +6 -0
  209. package/dist/services/index.mjs.map +1 -0
  210. package/dist/services/logger.d.ts.map +1 -0
  211. package/dist/services/logger.js +134 -0
  212. package/dist/services/logger.js.map +1 -0
  213. package/dist/services/logger.mjs +107 -0
  214. package/dist/services/logger.mjs.map +1 -0
  215. package/dist/{src/services → services}/notification.d.ts +4 -1
  216. package/dist/services/notification.d.ts.map +1 -0
  217. package/dist/services/notification.js +84 -0
  218. package/dist/services/notification.js.map +1 -0
  219. package/dist/services/notification.mjs +77 -0
  220. package/dist/services/notification.mjs.map +1 -0
  221. package/dist/services/strapi-info-save.d.ts +25 -0
  222. package/dist/services/strapi-info-save.d.ts.map +1 -0
  223. package/dist/services/strapi-info-save.js +58 -0
  224. package/dist/services/strapi-info-save.js.map +1 -0
  225. package/dist/services/strapi-info-save.mjs +47 -0
  226. package/dist/services/strapi-info-save.mjs.map +1 -0
  227. package/dist/services/token.d.ts.map +1 -0
  228. package/dist/services/token.js +131 -0
  229. package/dist/services/token.js.map +1 -0
  230. package/dist/services/token.mjs +124 -0
  231. package/dist/services/token.mjs.map +1 -0
  232. package/dist/{src/types.d.ts → types.d.ts} +29 -1
  233. package/dist/types.d.ts.map +1 -0
  234. package/dist/utils/analytics.d.ts.map +1 -0
  235. package/dist/utils/analytics.js +12 -0
  236. package/dist/utils/analytics.js.map +1 -0
  237. package/dist/utils/analytics.mjs +10 -0
  238. package/dist/utils/analytics.mjs.map +1 -0
  239. package/dist/utils/compress-files.d.ts.map +1 -0
  240. package/dist/utils/compress-files.js +105 -0
  241. package/dist/utils/compress-files.js.map +1 -0
  242. package/dist/utils/compress-files.mjs +80 -0
  243. package/dist/utils/compress-files.mjs.map +1 -0
  244. package/dist/utils/error-message-factories.d.ts +9 -0
  245. package/dist/utils/error-message-factories.d.ts.map +1 -0
  246. package/dist/utils/error-message-factories.js +30 -0
  247. package/dist/utils/error-message-factories.js.map +1 -0
  248. package/dist/utils/error-message-factories.mjs +22 -0
  249. package/dist/utils/error-message-factories.mjs.map +1 -0
  250. package/dist/utils/get-local-config.d.ts +6 -0
  251. package/dist/utils/get-local-config.d.ts.map +1 -0
  252. package/dist/utils/get-local-config.js +41 -0
  253. package/dist/utils/get-local-config.js.map +1 -0
  254. package/dist/utils/get-local-config.mjs +34 -0
  255. package/dist/utils/get-local-config.mjs.map +1 -0
  256. package/dist/utils/helpers.d.ts.map +1 -0
  257. package/dist/utils/helpers.js +37 -0
  258. package/dist/utils/helpers.js.map +1 -0
  259. package/dist/utils/helpers.mjs +31 -0
  260. package/dist/utils/helpers.mjs.map +1 -0
  261. package/dist/utils/pkg.d.ts.map +1 -0
  262. package/dist/utils/pkg.js +70 -0
  263. package/dist/utils/pkg.js.map +1 -0
  264. package/dist/utils/pkg.mjs +43 -0
  265. package/dist/utils/pkg.mjs.map +1 -0
  266. package/dist/utils/tests/compress-files.test.d.ts.map +1 -0
  267. package/package.json +21 -19
  268. package/dist/src/bin.d.ts.map +0 -1
  269. package/dist/src/config/api.d.ts +0 -5
  270. package/dist/src/config/api.d.ts.map +0 -1
  271. package/dist/src/config/local.d.ts.map +0 -1
  272. package/dist/src/create-project/action.d.ts +0 -4
  273. package/dist/src/create-project/action.d.ts.map +0 -1
  274. package/dist/src/create-project/command.d.ts.map +0 -1
  275. package/dist/src/create-project/index.d.ts.map +0 -1
  276. package/dist/src/create-project/utils/get-project-name-from-pkg.d.ts.map +0 -1
  277. package/dist/src/create-project/utils/project-questions.utils.d.ts.map +0 -1
  278. package/dist/src/deploy-project/action.d.ts.map +0 -1
  279. package/dist/src/deploy-project/command.d.ts.map +0 -1
  280. package/dist/src/deploy-project/index.d.ts.map +0 -1
  281. package/dist/src/index.d.ts.map +0 -1
  282. package/dist/src/link/action.d.ts.map +0 -1
  283. package/dist/src/link/command.d.ts.map +0 -1
  284. package/dist/src/link/index.d.ts.map +0 -1
  285. package/dist/src/list-projects/action.d.ts.map +0 -1
  286. package/dist/src/list-projects/command.d.ts.map +0 -1
  287. package/dist/src/list-projects/index.d.ts.map +0 -1
  288. package/dist/src/login/action.d.ts +0 -4
  289. package/dist/src/login/action.d.ts.map +0 -1
  290. package/dist/src/login/command.d.ts.map +0 -1
  291. package/dist/src/login/index.d.ts.map +0 -1
  292. package/dist/src/logout/action.d.ts.map +0 -1
  293. package/dist/src/logout/command.d.ts.map +0 -1
  294. package/dist/src/logout/index.d.ts.map +0 -1
  295. package/dist/src/services/build-logs.d.ts.map +0 -1
  296. package/dist/src/services/cli-api.d.ts.map +0 -1
  297. package/dist/src/services/index.d.ts.map +0 -1
  298. package/dist/src/services/logger.d.ts.map +0 -1
  299. package/dist/src/services/notification.d.ts.map +0 -1
  300. package/dist/src/services/strapi-info-save.d.ts +0 -12
  301. package/dist/src/services/strapi-info-save.d.ts.map +0 -1
  302. package/dist/src/services/token.d.ts.map +0 -1
  303. package/dist/src/types.d.ts.map +0 -1
  304. package/dist/src/utils/analytics.d.ts.map +0 -1
  305. package/dist/src/utils/compress-files.d.ts.map +0 -1
  306. package/dist/src/utils/helpers.d.ts.map +0 -1
  307. package/dist/src/utils/pkg.d.ts.map +0 -1
  308. package/dist/src/utils/tests/compress-files.test.d.ts.map +0 -1
  309. /package/dist/{src/bin.d.ts → bin.d.ts} +0 -0
  310. /package/dist/{src/create-project → create-project}/command.d.ts +0 -0
  311. /package/dist/{src/create-project → create-project}/index.d.ts +0 -0
  312. /package/dist/{src/create-project → create-project}/utils/get-project-name-from-pkg.d.ts +0 -0
  313. /package/dist/{src/deploy-project → deploy-project}/command.d.ts +0 -0
  314. /package/dist/{src/deploy-project → deploy-project}/index.d.ts +0 -0
  315. /package/dist/{src/deploy-project → link}/action.d.ts +0 -0
  316. /package/dist/{src/link → link}/command.d.ts +0 -0
  317. /package/dist/{src/link → link}/index.d.ts +0 -0
  318. /package/dist/{src/link → list-projects}/action.d.ts +0 -0
  319. /package/dist/{src/list-projects → list-projects}/command.d.ts +0 -0
  320. /package/dist/{src/list-projects → list-projects}/index.d.ts +0 -0
  321. /package/dist/{src/login → login}/command.d.ts +0 -0
  322. /package/dist/{src/login → login}/index.d.ts +0 -0
  323. /package/dist/{src/list-projects → logout}/action.d.ts +0 -0
  324. /package/dist/{src/logout → logout}/command.d.ts +0 -0
  325. /package/dist/{src/logout → logout}/index.d.ts +0 -0
  326. /package/dist/{src/services → services}/build-logs.d.ts +0 -0
  327. /package/dist/{src/services → services}/index.d.ts +0 -0
  328. /package/dist/{src/services → services}/logger.d.ts +0 -0
  329. /package/dist/{src/services → services}/token.d.ts +0 -0
  330. /package/dist/{src/utils → utils}/analytics.d.ts +0 -0
  331. /package/dist/{src/utils → utils}/compress-files.d.ts +0 -0
  332. /package/dist/{src/utils → utils}/helpers.d.ts +0 -0
  333. /package/dist/{src/utils → utils}/pkg.d.ts +0 -0
  334. /package/dist/{src/utils → utils}/tests/compress-files.test.d.ts +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.mjs","sources":["../../src/services/context.ts"],"sourcesContent":["// This file will manage the CLI context state.\n\nimport { CLIContext } from '../types';\n\nlet ctx: CLIContext;\n\nexport function setContext(newCtx: CLIContext): void {\n ctx = newCtx;\n}\n\nexport function getContext(): CLIContext {\n return ctx;\n}\n"],"names":["ctx","setContext","newCtx","getContext"],"mappings":"AAAA;AAIA,IAAIA,GAAAA;AAEG,SAASC,WAAWC,MAAkB,EAAA;IAC3CF,GAAAA,GAAME,MAAAA;AACR;AAEO,SAASC,UAAAA,GAAAA;IACd,OAAOH,GAAAA;AACT;;;;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,KAAK,KAAK,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC"}
@@ -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 @@
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,GAAI,UAAS,aAAkB,KAAG,MAqInD,CAAC;AAEF,OAAO,EAAE,YAAY,EAAE,CAAC"}
@@ -0,0 +1,134 @@
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 _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
9
+
10
+ function _interopNamespace(e) {
11
+ if (e && e.__esModule) return e;
12
+ var n = Object.create(null);
13
+ if (e) {
14
+ Object.keys(e).forEach(function (k) {
15
+ if (k !== 'default') {
16
+ var d = Object.getOwnPropertyDescriptor(e, k);
17
+ Object.defineProperty(n, k, d.get ? d : {
18
+ enumerable: true,
19
+ get: function () { return e[k]; }
20
+ });
21
+ }
22
+ });
23
+ }
24
+ n.default = e;
25
+ return Object.freeze(n);
26
+ }
27
+
28
+ var chalk__default = /*#__PURE__*/_interopDefault(chalk);
29
+ var stringify__default = /*#__PURE__*/_interopDefault(stringify);
30
+ var ora__default = /*#__PURE__*/_interopDefault(ora);
31
+ var cliProgress__namespace = /*#__PURE__*/_interopNamespace(cliProgress);
32
+
33
+ const stringifyArg = (arg)=>{
34
+ return typeof arg === 'object' ? stringify__default.default(arg) : arg;
35
+ };
36
+ const createLogger = (options = {})=>{
37
+ const { silent = false, debug = false, timestamp = true } = options;
38
+ const state = {
39
+ errors: 0,
40
+ warning: 0
41
+ };
42
+ return {
43
+ get warnings () {
44
+ return state.warning;
45
+ },
46
+ get errors () {
47
+ return state.errors;
48
+ },
49
+ async debug (...args) {
50
+ if (silent || !debug) {
51
+ return;
52
+ }
53
+ console.log(chalk__default.default.cyan(`[DEBUG]${timestamp ? `\t[${new Date().toISOString()}]` : ''}`), ...args.map(stringifyArg));
54
+ },
55
+ info (...args) {
56
+ if (silent) {
57
+ return;
58
+ }
59
+ console.info(chalk__default.default.blue(`[INFO]${timestamp ? `\t[${new Date().toISOString()}]` : ''}`), ...args.map(stringifyArg));
60
+ },
61
+ log (...args) {
62
+ if (silent) {
63
+ return;
64
+ }
65
+ console.info(chalk__default.default.blue(`${timestamp ? `\t[${new Date().toISOString()}]` : ''}`), ...args.map(stringifyArg));
66
+ },
67
+ success (...args) {
68
+ if (silent) {
69
+ return;
70
+ }
71
+ console.info(chalk__default.default.green(`[SUCCESS]${timestamp ? `\t[${new Date().toISOString()}]` : ''}`), ...args.map(stringifyArg));
72
+ },
73
+ warn (...args) {
74
+ state.warning += 1;
75
+ if (silent) {
76
+ return;
77
+ }
78
+ console.warn(chalk__default.default.yellow(`[WARN]${timestamp ? `\t[${new Date().toISOString()}]` : ''}`), ...args.map(stringifyArg));
79
+ },
80
+ error (...args) {
81
+ state.errors += 1;
82
+ if (silent) {
83
+ return;
84
+ }
85
+ console.error(chalk__default.default.red(`[ERROR]${timestamp ? `\t[${new Date().toISOString()}]` : ''}`), ...args.map(stringifyArg));
86
+ },
87
+ // @ts-expect-error – returning a subpart of ora is fine because the types tell us what is what.
88
+ spinner (text) {
89
+ if (silent) {
90
+ return {
91
+ succeed () {
92
+ return this;
93
+ },
94
+ fail () {
95
+ return this;
96
+ },
97
+ start () {
98
+ return this;
99
+ },
100
+ text: '',
101
+ isSpinning: false
102
+ };
103
+ }
104
+ return ora__default.default(text);
105
+ },
106
+ progressBar (totalSize, text) {
107
+ if (silent) {
108
+ return {
109
+ start () {
110
+ return this;
111
+ },
112
+ stop () {
113
+ return this;
114
+ },
115
+ update () {
116
+ return this;
117
+ }
118
+ };
119
+ }
120
+ const progressBar = new cliProgress__namespace.SingleBar({
121
+ format: `${text ? `${text} |` : ''}${chalk__default.default.green('{bar}')}| {percentage}%`,
122
+ barCompleteChar: '\u2588',
123
+ barIncompleteChar: '\u2591',
124
+ hideCursor: true,
125
+ forceRedraw: true
126
+ });
127
+ progressBar.start(totalSize, 0);
128
+ return progressBar;
129
+ }
130
+ };
131
+ };
132
+
133
+ exports.createLogger = createLogger;
134
+ //# 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,QAAA,GAAWC,SAAAA,CAAUD,GAAAA,CAAAA,GAAOA,GAAAA;AACpD,CAAA;AAEA,MAAME,YAAAA,GAAe,CAACC,OAAAA,GAAyB,EAAE,GAAA;IAC/C,MAAM,EAAEC,MAAAA,GAAS,KAAK,EAAEC,KAAAA,GAAQ,KAAK,EAAEC,SAAAA,GAAY,IAAI,EAAE,GAAGH,OAAAA;AAE5D,IAAA,MAAMI,KAAAA,GAAQ;QAAEC,MAAAA,EAAQ,CAAA;QAAGC,OAAAA,EAAS;AAAE,KAAA;IAEtC,OAAO;AACL,QAAA,IAAIC,QAAAA,CAAAA,GAAW;AACb,YAAA,OAAOH,MAAME,OAAO;AACtB,QAAA,CAAA;AAEA,QAAA,IAAID,MAAAA,CAAAA,GAAS;AACX,YAAA,OAAOD,MAAMC,MAAM;AACrB,QAAA,CAAA;QAEA,MAAMH,KAAAA,CAAAA,CAAM,GAAGM,IAAI,EAAA;YACjB,IAAIP,MAAAA,IAAU,CAACC,KAAAA,EAAO;AACpB,gBAAA;AACF,YAAA;YAEAO,OAAAA,CAAQC,GAAG,CACTC,KAAAA,CAAMC,IAAI,CAAC,CAAC,OAAO,EAAET,SAAAA,GAAY,CAAC,GAAG,EAAE,IAAIU,IAAAA,EAAAA,CAAOC,WAAW,EAAA,CAAG,CAAC,CAAC,GAAG,EAAA,CAAA,CAAI,CAAA,EAAA,GACtEN,IAAAA,CAAKO,GAAG,CAACnB,YAAAA,CAAAA,CAAAA;AAEhB,QAAA,CAAA;AAEAoB,QAAAA,IAAAA,CAAAA,CAAK,GAAGR,IAAI,EAAA;AACV,YAAA,IAAIP,MAAAA,EAAQ;AACV,gBAAA;AACF,YAAA;YAEAQ,OAAAA,CAAQO,IAAI,CACVL,KAAAA,CAAMM,IAAI,CAAC,CAAC,MAAM,EAAEd,SAAAA,GAAY,CAAC,GAAG,EAAE,IAAIU,IAAAA,EAAAA,CAAOC,WAAW,EAAA,CAAG,CAAC,CAAC,GAAG,EAAA,CAAA,CAAI,CAAA,EAAA,GACrEN,IAAAA,CAAKO,GAAG,CAACnB,YAAAA,CAAAA,CAAAA;AAEhB,QAAA,CAAA;AAEAc,QAAAA,GAAAA,CAAAA,CAAI,GAAGF,IAAI,EAAA;AACT,YAAA,IAAIP,MAAAA,EAAQ;AACV,gBAAA;AACF,YAAA;YAEAQ,OAAAA,CAAQO,IAAI,CACVL,KAAAA,CAAMM,IAAI,CAAC,CAAA,EAAGd,SAAAA,GAAY,CAAC,GAAG,EAAE,IAAIU,IAAAA,EAAAA,CAAOC,WAAW,GAAG,CAAC,CAAC,GAAG,EAAA,CAAA,CAAI,CAAA,EAAA,GAC/DN,IAAAA,CAAKO,GAAG,CAACnB,YAAAA,CAAAA,CAAAA;AAEhB,QAAA,CAAA;AAEAsB,QAAAA,OAAAA,CAAAA,CAAQ,GAAGV,IAAI,EAAA;AACb,YAAA,IAAIP,MAAAA,EAAQ;AACV,gBAAA;AACF,YAAA;YAEAQ,OAAAA,CAAQO,IAAI,CACVL,KAAAA,CAAMQ,KAAK,CAAC,CAAC,SAAS,EAAEhB,SAAAA,GAAY,CAAC,GAAG,EAAE,IAAIU,IAAAA,EAAAA,CAAOC,WAAW,EAAA,CAAG,CAAC,CAAC,GAAG,EAAA,CAAA,CAAI,CAAA,EAAA,GACzEN,IAAAA,CAAKO,GAAG,CAACnB,YAAAA,CAAAA,CAAAA;AAEhB,QAAA,CAAA;AAEAwB,QAAAA,IAAAA,CAAAA,CAAK,GAAGZ,IAAI,EAAA;AACVJ,YAAAA,KAAAA,CAAME,OAAO,IAAI,CAAA;AAEjB,YAAA,IAAIL,MAAAA,EAAQ;AACV,gBAAA;AACF,YAAA;YAEAQ,OAAAA,CAAQW,IAAI,CACVT,KAAAA,CAAMU,MAAM,CAAC,CAAC,MAAM,EAAElB,SAAAA,GAAY,CAAC,GAAG,EAAE,IAAIU,IAAAA,EAAAA,CAAOC,WAAW,EAAA,CAAG,CAAC,CAAC,GAAG,EAAA,CAAA,CAAI,CAAA,EAAA,GACvEN,IAAAA,CAAKO,GAAG,CAACnB,YAAAA,CAAAA,CAAAA;AAEhB,QAAA,CAAA;AAEA0B,QAAAA,KAAAA,CAAAA,CAAM,GAAGd,IAAI,EAAA;AACXJ,YAAAA,KAAAA,CAAMC,MAAM,IAAI,CAAA;AAEhB,YAAA,IAAIJ,MAAAA,EAAQ;AACV,gBAAA;AACF,YAAA;YAEAQ,OAAAA,CAAQa,KAAK,CACXX,KAAAA,CAAMY,GAAG,CAAC,CAAC,OAAO,EAAEpB,SAAAA,GAAY,CAAC,GAAG,EAAE,IAAIU,IAAAA,EAAAA,CAAOC,WAAW,EAAA,CAAG,CAAC,CAAC,GAAG,EAAA,CAAA,CAAI,CAAA,EAAA,GACrEN,IAAAA,CAAKO,GAAG,CAACnB,YAAAA,CAAAA,CAAAA;AAEhB,QAAA,CAAA;;AAGA4B,QAAAA,OAAAA,CAAAA,CAAQC,IAAY,EAAA;AAClB,YAAA,IAAIxB,MAAAA,EAAQ;gBACV,OAAO;AACLyB,oBAAAA,OAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,IAAI;AACb,oBAAA,CAAA;AACAC,oBAAAA,IAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,IAAI;AACb,oBAAA,CAAA;AACAC,oBAAAA,KAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,IAAI;AACb,oBAAA,CAAA;oBACAH,IAAAA,EAAM,EAAA;oBACNI,UAAAA,EAAY;AACd,iBAAA;AACF,YAAA;AAEA,YAAA,OAAOC,GAAAA,CAAIL,IAAAA,CAAAA;AACb,QAAA,CAAA;QAEAM,WAAAA,CAAAA,CAAYC,SAAiB,EAAEP,IAAY,EAAA;AACzC,YAAA,IAAIxB,MAAAA,EAAQ;gBACV,OAAO;AACL2B,oBAAAA,KAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,IAAI;AACb,oBAAA,CAAA;AACAK,oBAAAA,IAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,IAAI;AACb,oBAAA,CAAA;AACAC,oBAAAA,MAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,IAAI;AACb,oBAAA;AACF,iBAAA;AACF,YAAA;AAEA,YAAA,MAAMH,WAAAA,GAAc,IAAII,WAAAA,CAAYC,SAAS,CAAC;AAC5CC,gBAAAA,MAAAA,EAAQ,CAAA,EAAGZ,IAAAA,GAAO,CAAA,EAAGA,IAAAA,CAAK,EAAE,CAAC,GAAG,EAAA,CAAA,EAAKd,KAAAA,CAAMQ,KAAK,CAAC,OAAA,CAAA,CAAS,eAAe,CAAC;gBAC1EmB,eAAAA,EAAiB,QAAA;gBACjBC,iBAAAA,EAAmB,QAAA;gBACnBC,UAAAA,EAAY,IAAA;gBACZC,WAAAA,EAAa;AACf,aAAA,CAAA;YAEAV,WAAAA,CAAYH,KAAK,CAACI,SAAAA,EAAW,CAAA,CAAA;YAE7B,OAAOD,WAAAA;AACT,QAAA;AACF,KAAA;AACF;;;;"}
@@ -1,3 +1,6 @@
1
1
  import type { CLIContext, CloudCliConfig } from '../types';
2
- export declare function notificationServiceFactory({ logger }: CLIContext): (url: string, token: string, cliConfig: CloudCliConfig) => void;
2
+ export declare function notificationServiceFactory({ logger }: CLIContext): (url: string, token: string, cliConfig: CloudCliConfig) => {
3
+ waitForEnvironmentCreation: (environmentName: string) => Promise<unknown>;
4
+ close: () => void;
5
+ };
3
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,IACvD,KAAK,MAAM,EAAE,OAAO,MAAM,EAAE,WAAW,cAAc;kDAiDN,MAAM;;EA6B9D"}
@@ -0,0 +1,84 @@
1
+ 'use strict';
2
+
3
+ var EventSource = require('eventsource');
4
+ var EventEmitter = require('node:events');
5
+
6
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
7
+
8
+ var EventSource__default = /*#__PURE__*/_interopDefault(EventSource);
9
+ var EventEmitter__default = /*#__PURE__*/_interopDefault(EventEmitter);
10
+
11
+ function notificationServiceFactory({ logger }) {
12
+ return (url, token, cliConfig)=>{
13
+ const CONN_TIMEOUT = Number(cliConfig.notificationsConnectionTimeout);
14
+ const eventEmitter = new EventEmitter__default.default();
15
+ const es = new EventSource__default.default(url, {
16
+ headers: {
17
+ Authorization: `Bearer ${token}`
18
+ }
19
+ });
20
+ let timeoutId;
21
+ const resetTimeout = ()=>{
22
+ clearTimeout(timeoutId);
23
+ timeoutId = setTimeout(()=>{
24
+ 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.');
25
+ es.close();
26
+ eventEmitter.emit('connectionTimedOut');
27
+ }, CONN_TIMEOUT); // 5 minutes
28
+ };
29
+ es.onopen = ()=>{
30
+ resetTimeout();
31
+ };
32
+ es.onmessage = (event)=>{
33
+ resetTimeout();
34
+ if (!event.data) {
35
+ return;
36
+ }
37
+ const data = JSON.parse(event.data);
38
+ if (data.message) {
39
+ logger.log(data.message);
40
+ }
41
+ // Close connection when a specific event is received
42
+ if (data.event === 'deploymentCompleted' || data.event === 'deploymentFailed' || data.event === 'environmentCreationFailed' || data.event === 'environmentCreationCompleted') {
43
+ clearTimeout(timeoutId);
44
+ es.close();
45
+ }
46
+ eventEmitter.emit(data.event, data);
47
+ };
48
+ const waitForEnvironmentCreation = (environmentName)=>{
49
+ return new Promise((resolve, reject)=>{
50
+ eventEmitter.on('environmentCreationCompleted', (data)=>{
51
+ if (data.environmentName !== environmentName) {
52
+ return;
53
+ }
54
+ resolve('Environment created successfully');
55
+ eventEmitter.removeAllListeners('environmentCreationCompleted');
56
+ });
57
+ eventEmitter.on('environmentCreationFailed', (data)=>{
58
+ if (data.environmentName !== environmentName) {
59
+ return;
60
+ }
61
+ reject(new Error(`Environment creation failed`, {
62
+ cause: 'EnvironmentCreationFailed'
63
+ }));
64
+ eventEmitter.removeAllListeners('environmentCreationFailed');
65
+ });
66
+ eventEmitter.on('connectionTimedOut', ()=>{
67
+ reject(new Error('Connection timed out'));
68
+ });
69
+ });
70
+ };
71
+ const close = ()=>{
72
+ clearTimeout(timeoutId);
73
+ es.close();
74
+ eventEmitter.removeAllListeners();
75
+ };
76
+ return {
77
+ waitForEnvironmentCreation,
78
+ close
79
+ };
80
+ };
81
+ }
82
+
83
+ exports.notificationServiceFactory = notificationServiceFactory;
84
+ //# 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":"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"}
@@ -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":"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"}
@@ -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,58 @@
1
+ 'use strict';
2
+
3
+ var fse = require('fs-extra');
4
+ var path = require('path');
5
+ var lodash = require('lodash');
6
+
7
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
8
+
9
+ var fse__default = /*#__PURE__*/_interopDefault(fse);
10
+ var path__default = /*#__PURE__*/_interopDefault(path);
11
+
12
+ const LOCAL_SAVE_FILENAME = '.strapi-cloud.json';
13
+ const getFilePath = (directoryPath)=>path__default.default.join(directoryPath || process.cwd(), LOCAL_SAVE_FILENAME);
14
+ async function save(data, { directoryPath } = {}) {
15
+ const pathToFile = getFilePath(directoryPath);
16
+ // Ensure the directory exists and creates it if not
17
+ await fse__default.default.ensureDir(path__default.default.dirname(pathToFile));
18
+ await fse__default.default.writeJson(pathToFile, data, {
19
+ encoding: 'utf8'
20
+ });
21
+ }
22
+ async function retrieve({ directoryPath } = {}) {
23
+ const pathToFile = getFilePath(directoryPath);
24
+ const pathExists = await fse__default.default.pathExists(pathToFile);
25
+ if (!pathExists) {
26
+ return {};
27
+ }
28
+ return fse__default.default.readJSON(pathToFile, {
29
+ encoding: 'utf8'
30
+ });
31
+ }
32
+ async function patch(patchData, { directoryPath } = {}) {
33
+ const pathToFile = getFilePath(directoryPath);
34
+ const existingData = await retrieve({
35
+ directoryPath
36
+ });
37
+ if (!existingData) {
38
+ throw new Error('No configuration data found to patch.');
39
+ }
40
+ const newData = lodash.merge(existingData, patchData);
41
+ await fse__default.default.writeJson(pathToFile, newData, {
42
+ encoding: 'utf8'
43
+ });
44
+ }
45
+ async function deleteConfig({ directoryPath } = {}) {
46
+ const pathToFile = getFilePath(directoryPath);
47
+ const pathExists = await fse__default.default.pathExists(pathToFile);
48
+ if (pathExists) {
49
+ await fse__default.default.remove(pathToFile);
50
+ }
51
+ }
52
+
53
+ exports.LOCAL_SAVE_FILENAME = LOCAL_SAVE_FILENAME;
54
+ exports.deleteConfig = deleteConfig;
55
+ exports.patch = patch;
56
+ exports.retrieve = retrieve;
57
+ exports.save = save;
58
+ //# 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,aAAAA,GACnBC,qBAAAA,CAAKC,IAAI,CAACF,aAAAA,IAAiBG,OAAAA,CAAQC,GAAG,EAAA,EAAIN,mBAAAA,CAAAA;AAErC,eAAeO,KAAKC,IAAe,EAAE,EAAEN,aAAa,EAA8B,GAAG,EAAE,EAAA;AAC5F,IAAA,MAAMO,aAAaR,WAAAA,CAAYC,aAAAA,CAAAA;;AAE/B,IAAA,MAAMQ,oBAAAA,CAAIC,SAAS,CAACR,qBAAAA,CAAKS,OAAO,CAACH,UAAAA,CAAAA,CAAAA;AACjC,IAAA,MAAMC,oBAAAA,CAAIG,SAAS,CAACJ,UAAAA,EAAYD,IAAAA,EAAM;QAAEM,QAAAA,EAAU;AAAO,KAAA,CAAA;AAC3D;AAEO,eAAeC,QAAAA,CAAS,EAC7Bb,aAAa,EACc,GAAG,EAAE,EAAA;AAChC,IAAA,MAAMO,aAAaR,WAAAA,CAAYC,aAAAA,CAAAA;AAC/B,IAAA,MAAMc,UAAAA,GAAa,MAAMN,oBAAAA,CAAIM,UAAU,CAACP,UAAAA,CAAAA;AACxC,IAAA,IAAI,CAACO,UAAAA,EAAY;AACf,QAAA,OAAO,EAAC;AACV,IAAA;IACA,OAAON,oBAAAA,CAAIO,QAAQ,CAACR,UAAAA,EAAY;QAAEK,QAAAA,EAAU;AAAO,KAAA,CAAA;AACrD;AAEO,eAAeI,MACpBC,SAAqB,EACrB,EAAEjB,aAAa,EAA8B,GAAG,EAAE,EAAA;AAElD,IAAA,MAAMO,aAAaR,WAAAA,CAAYC,aAAAA,CAAAA;IAC/B,MAAMkB,YAAAA,GAAe,MAAML,QAAAA,CAAS;AAAEb,QAAAA;AAAc,KAAA,CAAA;AACpD,IAAA,IAAI,CAACkB,YAAAA,EAAc;AACjB,QAAA,MAAM,IAAIC,KAAAA,CAAM,uCAAA,CAAA;AAClB,IAAA;IACA,MAAMC,OAAAA,GAAUC,aAAMH,YAAAA,EAAcD,SAAAA,CAAAA;AACpC,IAAA,MAAMT,oBAAAA,CAAIG,SAAS,CAACJ,UAAAA,EAAYa,OAAAA,EAAS;QAAER,QAAAA,EAAU;AAAO,KAAA,CAAA;AAC9D;AAEO,eAAeU,YAAAA,CAAa,EAAEtB,aAAa,EAA8B,GAAG,EAAE,EAAA;AACnF,IAAA,MAAMO,aAAaR,WAAAA,CAAYC,aAAAA,CAAAA;AAC/B,IAAA,MAAMc,UAAAA,GAAa,MAAMN,oBAAAA,CAAIM,UAAU,CAACP,UAAAA,CAAAA;AACxC,IAAA,IAAIO,UAAAA,EAAY;QACd,MAAMN,oBAAAA,CAAIe,MAAM,CAAChB,UAAAA,CAAAA;AACnB,IAAA;AACF;;;;;;;;"}